目录
数据链路层三个基本问题
封装成帧
IP数据报添加用于帧定界的首部和尾部后即从首部开始1b1b地发送。
IP数据报长度不能超过MTU(最大传送单元为1500Byte)。
数据报为文本时首部可用SOH字符(01),尾部可用EOT字符(04)。
透明传输
透明
某一个实际存在的事物看起来却不存在。
就是说让数据报中SOH字符和EOT字符的无法在定界时被辨认。常用字符(节)填充方法解决此问题(即转义字符ESC字符(0x1B
)插入数据报中SOH字符和EOT字符的前面)。
差错检测
检测传输过程中的比特差错。 误 码 率 ( B E R ) = 传 输 错 误 的 比 特 总 比 特 误码率(BER)=\frac{传输错误的比特}{总比特} 误码率(BER)=总比特传输错误的比特
CRC
即循环冗余检验。
单个数据报 D D D含 k k k个比特,在 D D D后追加 n n n个 0 0 0后除以 ( n + 1 ) (n+1) (n+1)位常数 P P P得到 n n n位余数 R R R;然后将 R R R当作FCS(帧检验序列)放在尾部里随整个数据发送出去。
P P P的值可用生成多项式 P ( X ) P(X) P(X)得到。
P ( X ) P(X) P(X)分类: { C R C − 16 : P ( X ) = X 16 + X 15 + X 2 + X 0 C R C − C C I T T : P ( X ) = X 16 + X 12 + X 5 + X 0 C R C − 32 \begin{cases}CRC-16:P(X)=X^{16}+X^{15}+X^2+X^0\\CRC-CCITT:P(X)=X^{16}+X^{12}+X^5+X^0\\CRC-32\end{cases} ⎩⎪⎨⎪⎧CRC−16:P(X)=X16+X15+X2+X0CRC−CCITT:P(X)=X16+X12+X5+X0CRC−32
点对点协议 PPP
- 简单(第一要求)
- 封装成帧
- 透明性
- 差错检测:立即丢弃有差错的帧
- 在同一条物理链路上支持多种网络协议
- 支持多种类型链路
- 检测连接状态
- 对每种类型的点对点链路设置 MTU (最大传送单元)标准默认值
- 网络层地址协商
- 数据压缩协商
组分
- 将IP数据报封装到串行链路的方法
- LCP (链路控制协议)
- NCP (网络控制协议)
帧格式
首部 | 信息部分可变长不可超过 MTU | 尾部 |
---|---|---|
F+A+C+协议 | IP数据报 | FCS+F |
F 的值为0x7E
。
透明传输
- 字节填充:
0x7E
→0x7D 0x5E
、0x7D
→0x7D 0x5D
、小于0x20
的前也要插入0x7D
- 零比特填充:因为
0x7D
二进制中有连续6个1
所以在发送端把数据报中的二进制111111
全换成1111101
,接收端把数据报中的二进制111110
再全换成11111
工作状态
LCP链路中止
LCP配置协商失败
连接建立
LCP配置协商
鉴别通过
NCP配置协商
鉴别不通过
链路故障或关闭请求 链路静止 链路建立 鉴别 网络层协议 链路打开 链路终止
链路静止是 PPP 链路起止状态。
认证方式:
- PAP(口令鉴别协议)
- CHAP(口令握手鉴别协议)