一、IP头
IP头部包含的内容
生成包含接收方 IP 地址的 IP 头部。
IP 模块接受 TCP 模块的委托负责包的收发工作,它会生成 IP 头部并附加在 TCP 头部前面。
IP 头部包含的内容如表 2.2 所示,其中最重要的内容就是 IP 地址,它表示这个包应该发到哪里去。
① 接受方IP地址:应用程序告知TCP,TCP告知IP模块
这个地址是由 TCP 模块告知的,而 TCP 又是在执行连接操作时从应用程序那里获得这个地址的,因此这个地址的最初来源就是应用程序。
IP 不会自行判断包的目的地,而是将包发往应用程序指定的接收方,即便应用程序指定了错误的 IP 地址,IP 模块也只能照做。
当然,这样做肯定会出错,但这个责任应该由应用程序来承担。
在连接操作中发送第一个 SYN 包时就可能发生这样的情况,一旦 TCP 连接完毕,就已经确认能够正常和对方进行包的收发,这时就不会发生这样的情况了。
② 发送方的IP地址来自使用的网卡对应的IP地址
IP 头部的“接收方 IP 地址”填写通信对象的 IP 地址。
发送方 IP 地址需要判断发送所使用的网卡,并填写该网卡的 IP地址。
③ 如何判断把包交给哪块网卡和路由器使用 IP 表判断下一个路由器位置的操作是一样的。