传输层如何从数据报包中检索源 IP 地址?
据我了解,IP地址在网络层 header 中,而传输层 header 仅包含源端口和目标端口。如果我遗漏了什么,请告诉我
最佳答案
简单的答案是传输层不会从数据报包中检索 IP 地址。
当数据报从源发送到目的地时,以下是数据报传输时 IP 如何使用的简单步骤:
数据报将被丢弃,错误消息将发送回
发送机。一路上,如果 TTL 递减到 0,同样
结果会发生。并且,目标地址路由路径将是
在数据报通过时在每一站确定
网络。
编辑
应用程序将套接字绑定(bind)到其数据传输的端点,该端点是 IP 地址和服务端口的组合。然后使用此绑定(bind)来确定需要转到应用程序层的哪个应用程序。
例如,应用程序 A 在某个端口 X 上提供 UDP 服务。然后当应用程序 A 启动时,它将尝试绑定(bind)到端口 X。如果由于端口正在使用而无法绑定(bind)到它,操作系统将引发然后应用程序必须处理的错误。同样在 OSI 体系结构中,每一层都依赖于它下面的层来进行数据的实际传输,为自己的预期目的添加或提供特定的功能。
根据 RFC
The pseudo header conceptually prefixed to the UDP header contains the source address, the destination address, the protocol, and the UDP length. This information gives protection against misrouted datagrams. This checksum procedure is the same as is used in TCP.
有关细节的更多详细信息,请查看 RFC User Datagram Protocol
关于protocols - 传输层如何从数据报包中检索源 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8395166/