Skip to content

关于TCP三步握手那里一些易混淆的地方 #10

Description

@jzhzhz

“对于 TCP 头部来说,以下几个字段是很重要的:

序列号 (Sequence number),这个序号保证了 TCP 传输的报文都是有序的,对端可以通过序号顺序的拼接报文

确认号 (Acknowledgement Number),这个序号表示数据接收端期望接收的下一个字节的编号是多少,同时也表示上一个序号的数据已经收到

窗口大小 (Window Size),表示还能接收多少字节的数据,用于流量控制……”

这一段包括之后三步握手部分确实把确认号和ACK标识符区分开了,但是在输入URL到页面加载过程分析那一段的三步握手里出现了:

“端口建立 TCP 链接,三次握手如下:
客户端发送一个 TCP 的SYN=1,Seq=X的包到服务器端口
服务器发回SYN=1, ACK=X+1, Seq=Y的响应包
客户端发送ACK=Y+1, Seq=Z”

这部分应该是把ACK标识符和确认号混淆了,应该是ACKbit为1,确认号为X+1,因为确认号就等于下一个client request的序列号,而当前client request序列号为X且request大小只有1bit,所以下一个SN就是X+1。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions