数据链路层思维导图
数据链路层部分思维导图
这一文章我们主要讲一下数据链路层的三个基本问题
1.封装成帧
1.1 问题: 什么是封装成帧?
答:
我们先来看两个具体的数据帧
可以看到这两个具体的帧都有帧头和帧尾。
封装成帧就是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
1.2 问题: 为什么要加帧头和帧尾?
答:帧头和帧尾的作用之一就是帧定界。假定发送端在尚未发送完一个帧时突然出故障,中断了发送。但随后很快又恢复正常,于是重新发送刚才未发完的帧。由于使用了帧定界符,刚才接收端接收只接收到帧头部分,没有帧尾,于是丢弃。而重新发送的帧具有完整的帧头和帧尾,于是接收。
1.3 问题: 帧头和帧尾与数据部分有相同的数据,让接收端误认为时一个帧咋办?
答:发送前在与“帧头”和 “帧尾”相同的数据部分插入转义字符,接收时就把这个转义字符删除。
1.4 问题: 假如转义字符也出现在数据中?
答:仍然是在转义字符的前面插入一个转义字符(套娃)