趣谈网络协议(七)TCP协议(上)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwl2014100338/article/details/84309934
TCP包头格式

在这里插入图片描述
(1)目标端口号和源端口号。如果没有这两个端口号,数据就不知道该发给哪个应用

(2)序号。为了解决乱序的问题

(3)确认序号。解决不丢包的问题

(4)掌握TCP协议,重点关注以下几个问题

  • 顺序问题,稳重不乱
  • 丢包问题,承诺靠谱
  • 连接维护,有始有终
  • 流量控制,把握分寸
  • 拥塞控制,知进知退

TCP的三次握手

(1)三次握手过程

  • A:您好,我是A
  • B: 您好A,我是B
  • A:您好B

(2)三次握手除了双方建立连接外,主要还是为了沟通一件事情,就是TCP包的序号问题。每个连接都要有不同的序号。

(3)双方建立了信任,建立了连接。为了维护这个连接,双方都要维护一个状态机,在连接建立的过程中,双方的状态时序图就像这样。
在这里插入图片描述
(4)一开始,客户端和服务器端都处于CLOSED状态。先是服务器主动监听某个端口,处于LISTEN状态。然后客户端主动发起连接SYN,之后处于SVN-SENT状态。服务器收到发起的连接,返回SYN,并且ACK客户端SYN,之后处于SVN-RCVD状态。客户端收到服务器发送的SYN和ACK之后,发送ACK的ACK,之后处于ESTABLISHED状态,因为它一发一收成功了。服务器收到ACK的ACK之后,处于ESTABLISHED状态,因为它也一发一收了。


TCP四次挥手

(1)断开连接的时序图
在这里插入图片描述


TCP状态机

(1)将连接建立和连接断开的两个时序状态图综合起来,就是这个著名的TCP的状态机。
在这里插入图片描述

(2)在这个图中,加黑加粗的部分,是上面说到的主要流程,其中阿拉伯数字的序号,是连接过程中的序号,是连接过程中的顺序,而大写中文数字的序号,是连接断开过程中的顺序。加粗的实现是客户端A的状态变迁,加粗的虚线是服务器B的状态变迁


猜你喜欢

转载自blog.csdn.net/lwl2014100338/article/details/84309934