传输层
端口号:
作用:表示不同的进程
静态端口:1-1023——固定给网络上常见的某个协议使用
Telnet——23
ftp——20/21
http——80
https——443
dns——53
dhcp——67/68
动态端口:1024——65535——某些协议自动随机生成的端口
Tcp协议——传输控制协议
是一种面向连接的可靠传输协议
可靠性机制:
确认机制:每接收到一个数据段,都需要进行一次确认
重传机制:当一个数据段中的某个包丢失,发出者会重新发送这个报文
排序机制:传输一个数据段,被分为多个报文后,从不同路径传输,最终到达目的地的顺序会被打乱,所以需要重新排序,依靠TCP首部中的序列号字段
流动机制(滑动窗口机制):调节窗口大小对流量进行控制
窗口大小:指无需等待确认就可以连续发送数据的最大值
TCP分段——>用来代替IP分片
MSS(最大传输段)=MTU—IP头部—TCP头部
经过TCP分段后的数据在传输过程中不允许进行IP分片
面向连接:
(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
(3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN等。具体含义如下:
URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:发起一个新连接。
FIN:释放一个连接。
三次握手
第一次握手
客户端向服务器发出连接请求报文,这时报文首部中的同部位 SYN=1,同时随机生成初始序列号 seq=x,此时,TCP 客户端进程进入了 SYN-SENT(同步已发送状态)状态。
第二次握手
TCP 服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是 ack=x+1,同时也要为自己随机初始化一个序列号 seq=y,此时,TCP 服务器进程进入了 SYN-RCVD(同步收到)状态。
第三次握手
TCP 客户进程收到确认后,还要向服务器给出确认。确认报文的 ACK=1,ack=y+1,此时,TCP 连接建立,客户端进入 ESTABLISHED(已建立连接)状态。
四次挥手
第一次挥手
客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为 seq=u(等于前面已经传送过来的数据的最后一个字节的序号加 1),
第二次挥手
服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号 seq=v,此时,服务端就进入了 CLOSE-WAIT(关闭等待)状态。TCP 服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个 CLOSE-WAIT 状态持续的时间。
第三次挥手
服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为 seq=w,此时,服务器就进入了 LAST-ACK(最后确认)状态,等待客户端的确认。
第四次挥手
客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是 seq=u+1,此时,客户端就进入了 TIME-WAIT(时间等待)状态。注意此时 TCP 连接还没有释放,必须经过 2*MSL(最长报文段寿命)的时间后,当客户端撤销相应的 TCB 后,才进入 CLOSED 状态。
UDP协议——用户数据协议
是一种非面向连接的不可靠传输协议
TCP与UDP 的区别
TCP协议是面向连接,而UDP是面向无连接
TCP协议是可靠的,UDP是尽力而为
TCP具备流控和拥塞控制,而UPD没有
TCP可以分段
TCP消耗资源多,速度慢;UPD消耗资源少,速度快
VLSM——可变长子网掩码技术——子网划分
无类分址
实现方法:通过从主机位借位到网络位的方式来延长子网掩码,达到一个大网络划分为多个小网络;借出的位称为子网位,决定了能够划分出多少个网络的个数。
CIDR——无类域间路由
作用:将小网络汇聚成大网络
汇总方式:取向同位,去不同位
汇总要求:母网相同,掩码一致
172.16.1.0/24
172.16.14.0/24
172.16.35.0/24
172.16.99.0/24
172.16.00000001.0
172.16.00001110.0
172.16.00100011.0
172.16.01100011.0
172.16.0 0000000.0/17---172.16.0.0/17
ICM解析
用来在网络设备间传递各种差错、控制、查询信息,对于收集各种网络信息、诊断和排除各种网络故障。