TCP协议

特点:

<h1></h1>

1.面向连接(虚连接:没有封装和解封装的过程,相当于点对点的连接)

2.只能是点对点的连接

3.可靠有序,不丢失不重复

4.提供全双工(可以同时发送和接收)

5.面向字节流(把数据看成是一串无结构的字节流,一点点的发送过去)

 

报文结构:

 

 序号:发送数据的第一个字节的序号

确认号:期望收到对方下一个报文段的序号值,(如果为N,说明N-1之前的数据都已经收到)

数据偏移:占4位,以4B为单位。

控制位:

  • URG(紧急位):URG=1,代表此数据报很紧急,可以不按顺序来,插队传送
  • ACK(确认位):连接建立成功后,ACK必须全为1
  • PSH(推送位):让接收方尽快把交付到应用程序,不用等缓存存满
  • RST(复位):重新建立连接,有严重差错的时候
  • SYN(同步位):SYN=1,表明是一个连接请求/连接接受报文
  • FIN(终止位):FIN=1,表明此报文发送方数据已经发完,得释放连接

窗口:允许对方发送的数据量

紧急指针:指紧急数据在报文段中的位置,在URG=1时有效

 

三次握手:

 

seq:报文段序号  ack:报文段确认号  SYN:请求和请求的确认都得把SYN置一  ACK:代表确认

简答:

第一次握手:客户端向服务器发送一个连接请求报文段,其中SYN=1,随机产生一个seq的值。,等待服务器确认

第二次握手:服务器收到请求报文段,为该TCP连接分配缓存和变量,并返回一个确认报文段,其中SYN=1,ACK=1

第三次握手:客户端收到服务器返回的确认报文段,为该TCP连接分配缓存和变量,并返回一个确认的确认,其中ACK=1.

三次握手完成

 

四次挥手:

简答:

(1)第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送
(2)第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1,此时属于半关闭状态
(3)第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传送
(4)第四次挥手:客户端收到FIN后,接着发送一个ACK给服务器,确认序号为收到序号+1,并等待一段时间,完成四次挥手。

 

可靠传输:

超时重传

快速重传

posted @ 2021-03-28 18:31  俗气小博  阅读(63)  评论(0)    收藏  举报