计算机网络

概述

Internet概述

网络:就是使用集线器或交换机将计算机连接起来构成一个网络

互联网:internet,使用路由器将多个网络连接起来

因特网:Internet,全球最大的互联网

因特网

因特网分为边缘部分和核心部分

边缘部分

主机之间的通信方式有两种:客户服务器方式(CS)、对等方式(Peer-to-Peer)

比如计算机C有一个500M文件,计算机D先下载了250M,此时计算机F要从计算机C中下载这个文件。此时计算机D已经下载了一部分,所以计算机D就可以作为服务器来给计算机F提供数据。就是说每个计算机即是客户端,又是服务器。下载的时候,就会有多个源头,下载的时候就会从多个源头下载。这样,下载的人越多,新下载就会越快

核心部分

数据交换方式:电路交互(打电话)、报文交互、分组交互

计算机网络采用的是分组交互


电路交互方式,线路是独占的,不允许其他人访问;分组交换方式是共享的。

报文交互方式,是一次把整个报文进行传输;分组交互是要对数据进行分组的。

广域网和局域网

广域网和局域网的区分,不单单是从网络覆盖范围区分。现在更多的是根据技术进行划分,应用了广域网技术的称为广域网,应用了局域网技术的称为局域网(局域网一般不超过100米)。

计算机网络体系结构

OSI参考模型

分为7层,从上到下依次是:

应用层:能够产生网络流量,能够和用户交互

表示层:加密、压缩

会话层:客户端和服务端建立的会话,查木马(会盗窃信息),命令netstat -n

传输层:可靠传输(建立连接)、不可靠传输(不建立会话,QQ聊天、屏幕广播、DNS域名解析)、流量控制、拥塞避免

网络层:IP地址编址、选择最佳路径

数据链路层:输入如何封装、添加物理层地址(MAC地址)

物理层:电压、接口标准

开发人员考虑应用层、表示层、会话层,网络工程师考虑其他层。

分层的好处:每一层更改不会影响其他层;不同网络设备厂商生产出标准的网络设备

TCP/IP模型

应用层、传输层、网络层、网络接口层

OSI参考模型与网络排错

从底层向高层逐层排错。

物理层故障:连接问题,网线断了

数据链路层故障:MAC地址冲突、网速不一致(一个100Mbps,另一个1000Mbps)、ADSL欠费、将计算机连接到错误的VLAN

网路层故障:网络地址、子网掩码、网关配置错误造成的故障;路由器路由表错误

表示层故障:乱码问题

应用层故障:应用程序配置错误

OSI参考模型与网络安全

物理层安全:防止非法计算机接入公司网络

数据链路层安全:划分VLAN、交换机端口安全、ADSL拨号账号秘密、连接无线密码

网络层安全:在计算机上可以设置网络安全、在路由器可以设置ACL控制数据包转发

应用层安全:开发出安全的应用程序

网络设备和分层

物理层:集线器、双绞线、同轴电缆、光纤、无线传播

数据链路层:交换机

网络层:路由器

物理层

数据通信

单工通信:只能有一个方向的通信,没有反方向的交互(电台、电视台)

半双工通信:通信双方都可以发生消息,但不能双方同时发送(集线器连网、对讲机)

全双工通信:通信双方可以同时发送和接收数据(交换机连网)

数据链路层

信道类型

点对点信道:一对一的点对点通信方式(PPP协议)

广播信道:一对多的通信方式(CSMA/CD协议)

三个基本问题

  • 封装成帧
  • 透明传输
  • 差错控制

101001是要传输的数据(信息位,记作Mx),生成多项式Gx=1101,求对应的CRC码

解答:生成多项式Gx是4位数,所以只需要在信息位Mx后面添加3个(4-1)0,Mx=101001000

然后用Mx / Gx,在计算过程中,如果被除数的第一位是1,商就上1,是0商就上0。做减法的时候,其实是异或操作(相异为1,相同为0)

最后得到余数Rx=001,最终的CRC码是Mx+Rx=101001001

