数据链路层有两种通信方式:点对点通信和广播通信

封装成帧
在一段数据的前后分别添加首部和尾部,构成一个帧
添加首部和尾部的一个重要作用就是进行帧定界,接收方必须正确识别每个帧的开始和结束
每一种链路层协议都规定路了帧的数据部分长度和上限,即最大传送单元MTU
透明传输
数据链路层对上层交付的传输数据没有任何限制,就好像数据链路成不存在一样
问题:在定界的过程中,如果数据中恰好出现了和首部或尾部一样的比特字节,接收方会不会误以为接受完成
答:会,当然也有两种解决办法:字节填充法和零比特填充法
字节填充法:适用于面向字符异步的物理链路,当数据中出现帧定界相同的字符时,在前面添加一个转义字符(ESC——00011011),或者数据中存在转义字符,也在前面填充一个转义字符即可,接收方在接收到数据后,会将转义字符去掉然后读取转义字符后面的数据,虽然与帧定界字符相同,但是因为有转义字符,接收方则不会在理解为是定界符而是一个数据字符
零比特填充法:适用于面向比特同步的传输服务,帧定界符为某个特殊比特组合(如PPP所用01111110),在发送端开始检测,如果有5个连续的1,在后面添加1个0,保证数据中不会出现连续的6个1,这样就不会与帧定界符相同,而接收方则需要反向操作,连续接收到5个1时,后面的1个0则删除就可以还原比特流


CRC校验码(循环冗余校验码)
生成式G,数据D,通过生成式G可以知道除数和被除数,两数相除(异或运算)得到的余数R(冗余码)拼接到数据D的后面一起发送出去,而接收方接收到数据之后,将数据与除数相除(异或运算),如果等于0,则接受到的数据和发送的数据一样,反之则数据在传输过程中出错了
异或运算:相同为0,不同为1
奇偶校验码
奇校验:当发送一个数据如00011110时采用奇校验,那么发送方则会关注数据中的1的个数是否为奇数,如果是奇数,则最后发送的校验位是0,如果不是奇数,则最后发送的校验位是1将1的个数变为奇数个
偶校验:当发送一个数据如00011110时采用偶校验,那么发送方则会关注数据中的1的个数是否为偶数,如果是偶数,则最后发送的校验位是0,如果不是偶数,则最后发送的校验位是1将1的个数变为偶数个

可靠传输:发送端发送什么,对应的接收端就接收什么
为此提出了滑动窗口机制,发送窗口WT和接收窗口WR,两个窗口都规定的有大小,发送窗口的大小确定了一次能发的bit,接收窗口的大小确定了一次能接的bit且接收窗口<=发送窗口
窗口的滑动控制有接收方来确定,接收方通过独有的“确认机制”控制发送方的窗口向前滑动,从而实现“流量控制”
确认(ACK):接收方每接收一个数据帧,就向发送方发送一个确认帧,表示已经正确接收到该帧数据
超时重传:发送方每发送一个帧,就会开启一个超时定时器,如果在规定时间没有接收到接收方发送的确认帧(ACK),则发送方就会重新发送该帧数据
使用这两种机制的可靠传输协议称为自动重传请求ARQ



正常情况:发送方发送数据,接收方接收后发送确认帧并且窗口向前移动,发送方接收到确认帧窗口也向前移动
数据帧丢失情况:发送方发送数据,接收方没有接收到,因此不会发送确认帧,直到超时,发送发重新发送数据,接收方接收后发送确认帧并且窗口向前移动,发送方接收到确认帧窗口也向前移动
确认帧丢失情况:发送方发送数据,接收方接收后发送确认帧并且窗口向前移动,但是发送方没有接收到确认帧,并不会向前移动,当定时器超时,发送发重新发送数据,接收方接收数据,但是帧序号与当前接收窗口不一致,接收方丢弃该数据并重新发送确认帧,发送方接收到确认帧窗口也向前移动
数据帧有差错情况:发送方发送数据,接收方接收后发现数据错误,丢弃数据并不发送确认帧,等待发送方定时器超时重传数据,接收方接收后发送确认帧并且窗口向前移动,发送方接收到确认帧窗口也向前移动
问:为什么一定要给帧编号
答:为了防止接收方无法判别重复帧(确认帧丢失情况)



停止-等待协议信道利用率:计算公式U = TD/(TD+RTT+TA)
TD:数据的发送时延 RTT:往返时延(传播时延)即2*单向传播时延 TA:确认帧的发送时延(大部分情况忽略)

回退N帧协议(GBN)、选择重传协议(SR)信道利用率:计算公式U = (N*TD)/(TD+RTT+TA)
TD:数据的发送时延 RTT:往返时延(传播时延)即2*单向传播时延 TA:确认帧的发送时延(大部分情况忽略) N:发送窗口大小
注意:信道利用率最大不可能超过1
最大传输速率 = 总数据量/总时间

MAC地址:每一个设备的物理地址也是设备的身份证号,不重复的
CSMA/CD协议(多址接入CS 载波监听MA 冲突检测CD):发送前监听,边发送边监听
争用期:最远两端的单向传播时延*2,有两个特殊的:10Mb/s的争用期是51.2us
退避时间 = 基本退避时间(争用期) * 随机数r r = 2k-1 k = Min(重传次数 , 10) 重传次数小于10,k = 重传次数 重传次数大于等于10,k = 10
最短帧长 = 2 * 单向传播时延 * 信道带宽
浙公网安备 33010602011771号