【注】:文章中的内容主要收集来自网上或者书籍中。
1、网络协议分层
按照分层的思想把网络协议栈进行分层主要有以下好处:
1.促进标准化工作,允许各个供应商进行开发
2.各层间相互独立,把网络操作分成低复杂单元
3.灵活性好,某一层变化不会影响到其它层
4.各层间通过一个接口在相邻层上下通信
OSI七层模型和TCP/IP五层模型的对比如下,我们现在用的是五层协议模型:
2、PDU、封装和解封装
- PDU(protocol data unit):每一层使用自己层的协议和别的系统的对应层相互通信,协议层的协议在对等层之间交换的信息叫协议数据单元
- 上层:message
- 传输层:segment
- 网络层:packet
- 数据链路层:frame
- 物理层:bit
- 封装:数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫封装
- 封装分为:切片和加控制信息
- 解封装:上述的逆向过程
数据进入TCP/IP协议栈时的封装过程如下:
数据进入TCP/IP协议栈时的解封装过程如下:
3、以太帧和常见的报文格式
(1)以太网帧(Ethernet II Frame)
- D-MAC:目的MAC地址
- S-MAC:源MAC地址
- 类型域:表示帧里面上层协议数据的类型,0x0800代表IP协议帧,0x0806代表ARP协议帧
- CRC:帧校验
(2)IP数据报
|
|
分片举例:
IP数据报解析: