第2章 链路层
所属:TCP/IP详解 卷1:协议 来源:TCP/IP详解 卷1:协议
本章介绍链路层的基本概念,包括以太网、SLIP、PPP、环回接口和MTU等。
2.1 引言
链路层的作用
链路层的作用:
- 处理物理层的细节
- 把数据封装成帧
- 在同一网络内传输
- 差错检测
- 寻址(MAC地址)
链路层负责同一网络内的帧传输。
本章讨论的内容
本章讨论的内容:
- 以太网和IEEE 802封装
- SLIP:串行线路IP
- PPP:点对点协议
- 环回接口
- 最大传输单元MTU
- 路径MTU
本章介绍几种常见的链路层。
2.2 以太网和IEEE 802封装
以太网
以太网(Ethernet):
- 最常见的局域网技术
- 由Xerox、Intel、DEC开发
- 速率:10Mbps、100Mbps、1Gbps、10Gbps等
- 使用CSMA/CD介质访问控制
以太网是最常用的局域网技术。
以太网帧格式
以太网帧格式(Ethernet II):
+----------------+----------------+------+------+---------+
| 目的MAC地址 | 源MAC地址 | 类型 | 数据 | 检验和 |
| 6字节 | 6字节 | 2字节 |46-1500| 4字节 |
+----------------+----------------+------+------+---------+
字段说明:
- 目的地址:6字节,接收方MAC地址
- 源地址:6字节,发送方MAC地址
- 类型:2字节,上层协议类型
- 0x0800:IP
- 0x0806:ARP
- 0x8035:RARP
- 数据:46-1500字节,上层数据
- 检验和:4字节,CRC校验
以太网帧有标准的格式。
IEEE 802封装
IEEE 802封装:
- IEEE标准化的以太网
- 802.3(物理层和MAC)+ 802.2(LLC)
- 和以太网II略有不同
802.3帧格式:
+----------------+----------------+------+-----+-----+---------+
| 目的地址 | 源地址 | 长度 | LLC | SNAP| 数据 |
| 6字节 | 6字节 | 2字节 | 3字节| 5字节| |
+----------------+----------------+------+-----+-----+---------+
区别:
- 类型字段变成了长度字段
- 有LLC和SNAP子层
- 现在用得不多
IEEE 802是另一种封装格式。
MAC地址
MAC地址(Media Access Control):
- 48位,6字节
- 全球唯一
- 烧录在网卡上
- 前24位是厂商ID
- 后24位是序列号
特殊地址:
- 广播地址:FF:FF:FF:FF:FF:FF
- 多播地址:第一位为1
- 单播地址:第一位为0
MAC地址是链路层的地址。
2.3 尾部封装
什么是尾部封装
尾部封装(Trailer Encapsulation):
- 一种特殊的封装方式
- 把协议首部放在数据后面
- 主要用于某些网络
为什么用尾部封装:
- 某些硬件这样做
- 历史原因
- 现在很少见
尾部封装比较少见。
2.4 SLIP:串行线路IP
什么是SLIP
SLIP(Serial Line IP):
- 串行线路上的IP封装
- 用于拨号上网等
- 很简单的协议
- 现在基本被PPP取代
SLIP是简单的串行线路封装。
SLIP的封装
SLIP的封装规则:
- 用特殊字符标记帧的开始和结束
- END字符(0xC0):帧结束
- ESC字符(0xDB):转义
- 数据中的END和ESC要转义
转义规则:
- 0xC0 → 0xDB 0xDC
- 0xDB → 0xDB 0xDD
SLIP用特殊字符标记帧边界。
SLIP的缺点
SLIP的缺点:
-
没有地址
- 两端都要知道对方的IP
- 不能动态分配
-
没有差错检测
- 没有校验和
- 出错了不知道
-
没有类型字段
- 只能传IP
- 不能传其他协议
-
没有认证
- 不安全
- 不知道对方是谁
SLIP很简单,但缺点很多。
2.5 PPP:点对点协议
什么是PPP
PPP(Point-to-Point Protocol):
- 点对点协议
- 取代SLIP
- 更完善
- 功能更多
PPP是更完善的点对点协议。
PPP的组成
PPP的三个组成部分:
-
封装方法
- 类似HDLC的帧格式
- 有地址、控制、协议等字段
-
链路控制协议(LCP)
- Link Control Protocol
- 建立、配置、测试链路
- 协商参数
-
网络控制协议(NCP)
- Network Control Protocol
- 针对不同网络层协议
- 配置网络层参数
- 比如IPCP配置IP
PPP由三部分组成。
PPP帧格式
PPP帧格式:
+-----+-----+-----+------+------+---------+-----+
|标志 |地址 |控制 |协议 | 数据 | 填充 |检验和|
|1字节|1字节|1字节|2字节 | | |2字节|
+-----+-----+-----+------+------+---------+-----+
字段说明:
- 标志:0x7E,帧边界
- 地址:0xFF,广播地址
- 控制:0x03,无编号帧
- 协议:上层协议类型
- 0x0021:IP
- 0xC021:LCP
- 0x8021:IPCP
- 数据:上层数据
- 检验和:CRC校验
PPP帧格式更完善。
PPP的优点
PPP的优点:
-
支持多种协议
- 不只是IP
- 协议字段标识
-
有差错检测
- 检验和
- 能检测错误
-
有LCP
- 链路配置
- 协商参数
-
有NCP
- 网络层配置
- 动态分配IP
-
有认证
- PAP、CHAP
- 更安全
PPP比SLIP好很多。
2.6 环回接口
什么是环回接口
环回接口(Loopback):
- 虚拟的网络接口
- 自己发给自己
- 不需要硬件
- 通常是127.0.0.1
环回接口是虚拟接口。
环回地址
环回地址:
- 127.0.0.0/8
- 整个A类地址段
- 最常用的是127.0.0.1(localhost)
特点:
- 发给这个地址的数据
- 不会出现在网络上
- 直接回到自己
环回地址用于本机测试。
环回接口的用途
环回接口的用途:
-
测试
- 测试网络程序
- 不用网络也能测
-
客户端和服务器在同一台机器
- 用环回地址通信
- 效率高
-
本机服务
- 一些服务只监听环回
- 更安全
环回接口很有用。
环回接口的处理
环回接口的数据处理:
- 发送的数据直接回到接收队列
- 不需要经过网卡
- 效率很高
- 和正常接口一样处理
环回接口的处理很高效。
2.7 最大传输单元MTU
什么是MTU
MTU(Maximum Transmission Unit):
- 最大传输单元
- 链路层一次能传的最大数据
- 不包含链路层首部
- 单位是字节
MTU是链路层的最大数据长度。
常见的MTU
常见链路的MTU:
| 链路类型 | MTU(字节) |
|---|---|
| 以太网 | 1500 |
| 802.3 | 1492 |
| PPP | 通常1500 |
| SLIP | 通常296 |
| FDDI | 4352 |
| 令牌环 | 4464 |
| 超通道 | 65535 |
不同链路MTU不同。
MTU的意义
MTU的意义:
- 大的MTU效率高
- 首部开销比例小
- 同样的数据更少的帧
- 小的MTU延迟小
- 更快发完一帧
- 等待时间短
为什么以太网是1500:
- 历史原因
- 平衡效率和延迟
- 一直沿用至今
MTU影响效率和延迟。
2.8 路径MTU
什么是路径MTU
路径MTU(Path MTU):
- 从源到目的的路径上
- 所有链路的MTU的最小值
- 路径上最小的MTU
- 就是瓶颈
路径MTU是路径上最小的MTU。
路径MTU的意义
路径MTU的意义:
- 大于路径MTU的分组会被分片
- 分片降低效率
- 最好按路径MTU大小发送
- 避免分片
路径MTU决定了不分片的最大分组。
路径MTU发现
路径MTU发现(Path MTU Discovery):
- 发现路径MTU的大小
- 用DF位和ICMP
- 发送时设置DF位(不分片)
- 如果中间MTU不够
- 路由器丢弃
- 发ICMP不可达(需要分片)
- 收到ICMP后减小MTU重试
路径MTU发现可以找到路径MTU。
2.9 小结
以太网
-
帧格式
- 目的地址、源地址
- 类型、数据、检验和
- 6+6+2+数据+4
-
MAC地址
- 48位
- 全球唯一
- 广播地址全F
SLIP
-
特点
- 简单
- 串行线路
-
缺点
- 没有地址
- 没有差错检测
- 只能传IP
- 没有认证
PPP
-
组成
- 封装方法
- LCP(链路控制)
- NCP(网络控制)
-
优点
- 支持多协议
- 差错检测
- 链路配置
- 动态IP
- 认证
环回接口
-
特点
- 虚拟接口
- 自己发给自己
- 127.0.0.1
-
用途
- 测试
- 本机通信
- 本机服务
MTU
-
什么是MTU
- 最大传输单元
- 链路层最大数据
-
常见MTU
- 以太网:1500
- 各种链路不同
-
路径MTU
- 路径上最小的MTU
- 瓶颈
-
路径MTU发现
- DF位+ICMP
- 发现路径MTU
关键概念
-
链路层
- 同一网络内传输
- 帧格式
-
以太网
- 最常用
- MAC地址
-
PPP
- 点对点
- 比SLIP好
-
环回
- 虚拟接口
- 本机测试
-
MTU
- 最大传输单元
- 路径MTU