IP 地址在哪里是 TCP 标头 - 第 3 层如何知道应用程序正在发送数据包
Posted
技术标签:
【中文标题】IP 地址在哪里是 TCP 标头 - 第 3 层如何知道应用程序正在发送数据包【英文标题】:Where is the IP Address is a TCP header - How does Layer 3 know were aplication is sending the packet 【发布时间】:2020-04-06 07:56:45 【问题描述】:TCP 标头包含端口信息 - 可以理解。 但是当数据包/段被发送到第 3 层以将其封装为 IP 数据包时,第 3 层如何知道要使用的目标 IP 地址 - 这是在应用程序层中指定的。 TCP 报头中没有任何地方可以通知 L3 目标 IP 地址。是否有此信息的反向渠道?如果有,什么是反向通道?
【问题讨论】:
那么,TCP层是如何知道端口号的呢?这是同一个问题。 NB TCP 不以任何方式使用osi。 所以我可能已经被教导了 6 次,并且每次都被教导上层将其“直接向下”到下层的信息传递给下层以进行进一步封装。这意味着以某种方式包含了所需的一切。另一位用户评论说,该应用程序调用了操作系统,它以某种方式通过 TCP > 网络层传递信息,这是有道理的。那将是后台通道。感谢您对 OSI 的回答! 【参考方案1】:第 3 层如何知道要使用的目标 IP 地址 - 在应用层中指定。
信息不会以某种方式从应用层转发到网络层。如果应用程序创建一个 TCP 套接字,然后在其上调用connect
,它会将 IP 地址和端口都提供给操作系统。然后,操作系统将使用这些信息将连接数据封装在 IP 数据包中。
【讨论】:
非常感谢您提供这个缺失的部分!以上是关于IP 地址在哪里是 TCP 标头 - 第 3 层如何知道应用程序正在发送数据包的主要内容,如果未能解决你的问题,请参考以下文章