传输层协议之三次握手与四次挥手。

86 阅读2分钟

一.传输层协议有哪些,主要优缺点?

传输层协议分为tcp与udp两种。

tcp:安全、可靠,但传输慢。

udp:传输快,但不安全。

二.tCP的特性:

  1. 工作在传输层
  2. 面向连接协议
  3. 全双工协议
  4. 半关闭
  5. 错误检查
  6. 将数据打包成段,排序
  7. 确认机制
  8. 数据恢复,重传
  9. 流量控制,滑动窗口

三.tcp报文段。

微信截图_20230706185519.png

TCP将若干个字节构成的一个分组,称为报文段(Segment)。TCP报文段封装在IP数据报中。

微信截图_20230706185659.png

微信截图_20230706185748.png

其中。

在控制位当中,SYN.ACK.FIN.三个控制位最为重要,与下文三次握手息息相关。

四.tcp连接(三次握手)

微信图片_20230706190049.png

pc1和pc2建立链接,三次握手过程。

第一次握手:pc1发送SYN报文给pc2,其中seq=x为序列号(随机),SYN=1表示请求建立连接。

​ SYN报文(seq=1,SYN=1)

pc1 -------------------------------------------------------------》pc2

第二次握手:pc2收到报文,发送ACK和SYN报文的确认报文与请求报文。其中seq=y是序列号,ack=x+1是确认号,SYN=1是请求建立连接,ACK=1确认请求

​ SYN + ACK报文(seq=y,ack=x+1,SYN=1,ACK=1)

pc2------------------------------------------------------------------------------》pc1

第三次握手:pc1收到报文,向pc2发送ACK确认报文,seq=x+1为序列号,ack=y+1是确认号,ACK=1同意建立连接,完成第三次握手,连接建立成功。

​ ACK报文(seq=x+1,ack=y+1,ACK=1)

pc1-------------------------------------------------------------》pc2

五.tcp连接断开(四次挥手)

客户端发送FIN报文段,半关闭了这个连接,服务器发送ACK报文段接受半关闭。(半关闭:客户端终止发送数据,但可以接受数据)

FIN=1(表示发送断开连接请求)

Seq序列号=u(u为随机)

服务器端收到客户端发来的请求报文后,同意断开连接,则向客户端发送确认报文:

ACK=1(表示这是条确认请求)

Seq序列号=v(这时服务器也会产生一个序列号v,和客户端的序号不相关)

 Ack确认号=u+1(Seq序列号u+1,表示确认收到了客户端的请求)

当服务器把所有的数据都发送完毕时,就发送FIN报文段断开连接请求客户端在发送ACK报文段,这样就关闭了TCP连接。

微信图片_20230706190839.png

六.udp协议的特性:

UDP特性

工作在传输层

提供不可靠的网络访问

非面向连接协议

有限的错误检查

传输性能高

无数据恢复特性

ps:udp协议非学习重点,这里我们简单了解一下,略过即可。