首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP/UDP为“原始ip”添加了什么?

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

Network Engineering用户
提问于 2016-02-15 16:59:48
回答 3查看 9.6K关注 0票数 20

我知道TCP和UDP都是建立在IP之上的,我知道TCP和UDP之间的区别,但我对“原始ip”究竟是什么感到困惑。公平地说,TCP和UDP都实现了IP,但是IP本身不能传输数据吗?或者IP是TCP和UDP进一步抽象的非常低级的通信形式?

EN

回答 3

Network Engineering用户

回答已采纳

发布于 2016-02-15 19:26:36

IP是一种第3层协议。TCP/UDP是第4层协议。它们各自有不同的用途。

第三层负责端到端的传递。它的唯一功能是向数据包添加任何必需的内容,以便从一个主机到另一个主机获取数据包。

第四层负责服务到服务的交付.它的唯一功能是隔离数据流。您的计算机可以运行多个程序,每个程序都会向线路发送/接收比特。IE:您可以有多个浏览器选项卡运行,流媒体网络广播,运行下载,运行一些法律洪流,使用聊天应用程序等。所有这些都从有线接收1s和0,第4层将每个数据流隔离到需要它们的唯一应用程序。下面是一个例子:

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

TCP和IP一起工作,使它们都能实现互联网通信的“最终目标”。

需要从一个主机获取到另一个主机的数据由OSI模型的上层生成。

这些数据被传递到L4,它将添加从服务到服务传递数据所需的信息,比如带有源端口和目的端口的TCP报头。数据和L4头现在被称为段。

然后,分段将被传递到L3,它将添加从端到端传递段所需的信息,就像带有源IP地址的IP报头一样。L3头和段现在可以称为数据包。

这个过程被称为封装和去封装 (有时是解除封装)。下面是它如何工作的动画:

如果这没有意义,我建议阅读更多关于OSI模型的内容,以及每个层如何有不同的职责共同完成在互联网上移动数据包

票数 23
EN

Network Engineering用户

发布于 2016-02-15 20:12:22

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

程序可以通过所谓的“原始套接字”直接使用IP,但缺乏适当的机制来决定发送哪个套接字来提高安全性和性能(内核必须将数据发送到所有原始套接字以获取给定的协议号)。因此,打开“原始套接字”的能力通常只限于根(或平台的等价物)。

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

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

票数 7
EN

Network Engineering用户

发布于 2016-02-15 17:04:38

IP是OSI层-3协议,TCP和UDP协议是OSI层-4协议.IP作为一种第三层协议,可以承载多种不同的第四层协议.TCP和UDP可能是最常见的,但它们并不是唯一的。第四层协议是应用程序使用的端到端连接.IP将第4层协议从网络传输到网络(主机到主机).层-2协议,如以太网,传输层-3协议在局域网上.

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

票数 4
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/27830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档