数据链路层:
服务:将来自网络层的数据传输到相邻节点的网络层
作用:加强物理层传输原始比特流的功能
封装成帧---组帧:将来自网络层的数据在首尾添加特定信息(帧定界:帧的起始,结束)
差错控制
CRC循环冗余码:发现接收数据错误--->丢弃
海明距离:两个编码对应位置比特不同的数量 000 - 001--海明距离为1
流量控制,可靠传输:
1.停止--等待协议
2.滑动窗口协议
2.1后退N帧协议 GBN
2.2选择重传协议 SR
停止--等待协议:
1.数据帧丢失:发送端没在特定时间内接收到来自接收端的确认帧,发送端将重新传输该数据
2.ACK确认帧丢失:发送端在特定时间没有接收到来自接收端的ACK信号,发送端将重新传输该信号,此时接收端就连续收到两个相同数据,接收端将第二次接收到的数据删除,重新发送ACK
3.ACK接收超时:发送端重新传输原数据,接收端连续收到两个相同数据,将数据丢弃一份重新传输ACK;当超时的ACK发送给发送端,发送端将其删除
GBN后退N帧协议:发送窗口【1,2^n-1】,接收窗口大小为1
当发送端的数据2丢失时,接收端未接受到数据不能给发送端发送ACK2信号,发送端接续发送数据3,接收端收到数据3但与其预期的数据(expectedseqnum)不同,接收端将数据3删除返回ACK2信号,发送端在特定时间未收到ACK2信号,则重新发送已经发送但是为被确定的帧
选择重传协议SR:发送端窗口大小=接收端窗口大小 2^(n-1)
当发送端数据2丢失时,发送端继续发送数据3,接收端接收数据3发送ACK3,当ACK2超出特定时间还未接收到时,发送端重新传输数据2,接收端接收数据2并将数据2-5交付给网络层向发送端发出ACK2