WebSocket协议位于OSI模型的哪一层?

27
我在想,WebSocket 的第七层协议是否为应用层,因为实际上它是在浏览器中进行的。

3
OSI模型在第四层以上并不真正起作用。它更多地涉及协议如何堆叠以及协议提供了什么。请注意,Osi#6(字符集编码,数据编码等)通常是建立在HTTP之上的(通常被认为属于OSI#7)。 - John Dvorak
Web sockets和HTTP在我看来应该是OSI#4(传输层),但它本身依赖于传输层协议(TCP)。 - John Dvorak
OSI#6(表示层)应该负责数据加密,但维基百科将SSL/TLS放入OSI#5(会话层),因为SSL也保持了一个会话。 - John Dvorak
1
把 HTTP 移到第 4 层也并不是真正可行的,因为从技术上讲,HTTP 可以堆叠在 SSL 之上,而不是反过来,但 SSL 属于第 5 或第 6 层;绝对不属于第 4 层。 - John Dvorak
WS 应该与 HTTP 相当甚至更高,但 HTTP 传统上是第7层(第8层是用户),所以... - John Dvorak
1
请注意,您可以通过任何东西隧道传输任何内容(尽管通过HTTP / SSL隧道传输以太网帧可能效率低下),这有点再次动摇了OSI模型。付出一些努力,您甚至可以通过HTTP隧道传输OSI#1(物理层) - 数字示波器并不是_那么_昂贵 :-) - John Dvorak
5个回答

20

Websocket依赖于TCP(OSI#4),仅握手阶段由HTTP(OSI#7)初始化1。尽管它只使用TCP端口80。

根据运行时行为,我必须说WebSocket应该是特殊的OSI#7协议。然后我们可以将SSL / TLS放入OSI#6(参见维基百科),并将浏览器内部实现放入OSI#5。


5

相较于OSI模型,使用TCP/IP模型更好地理解层。WebSocket建立在TCP之上,被认为是TCP/IP模型中的传输层,可以在WebSocket之上叠加应用层协议。


WebSocket与HTTP是不同的。这两个协议都位于OSI模型的第7层,并依赖于第4层的TCP协议。所以WebSocket是应用层而非传输层。 - BabyishTank

4

HTTP、SSL、HTTPS、WebSockets等都是应用层协议。

但是OSI协议栈不适用于TCP/IP,因为它有自己的分层模型:相同名称,不同功能。继续使用过时的OSI协议栈并不有帮助,因为它实际上并未反映任何现实。


0

1
第七层。TCP本身是第四层,如果它符合OSI模型的话,它就应该是第四层,但事实并非如此。 - user207421

0

L1层没有地图,显示电缆埋在土壤中的深度、位置,也不知道哪些电线传递信息,或者电缆自身的铺设方式,也不规定电缆如何标记。L1只是物理层,不涉及电线的铺设位置和方式。因此需要L0。

L1层负责设备与物理传输介质之间的非结构化原始数据的传输和接收。它将数字位转换为电气、无线或光学信号。层规范定义了诸如电压水平、电压变化的时间、物理数据速率、最大传输距离、调制方案、信道访问方法和物理连接器等特性。这包括无线设备的引脚布局、电压、线阻抗、电缆规格、信号时序和频率。物理层进行比特率控制,并可以将传输模式定义为单工、半双工和全双工。物理层的组成部分可以用网络拓扑描述。物理层规范包含在普遍存在的蓝牙、以太网和USB标准的规范中。一个较少人知道的物理层规范的例子是CAN标准。


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