首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >计算机网络-IP协议详解(一)

计算机网络-IP协议详解(一)

作者头像
运维小路
发布2026-04-02 13:14:14
发布2026-04-02 13:14:14
1200
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。

前面介绍了ARP协议,一般我们把他划归为2.5层协议,他只能在局域网内进行通信,但是整个互联网是通信是全世界进行通信,所以今天我们来介绍应用层(三层)的协议:IP协议。

IP 协议,即 Internet Protocol(互联网协议),是互联网整个通信体系的核心。它定义了数据在网络中传输的基本单元和寻址方式。

可以把 IP 协议想象成邮政系统里的信封地址规范。它不关心信的内容(那是上层协议如 TCP/UDP 的事),只关心如何把信(数据包)从寄件人准确、高效地送到收件人。

1. IP 协议的核心作用

IP 协议工作在网络层(TCP/IP 模型的第二层),其主要作用是:

  • 寻址: 为网络中的每一台设备分配一个唯一的逻辑标识符,即 IP 地址
  • 路由: 负责决定数据从源主机到目标主机应该走哪条路径。这涉及到数据包在多个网络(路由器)之间的跳转。路由本身也是网络里面很重要的协议,我们这里只做最简单的介绍。
  • 分片与重组: 当数据包的大小超过了网络链路所能承载的最大传输单元(MTU,Maximum Transmission Unit)时,IP 协议会将其拆分成更小的片段进行传输,到达目的地后再重新组合起来。

这里一般的物理设备(也可能是虚拟机)的网卡一般都是1500,如果里面还涉及到容器网络,这个的MTU一般小于1500,如果容器的网络也等于1500则可能会引发网络故障。

2. IP 协议的核心特点

  • 无连接: 在发送数据之前,不需要先与目标主机建立连接。每个数据包都是独立发送的。
  • 不可靠: IP 协议本身不保证数据包一定能成功送达。它只尽力而为,如果发生丢包、乱序或重复,IP 协议不会尝试修复(这些工作由上层协议如 TCP 完成)。
  • 媒体独立: IP 协议运行在各种不同的物理网络之上(如以太网、Wi-Fi、光纤等),它屏蔽了底层物理网络的差异。

3. IP 数据报格式

IP 协议发送的数据单元叫 IP 数据报。它由两部分组成:首部数据

以下是 IPv4 的首部结构(通常为 20 字节,不含选项字段):

4位版本

4位首部长度

8位服务类型(TOS)

16位总长度(字节数)

16位标识

3位标志

13位片偏移

8位生存时间(TTL)

8位协议

16位首部检验和

32位源IP地址

32位目的IP地址

选项(如果有)

数据

关键字段解释:

  • 版本(4位): 标识 IP 协议的版本,如 IPv4(值为 4)或 IPv6(值为 6)。
  • 首部长度(4位): 表示 IP 首部的长度,单位是 32 位字(4字节)。最小值是 5(5*4=20字节),最大值是 15(60字节)。
  • 总长度(16位): 整个 IP 数据报(首部+数据)的总长度,单位是字节。最大值为 65535 字节。
  • 标识(16位): 由发送方分配的一个唯一值。如果数据报被分片,所有分片都会携带相同的标识,以便接收方进行重组。
  • 标志(3位):
    • 第 2 位(DF,Don't Fragment):1 表示不允许分片。
    • 第 3 位(MF,More Fragments):1 表示后面还有更多分片,0 表示这是最后一个分片。
  • 片偏移(13位): 指明该分片在原始数据报中的位置,单位是 8 字节。
  • 生存时间(TTL,Time to Live,8位): 防止数据包在网络中无限循环。每经过一个路由器,TTL 值减 1。当 TTL 减为 0 时,路由器会丢弃该数据包,并向源主机发送一个 ICMP 超时消息。
  • 协议(8位): 指示数据部分应该交给上层的哪个协议处理。例如:6 代表 TCP,17 代表 UDP,1 代表 ICMP。
  • 首部检验和(16位): 只检验数据报的首部,不检验数据部分。确保首部在传输过程中没有出错。
  • 源IP地址和目的IP地址(各32位): 发送方和接收方的 IPv4 地址。
代码语言:javascript
复制
#这个是我本地直接抓取的报文 (当然这里显示的TCP层面的报文)
18:14:48.256086 IP 192.168.31.47.ssh > 192.168.31.73.61869: Flags [P.], seq 3252:3512, ack 1, win 249, length 260
18:14:48.309205 IP 192.168.31.73.61869 > 192.168.31.47.ssh: Flags [.], ack 3512, win 1023, length 0
18:14:48.360066 IP 192.168.31.47.ssh > 192.168.31.73.61869: Flags [P.], seq 3512:3772, ack 1, win 249, length 260
18:14:48.402443 IP 192.168.31.73.61869 > 192.168.31.47.ssh: Flags [.], ack 3772, win 1022, length 0

另存为抓包文件,可以使用win下的软件Wireshark进行分析可以看到各个层的报文。

IP协议报文

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. IP 协议的核心作用
  • 2. IP 协议的核心特点
  • 3. IP 数据报格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档