TCP/IP是如何工作的(三)

2026-04-05
每个包携带一个源地址,在目前(IPv4)规范下,包长度是32位。在报头中,每个包也携带最终目的地的IP地址。

  如果发送端站确定目的地址不在本地,该包就被送到第一跳路由器,一般来说,该路由器是在附近的,并已被预先分配给发送者。

  该路由器检查包的IP地址,查找路由表,看看目的端点是否位于本地(物理位置)网络,它通常叫做IP子网,IP子网一般被分配到路由器的每个网络接口上。

  如果目的IP地址为本地的,该路由器就搜寻存储着IP地址和本地设备介质访问控制(MAC)地址的内部存储器,这个存储器叫作地址分辨协议(ARP) 高速缓存。ARP是把IP地址映射到MAC地址的通用工具。如果目的地的MAC地址出现了,该路由器就把这个MAC地址装进包的报头中(取掉自己的MAC 地址,因为不再需要它了),把该包送到目的端站。

  万一目的地的MAC地址没有出现在ARP高速缓存中(例如,有可能超时了),路由器必须向与包的目的IP地址有关的子网广播一个ARP请求,拥有此IP地址的端站就作出响应,把MAC地址发送回去,路由器因此更新高速缓存,把新的MAC地址装进包的报头并发送该包。

  如果查找路由表显示包的目的地不在本地子网,路由器就利用下一跳路由器的MAC地址把包转发给下一跳路由器。路由表由智能发现协议,如路由信息协议或者开放最短路径优先协议,不断地被建立和再建立。每个路由器的路由表显示了到达目的地址的路径,对于要有几跳的地址,它显示出的下一跳路由器。