首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSI第4层的复用

OSI第4层的复用
EN

Server Fault用户
提问于 2010-02-21 10:43:00
回答 2查看 2.4K关注 0票数 0

我正在阅读的文章,它谈到了OSI模型传输层的复用。我似乎找不出那一层的“多路复用”意味着什么?由于多路复用是一个信号处理过程,在传输层,我们不直接关注信号。

有人能给我解释一下上述文章中使用的多路复用吗?

EN

回答 2

Server Fault用户

发布于 2010-02-21 13:20:46

本文使用“多路复用”来描述同一主机上的多个应用程序如何共享一个网络接口,但是驱动程序/内核将数据包路由到正确的应用程序。答案是,数据包目的地不仅由IP地址指示,还由端口号表示。

每个发送的数据包都有一个端口作为其源地址的一部分。当您的应用程序指定“任意端口”时,只允许操作系统分配未使用的端口。当远程主机发送答复时,它不仅指定地址,还指定端口,允许操作系统确定传入数据包应该放在哪个套接字队列中。即使一个主机上有两个应用程序向同一个远程主机发送数据包,本地端口号也会有所不同。

票数 1
EN

Server Fault用户

发布于 2010-02-24 05:29:57

所以首先要注意的是,他们谈论端口为“第4层地址”,将多个应用程序流复用到一个端口上,并在接收端解复用多个不同的传输。

正如您所预期的,这只适用于一些警告,这取决于端口/L4寻址的唯一性。

因此,在非独占模式下绑定的UDP套接字可以有多个应用程序,这些应用程序都是从同一个L4地址/端口发送的。我不记得接收端的BSD中有任何东西可以过滤基于源端口的数据报,但我可能错了--如果没有,您将不得不在比L4更高的级别上手动分离它,这不是本文所讨论的。

使用TCP,服务器(bind())套接字可以与accept()组合,以允许多个同时连接到同一个L4目标(端口),但它们必须有不同的客户端(源)端口。我也不知道BSD套接字API的任何实现,它将允许多个TCP客户端套接字绑定到同一个本地端口,因为TCP服务器(接收者)只能因为不同的源端口而解出流。

换句话说,在L4上使用UDP或TCP的mux/demux只在50%的情况下工作,而不是同时在两个方向工作。

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

https://serverfault.com/questions/115089

复制
相关文章

相似问题

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