最终的CRC就是发送方传输的数据。接收方收到CRC码之后,使用CRC码除以Gx,如果余数为0,表示传输过程中没出差;如果余数不为0,表示传输过程中出错,就丢掉。

CSMA CD载波监听多点接入/碰撞检测

以太网使用了CSMA CD协议。

多点接入:许多计算机以多点接入的方式连接在一根总线上。

载波监听:每一个站在发送数据之前,先要检测一下总线上是否有其他计算机在发送数据,如果有则暂时不要发送数据,以免发生碰撞。在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息。一旦发现总线上出现了碰撞,就要立即停止发送,免得浪费网络资源,然后等待一段随机时间后再次发送。

使用CSMA CD协议的以太网只能进行半双工通信。

发送碰撞后的退避算法:二进制指数类型退避算法

网络层

IP地址决定了数据包最终到达哪一台计算机,而MAC地址决定了该数据包下一跳由哪个设备接收,不一定是终点。

网络层负责为数据包选择转发路径,不负责可靠传输也不负责按顺序到达。

两种服务

  • 虚电路服务
  • 数据报服务

网络管理员配置好一条链路之后就可以进行传输了。如果链路断了,传输就做不了。(链路固定)

两个点要进行数据传输,将数据封装好给到路由器,路由器检测数据的源地址和目标地址,动态进行路径选择。(链路不固定)

IP地址

与IP协议配合使用的还有四个协议:

  • ARP地址解析协议(解析MAC地址)
  • RARP逆地址解析协议
  • ICMP网际控制报文协议(PING一个网络地址用了)
  • IGMP网际组管理协议

ARP协议是底层,IP协议依赖于ARP协议,ICMP和IGMP协议依赖于IP协议。

网络部分和主机部分

IPV4地址是32位,分为网络部分和主机部分,网络部分在前,主机部分在后。

IP地址分类

一共32位地址,我们把地址平均分为4段,一段8位。

A类地址:前8位是网络部分,后面24位是主机部分,一个网段的主机数量是256的三次方

B类地址:前16位是网络部分,后面16位是主机部分,一个网段的主机数量是256的二次方

C类地址:前24位是网络部分,后面8位是主机部分,一个网段的主机数量是256

特殊地址:

127地址没有划分到A类地址,它被认为是计算机的本地环回地址。

169.254.0.0 Windows系统自动分配给自己供临时用的地址

保留的私网地址:A类地址10.0.0.0,子网掩码是255.255.255.0,供企业内部用

0.0.0.0:如果计算机的IP地址与网络中其他计算机地址冲突,使用ipconfig命令看到的就是0.0.0.0,子网掩码也是0.0.0.0

子网掩码

又叫网络掩码。它是用来指明一个IP地址的哪些部分是网络部分,哪些部分是主机部分。

如果一台计算机的IP地址是172.16.122.204,子网掩码是255.255.0.0,将IP地址和子网掩码都写成而进行,进行与运算,即1和1运算得1,1和0运算得0。经过计算网络位的值保持不变,主机位都归零了,就可以得到该计算机的网为172.16.0.0

子网掩码很重要,配置错误会造成计算机通信故障。

计算机和其他计算机通信时,手写断定目标地址和自己是否在同一个网段,判断标准是,用自己的子网掩码和自己的IP地址做与运算得到自己所属网段,再用自己的子网掩码和目标地址做与运算,得到目标地址的网段。如果在一个网段,就直接给目标地址进行通信。不在一个网段,则需要将数据转发给路由器即网关,然后将数据转给目标地址。

CIDR无类域间路由

子网掩码是255.0.0.0,有8个1;子网掩码是255.192.0.0,有15个1;

我们可以简化子网掩码的表示,上面两个分别可以表示位/8和/15,表示1的个数,1的个数被称为CIDR值。

子网划分

划分意义:如果我们给只有100台计算机的网段分配了一个C类网络,由于C类网络可支持最大主机数是254,这有些浪费,就需要进行子网划分了。

子网划分,就是借用现有网段的主机位做子网位,划分出多个子网。

