【问题标题】:Are request and response part of two different TCP connections?请求和响应是两个不同 TCP 连接的一部分吗?
【发布时间】:2017-05-16 00:36:20
【问题描述】:

我对网络很陌生,所以这听起来很简单。虽然我尝试过查看hereherehere 并且对TCP 的基础知识很少,但很少有问题的答案我不确定。

  1. 是 2 个不同 TCP 建立的请求和响应部分。解释一下:

连接是否已建立,并保持活动状态,直到所有数据包都被传递,请求已发送并为每个请求关闭连接,并且其响应也会发生同样的情况。

连接打开,请求发送,连接保持活动状态,响应到达并关闭连接。

  1. ACK 号是否始终为 1 + 已发送段的序列号。

【问题讨论】:

    标签: http networking tcp


    【解决方案1】:
    1. 是 2 个不同 TCP 建立的请求和响应部分

    您只需 3 个数据包即可握手并建立双向 TCP 连接。所以不,你没有为接收和发送部分建立 TCP 连接。

    另一方面,有一个 sutdown() 系统调用允许关闭双向连接的一部分。参见 man shutdown(2)。因此有可能通过打开双向然后关闭其中一侧来建立单向连接。

    1. ACK 号是否始终为 1 + 已发送段的序列号。

    我们通常不会为每个收到的数据包发送 ACK。还有选择性ACK、重传等。所以总的来说,答案是否定的,ACK号并不总是seq + 1。

    另一方面,如果您正在发送少量数据并等待确认,没有发生错误或丢包,很可能只有一个带有该数据的数据包和一个带有 seq + 1 的 ACK。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多