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.重传: 当报文发出后在一定的时间内未收到接收方的确认,发送方就会进行重传
|