TCP
3次握手:
第一次:客户端发送syn包到服务器,等待服务器确认
第二次:服务器收到syn包,确认客户端的syn包,同时发送一个syn+ack包给客户端
第三次:客户端收到来自服务器的syn+ack包,并发送一个ack包给服务器,发送完毕,完成三次握手
4次断开:
第一次:主动方发送一个fin包给被动方
第二次:被动方收到fin包,发送一个ack包给主动方
第三次:被动方发送一个fin包给主动方
第四次:主动方收到fin包,并发送一个ack包给被动方,完成四次断开
可靠机制:
1.确认:
在TCP的首部中有一个标志位——ACK,此标志位表示确认号是否有效。接收方对于按序到达的数据会进行确认,当标志位ACK=1时确认首部的确认字段有效。进行确认时,确认字段值表示这个值之前的数据都已经按序到达了。而发送方如果收到了已发送的数据的确认报文,则继续传输下一部分数据;而如果等待了一定时间还没有收到确认报文就会启动重传机制
2.排序:
TCP将每个字节的数据都进行了编号
序列号的作用:
1)、保证可靠性(当接收到的数据总少了某个序号的数据时,能马上知道)
2)、保证数据的按序到达
3)、提高效率,可实现多次发送,一次确认
4)、去除重复数据
3.流控:
根据接收端的处理能力来决定发送端的发送速度,接收端处理数据的速度是有限的,如果发送端发送数据的速度过快,导致接收端的缓冲区满,而发送端继续发送,就会造成丢包,继而引起丢包重传等一系列反应
4.重传:
当报文发出后在一定的时间内未收到接收方的确认,发送方就会进行重传
07-17
460
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-29
08-29