嗨,我是网络新手,我只想知道 IP 数据报如何知道其上层协议是 TCP 还是 UDP?我知道IP数据报头里面有一个protocol字段可以告诉层协议,但是这个字段是如何被传输层设置的?传输层中没有这个字段来指示它使用的是哪种协议?
IP数据报如何知道它的上层协议?
网络工程
ip
通讯协议
协议理论
UDP
2021-08-01 09:18:09
1个回答
当应用程序与操作系统通信时,它通常会说“打开一个 TCP 套接字来寻址A端口P ”;对于 UDP,它通常表示“打开 UDP 套接字”并随每个数据包发送A和P。给定的操作系统还可能提供“原始套接字”,应用程序在其中填充整个 IP 标头,这对于包括开发新协议在内的专业用途非常有用。
然后操作系统负责填写 IP 标头并将其移交给任何合适的较低级别。通常,每个级别的标题只包含一个用于上一级的代码。例如,一个特定的以太网帧可能说它的内容是 IP,IP 头说它的内容是 UDP,UDP 头说内容有特定的端口号。
操作系统的接口各不相同,但最常见的是Berkeley 套接字接口,应用程序在其中请求“流”(TCP) 或“数据报”(UDP) 套接字。任何关于此的详细问题都应该在另一个论坛中讨论。