子网划分主要是完成两个任务:确定子网掩码;确定子网中第一个可用的IP地址和最后一个可用的IP地址

子网划分需要注意:

主机部分不能全为1,也不能全为0。全为0代表一个网段;全为1表示广播,网络中所有计算机都能收到这个数据包。

  • 将一个C类网络划分为两个子网

有一个C类网络192.168.0.1,子网掩码是255.255.255.0,下面挂了200台计算机。现在要将200台计算机拆分成各100台,放在这个C类网的不同子网下。

将原来的子网掩码后移一位,变成255.255.255.128

子网1:192.168.0.1~192.168.0.126(注意最大的地址不是192.168.0.127,因为192.168.0.126的主机位是7个1,是不能做主机位的)

子网2:192.168.0.129~192.168.0.254

规律:每除以一次2,子网掩码就向后移动一位

  • 将一个C类网络划分为四个子网

将一个C类网络192.168.0.0划分位四个子网,每个子网下面容纳50台计算机。

原来C类网络的子网掩码是255.255.255.0,要实现上述功能,就需要将子网掩码后移2位。变成255.255.255.192

子网1:192.168.0.1~192.168.0.62

子网2:192.168.0.65~192.168.0.126

子网3:192.168.0.129~192.168.0.190

子网4:192.168.0.193~192.168.0.254

  • 将一个C类网络划分为八个子网

    原来C类网络的子网掩码是255.255.255.0,要实现上述功能,就需要将子网掩码后移3位。变成255.255.255.224

子网1:192.168.0.1~192.168.0.30

子网2:192.168.0.33~192.168.0.62

子网3:192.168.0.65~192.168.0.94

子网4:192.168.0.97~192.168.0.126

子网5:192.168.0.129~192.168.0.158

子网6:192.168.0.161~192.168.0.190

子网7:192.168.0.193~192.168.0.222

子网8:192.168.0.225~192.168.0.253

点到点网络子网掩码最好是252,以255子网掩码为例,它的各位都是1,我们要实现两个网络,需要将子网掩码向左移位,如果移动一位的话,最后一位有0和1两种可能,但是主机位不能是全0和全1,就需要再往左移动一位。主机位有00、01、10、11四种,可用的是01和10,对应子网掩码是255-3=252

  • 将一个B类网络划分为两个子网

原网络:172.16.0.0,子网掩码:255.255.0.0

新子网掩码:255.255.128.0

子网1:172.16.0.1~172.16.127.254

子网2:172.16.128.1~172.16.255.254

  • 将一个C类网络划分为三个子网

原网络:192.168.0.0,子网掩码:255.255.255.0(这道题答案不唯一)

子网1有20台计算机:子网掩码是255.255.255.224,可用IP地址是192.168.0.33~192.168.0.62

子网2有50台计算机:子网掩码是255.255.255.192,可用IP地址是192.168.0.65~192.168.0.126

子网3有100台计算机:子网掩码是255.255.255.128,可用IP地址是192.168.0.129~192.168.0.254

判断一个IP地址所在网段

192.168.0.101/26,它所在的网段是192.168.0.64

192.168.0.101/27,它所在的网段是192.168.0.96

超网合并网络

将192.168.0.0和192.168.1.0合并,子网掩码都是255.255.255.0

解决方法:将子网掩码左移1位,变成255.255.254.0,这样两个子网就变成一个网段192.168.0.0了

IP地址决定了数据包要给到哪台计算机,MAC地址决定了下一跳的地址。

ARP、RARP协议

ARP协议负责将IP地址转化为MAC地址,RARP协议负责将MAC地址转化为IP地址。(解析主要靠广播,会给网上所有的计算机发广播,询问该IP地址的MAC地址是什么,只有对应IP的计算机会给回复。后面这两台计算机通信的时候,就会直接把数据包里的目标MAC地址写成回复的MAC地址了。不难发现这样会产生安全问题。解决方式是装ARP防火墙。)

IP数据包格式

TTL生存时间:windows系统默认是128,过一个路由器就减1,到0时路由器就不转发了,数据包消失

