计算机网络基础课程设计方案_第1页
计算机网络基础课程设计方案_第2页
计算机网络基础课程设计方案_第3页
计算机网络基础课程设计方案_第4页
计算机网络基础课程设计方案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、叱注中称本上摩信息技术学院计算机网络基础课程设计方案目录课程设11说明错误!未定义书签。课程设方t选题错误!未定义书签。1. CRC算法模拟 错误!未定义书签。2. 零比特填充模拟 错误!未定义书签。3. 曼彻斯特编码模拟错误!未定义书签。4. 截断二进制指数退避算法 错误!未定义书签。5. 透明网桥自学习与转发帧算法模拟 错误!未定义书签。6. IP分片模拟 错误!未定义书签。7. IP首部检验和算法模拟 错误!未定义书签。8. IPv4数据报封装模拟 错误!未定义书签。9. 使用子网时IP分组转发模拟 错误!未定义书签。10. 距离向量算法模拟 错误!未定义书签。11. UDP检验和算法模

2、拟 错误!未定义书签。12. 利用滑动窗口实现流量控制模拟 错误!未定义书签。13. 慢开始、拥塞避免算法模拟 错误!未定义书签。课程设at示例错误!未定义书签。14. 节填充法解决透明传输模拟 错误!未定义书签。课程设计选题1 . CRC算法模拟【分值】20分【页码】P68-69【描述】待传送的一组数据 M以二进制字符存储在文件中,生成多项式P以二进制字符存储文件中。编写CRC算法,计算冗余码 R并输出到output文件中。【提示】a、模2加减可以采用按位异或运算的方法计算。【举例】2 .零比特填充模拟【分值】10分【页码】P74【描述】待传送的原始数据以二进制字符存储在文件中,内含若干5个

3、连续1的子串、6个连续1的子串。编写零比特填充算法,并将结果保存至文件;并且编写算法还原数据,结果保存 至文件。【提示】a、原始数据只要包含 5个连续1的子串、6个连续1的子串即可,内容任意。【举例】3 .曼彻斯特编码模拟【分值】10分【页码】P80【描述】待传送的原始数据以二进制字符存储在文件中。编写曼彻斯特编码模拟算法,将编码的结果保证至;并且编写从电压高低到二进制数据的解码算法,结果保存至。【提示】a、用字符“ HL”代表电压“前高后低”,表示码元1;用字符“ LH”代表电压“前低后 高”,表示码元0。【举例】11LHHLHLHLLHHLHLLHLHLH114 .截断二进制指数退避算法【

4、分值】10分【页码】P82【描述】重传次数存储在文件中。编写截断二进制指数退避算法,计算得到的重传推迟时间存入 文件。【提示】a、以太网争用期为科s,最多重传次数为16这些可预定义为常量。b、若重传已经超过16次,则将重传推迟时间设置为 -1 s,表示应丢弃该帧。 【举例】0 (说明:或,随机选择;此括号内信息不是输出内容)5 .透明网桥自学习与转发帧算法模拟【分值】20分【页码】P94-96【描述】网络拓扑由文件给出, 数据帧发送事件由文件给出。网桥初始转发表为空。 试编写透明网桥自学习与转发帧算法, 将网桥处理完每一发送事件后的网桥帧转发策略和当前转发表输 出到文件。【提示】a、为简单起见

