当前位置: 首页 > news >正文

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

  • 也就是:有出门需求(访问外网)时,都先交给路由器处理。

相关文章:

  • c语言知识整理
  • LLaMa Factory大模型微调
  • 机器学习——朴素贝叶斯法运用
  • 小白如何学会完整挪用Github项目?(以pix2pix为例)
  • Android Compose 框架矢量图标深入剖析(七)
  • compose 二维码扫描qrcode
  • Swift与iOS内存管理机制深度剖析
  • 【随笔】地理探测器原理与运用
  • 剑指offer经典题目(六)
  • OTA和IAP的关系
  • TI---UART通信
  • 10:00面试,10:08就出来了,面试问的问题太。。。
  • 240426 leetcode exercises
  • 启动你的RocketMQ之旅(六)-Broker详细——主从复制
  • 如何在 PowerShell 脚本中调用外部 Windows 命令
  • TypeScript基础数据类型详解
  • [论文解析]Mip-Splatting: Alias-free 3D Gaussian Splatting
  • 【Java面试笔记:进阶】22.AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?
  • 自然语言处理——语言转换
  • Java社区门诊系统源码 SaaS医院门诊系统源码 可上线运营
  • 伊朗港口爆炸已造成25人死亡,灭火行动已近尾声
  • 释新闻|SEVIS是什么?在美留学生遭身份中止意味什么?
  • 规范涉企案件审判执行工作,最高法今天发布通知
  • 乌克兰否认俄收复库尔斯克州,称战斗仍在持续
  • 文化体验+商业消费+服务创新,上海搭建入境旅游新模式
  • 乌方称泽连斯基与特朗普进行简短会谈