2012-04-06 69 views
3

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

+0

哪个操作系统?我注意到你有'tcp'标签。您的问题只针对IP吗?还是您在询问其他协议栈? – 2012-04-06 14:44:31

+0

关于网络层以上的协议栈。 – 2012-04-06 15:41:46

回答

7

我想知道OSI模型的传输层在计算机系统中运行的位置。

不是。 OSI模型适用于OSI协议套件,该协议套件已停用,并且不在任何位置运行AFAICS。但是TCP/IP有其自己的模型,其中还包括一个传输层。我会认为这就是你以后的意思。

它是操作系统的一部分吗?

是的。

它运行在它自己的进程或线程中吗?

不,它作为操作系统的一部分运行。

它是如何将信息传递给其它应用

通过系统调用,例如Berkeley套接字API,WinSock等。

或下降到其他层?

通过内部内核API。

+0

你可以请发布一些链接或教程吗?如果您还可以提及网络层的实施位置,那将非常棒。它是在一个WiFi适配器?我希望教程能够显示所有这些,而不是抽象层的旧框图。 – testerjoe2 2017-01-26 07:12:25

+0

@ testerjoe2应用程序层下的所有东西都在操作系统中。某些链接层和更低层可能位于网络适配器中。 – EJP 2017-10-09 04:53:23

0

OSI模型称为传输层的东西与TCP/IP中的TCP层相当接近。也就是说,它提供了有保证的交付/错误恢复,以及主机之间的透明传输 - 您无需关注数据如何从一台主机路由到另一台主机 - 您只需指定一个目的地,网络就会计算出来如何在那里得到它。

至于实现的地方:好的,主要是在TCP/IP堆栈中,这通常是操作系统的一部分。现代硬件可以在硬件中实现至少几个比特和块(例如,TCP校验和和流量控制)。网络堆栈将通过设备驱动程序将TCP操作的这些部分卸载到硬件中。

+0

让我们举个例子,C++的winsock库使用'send'与tcp交换信息。该方法正在进行,以确保传递的字节流的正确传递。我对此感兴趣。那是在做什么?我在最低级别上猜测,而不是直接在该方法调用中。 – 2012-04-06 05:55:21

+1

@SotiriosDelimanolis:它毫无疑问不是那个函数的全部内容,而是它在TCP层之内(下层IP层不提供保证传递)。然而事实上,跟踪事情有点难以理解 - 例如,微软拥有一个数据包过滤框架来支持防火墙等,这大大侵入了这一切,同时支持内核模式和用户模式过滤。 – 2012-04-06 06:01:48

+0

这个答案不正确。 TCP/IP有一个传输层,它包括TCP和UDP,以及即将到来的一天,即SCTP。 – EJP 2017-10-09 04:58:30

0

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

逻辑部分在库中实现。与运输媒介的互动是通过司机。

+0

它通常作为内核组件提供,表现为驱动程序。不是图书馆。 – EJP 2013-10-23 07:37:48