TCP/IP-数据链路层
2017-10-23 19:40
162 查看
前言
前面介绍了TCP/IP协议族的组成,现在来看最底层的数据链路层。
链路层
链路层目的如下为
IP模块发送和接收
IP数据报。
为
ARP发送
ARP请求和接收
ARP应答。
为
RARP发送
RARP请求和接收
RARP应答。
IP报文封装
如下为IEEE 802和以太网的封装,对于不同的封装其会添加额外的信息,如802封装会在头部添加
LLC和
SNAP信息,而在尾部会添加
CRC信息用于校验。
IP报文串行发送(SLIP)
IP数据报以
END 0xc0特殊字符结束,并且在开始处也传入
END字符。
若报文中某个字符为
END,那么需要使用两个连续字节(
0xdb 0xdc)进行取代,
oxdb称为
ESC字符。
若报文中某个字符为
ESC字符,那么需要使用两个连续字节(
0xdb 0xdd)进行取代。
IP报文压缩发送(CSLIP)
由于串行发送效率较低(传送一个字节需要20个字节的IP首部和20个字节的TCP首部),并且有些通信是交互式的,对时间响应要求高。使用CSLIP可将
40个字节压缩到
3到5个字节。
IP报文点对点发送(PPP)
PPP支持
IP报文点对点发送,有如下优点。
支持单串行线路上运行多种协议。
每一帧都有循环冗余校验。
通信双方可进行
IP地址动态协商(使用网际控制协议)。
对
TCP和
IP首部进行压缩。
环回接口
允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信(如启动
tomcat后,本地访问),其通信地址为
127.0.0.1,也称为
localhost。当传输层检测到目的端地址是环回地址时,可省略部分传输层和所有网络层的逻辑操作。
传给环回地址的数据均被作为
IP输入。
传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
任何传给本机
IP地址的数据均被送到环回接口,不应该出现在网络上。
最大传输单元MTU
以太网数据帧长度为46~1500,
802.3的数据帧长度为
38~1492,若
IP层有数据报传送,并且大于最大限制,则
IP层需要进行分片。
路径MTU
同个网络的两台主机互相通信时,网络的MTU非常关键,若两个主机之间的通信要通过多个网络时,每个网络的链路层就可能有不同的
MTU,两台通信主机网络路径中最小的
MTU被称为
路径MTU。
两台主机间的
MTU不一定为常数,其与当时所选择的路由有关,选路不一定是对称的,因此可能不一致。
总结
本篇博文讨论了数据链路层的一些细节,如不同的封装的MTU的不同,以及发送到本机的环回地址等。
相关文章推荐
- Socket编程-TCP/IP数据包格式详解-包括数据链路层的头部
- TCP/IP(2)-数据链路层
- TCP/IP--数据链路层
- TCP/IP之数据链路层
- TCP/IP笔记(2)-数据链路层
- TCP/IP具体解释学习笔记——数据链路层(2)
- Linux TCP-IP 协议栈(1)——协议概览,数据链路层和驱动
- 三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层
- TCP/IP笔记(三)数据链路层
- [计算机网络-1] TCP/IP数据包格式详解-包括数据链路层的头部
- 转载---TCP/IP数据包格式详解-包括数据链路层的头部
- 三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层
- TCP/IP系列之数据链路层
- TCP/IP(三)数据链路层~1
- TCP/IP学习(30)——L2数据链路层的数据包处理详细流程
- TCP/IP数据包格式详解-包括数据链路层的头部
- TCP/IP(二)数据链路层
- 数据链路层――TCP/IP Review
- TCP/IP(2)--数据链路层
- TCP/IP数据包格式详解-包括数据链路层的头部