计算机网络

TCP序列号(Seq)与确认号(Ack)

2019-04-16  本文已影响0人  羞涩的老湿鸡

上一文章中我们讲到TCP/IP四层模型组分别有传输层,网络层,链路层,应用层。而传输层中存在两大协议分别为TCP协议和UDP协议。

本文介绍一下TCP协议的数据包结构。


在TCP数据包结构中,我们需要了解的主要有以下几个部分:

1、源端口 :上一文章中已经介绍,TCP传输协议层可以接收多个应用程序的数据,需要通过端口区分目标程序。源端口是指发送端的端口号。

2、目标端口:与上相同,目标端口是指接收端的端口号。

3、数据

4、包头长度

5、Seq(序列号)

6、Ack(确认号)

Seq与Ack的交互


假设client开始向server端发送数据,数据结构如下:

Sequence Number:1 (序列号)

Next Sequence Number:3 (下一次序列号)

Acknowledgment Number:1 (应答序列号)

Header length: 20 bytes (包头长度)

以上数据结构表示,本次序列号是1,下一次的序列号为3,希望应答的序列号为1

----------------------------------------------------------

Server端回应数据结果如下:

Sequence Number:1 (序列号)

Next Sequence Number:3 (下一次序列号)

Acknowledgment Number:3 (应答序列号)

Header length: 20 bytes (包头长度)

因为客户端要求应答序列号为1,因此本次序列号为1。同时希望下一次应答序列号为3。此处需要注意,其实这个时候Server要求Client端应答的序列号与客户端即将要发起的下一次序列号3是吻合的。

----------------------------------------------------------

Client端再次应答

Sequence Number:3 (序列号)

Next Sequence Number:6 (下一次序列号)

Acknowledgment Number:3 (应答序列号)

Header length: 20 bytes (包头长度)

Server要求应答序列号为3,因此本次序列号为3。同时要求应答序列号为3,与Server将要发起的下一次序列号也是吻合的。

----------------------------------------------------------

Server端回应:

Sequence Number:3 (序列号)

Next Sequence Number:6 (下一次序列号)

Acknowledgment Number:6 (应答序列号)

Header length: 20 bytes (包头长度)

以上便是Seq序列号与Ack确认号的交互过程。

上一篇 下一篇

猜你喜欢

热点阅读