题目:
数据链路层网络通信协议计
姓名: 周小多
学号:2013302513
班号: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)
⏹
⏹
⏹
⏹
⏹
⏹ 接收方接收流程或伪代码
⏹ // 通信前准备:初始化
⏹ (1)接收方初始化接收缓存队列;
⏹ // 建立数据链路
⏹ (2)接收到“发送请求”,设置通信方式:可靠或非可靠;
⏹ (3)发送UA 应答给发送方;
⏹ // 通信阶段:不可靠通信方式
⏹ (4)从下层接收数据帧,目的地址正确,存储在接收缓存队列,否则,丢弃;直到接收完毕;
⏹ (5)从接收队列中取出数据帧处理:长度检查(46~1500字节),校验检查,如果均正确,去掉帧头和帧尾,把数据交付上层(写到接收文件);否则,丢弃该数据帧; ⏹ (6)直到接收缓存队列中所有数据帧处理完毕;
⏹ // 释放数据链路:不可靠通信
⏹ (7)接收到对方发送的释放链路请求;
⏹ (8)释放接收缓存队列;
⏹ (9)发送UA 应答给发送方,说明通信结束。 (11)如果发送缓存队列中数据帧未发送完, GO TO (7) // 释放数据链路 (12)释放发送队列,释放发送窗口; (13)发送释放链路请求; (14)接收到对方UA 应答,说明通信结束。
6、运行结果与分析
这是一个较为完善的协议,它实现了在数据链路层传输信息的基本功能,包括差错处理,控制等等。 参考文献
百度百科:http://baike.baidu.com/link?url=0yTcTLVXgva9lJlwNgjqTQ_7EJNGuETthPyRicrM9kV_blH7j7RTvoBK_95Q1FbE
题目:
数据链路层网络通信协议计
姓名: 周小多
学号:2013302513
班号: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)
⏹
⏹
⏹
⏹
⏹
⏹ 接收方接收流程或伪代码
⏹ // 通信前准备:初始化
⏹ (1)接收方初始化接收缓存队列;
⏹ // 建立数据链路
⏹ (2)接收到“发送请求”,设置通信方式:可靠或非可靠;
⏹ (3)发送UA 应答给发送方;
⏹ // 通信阶段:不可靠通信方式
⏹ (4)从下层接收数据帧,目的地址正确,存储在接收缓存队列,否则,丢弃;直到接收完毕;
⏹ (5)从接收队列中取出数据帧处理:长度检查(46~1500字节),校验检查,如果均正确,去掉帧头和帧尾,把数据交付上层(写到接收文件);否则,丢弃该数据帧; ⏹ (6)直到接收缓存队列中所有数据帧处理完毕;
⏹ // 释放数据链路:不可靠通信
⏹ (7)接收到对方发送的释放链路请求;
⏹ (8)释放接收缓存队列;
⏹ (9)发送UA 应答给发送方,说明通信结束。 (11)如果发送缓存队列中数据帧未发送完, GO TO (7) // 释放数据链路 (12)释放发送队列,释放发送窗口; (13)发送释放链路请求; (14)接收到对方UA 应答,说明通信结束。
6、运行结果与分析
这是一个较为完善的协议,它实现了在数据链路层传输信息的基本功能,包括差错处理,控制等等。 参考文献
百度百科:http://baike.baidu.com/link?url=0yTcTLVXgva9lJlwNgjqTQ_7EJNGuETthPyRicrM9kV_blH7j7RTvoBK_95Q1FbE