题目:
数据链路层网络通信协议计
**: ***
学号:**********
班号:10011302
时间:2015.11.12
计算机学院
目录
摘要
1 目的 (1)
2 要求 (1)
3 相关知识 (1)
4 设计原理及流程图........................... 错误!未定义书签。
5 实现思路及伪代码描述 (3)
6 意见或建议 (4)
7 参考文献 (4)
题目:
数据链路层网络通信协议设计
帧校验字段
紧跟在信息字段之后的是两字节的帧校验字段,帧校验字段称为FC(Frame Check)字段,校验序列FCS(Frame check Sequence)。SDLC/HDLC均采用16位循环冗余校验码CRC (Cyclic Redundancy Code),其生成多项式为CCITT多项式X^16+X^12+X^5+1。除了标志字段和自动插入的"0"位外,所有的信息都参加CRC计算。CRC的编码器在发送码组时为每一码组加入冗余的监督码位。接收时译码器可对在纠错范围内的错码进行纠正,对在校错范围内的错码进行校验,但不能纠正。超出校、纠错范围之外的多位错误将不可能被校验发现。
4、设计原理及流程图
⏹可靠性分析:(1)差错控制:检错(CRC-32);纠错(序号+确认反馈+超时重发);(2)流量控
制:采用选择重发协议(序号为3个比特位,发送缓冲区和接收缓存区,确定发送窗口和接收窗口,对缓冲区和窗口管理)
⏹不可靠性分析:支持不可靠通信服务。
⏹协议分析:语法,语义和同步
⏹语法:数据帧格式
⏹起始定界符=终止定界符:01111110;
⏹目的地址:(48):bbbbbb;
⏹源地址:(48):aaaaaa;
⏹控制字段:定义帧类型,实现差错控制和流量控制
⏹数据部分:46~1500字节
⏹语义:不同类型帧的含义
⏹10:无编号U帧, M=000:可靠(选择重发);M=001:不可靠;
M=010:请求释放; M = 011:无编号应答UA;
M=100 : 无编号信息帧(UI)
⏹11:为纯ACK应答帧,用于可靠通信;
⏹同步:事件发生顺序
⏹要求:(1)分可靠和不可靠,分别画出时序示意图;
(2)分可靠和不可靠,分别画出流程图(分发送方和接收方);
5、实现思路及伪代码描述
⏹发送方发送流程或伪代码
⏹// 通信阶段:如果采用可靠通信方式
⏹(4)从上层接收数据(从文件读取数据);//长度46-1500字节;
⏹(5)封装成编码信息I帧,把所有数据帧缓存在发送缓存队列;
⏹(6)初始化发送窗口大小:大小为4;
⏹(7)从发送窗口中每隔RTT/4时间发送一个数据帧,并启动重发定时器;
⏹(8)如果发送窗口中数据帧重发定时器未超时,收到应答,则从缓存中删除该数据帧,
窗口向前滑动,可以继续发送窗口内新的数据帧;
⏹(9)如果发送窗口内某帧重发定时器超时,应答未收到,则仅重发该数据帧;
⏹(10)如果某帧重发次数等于7次,通信结束,GOTO (12)
⏹(11)如果发送缓存队列中数据帧未发送完, GO TO (7)
⏹// 释放数据链路
⏹(12)释放发送队列,释放发送窗口;
⏹(13)发送释放链路请求;
⏹(14)接收到对方UA应答,说明通信结束。
⏹接收方接收流程或伪代码
⏹// 通信前准备:初始化
⏹(1)接收方初始化接收缓存队列;
⏹// 建立数据链路
⏹(2)接收到“发送请求”,设置通信方式:可靠或非可靠;
⏹(3)发送UA应答给发送方;
⏹// 通信阶段:不可靠通信方式
⏹(4)从下层接收数据帧,目的地址正确,存储在接收缓存队列,否则,丢弃;直到接
收完毕;
⏹(5)从接收队列中取出数据帧处理:长度检查(46~1500字节),校验检查,如果均正
确,去掉帧头和帧尾,把数据交付上层(写到接收文件);否则,丢弃该数据帧;
⏹(6)直到接收缓存队列中所有数据帧处理完毕;
⏹// 释放数据链路:不可靠通信
⏹(7)接收到对方发送的释放链路请求;
⏹(8)释放接收缓存队列;
⏹(9)发送UA应答给发送方,说明通信结束。
6、运行结果与分析
这是一个较为完善的协议,它实现了在数据链路层传输信息的基本功能,包括差错处理,控制等等。参考文献
百度百科:
/link?url=0yTcTLVXgva9lJlwNgjqTQ_7EJNGuETthPyRicrM9kV_blH7j7RTvoBK_95Q1FbE