在TCP/IP协议族中,链路层主要有三个目的:
- 为IP模块发送和接收IP数据报
- 为ARP模块发送ARP请求和接收ARP应答
- 为RARP发送RARP请求和接收RARP应答
2.1 概念
2.1.1 SLIP
SLIP:Serial Line IP,它是一种在串行线路上对IP数据报进行封装的简单形式。适用于RS-232串行端口和高速调制解调器接入Internet。
- SLIP协议定义的帧格式:
- IP数据报以一个称作 END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END 字符。
- 如果IP报文中某个字符为END,那么就要连续传输两个字节 0xdb 和 0xdc 来取代它。0xdb 这个特殊字符称作 SLIP的ESC字符,其值与 ASCII 码的ESC字符(0x1b)不同。
- 如果IP报文中某个字符为 SLIP 的ESC字符,那么就要连续传输两个字节 0xdb 和 0xdd 来取代它。
例如:在串行线路上传输的总字节数是原IP报文长度再加4个字节。
- SLIP的缺陷
- 每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
- 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。
- SLIP没有在数据帧中加上检验位(类似于以太网中的CRC字段)。如果SLIP传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现。
2.1.2 PPP:点对点协议
PPP,点对点协议修改了SLIP协议中的所有缺陷。主要包括以下三个部分:
- 在串行链路上封装IP数据报的方法。PPP既支持数据为8位和无奇偶校验的异步模式,还支持面向比特的同步链接。
- 建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
- 针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。
PPP数据帧的格式以0x7e为开始和结束标志字符,然后是一个地址字节,始终为 0xff,然后是 0x03的控制字节。之后为协议字段,类似于以太网中类型字段的go功能,值为 0x0021,表示信息字段为一个IP数据报;值为 0xc021,表示信息字段为链路控制数据;值为0x8021,表示信息字段是网络控制数据。
CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。
2.2 环回接口
Loopback Interface,环回接口,允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把 IP 地址 127.0.0.1 分配给这个接口,并命名为 localhost。一个环回接口的IP数据报不能在任何网络上出现。
环回接口处理IP数据报的过程如下:
- 传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入
- 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网。这是因为广播传送和多播传送的定义包含主机本身。
- 任何传给该主机IP地址的数据均送到环回接口
2.3 MTU
2.3.1 最大传输单元MTU
若IP层有一个数据报要传,而且数据长度比链路层的MTU大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片。
2.3.2 路径MTU
两台通信主机路径中的最小MTU,称为路径MTU。路径MTU不一定是个常数,取决于当时所选择的路由,且路径MTU在两个方向上不一定是一致的。
时间: 2024-10-29 14:55:59