ICMP协议

Internet Control Message Protocol

PING命令用到了ICMP协议。

ICMP协议允许主机或路由器报告差错情况和提供有关异常情况的报告。

tracert命令可以跟踪数据包经过的路由器。

IGMP协议

Internet Group Management Protocol

指组播,或者多播,比如说电视台节目。

静态路由

静态路由不会根据网络的变化而自动变化,适用于规模小的网络。

动态路由协议

  • 路由信息协议RIP:周期性广播(每隔30秒)将自己的路由表广播给其他路由器。其他路由器收到广播后就会更新自己的路由表。如果路由器到一个目标节点有两条路径,通过RIP协议广播后,路由器只会保留经过路由器少的路径,即以通过路由器的数量作为评判路径好坏的依据。

  • 内部网关协议/开放式最短路径优先OSPF:基于带宽选择路径。支持多区域,触发式更新

  • 外部网关协议BGP:是不同自治系统的路由器之间交换路由信息的协议

网络地址转换NAT

私网地址要想和公网地址进行通信,就需要用到网络地址转换。因为如果不使用地址转换的话,私网的一个数据包发送出去,公网的可以收到,但是无法给私网进行回复。因为路由器不知道私网地址怎么走。

网络地址转换,就是私网发数据包到公网时,在发出去的时候,源地址转换为另一个公网地址,这样公网地址收到数据包之后,就可以将响应回复给另一个公网地址,完成整个通信过程。

传输层

简介

包括TCP(传输控制协议)、UDP协议(用户数据报协议)

传输层协议应用场景:

TCP:可靠传输,分段、编号、流量控制、拥塞控制、客户端和服务器需要建立TCP连接,通信结束后释放连接。例如:QQ传文件、访问网站、上传下载文件

UDP:不可靠传输,尽最大努力交付。一个数据包就能完成数据通信,不建立会话(域名解析IP地址,一个数据包就能完成,就是UDP),例如:QQ聊天,QQ语言聊天和视频(TCP分段编号之后会出现传输顺序问题,给客户端返回时会语无伦次),多播(一个人投屏,其他人都能收到)

传输层和应用层之间的关系

http=TCP协议+80端口

https=TCP协议+443端口

ftp=TCP+21端口

SMTP=TCP+25端口

POP3=TCP+110端口

RDP=TCP+3389端口

共享文件夹=TCP+445端口

SQL SERVER=TCP+1433端口

DNS=UDP+53,很少情况下用TCP+53

telnet=TCP+23端口

应用层协议和服务之间的关系

服务运行后,在TCP或UDP的某个端口侦听客户端请求。

端口代表的是服务,端口访问不了,服务也就访问不了。

使用telnet ip:端口,可以查看端口情况。

UDP协议

不可靠传输,尽最大努力交付。

TCP协议

特点:面向连接、可靠交付、面向字节流。分段传输、可靠传输、流量控制、拥塞控制。

TCP报文首部格式

  • 序号:发送方所发送的的数据第一个字节编号
  • 确认号:接收方收到发送方的数据后,给发送方回复,确认号是指期待发送方发送的下一个字节编号

  • URG标记位作用于发送端,让发送端优先发送该数据包;PSH标记位作用于接收端,让接收端优先读取该数据包。
  • 窗口:A、B计算机通讯,A将数据包放到本地传输层缓存,然后分段编号给B计算机发送。这些数据会先到达B计算机的本地传输层缓存。B收到这些数据之后会给A一个确认后,同时会附带B计算机缓存(窗口)大小,告诉A计算机最多还可以发送多少个数据包。

可靠传输

停止等待协议

A计算机给B计算机发送一个数据包之后,就停止发送,直到B计算机发送的确认收到数据包被A计算机收到后,才开始发送下一个数据包。如果发生丢包会超时重传。

停止等待协议发送效率太低。

改进的停止等待协议

连续ARQ协议和滑动窗口协议

