TCP / UDP对“原始ip”添加了什么?


18

我知道TCP和UDP都是建立在IP之上的,并且我知道TCP和UDP之间的区别,但是我对“原始ip”到底是什么感到困惑。可以公平地说TCP和UDP都实现IP,但是IP本身不能传输数据吗?还是IP是一种非常底层的通信形式,可以通过TCP和UDP进一步抽象化?


2
为了进一步说明下面的一些评论(仅仅为了清楚起见,还不足以提供完整的答案):IP是一种传输数据的协议。TCP或UDP也是传输数据的协议。TCP和UDP通常位于IP之上,因此IP的数据有效载荷可以是TCP或UDP。以太网通常用于承载IP。因此,例如,以太网帧可能承载IP数据包作为其数据有效载荷,而该IP数据包可能承载TCP段作为其有效载荷,依此类推。您最终会得到像goo.gl/1uEYtC
jwbensley

3
IP当然可以传输数据-例如,它携带那些TCP / UDP数据包。但是,它通常不是应用程序可用的。UDP是基于IP的非常原始的协议,但是它已经添加了端口号,从而允许多个服务同时处理系统上的UDP通信。否则,您只能获得与IP地址一样多的服务。
a安

Answers:


23

IP是第3层协议。TCP / UDP是第4层协议。它们各自具有不同的目的。

第三层负责端到端交付。它唯一的功能是向数据包添加任何必需的内容,以将数据包从一台主机发送到另一台主机。

第4层负责服务到服务的交付。它的唯一功能是隔离数据流。您的计算机可以运行多个程序,每个程序都可以在线路上发送/接收位。IE:您可能有多个浏览器选项卡运行,流式传输互联网广播,运行下载,运行某些合法种子,使用聊天应用程序等。所有这些都从网络接收1和0,第4层将每个数据流隔离到需要它们的独特应用程序。这是一个例子:

L4分离数据流

IP无法将数据包传递到正确的服务/应用程序。TCP / UDP无法将数据包从Internet的一端传递到另一端。

TCP和IP共同工作,使它们都能实现Internet通信的“最终目标”。

OSI模型的上层生成需要从一台主机传输到另一台主机的数据。

此数据向下传递到L4,L4将添加从服务到服务之间传递数据所需的信息,例如带有源端口和目标端口的TCP标头。现在将数据和L4标头称为段。

然后,该段将被传递到L3,L3将添加从头到尾传递该段所必需的信息,例如带有Source和Destination IP地址的IP标头。现在可以将L3标头和分段称为数据包。

此过程称为封装和解封装(或有时称为解封装)。这是其工作原理的动画:

封装和解封装,在“实用网络”网站的许可下使用

如果这没有道理,我建议您阅读有关OSI模型的更多信息,以及每一层如何承担不同的职责,以共同完成在Internet上移动数据包的工作


7
请注意,Internet仅宽松地遵循OSI模型。
user253751 '16

2
inside an IP header is usually a TCP or UDP header是不正确的,TCP / UDP标头不在IP标头之内,而是在IP数据包的数据部分之内。
Eborbob

“它的唯一功能是隔离数据流”,而这对于UDP多数情况下是正确的(也有一个校验和,但对),对于TCP肯定不是正确的。
彼得·格林

1
@immibis是的,但是我还没有看到遵循OSI模型在哪些方面导致令人毛骨悚然的实现或理解琐事。在大多数情况下,尤其是对于刚接触Internet技术的人而言,继续沿着OSI模型的约束进行思考更有价值。
Eddie

@Eborbob我可以看到它的错误,具体取决于如何看这句话。老实说,整个段落都可以使用一个改写,今晚晚些时候我将尝试使用它。感谢您指出。
艾迪(Eddie)

6

IP可以很好地传输数据,问题是当数据到达另一端时会发生什么。唯一的标识信息是主机的IP地址和协议号。两者均未提供任何方法来区分数据用于哪个套接字。

程序可能会通过所谓的“原始套接字”直接使用IP,但是缺少一种适当的机制来决定向哪个套接字发送数据以提高安全性和性能(内核必须将数据发送到所有原始套接字)给定的协议号)。因此,打开“原始套接字”的能力通常仅限于root用户(或您的平台的对等用户)。

UDP是IP上相当小的层。它添加了端口号以标识数据用于哪个套接字以及校验和(拒绝损坏的数据包)。该应用程序仍然负责处理丢失的数据包,控制拥塞并将数据拆分为适当大小的数据包。

TCP是一种更为复杂的协议,除了提供端口号和校验和之外,它还将字节流拆分为数据包,然后在其目的地进行重组,并提供拥塞控制和恢复功能。


4

IP是OSI第3层协议,而TCP和UDP是OSI第4层协议。作为第3层协议,IP可以承载许多不同的第4层协议。TCP和UDP可能是最常见的,但不是唯一的。第4层协议是应用程序用作其端到端连接的协议。IP从网络到网络(主机到主机)传输第4层协议。第2层协议(如以太网)在LAN上传输第3层协议。

您应该研究OSI模型,但要意识到它是一个概念模型,并且现实世界通常不完全匹配。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.