IP协议号大全 - TCP·UDP·ICMP·GRE·ESP·OSPF

梳理IP数据包头部中用来区分上层协议的各个编号。

ICMP(1)

用于传递ping响应或"无法到达目的地"之类的错误、状态信息,不用于传输数据本身,而是用来检测网络状态。

IGMP(2)

在一个发送方同时向多个接收方群组发送数据的组播通信中,用于管理哪些设备属于哪个组的协议,常用于IPTV等场景。

TCP(6)

一种可靠性很高的协议,会确认数据是否按顺序、完整无误地到达。网页访问、邮件、文件传输等大多数不能容忍数据丢失的服务都使用TCP。

UDP(17)

省去到达确认环节、快速发送数据的协议。主要用于允许少量丢包但更看重速度的场景,例如在线游戏、实时视频通话、DNS查询等。

GRE(47)

一种把一个网络数据包封装进另一个数据包内部传输的隧道协议,常用于在不同地点的私有网络之间建立虚拟连接。

ESP(50)

用于IPsec VPN中对实际数据进行加密传输的协议,即使数据在传输途中被截获,加密后的内容也无法被读懂。

AH(51)

用于IPsec VPN中验证数据在传输过程中是否被伪造或篡改的协议,不负责加密,只负责完整性校验。

OSPF(89)

同一组织内部的路由器之间用来交换最优路径信息的路由协议,在企业或运营商内部网络中被广泛使用。

ICMPv6(58)

在IPv6环境中承担ICMP的角色,并进一步扩展出邻居发现功能(用于查找周边设备的地址)。

与端口号是不同的概念

这里介绍的协议号存在于IP头部内,用来区分正在使用TCP、UDP还是ICMP等"哪种协议";而端口号则是TCP或UDP内部用来区分"发往哪个具体服务"的另一套独立数值。

有助于理解防火墙规则

防火墙或路由器配置界面常见"协议:TCP/UDP/ICMP/ALL"这样的选项,这里介绍的编号正是这些选项背后的区分依据。排查VPN连接问题时,确认ESP(50)、AH(51)协议没有被防火墙拦截,是很重要的一步。

常见问题

IP协议号是由谁分配的?

由互联网数字分配机构(IANA)统一管理和分配。只有全球所有网络设备都使用同一套编号体系,彼此之间才能正常通信。

为什么ESP和AH常常被一起提到?

因为两者都是构成IPsec VPN的协议:ESP负责加密数据,AH负责验证数据是否被篡改,根据需要有时会一起使用。