A计算机给B计算机发送数据,每个计算机的发送窗口和接收窗口的大小有限,如上图,假如A计算机的发送窗口最多容纳M1-M4这几个数据包,然后将这几个数据包一并发送出去。B计算机收到这几个数据包之后,只需要发送一个确认数据包M4,表明M1-M4这几个数据包都收到了。然后A计算机就可以把发送窗口中的M1-M4删掉,添加M5-M8数据包,接着发送,这就是滑动窗口。

如果传输过程中丢包了,比如A计算机给B计算机发送了M1-M4这几个数据包,B计算机只收到了M1、M2、M4这几个。如果是选择性确认,B计算机会告诉A计算机收到了M1、M2、M4这几个数据包,只需要重传M3数据包;如果不是选择性确认(SACK),B计算机给A计算机发送的确认号就是M3,表示期望A计算机发送M3开始的数据包,这就会导致A计算机多发送一次M4数据包。

流量控制

发送端的发送窗口,由接收端设定其大小。

发送端给接收端发送数据的时候,发送速度要根据接收端的接收能力动态调整。以防止接收端处理不过来。

拥塞控制

拥塞窗口设定发送端发送窗口。

发送窗口=min(接收窗口,拥塞窗口)

网络中所有的计算机共同实现的拥塞控制。使用TCP通讯的这些计算机要能够感知网络的拥塞状况,来调整发送速度。网络拥塞,降低发送速度,避免网络进一步拥塞。

拥塞控制方法
  • 慢开始

网络中的两台计算机开始通信时,并不知道网络的拥塞程度。于是发送端先发送一个数据包,接收端回复确认收到数据包。发送端于是发送两个数据包,接收端回复确认收到数据包。发送端发送四个数据包,如果达到发送最大门限,就要使用拥塞避免算法了。可以看出发送端开始发送的慢,然后呈指数增长趋势。

  • 拥塞避免

出现数据丢包,表明网络出现拥塞,此时发送方发送频率就不是指数增长了,而是线性增长,每次加1。等到网络拥塞时,用当前拥塞窗口大小2400除以2,计算出来新的满开始门限1200。然后发送端使用慢开始进行发送,达到1200新的慢开始门限后,执行拥塞避免算法。

改进的拥塞控制方法

当前互联网使用的是这个方法。

  • 快重传

发送方发送了M1、M2两个数据包,接收方给出确认。发送方发送M3、M4数据包,M3数据包在传输过程中丢了,M4数据包没丢,接收方收到M4数据包之后就会认为网络出问题了。接收方这个时候最好是立即告诉发送方要重发M3数据包。这时接收方会给发送方立即发送3个重复确认M2,告诉发送方要立即发M3数据,于是发送方要立即发M3数据。

  • 快恢复

    一开始使用慢开始指数增长,达到拥塞阈值后拥塞避免线性增长。当出现数据丢包时,发送方会收到接收方3个重复的确认,于是执行快重传算法。同时,发送窗口初始大小变为出现丢包时窗口的一半(而不是直接变为1,这就是快恢复),然后以后每一个轮次,发送窗口线性增长。

连接管理

TCP建立连接的过程,也叫三次握手。

B计算机是服务器,服务启动后状态处于LISTEN监听状态。A计算机给B计算机发一个连接请求(SYN=1,ACK=0,seq=x),然后A计算机进入SYN-SENT状态,B计算机收到请求后给A计算机一个确认(SYN=1,ACK=1,seq=y,ack=x+1,y表示B计算机发送的序列,x+1表示A计算机的x已经收到了,期待A计算机发送x+1),然后B计算机进入SYN-RECEIVED状态,A计算机收到B计算机的确认后,再给B计算机发送一个确认的确认(SYN=0,ACK=1,seq=x+1,ack=y+1,x+1表示A计算机发送x+1数据,y+1表示A收到B发送的y,期待B发送y+1),然后双方建立连接,状态为ESTABLISHED。

为什么不是两次握手?

