数据包分层传输

数据包分层传输

我想知道网络数据包如何穿越不同的层,即从物理层到 Linux 系统中的表示层。

有没有关于这个主题的详细文章或书籍以及代码?

答案1

OSI 层模型并不是实际的网络编程方式。如果您对 C 代码示例感兴趣,可以查看这本书:

http://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551/ref=sr_1_1?s=gateway&ie=UTF8&qid=1285699272&sr=8-1

答案2

不便宜,但绝对是经典之作。Richard Stevens:“TCP/IP Illustrated Vol.1 The Protocols”。非常详尽,当然也涵盖了 UDP、ICMP 等。第 156 页。

如果您喜欢编程,还有 Gary Wright 撰写的“TCP/IP 图解第 2 卷实施”。

答案3

7 Application
6 Presentation
5 Session
4 Transport
3 Network
2 Data
1 Physical

TCP / IP combines certain layers

7-5 Application
4   Transport
3   Internetwork
2-1 Network Access

从概念上讲,OSI 模型如下所示

7 Application---- ------------- Application
6 Presentation--- ------------- Presentation
5 Session-------- ------------- Session
4 Transport------ ------------- Transport
3 Network-------- ---Network--- Network
2 Data----------- ---Data------ Data
1 Physical------- ---Physical-- Physical

每个发送层似乎都与相应的接收层透明通信。在路由网络中(中间一列),情况也是如此。

当数据包从 7 下降到 1 时,每一层都会附加报头信息,而下一层会将其视为协议数据单元。当数据包上升到模型时,每一层都会删除报头。

相关内容