5、,可以仅考虑单个两端口的网桥。b、文件的每行包括“主机”、“连接的网桥端口号” 等拓扑信息,主机用字母(除字母"Z”) 编号,网络端口用数字编号。c、文件的每行给出“源主机”、“目的主机”等信息,其中用目的主机为“ Z”表示广播 帧。d、网桥帧转发策略的可能结果有“丢弃”、“向端口 x转发“、”泛洪e、一行中的多个字段自行决定分隔符,比如空格或制表符等。【举例】ADBACZBC事件1: A to D;网桥帧转发策略:泛洪;转发表:A 1事件2: B to A ;网桥帧转发策略:丢弃;转发表:A 1B 1事件3: C to Z;网桥帧转发策略:泛洪;转发表:A 1B 1C 2事件4:

6、B to C;网桥帧转发策略:向端口 2转发;转发表:A 1B 1C 26 . IP分片模拟【分值】10分【页码】P123-124【描述】IP数据包原始长度、分片最大长度存储在文件中。编写一算法计算分片结果,将每 分片的总长度、MF、DF、片偏移存入。【提示】a、设该IP首部无选项,IP固定首部长度为20字节。b、一行中的多个字段自行决定分隔符,比如空格或制表符等。【举例】(注:两字段分别是IP数据包原始长度、分片最大长度)3820 1420:(注:每行信息分别是分片总长度、MF、DF、片偏移)14201001420101751020003507 .IP首部检验和算法模拟【分值】10分【页码】

7、P125【描述】20个字节的某IP首部以十六进制字符存储在文件中一一每行8个字符(即4个字节),其中首部检验和字段为 0。编写IP首部检验和算法,检验和计算结果以 4个十六进制字符形 式存入。【提示】a、首部检验和的计算涉及每个字 (16位)间的反码算术运算求和一一计算规则见课本P125的脚注。b、一行中的多个字段自行决定分隔符,比如空格或制表符等。 【举例】45 00 00 864C 37 40 007F 06 00 00C0 A8 42 D4C0 A8 63 CB87 4A8 .IPv4数据报封装模拟【分值】20分【页码】P122-125【描述】文件的第一行以点分十进制给出了某IP数据报的

8、源IP地址、第二行以点分十进制给出了目的IP地址,第三行给出了待封装的TCP数据报长度。整个TCP数据报的数据用字母“A”代替(ASCII为0x41 )。定义IP数据报固定首部数据结构,并编写封装算法,结果以每行8个的十六进制字符(即4个字节)存入文件。【提示】a、IP数据报首部的“区分服务字段填 0、标识字段可随意设置、生存时间可随意设置 (比如127),不考虑可选字段。b、可以不考虑IP分片的问题,但应实现首部检验和的计算。c、点分十进制地址到二进制地址的转换可以使用Winsock API (名词解释参见,头文件为<>)中的inet_addr函数,其函数原型如下:unsigne

9、d long inet_addr(const char* cp)入口参数cp:点分十进制形式的IP地址返回值: 网络字节顺序的IP地址,是无符号的长整数d、一行中的多个字段自行决定分隔符,比如空格或制表符等。【举例】45 00 00 5003 70 40 007F 06 D0 66C0 A8 42 B5C0 A8 63 CB41 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41 41 4141 41

10、 41 4141 41 41 4141 41 41 419 .使用子网时IP分组转发模拟【分值】20分【页码】P133-135【描述】文件给出了某路由器的路由表, 文件由若干行组成, 每行给出了目的网络地址、 子网掩 码、下一跳地址等信息(地址均以点分十进制表示);文件给出了该路由器收到的一系列IP数据报点分十进制表示的目的 IP地址。编写使用子网时IP分组转发算法,将每一个IP数据 报的处理结果输出到文件。【提示】a、点分十进制地址到二进制地址的转换可以使用Winsock API中的inet_addr函数。b、一行中的多个字段自行决定分隔符,比如空格或制表符等。 【举例】:(注:每行包括目的

11、网络地址、子网掩码、下一跳地址等信息;最后一行给出了默认路由)Interface。Interface1Router20.0.0.0Router3(注:每行包括目的IP地址、处理结果)Interface。Interface1Router2Router310 .距离向量算法模拟【分值】20分【页码】P148-149【描述】文件给出了某路由器 Rx的当前路由表信息,文件由若干行组成,第一行为路由器名,后续每行给出了目的网络(以网络名称表示)、距离、下一跳路由器等信息;文件给出了路由器Rx刚接收到的来自相邻路由器Ry的RIP路由更新信息,文件由若干行组成,第一行为路由器名,后续每行给出了目的网络、距离

12、、下一跳路由器等信息。编写距离向量更新算法,将路由器Rx更新后的路由表写入。【提示】a、可参照课本 P149例4-5,以网络名称表示目的网络、以路由器名称或“直接交付”给 出下一跳路由器信息。b、一行中的多个字段自行决定分隔符,比如空格或制表符等。【举例】R6Net2 3 R4Net3 4 R5R4Net1 3 R1Net2 4 R2Net3 1直接交付R6Net1 4 R4Net2 5 R4Net3 2 R411 . UDP检验和算法模拟【分值】10分【页码】P185-187【描述】文件的第一、二行分别以点分十进制给出某即将传输的UDP数据报的源IP地址和目的IP地址,后续每行8个十六进制字

13、符(即 4个字节)给出整个 UDP数据报的数据(其中检 验和字段为0,最后一行可能少于 4个字节)。编写UDP检验和算法,检验和计算结果以4个十六进制字符形式存入。【提示】a、点分十进制地址到二进制地址的转换可以使用Winsock API中的inet_addr函数。b、UDP的检验和计算包括伪首部、UDP首部和UDP数据部分,其中数据部分字节数为奇数时需在末尾填入一个全零字节参与计算。c、一行中的多个字段自行决定分隔符,比如空格或制表符等。【举例】69 1212 .利用滑动窗口实现流量控制模拟【分值】20分【页码】P203-204【描述】文件的第一行给出主机 A发送给主机B的TCP报文段的大小

14、(单位:字节),第二行 给出了主机A发送的起始序号 seq,第三行给出了主机 B设置的初始接收窗口 rwnd的大小 (单位:字节),后续若干行描述了报文段传输事件一一每行的第一个字段是方向(“A->B ”或“B->A”),若方向为“ A->B”则该行后续字段包括标志(“新发”或“重发”)、结果(“成 功”或“丢失”),若方向为“ A->B”则该行后续字段为新的接收窗口rwnd。编写利用滑动窗口实现流量控制模拟算法,将处理结果写入一一每行为一次传输事件的信息,包括方向、 序号(若方向为“ A->B”则为发送序号 seq,若方向为“ B->A ”则为确认序号 a

15、ck)、A主 机实际还可发送的字节数(即减去已发字节数)、A主机实际还可发送的序号范围(若前一字段为0则不写此项)。【提示】a、设置两全局变量分别记录发送序号seq和确认序号ack,在处理每一事件时及时更新 seq、ack的值。b、确认序号ack是期望收到对方下一个报文段的第一个数据字节的序号。c、设置一数组记录传输丢失的报文段序号,以便重传。d、若一行有多个字段,自行决定分隔符,比如空格或制表符等。【举例】1001400A->B新发成功A->B新发成功A->B新发丢失B->A 300A->B新发成功A->B新发成功A->B重发成功B->A 10

16、0A->B新发成功B->A 0A->B seq=1300 101-400A->B seq=101200 201-400A->B seq=201100 301-400B->A ack=201200 301-500A->B seq=301100 401-500A->B seq=4010A->B seq=201 0B->A ack=501 100 501-600A->B seq=501 0B->A ack=601 013 .慢开始、拥塞避免算法模拟【分值】20分【页码】P208-210【描述】文件给出了慢开始门限 ssthres

17、h状态变量的初始值;文件给出了若干个出现网络拥塞的 传输轮次(取值在 1-30之间)。编写慢开始、拥塞避免模拟算法,计算并输出前30个传输轮次的拥塞窗口 cwnd等信息,结果存入每行包含轮次、cwnd、ssthresh现用算法等信息。【提示】a、此模拟中的窗口单位不使用字节而使用报文段的个数。b、拥塞窗口 cwnd的初值为1,即第1传输轮次允许传输一个报文段,传输成功后cwnd即按照指数规律增长为 2。c、若一行有多个字段,自行决定分隔符,比如空格或制表符等。 【举例】1612 231216慢开始2 416慢开始3 816慢开始4 1616拥塞避免5 1716拥塞避免6 1816拥塞避免7 1

18、916拥塞避免8 2016拥塞避免9 2116拥塞避免1022 16 拥塞避免1123 16 拥塞避免1224 16 拥塞避免13112慢开始14212 慢开始15412 慢开始16812 慢开始1712 12 拥塞避免1813 12 拥塞避免1914 12 拥塞避免2015 12 拥塞避免211612拥塞避免221712拥塞避免231812拥塞避免2419慢开始2529慢开始2649慢开始2789慢开始2899拥塞避免29109拥塞避免30119拥塞避免课程设计示例1.字节填充法解决透明传输模拟【分值】10分【页码】P67【描述】待传送的原始数据以十六进制字符存储在文件中,内含 SOH (0

19、x01)、EOT (0x04)、 ESC (0x1B)等字符。编写字节填充算法,并将结果保存至文件;并且编写算法还原数据, 结果保存至文件。【提示】a、原始数据只要包含 3种特殊字符即可,内容任意。b、存储原始数据的文件中只可能出现十六进制字符,且长度为偶数。【举例】AC00013c5604201B76AC001B013C561B04201B1B76AC00013c5604201B76【程序清单】01 #include ""0203 typedef int status;04 #define TRUE 105 #define FALSE 00607 #define MAX_

20、BUF_LEN 15000809 #define SOH 0x0110 #define EOT 0x0411 #define ESC 0x1B1213 typedef struct StuffingString14 15 unsigned char bufMAX_BUF_LEN;16 unsigned int len;17 * PStuffingString;1819 status byte_stuffing(PStuffingString psin, PStuffingString psf)20 21 unsigned int i=0;22 psf->len = 0;232425262

21、7282930313233343536373839404142434445464748495051525354555657585960616263646566while ( i<psin->len ) if ( psin->bufi = SOH | psin->bufi = EOT | psin->bufi = ESC ) psf->bufpsf->len+ = ESC;psf->bufpsf->len+ = psin->bufi+;return TRUE;status byte_unstuffing(PStuffingString

22、psf, PStuffingString psd)unsigned int i=0;psd->len = 0;while ( i<psf->len )if ( psf->bufi = ESC )i+;if ( psf->bufi != SOH && psf->bufi != EOT && psf->bufi != ESC ) return FALSE;psd->bufpsd->len+ = psf->bufi+;return TRUE;status input(char f, PStuffingString psin)FILE * fp;psin->len = 0;if (fp = fopen(f, "r") = NULL)return FALSE;while ( fscanf(fp, "%2X”,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论