两次握手,即请求连接、确认连接两步。会出现这种情况,A计算机发送一个请求连接,这个请求可能由于网络拥塞传输速度慢,长时间没有到达B计算机。于是A计算机再次发送一个请求连接,这一次很快传到B计算机,并且B计算机给了确认连接。那么双方就建立连接了。过了一会,A计算机第一次发送的连接请求到达B计算机,B计算机给出确认连接,A计算机收到后,发现自己已经建立连接了,于是这个数据包就不会处理,但是B计算机会认为这个连接一直存在。这就会导致这一次连接一直存在,无法被释放,浪费服务器资源。

释放连接

释放连接也称为TCP的四次挥手。

A和B建立连接后状态是ESTABLISHED,A计算机想主动释放连接,发送一个数据包(FIN=1,seq=u),状态进入FIN-WAIT-1状态。B计算机收到后,发送一个确认数据包(ACK=1,seq=v,ack=u+1),状态变为CLOSE-WAIT,然后通知应用程序关闭。A计算机收到这个数据包之后,状态变为FIN-WAIT-2。等到B计算机的应用程序关闭后,给A计算机发送一个数据包(FIN=1,ACK=1,seq=w,ack=u+1)。A计算机收到这个数据包之后,状态变为TIME-WAIT,等待2MSL(两倍的最长报文时间)变为CLOSED状态。并且,A计算机给B计算机发送一个数据包(ACK=1,seq=u+1,ack=w+1),B计算机收到这个数据包后就进入CLOSED状态。

=为什么要等待2MSL时间A计算机才关闭

最后一步A给B发送的数据包可能丢包,这时B计算机会再次给A计算机发送数据包,A计算机再次发送确认。如果没有2MSL时间,A计算机立即关闭,B计算机再次发送数据包,A已经关闭,无法发出确认,B就无法收到确认,就不能关闭。

应用层

包括http、https、ftp、DNS(域名解析)、SMTP(发邮件)、POP3(收邮件)、RDP(远程桌面协议)

DNS

域名解析协议,将域名解析为IP地址。

客户端配置的DNS地址是13.2.1.2,如果要访问www.inhe.net,会向DNS服务器发送请求。DNS服务器一看域名是以.net结尾的,正好自己负责,于是将IP地址返回。

如果要访问www.sohu.com,会向DNS服务器B发送请求。DNS服务器B一看域名是以.com结尾的,自己不负责,于是向根DNS服务器发送请求。根DNS服务器告诉DNS服务器B,.com对应的DNS服务器的IP是42.6.1.8,于是DNS服务器B给DNS服务器C发送请求,DNS服务器一看域名是.com结尾,找对人了,一看是sohu.com,就告诉DNS服务器B,sohu.com你去请求43.6.18.8。于是DNS服务器B给DNS服务器E发送请求,DNS服务器E将IP地址返回给DNS服务器B,B再将IP返回给客户端,同时将这个IP在本地缓存供下一次使用。同时,客户端本地也有缓存,会把刚刚请求的sohu.com的IP地址缓存。

DHCP

动态主机配置协议。

静态地址使用场景:企业中的一些服务器,给外部提供服务的

动态地址使用场景:移动设备、无线设备、ADSL拨号

telnet

是一个简单的远程终端协议。

RDP

远程桌面协议。

HTTP

超级文本传输协议。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

HTTP是一个****基于请求与响应模式的、无状态的、应用层的协议,常基于**TCP**的连接方式****

http1.0版本,如果一个网页有多个图片,则下载一个图片就要建立一次TCP连接。

http1.1版本,持续连接,如果一个网页有多个图片,建立一个TCP连接,一直持续,可以使用这个连接传输所有文件。有流水线方式和非流水线方式。

http请求响应报文格式

http响应报文状态码

400:**请求报文语法有误,服务器无法识别

**401:**请求需要认证

**403:**请求的对应资源禁止被访问

**404:**服务器无法找到对应资源

HTTPS

Https:是以安全为目标的Http通道,是Http的安全版。

Https设计目标

  • 数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么。

  • 数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收。

  • 身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方。

Http与Https的区别

1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl(Secure Socket Layer,安全套接层)加密传输协议。

