首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们不能使用序列号来区分它们,因为每个数据包都有不同的序列号?

问为什么我们不能使用序列号来区分它们,因为每个数据包都有不同的序列号?
EN

Network Engineering用户
提问于 2019-03-29 10:17:30
回答 1查看 158关注 0票数 -1

这是斯坦福网络课程的一个问题。

服务器通常侦听特定端口上的TCP连接(例如,80用于HTTP,22用于SSH)。服务器可以使用哪些字段来区分特定客户端连接的数据包?这是一个多个choice.The,给出了以下选项

  1. 序号
  2. 确认号
  3. 源端口
  4. 目的港
  5. 源IP
  6. 目的IP
  7. 校验和

答案是3,4,5,6。

有些人告诉我这个答案,为什么TCP套接字由4个元组标识?

根据我的理解,这个问题的答案描述了我们如何区分不同的客户端connections.but。

区分特定客户端连接的数据包

我的疑问是,如果我们所要做的只是区分特定客户端连接的数据包,为什么我们需要知道目标IP?为什么我们不能使用序列号来区分它们,因为每个数据包都有不同的序列号?

EN

回答 1

Network Engineering用户

回答已采纳

发布于 2019-03-29 10:36:58

序列号是来自远程主机的随机初始化的编号序列。不能保证它不会与另一种连接发生碰撞。

此外,使用源/目的地IP/端口元组比猜测接收到的序列号可能适合哪个接收窗口要简单得多--序列号不一定按数字顺序接收,特别是当数据包丢失时。

斯坦福大学最初的问题措辞很糟糕。它没有明确区分“区分数据包与单独的客户端连接”(这显然是指)和“区分特定客户端连接中的数据包/段”(即序列号)。

需要目标IP是因为--理论上--客户端可以使用相同的源端口和源IP来建立到服务器的辅助IP地址的另一个连接。

票数 3
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/58115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档