(一)如何在一条物理链路上进行有效和可靠的数据传输
——数据链路层传输协议
(1)标识高层送下来的数据块的起止、特定内容(例如校验比特)的位置
——组帧技术
(2)如何发现传输中的错误
——差错检测技术
(3)如何消除传输中的错误
——自动请求发端重发技术(ARQ)
(二)如何在跨越多条物理链路或多个网络的一条路径上进行可靠的数据传输
——网络层、运输层传输协议
(1)网络层的端到端传输协议
——会话过程的标识/分组的标号、差错控制、流量控制
(2)运输层的端到端传输协议
——差错控制、流量控制
一、组帧技术
决定一帧的开始和结束以及差错校验比特的位置
1. 面向字符的组帧技术
物理层传输的基本单位是一个字符(一个字节),并在此基础上形成具有一定格式的字符串。
Internet中常用的面向字符的组帧协议:SLIP(Serl Line IP)和PPP(Point-to-Point Protocol)。
SLIP协议
采用特殊字符END(0xC0)表示一帧的开始和结束。
为避免收端错误地终止一帧的接收,使用转移字符ESC(0xDB)
IP数据报中的END(0xC0)和ESC(0xDB)进行如下转换:
0xC0->0xDB 0xDC 0xDB -> 0xDB 0xDD
优点:帧结构在处理时非常简单
缺点:插入许多转义字符,效率较低;数据长度必须以字节为单位,灵活性差。
2. 面向比特的组帧技术
通常采用一个特殊的比特串,称为Flag,如01(6)0来表示一帧的正常开始和结束。
01(6)0:01111110
当信息比特流中出现与Flag相同的比特串(如连续出现6个1)时,采用比特插入技术。
比特插入技术:
发端信息流中,每出现连续的j-1个1就插入一个0。
收端在收到j-1个1以后,如果收到的是0就将该0删去,如果是1就表示一帧结束。
优点:比特插入开销小,效率较高;数据传输以比特为单位,灵活性高。
3. 采用长度计数的组帧技术
二、链路层的差错控制技术
1. 差错检测
——如何有效发现一帧数据比特经过物理信道传输后是否正确?
在发端:在K个信息比特后面增加L个按照某种规则计算的校验比特。
在收端:对收到的信息比特重新计算L个校验比特,比较接收到的校验比特和本地重新计算的校验比特。如果相同则认为传输无误,否则认为传输有错。
——常用的差错检错方法
(1)奇偶校验
信息序列{S1,S2,S3},K=3;校验序列{C1,C2,C3,C4},L=4。
(2)循环冗余校验(CRC)
漏检:如果传输中的差错使一个发送序列错成另一个可能的发送序列,那么接收序列就仍满足校验规则,差错检测系统无法发现该传输错误,称为漏检。
2. ARQ协议(1)——停等式ARQ
——当接收端发现传输帧有错时如何处理?
自动请求发端重发(ARQ,Automatic Retransmission Request)。收端收到一帧后,经过CRC检验,如果发现该帧传输有误,则通过反馈信道以某种反馈规则通知发端重传,直到收端收到正确的帧为止。
对物理链路作如下假定:
(1)物理信道上传输的帧到达接收端之前,被时延了一个任意可变的时间。
(2)帧在传输过程中可能会丢失,也可能出错。
(3)帧到达的顺序与发送的顺序相同。
四种不同形式的ARQ协议:(1)停等式ARQ;(2)返回n-ARQ;(3)选择重发式ARQ;(4)ARPANET ARQ。
情况1:反向链路出错
B向A发送的ACK应答,A不能正常收到,则A需要重发该帧,但此时B就无法确定A是重发还是新发的数据帧。
在正向传输的帧中增加发送序号(SN)
情况2:正向链路出错
在反向传输的帧中增加接收序号(RN)。
SN和RN不能随时间任意增加,可以采用一个整数的模值来表示。
链路的利用率:物理层的传输容量中用于有效分组传输所占的比例。在信道中,如果被等待、重传和其他不必要的传输所占的比例越少,则说明信道的利用率越高。
停等式ARQ协议存在的问题:效率低。