1. 什么是 IP 协议?
如果把互联网比作一个巨大的"物流网络",那么 IP协议(互联网协议) 就是一套"快递打包和写地址的标准"。
它的核心工作只有两件:
-
编址:给每一台联网的设备分配一个唯一的地址(IP地址),类似收货地址。
-
路由:决定数据包从 A 点送到 B 点要走哪条路。
协议头格式如下:

- 4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4。
- 4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。(占用空间)
- 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。(快递的加急等级)
- 16位总长度(total length):IP数据报整体占多少个字节。
- 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。(类似快递单号)
- 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为0,其他是1。类似于一个结束标记。(类似快递上的分箱标签)
- 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。(类似箱子的编号(第1箱/共3箱,第2箱/共3箱))
- 8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是64。每次经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。(快递的"转寄次数上限")
- 8位协议:表示上层协议的类型。(包裹里的物品清单)
- 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。
- 32位源地址和32位目标地址:表示发送端和接收端。
- 选项字段(不定长,最多40字节):略。(备注栏)
2. IP协议的两大核心特性
特性一:无连接
概念:在发送数据之前,不需要先跟对方"打个电话"确认连接。直接就把数据包"扔"到网络上去了。
-
通俗比喻:就像你寄一封平信。你写好地址扔进邮筒,不需要提前通知收件人。邮局也尽力去送,但不保证一定送到。
-
优缺点:这种方式效率很高,但可靠性较低。
特性二:不可靠
概念:IP协议不保证数据包一定能送到目的地。它遵循"尽力而为"(Best Effort)的原则。
-
具体表现 :如果网络拥堵导致路由器缓存满了,或者数据包损坏了,路由器会直接把这个包丢掉。
-
谁来负责 :IP协议本身不会去重传丢掉的包。这个任务会交给上层协议(比如 TCP)。TCP 发现丢了包,会喊一声:"喂,刚才那个包没收到,再发一遍!"
3. IP协议的两个版本:IPv4 与 IPv6
IPv4
-
地址长度:32位,约 42 亿个地址。
-
样子 :
192.168.1.1(点分十进制)。 -
现状:地址已经分配殆尽。就像一个小村子,原本每家一个门牌号,现在人太多了,门牌号不够用了。
IPv6
-
地址长度:128位,号称"可以为地球上的每一粒沙子分配一个地址"。
-
样子 :
2001:0db8:85a3:0000:0000:8a2e:0370:7334(冒分十六进制)。 -
优势:不仅地址多,而且处理起来更高效,安全性也更好。
4. IP地址的构成:网络号 + 主机号
一个IP地址就像一张快递单,上面有两行信息:
-
网络号:相当于"城市+街道"。路由器只看这一部分,就知道要把包送到哪个小区(子网)。
-
主机号:相当于"门牌号"。到了小区门口,再根据门牌号找到具体的住户。
如何区分它们? 靠子网掩码。
计算公式:IP地址 & 子网掩码 = 网络号
6. 特殊 IP 地址小知识
-
127.0.0.1(本地环回):就是"自己跟自己说话",用来测试本机的网络协议栈是否正常工作。
-
私有地址 :比如
192.168.x.x、10.x.x.x。这些地址只能在局域网内使用,不能直接在公网上出现(需要借助NAT转换)。 -
0.0.0.0:通常代表"本网络中的所有主机",常用于表示默认路由。
7. NAT
技术背景
NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能;
- NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法:
- 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;
- 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;
NAT IP转换过程

- NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
- NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
- 在NAT路由器内部,有一张自动生成的,用于地址转换的表;
- 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;