传输层在哪个位置运行?

5

我想知道OSI模型的传输层在计算机系统中运行在哪里。它是操作系统的一部分吗?它运行在自己的进程或线程中吗?它如何将信息传递给其他应用程序或向下传递到其他层?


哪个操作系统?我注意到你有“tcp”标签。你的问题只涉及IP协议吗,还是你也在询问其他协议栈? - Robᵩ
关于网络层以上的协议栈。 - Sotirios Delimanolis
4个回答

14
我想知道OSI模型的传输层在计算机系统中运行在哪里。
它并没有在任何地方运行。OSI模型适用于已经废弃的OSI协议套件,据我所知,该协议套件不再存在于任何地方。然而,TCP/IP有自己的模型,其中也包括传输层。我将假设这是你接下来要问的内容。
它是操作系统的一部分吗?
是的。
它会作为其自己的进程或线程运行吗?
不会,它是作为操作系统的一部分运行的。
它如何将信息传递给其他应用程序?
通过系统调用,例如伯克利套接字API、WinSock等。
还是传递到其他层?
通过内部内核API。

1
你能否提供一些相关链接或教程?如果您能说明网络层的实现位置,那就太好了。它是在wifi适配器中实现的吗?我希望教程能展示所有这些内容,而不是相同的抽象层块图。 - MasterJoe
@testerjoe2 应用程序层以下的所有内容都在操作系统中。一些链路层和更低层可能在网络适配器中。 - user207421

0

OSI模型所称的传输层与TCP/IP中的TCP层相对应得相当密切。也就是说,它提供了可靠的传递/错误恢复和主机之间的透明传输 - 您不需要关注数据如何从一个主机路由到另一个主机 - 您只需指定目标,网络就会想办法将其传送到那里。

至于实现的位置:大多数情况下在TCP/IP堆栈中,这通常是操作系统的一部分。现代硬件可以在硬件中实现至少一些位和片段(例如,TCP校验和和流量控制)。网络堆栈将通过设备驱动程序将TCP操作的这些部分卸载到硬件中。


1
@SotiriosDelimanolis:毫无疑问,不是所有的功能都在该函数内部,但是它确实在TCP层内(更低级别的IP层不提供可靠的传输)。然而,在现实中,跟踪这些事情变得有点复杂——例如,微软有一个数据包过滤框架来支持防火墙等,它会严重影响所有这一切,并支持内核模式和用户模式过滤。 - Jerry Coffin
这个答案不正确。TCP/IP有一个传输层,其中包括TCP和UDP,而且很快就会加入SCTP。 - user207421
@EJP:胡说八道。UDP和TCP是基于IP协议的两个独立的传输层,分别构成UDP/IP和TCP/IP。即使UDP是TCP的一部分,这个回答也不会是错误的——如果您将UDP视为TCP的一部分,则通过讨论TCP,已经涉及到了UDP。 - Jerry Coffin
@EJP:再次看到您的评论,我对其所代表的严重误解和缺乏逻辑感到更加震惊。这有点像OP问:“BMW 318i中的数字代表什么?”我回答:“3表示它是3系车身,18表示1.8升发动机。”然后你说:“那个答案是错误的。318i还包括空调,并且很快可能会推出混合动力车型。”一个是正确的,但完全不相关;另一个是猜测,但如果成为事实,也将无关紧要。 - Jerry Coffin
假设您是以前被称为“EJP”的用户,您说:“TCP/IP有一个传输层,其中包括TCP和UDP”,这是错误的。 TCP/IP显然包括TCP和IP。 它不包括UDP。 即使TCP/IP包括UDP,它仍然不相关,也不会以任何方式使答案的任何部分不正确。 - Jerry Coffin
显示剩余5条评论

0

传输层通常作为库随操作系统一起提供。

逻辑部分是在库中实现的。与传输介质的交互是通过驱动程序进行的。


通常它作为内核组件可用,表现为驱动程序。不是库。 - user207421

0
传输层存在于两个或多个设备之间,例如客户端和主机(虚拟或实际)。传输由操作系统在两端调用。客户端和主机都有操作系统实例和底层硬件来管理传输。
传输控制协调客户端和主机操作系统的信息交付保证。一些机器在必要时将一些工作负载从CPU或内核转移到底层芯片组以减轻负担。传输职责是基本商品工作,通常不适合内核或主CPU,但操作系统是传输从网格现代化演变而来的地方。
在课堂上,操作系统完成这项任务,在我设计和实施的工业控制系统中,我们始终考虑硬件加速和效率。
RPDelio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接