下一跳已经找到了,可它还是不能出发
上一次,数据包终于弄清楚了第一步该往哪走。
对于这次要去的 8.8.8.8,路由表给出了答案:不是本地直连,得走默认路由。下一跳,是 192.168.1.1,从 eth0 出发。
数据包本以为,事情到这里已经结束了。它知道该交给谁了,剩下的就是交出去。
可它试着把数据交出去的时候,卡住了。
上一次,数据包终于弄清楚了第一步该往哪走。
对于这次要去的 8.8.8.8,路由表给出了答案:不是本地直连,得走默认路由。下一跳,是 192.168.1.1,从 eth0 出发。
数据包本以为,事情到这里已经结束了。它知道该交给谁了,剩下的就是交出去。
可它试着把数据交出去的时候,卡住了。
上一次,数据包终于弄清楚了 www.example.com 是怎么变成一个具体地址的。手里握着这个来之不易的 IP,它以为接下来的事情很简单——出发就是了。
但它很快卡住了。
它盯着这个 IP,发现一个问题:知道最终要去哪里,和知道这一步该往哪个方向迈,根本不是一回事。
方向感,不是名字带来的,也不是 DNS 带来的。
上一次旅行结束时,数据包已经走完了一段很长的路——离开本地网络、穿过一台又一台路由器、找到服务器上的那个程序、裹上加密的外壳、钻进 Linux 内核,最后拿到了服务器的响应。
但走到最后,它回头看了一眼,发现一件事情不太对劲:
这一路上,它一直在使用一个地址——
203.0.113.10。
可这个地址是从哪来的,它从没弄明白过。它只记得,自己刚出发的时候手里拿的根本不是这个地址,而是一个名字:
www.example.com
名字变成地址的这一步,被悄悄跳过了。
这次,它决定回过头,把这一步真正走一遍。