IP数据报发送和转发的过程
1. 发送端准备数据
-
应用程序(比如浏览器)要发送数据,比如访问一个网站。
-
应用层(HTTP) → 传输层(TCP/UDP) → 网络层(IP)。
-
IP层负责把数据包打包,加上必要的信息,比如:
-
源IP地址(发件人地址)
-
目的IP地址(收件人地址)
-
-
最后形成一个完整的IP数据报。
2. 判断目标 IP 地址是内网还是外网
-
设备检查目的 IP 地址:
-
如果目标 IP 是同一个局域网(比如同一个家里的电脑),就直接发;
-
如果目标 IP 不在本局域网(比如访问外部网站),就交给默认网关(通常是路由器)。
-
3. 通过链路层打包并发送
-
IP数据报交给链路层(比如以太网协议)。
-
链路层加上本机的 MAC 地址和目的地的 MAC 地址,封装成以太网帧。
-
最后通过网卡发送出去(比如用网线或WiFi)。
4. 路由器收到数据包,开始转发
-
路由器收到数据包后,解开外面的链路层包,看里面的 IP数据报。
-
路由器查路由表:
-
路由表记录了不同 IP 网段应该往哪个方向走(比如哪个接口转发)。
-
-
根据目的 IP 地址,决定下一跳(下一站)发给谁。
5. 转发过程中,逐跳处理
-
每经过一个路由器,都会进行一次类似的操作:
-
解封链路层,查看 IP 头部。
-
查路由表,决定下一跳。
-
重新封装链路层包,继续发送。
-
-
每次转发,IP数据报本身一般不会被修改,只有TTL(生存时间)字段减1,防止数据包永远在网络里循环。
-
如果TTL减到0,路由器就会丢弃数据包,并通知源设备。
-
6. 到达目标子网
-
当数据包抵达目标局域网(比如你访问的服务器所在的网络):
-
路由器把数据包发给具体的目标设备(根据目标 IP)。
-
7. 接收端处理数据
-
目标设备收到数据包。
-
拆开链路层、IP层封装,交给传输层(TCP/UDP)。
-
最后交给应用程序(比如网页浏览器)。
默认网关
默认网关通常就是你家路由器在局域网内的地址
举个实际的小例子:
假设你家网络情况是这样的:
-
路由器 LAN口 IP 地址是
192.168.1.1
-
你的电脑 IP 地址是
192.168.1.100
-
手机 IP 地址是
192.168.1.101
那么:
-
你的电脑和手机的默认网关设置的就是
192.168.1.1
-
也就是:有出门需求(访问外网)时,都先交给路由器处理。