链路层的目的:
- 为IP模块发送和接收IP数据报;
- 为ARP模块发送ARP请求和接收ARP应答;
- 为RARP发送RARP请求和接收RARP应答。
802标准:
长度:其后续数据的字节长度,但不包括CRC校验码。
以太网:
类型:定义后续数据的类型。
802定义的有效长度值与以太网的有效类型值无一相同,可以此区分两种帧。
SLIP:串行线路IP
SLIP:serial Line IP。适用于RS-232串行端口和高速调制解调器接入Internet。
规则:
IP数据报以一个称作END(0xc0)的特殊字符结束。同时,为了防止数据报到来以前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传入一个END字符(如果有噪声,那么END字符将结束这份错误的报文。
如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它。0xdb这个特殊字符被称作SLIP的ESC字符,但是他的值与ASCII的ESC字符(0x1b)不同。
如果报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它。
SLIP缺陷:
每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
数据帧没有类型字段。如果一条串行链路用于SLIP,那么它不能同时使用其他协议。
SLIP没有在数据帧中加上校验和。这样上层协议提供某种形式的CRC就显得很重要。
PPP:点对点协议
在串行链路上封装IP数据报的方法。PPP既支持数据位8位和无奇偶校验的异步模式,还支持面向比特的同步链接。
建立、配置及测试数据链路的链路控制协议(LCP)。它允许通信双方进行协商,以确定不同的选项。
针对不同网络层协议的网络控制协议(NCP)体系。
PPP转义:同步链路中使用比特填充,一步链路中0x7d作为转义字符。具体实现过程如下:
当遇到字符0x7e时,需要连续传送两个字符0x7d和0x5e,以实现标志字符的转义。
当遇到字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。
默认情况下,如果字符的值小于0x20,一般都要进行转义。例如,遇到字符0x01时需要连续传送0x7d和0x21两个字符(这时,第6比特取补码后为1,而前面两种情况均把它变为0)。防止把这些控制字符解释成特殊的含义。
相比SLIP,PPP的优点:
PPP支持在单根串行线路上运行多种协议,不只是IP协议。
每一帧都有循环冗余校验;
通信双方都可以进行IP地址的动态协商;
与CSLIP类似,对TCP和IP报文首部进行压缩;
链路控制协议可以对多个数据链路选项进行设置。
环回接口:
最大传输单元MTU:
路径MTU:两台通信主机路径中最小的MTU。