3、http和https使用的是完全不同的连接方式(虽然连接方式不同但都是基于TCP运输层的,只不过https通过ssl协议间接基于运输层之上,而http是直接基于TCP之上),用的端口也不一样,前者是80,后者是443。HTTPS基于HTTP使用 SSL/TLS加密。但是http和https都是基于TCP/IP的。

4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的,对历史的连接信息不会有记忆功能。无连接的意思是指通信双方都不长久的维持对方的任何信息,在通信前不会先建立好连接)

什么是Http协议无状态协议?怎么解决Http协议无状态协议?

  • 无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
  • 也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个"老用户"。
  • 可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是"老用户"。

Https的优点

1、使用Https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。

2、Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。

3、Https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

Https的缺点(对比优点)

1、Https协议握手阶段比较费时,会使页面的加载时间延长近。

2、Https连接缓存不如Http高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。

3、Https协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。

4、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

5、成本增加。部署 Https后,因为 Https协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。

6、Https协议的加密范围也比较有限。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

https使用的是对称加密和非对称加密结合的方式。A和B通信,A先将自己的公钥发给B,B收到后生成一个对称密钥,并使用A的公钥进行加密传给A。A收到之后使用A的私钥进行解密就获取到了这个对称密钥。之后就可以使用这个对称密钥进行通信了。

FTP

文件传输协议。

SMTP

发送邮件协议。

POP3

收邮件协议。

IMAP

收邮件协议。

网络安全

网络安全的四个威胁:截获、中断、篡改、伪造。

加密技术

对称加密

加密密钥和解密密钥是同一个。

缺点:密钥不适合在网上传输,网上传输可能被截获。密钥维护麻烦。

优点:效率高

非对称加密

加密密钥和解密密钥是不同的。

密钥对,分为公钥和私钥。公钥加密,私钥解密;或者私钥加密,公钥解密。

公钥加密后,使用公钥是无法解密的。同理,使用私钥加密后,使用私钥是无法解密的。

缺点:效率低


非对称加密细节:对称加密和非对称加密的结合

A计算机想要从B计算机下载500M电影。A会将自己的公钥传给B,然后B生成一个对称密钥,对500M电影加密比较快(对称加密比非对称加密加密速度快),然后再将对称密钥使用A的公钥进行加密,将二者传给A。A收到后,使用自己的私钥进行解密获得B的对称密钥,然后使用对称密钥对电影进行解密。

数字签名

防止抵赖、能够检测签名之后内容释放被更改(被更改后数字签名会失效)

防火墙

防火墙是由硬件、软件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。防火墙可用来解决内联网和外联网的安全问题。

防火墙内的网络称为"可信赖的网络",防火墙外的网络称为"不可信赖的网络"。

防火墙分类:

网络层防火墙:基于数据包、源地址、目标地址、协议和端口,控制流量

应用层防火墙:数据包、源地址、目标地址、协议和端口,用户名、时间段、内容,防病毒进入内网。

防火墙网络拓扑:三像外围网、背靠背防火墙、单一网卡防火墙、边缘防火墙

相关推荐
梁辰兴1 小时前
计算机网络基础:引导型传输媒体
网络·计算机网络·计算机·计算机网络基础·引导型传输媒体
大道戏1 天前
互联网程序设计第12 讲 RMI 程序设计
java·开发语言·计算机网络
散修-小胖子1 天前
计算机网络基础概念
计算机网络
没书读了1 天前
考研复习-计算机网络-第六章-应用层
计算机网络·考研
君鼎1 天前
计算机网络第二章:物理层学习总结
网络·学习·计算机网络
Tandy12356_1 天前
中科大计算机网络——网络安全
c语言·python·计算机网络·安全·web安全
重生之我是Java开发战士1 天前
【计算机网路】计算机网络概述:从 ARPAnet 到万物互联
计算机网络
Han.miracle2 天前
JavaEE-- 网络编程 http请求报头
运维·服务器·网络·网络协议·计算机网络·http
Han.miracle2 天前
JavaEE--网络编程 http请求 :URL 方法get 和 post
数据库·sql·计算机网络