一、题目
如果应用层协议为 Te1net,那么 IPv4 首部中Protoco1 字段取值为? ()
A.23
B.17
C.6
D.67
二、答案
A
三、解析
选项 A:23
- 数值含义:23 是应用层 Telnet 协议的 TCP 知名端口号,作用是在传输层 TCP 报文段的首部中,标识数据最终交给主机上的 Telnet 应用进程,属于应用层的进程标识。
- 错误原因:IPv4 首部的 Protocol 字段仅标识传输层协议,不涉及应用层端口号,此选项是把 “Telnet 的端口号” 误当作 “网络层协议号”,是网络协议中最易踩的坑。
选项 B:17
- 数值含义:17 是传输层 UDP 协议的 Protocol 字段值,IPv4 首部此字段为 17 时,表明 IP 数据报的载荷是 UDP 报文段,数据需交给传输层 UDP 协议处理。
- 错误原因:Telnet 是基于 TCP 的可靠应用层协议(远程登录需要稳定的字节流传输,UDP 无连接不可靠,无法满足),因此不会使用 UDP,此字段不可能为 17。
选项 C:6
- 数值含义:6 是传输层 TCP 协议的 Protocol 字段值,IPv4 首部此字段为 6 时,表明 IP 数据报的载荷是 TCP 报文段,数据需交给传输层 TCP 协议处理。
- 正确原因:Telnet 的底层传输依赖 TCP,IP 层在封装 Telnet 的 TCP 数据时,会在 IPv4 首部将 Protocol 字段设为 6,告知目的主机的网络层:“将这份数据交给 TCP 协议处理”。
选项 D:67
- 数值含义:67 是应用层 DHCP 协议的 UDP 知名端口号(DHCP 服务器端端口),并非 IPv4 Protocol 字段的取值,也不是任何传输层协议的协议号。
- 错误原因:该数值既和传输层协议无关(Protocol 字段的核心作用),也和 Telnet 协议无任何关联,属于完全无关的干扰项。
四、扩展——Protocol 字段与端口号的联动封装逻辑
结合 IPv4 协议栈逐层封装的核心逻辑,理解 Protocol 字段和端口号的协同工作机制,同时补充 Protocol 字段冷门高频值:
三层封装的数值联动(以 Telnet 为例)
主机 A 向主机 B 发送 Telnet 数据时,协议栈从应用层到网络层的封装会依次写入端口号和Protocol 字段,形成唯一的 “传输标识链”:
- 应用层:Telnet 数据被交给TCP 23 端口(标识应用进程);
- 传输层:封装为 TCP 报文段(首部源 / 目的端口为 23),交给网络层;
- 网络层:封装为 IPv4 数据报,首部 Protocol 字段设为 6(告知目的主机:载荷是 TCP 报文段,需交给传输层 TCP 协议处理);
- 目的主机解封装:先通过 Protocol=6 交给 TCP,TCP 再通过端口 23 交给 Telnet 应用,完成数据交付
