一,描述本次实验的任务、内容和实验环境。
1
,实验内容和任务:
利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音
信道环境下。
两站点之间无差错双工通信。
信道模型为
8000bps
全双工卫星信道,
信道传播
时延
270
毫秒,信道误码率为
10-5
,信道提供字节流传输服务,网络层分组长度在
240~256
字节范围。
深刻理解数据链路层的字节填充方式的成帧技术,
误码检测的
CRC
校验技术,
以
及滑动窗口的工作机理。
对参数进行设计,
充分理解滑动窗口协议的工作原理并利用所学的
理论知识,经过认真的推算,计算出最优取值,并通过程序的运行进行验证。
2
,实验设备环境:
WindowsXP
环境
PC
机,
Microsoft Visual C++ 6.0
集成化开发环境。
二,
协议设计:
(1)
设计该协议的目的,基本原理
该实验协议包括物理层,数据链路层和网络层。
本实验主要设计数据链路层协议,实现有噪声环境下高信道利用率传输,采用了回退
n
帧技术的协议。接受方窗口大小为
1
,发送方窗口大小为
N
。通过捎带确认(
piggybacking
)
来完成可靠的数据通信;
由于出现信道误码而导致收帧出错时,
接受方会丢弃所有的后续帧,
待定时器超时后发送方重发。
首先从网络层接受要发送的数据包,
将之分拆成数据帧;
然后
按成帧方案完成分帧,加校验码,加
ack
等操作;再进行适当的流量判断和拥塞控制;最后
启动定时器将之传递给物理层。
数据帧经信道传送给接受方,
接受方数据链路层执行与成帧
相逆的操作;处理
ack
信息,终止定时器(或启动
ack
定时器,
ack
成帧传送);判断是否为
预期数据,数据是否出错,提交给网络层。
(2)
成帧方案,帧边界和转义字符的定义及转义方法
使用的成帧方案:含字节填充的分界符法,即让每一帧都用一些特殊的字节(
FLAG
)作
为开始和结束。
当有效载荷域中含有标志字节或转义字节时,
在每个在有效载荷域中出现的
标志字节或转义字节前均要加一个转义字节(
ESC
)。接受端的数据链路层在将数据送给网
络之前删除掉转义字节。