计算机网络课设,计算校验和

合集下载

计算机网络课程设计内容及要求

计算机网络课程设计内容及要求

计算机网络课程设计内容及要求第一篇:计算机网络课程设计内容及要求《计算机网络课程设计》一、课程设计的目的计算机网络课程设计是专业实践环节之一,是学习完《计算机网络》课程后进行的一次全面的综合练习。

本课程设计的目的是引导学生将书本上抽象的概念与具体的实现技术相结合,使学生体会网络协议的设计与实现过程,以及专业技术人员所使用的基本方法和技巧,培养学生解决计算机网络问题的实际能力,掌握组建计算机网络的基本技术,提高学生的综合应用能力。

二、课程设计要求和内容课程设计要求:1、正确理解题意;2、具有良好的编程规范和适当的注释;3、有详细的文档,文档中应包括设计题目涉及的基础知识、设计思路、程序流程图、程序清单、开发中遇到的问题及解决方法、设计中待解决的问题及改进方向。

4、有一定的自学能力和独立分析问题、解决问题的能力。

包括学会自己分析解决问题的方法,对设计中遇到的问题,能通过独立思考、查阅工具书、参考文献,寻找解决方案。

评分标准:1.是否有正确的运行结果;2.是否有良好的编程规范和适当的注释; 3.文档是否完备。

课程设计内容即参考题目:(任选下列一题或自行另选设计题目):XX高校校园网网络规划与设计一、需求分析(1)用户规模500台计算机。

(2)用户大致平均分散在4栋楼房内,4栋楼房排成前后两排,楼房之间各相距200米,楼房高4层。

每栋楼的4楼用户构成两个VLAN。

(3)中心机房设在其中1栋楼房的1楼靠近另一栋楼房的一端。

(4)安装对外WWW、业务WWW、邮件、FTP、BBS、DNS、数据库七个服务器。

提供匿名服务,但FTP仅对内部开放。

(5)提供LAN、WLAN接入。

(6)在业务WWW服务器上配备基于Web的业务应用系统,所有用户使用业务系统实现网上办公。

(7)要求出口带宽为1Gbps。

二、设计要求(1)写出简要的可行性分析报告。

(2)设计网络结构,并给出解释。

(3)除用户计算机已购置外,其余全部设备和通信线路需要重新购买、安装。

IP数据包解析

IP数据包解析

计算机网络课程设计报告解析IP数据包2012年6月目录目录 (1)1、课程设计目的 (3)2、课程设计要求 (3)3、相关知识 (3)4、课程设计分析 (7)4.1 网卡设置 (7)4.2 使用套接字 (7)4.3 接收数据包 (8)4.4 定义IP头部的数据结构 (8)4.5 IP包的解析 (10)4.6 协议的定义 (10)4.7捕获处理 (10)5、运行结果 (10)6、总结 (12)7、课程设计参考资料 (12)8、源程序代码 (12)1、课程设计目的本课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。

2、课程设计要求本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。

程序的具体要求如下:1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile则代表记录结果的日志文件。

2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。

3)当程序接收到键盘输入Ctrl+C时退出。

3、相关知识互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族中处于核心地位,IP协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解,图1给出了IP协议的数据包格式.IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析.报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的.0 4 8 16 19 24 31图1 IP数据包的格式服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位服务类型(TOS)子域和3位优先级子域组成,1位为保留位,该字段结构如图2所示.B7 b6 b5 b4 b3 b2 b1 b0图2 服务类型字段结构优先级共有8种,优先级越高表明数据包越重要.表1中列出了各种优先级所代表的意义.表一优先子域的说明在4位服务类型子域中b4,b3,b2,b1分别表示D(延迟),T(吞吐量),R(可靠性)与C(成本).表2列出了服务器类型自域的构成.总长度字段为2B,它定义了以字节为单位的数据包的总长度.IP数据包的最大长度为65535B.标识字段的长度为16位,用于识别IP数据包的编号.每批数据都要有一个标识值,用于让目的主机判断新来的数据属于哪个分组.报头中的标志字段如图7-3所示.标志字段共3位,最高位是0.禁止分片标志DF(do not fragment)字段的值若为1,表示不能对数据包分片;若DF值为0,则表明可以分片.分片标志MF( more fragment)的值为1,表示接收到的不是最后一个分片;若MF值为0,表示接收到的是最后一个分片.片偏移字段共13位,说明分片在整个数据包中的相对位置.片偏移值是以8B为单位来记数的,因此选择的分片长度应该是8B的整数倍.生存时间(TTL)字段为8位,用来设置数据包在互联网络的传输过程的寿命,通常是用一个数据包可以经过的最多的路由器跳步数来限定的.协议字段为8位,表示使用此IP数据包的高层协议类型,常用的协议号如表3所示.表3 典型的协议号头校验和字段为16位,用于存放检查报头错误的校验码。

计算校验和的课程设计

计算校验和的课程设计

计算校验和的课程设计一、课程目标知识目标:1. 学生能够理解计算校验和的概念,掌握校验和的基本原理。

2. 学生能够掌握校验和的计算方法,并能够运用到实际数据验证中。

3. 学生能够解释校验和的作用,了解其在数据通信和信息安全中的应用。

技能目标:1. 学生能够运用所学知识,独立完成校验和的计算过程。

2. 学生能够运用校验和进行数据正确性的检测,并判断数据是否发生错误。

3. 学生能够运用校验和解决实际通信问题,提高数据传输的可靠性。

情感态度价值观目标:1. 学生通过学习计算校验和的过程,培养解决问题的能力和团队合作精神。

2. 学生能够认识到校验和在通信领域的重要性,增强对信息安全的意识。

3. 学生能够体会到学习计算校验和的价值,激发对计算机科学和通信技术的兴趣。

课程性质:本课程为信息技术课程,旨在帮助学生掌握计算校验和的方法,提高数据通信中的信息安全意识。

学生特点:六年级学生具备一定的计算机操作能力,对新鲜事物充满好奇心,善于合作与交流。

教学要求:结合学生特点,通过实例讲解和动手实践,使学生在掌握计算校验和的基础上,提高实际应用能力。

在教学过程中,注重培养学生的学习兴趣和团队协作能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 引入校验和概念:通过讲解数据通信中的错误检测需求,引入校验和的定义和作用。

相关教材章节:第一章第二节“数据的可靠传输”。

2. 校验和原理:阐述校验和的基本原理,包括校验和的计算方法和实现过程。

相关教材章节:第二章第一节“校验和原理”。

3. 校验和的计算方法:详细讲解常用的校验和计算方法,如循环冗余校验(CRC)等。

相关教材章节:第二章第二节“校验和的计算方法”。

4. 实际应用案例:分析校验和在数据通信、网络通信等领域的具体应用案例。

相关教材章节:第三章“校验和的应用”。

5. 动手实践:指导学生进行校验和计算的实际操作,巩固所学知识。

实践内容:使用计算工具或编程语言实现校验和的计算。

计算机网络课后习题答案(第五章)

计算机网络课后习题答案(第五章)

答:可能,但应用程序中必须额外提供与TCP相同的功能。

5—08为什么说UDP是面向报文的,而TCP是面向字节流的?答:发送方UDP 对应用程序交下来的报文,在添加首部后就向下交付IP 层。

UDP 对应用层交下来的报文,既不合并,也不拆分,而是保存这些报文的边界。

接收方UDP 对IP 层交上来的UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。

发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流〔无边界约束,课分拆/合并〕,但维持各字节5—09端口的作用是什么?为什么端口要划分为三种?答:端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。

熟知端口,数值一般为0~1023.标记常规的效劳进程;1024~491515—10试说明运输层中伪首部的作用。

答:用于计算运输层数据报校验和。

5—11某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP 数据报。

既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?答:不可跳过UDP而直接交给IP层IP数据报IP报承当主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程。

UDP提供对应用进程的复用和分用功能,以及提供对数据差分的过失检验。

5—12一个应用程序用UDP,到IP层把数据报在划分为4个数据报片发送出去,结果前两个数据报片丧失,后两个到达目的站。

过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。

结果这次前两个到达目的站而后两个丧失。

试问:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中。

答:不行重传时,IP数据报的标识字段会有另一个标识符。

仅当标识符相同的IP数据报片才能组装成一个IP数据报。

前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。

tcpip网络与协议课后习题答案

tcpip网络与协议课后习题答案

tcpip网络与协议课后习题答案【篇一:《网络协议分析》习题答案】考给出更好的答案。

第一章1. 讨论tcp/ip成功地得到推广和应用的原因tcp/ip是最早出现的互联网协议,它的成功得益于顺应了社会的需求;darpa采用开放策略推广tcp/ip,鼓励厂商、大学开发tcp/ip产品;tcp/ip与流行的unix系统结合是其成功的主要源泉;相对iso的osi模型,tcp/ip更加精简实用;tcp/ip技术来自于实践,并在实践中不断改进。

2. 讨论网络协议分层的优缺点优点:简化问题,分而治之,有利于升级更新;缺点:各层之间相互独立,都要对数据进行分别处理;每层处理完毕都要加一个头结构,增加了通信数据量。

3. 列出tcp/ip参考模型中各层间的接口数据单元(idu)应用层/传输层:应用层报文;传输层/ip层:tcp报文段或udp分组;ip层/网络接口层:ip数据报;网络接口层/底层物理网络:帧。

4. tcp/ip在哪个协议层次上将不同的网络进行互联?ip层。

5. 了解一些进行协议分析的辅助工具可在互联网上搜索获取适用于不同操作系统工具,比如sniffer pro、wireshark以及tcpdump等。

利用这些工具,可以截获网络中的各种协议报文,并进一步分析协议的流程、报文格式等。

6. 麻省理工学院的david clark是众多rfc的设计者,在论及tcp/ip标准的形成及效果时,曾经讲过这样一段话:”we reject kings, presidents and voting. we believe in rough consensus and running code.” 你对他的观点有什么评价。

智者见智,我认为这就是“实践是检验真理的唯一标准”。

7. 你认为一个路由器最基本的功能应该包含哪些?对于网桥、网关、路由器等设备的分界已经逐渐模糊。

现代路由器通常具有不同类型的接口模块并具有模块可扩展性,由此可以连接不同的物理网络;路由表的维护、更新以及ip数据报的选路转发等,都是路由器的基本功能。

计算机网络课后答案第三章

计算机网络课后答案第三章

第三章 数据链路层习题3-02 数据链路层中的链路控制包括哪些功能?答:数据链路层中的链路控制功能有:(1)链路管理。

(2)帧定界。

(3)流量控制。

(4)差错控制。

(5)将数据和控制信息区分开。

(6)透明传输。

(7)寻址。

习题3-03考察停止等待协议算法。

在接收结点,当执行步骤(4)时,若将“否则转到(7)”改为“否则转到(8)”,将产生什么结果?答:“否则”是指发送方发送的帧的N (S )和接收方的状态变量V (R )不同。

表明发送方没有收到接收方发出的ACK ,于是重传上次的帧。

若“转到(8)”,则接收方要发送NAK 。

发送方继续重传上次的帧,一直这样下去。

习题3-06 信道速率为4kb/s 。

采用停止等待协议。

传播时延ms t p 20=,确认帧长度和处理时间均可忽略。

问帧长为多少才能使信道利用率达到至少50%。

解:根据下图所示停等协议中的时间关系:在确认帧长度和处理时间均可忽略的情况下,要使信道利用率达到至少50%必须使数据帧的发送时间等于2倍的单程传播时延。

即:p f t t 2= 已知:C l t f f =,其中C 为信道容量,或信道速率。

f l 为帧长(以比特为单位)。

所以得帧长16004.040002=⨯=⨯≥⨯=p f f t C t C l bit习题3-09试证明:当用n 个比特进行编号时,若接收窗口的大小为1,则只有在发送窗口的大小WT ≤2n-1时,连续ARQ 协议才能正确运行。

答:(1)显然 WT 内不可能有重复编号的帧,所以WT ≤2n 。

设WT=2n ;(2)注意以下情况:发送窗口:只有当收到对一个帧的确认,才会向前滑动一个帧的位置;接收窗口:只有收到一个序号正确的帧,才会向前滑动一个帧的位置,且同时向发送端发送对该帧的确认。

显然只有接收窗口向前滑动时,发送端口才有可能向前滑动。

发送端若没有收到该确认,发送窗口就不能滑动。

(3)为讨论方便,取n=3。

并考虑当接收窗口位于0时,发送窗口的两个极端状态。

计算ip校验和课程设计

计算ip校验和课程设计

计算ip校验和课程设计一、课程目标知识目标:1. 学生能理解IP校验和的概念,掌握其基本计算方法;2. 学生能了解IP校验和在网络通信中的作用及其重要性;3. 学生掌握计算机网络基础知识和IP地址的基本概念。

技能目标:1. 学生能运用所学知识,独立完成IP校验和的计算;2. 学生能通过实际案例分析,发现并解决IP校验和计算过程中的问题;3. 学生能运用所学知识,解释网络通信中IP校验和的作用。

情感态度价值观目标:1. 培养学生对计算机网络知识的兴趣,提高学习积极性;2. 培养学生严谨、细心的学习态度,提高问题解决能力;3. 增强学生的团队协作意识,提高沟通能力。

课程性质:本课程为计算机网络基础知识的应用课程,旨在让学生掌握IP校验和的计算方法,理解其在网络通信中的作用。

学生特点:学生已具备一定的计算机网络基础,具有一定的逻辑思维能力和问题解决能力。

教学要求:结合学生特点,以实际案例为引导,注重理论与实践相结合,培养学生的实际操作能力和问题解决能力。

通过分解课程目标,使学生在掌握知识的同时,提高技能和情感态度价值观。

后续教学设计和评估将以此为基础,确保课程目标的实现。

二、教学内容1. 引言:回顾计算机网络基础知识,介绍IP校验和在网络通信中的重要性。

2. IP校验和概念:讲解IP校验和的定义、作用及其计算原理。

- 教材章节:第三章 计算机网络基础,第五节 网络层协议。

3. IP校验和计算方法:- 步骤分解:将IP数据报文分为多个16位的段,对每个段进行求和,然后取反码得到校验和;- 实例演示:通过具体案例分析,展示IP校验和的计算过程。

- 教材章节:第三章 计算机网络基础,第五节 网络层协议。

4. IP校验和实际应用:- 分析网络通信中IP校验和的作用,如数据完整性验证、错误检测等;- 举例说明IP校验和在实际通信中的应用场景。

5. 课堂实践:- 安排学生进行IP校验和的计算实践,巩固所学知识;- 引导学生通过分组讨论、互相检查,提高问题解决能力。

发现网络中的活动主机--计算机网络课程设计

发现网络中的活动主机--计算机网络课程设计

计算机网络课程设计一、设计内容及设计要求1.1课程设计内容:利用ICMP数据包,通过使用ICMP的回送和回送响应消息来确定当前网络中处于活动状态的主机,即ping消息的请求和应答,将发送的ICMP的数据包类型设置为回送请求(类型号为8),并显示在标准输出上。

用命令行形式运行:scanhost Start_IP End_IP,其中scanhost 为程序名;Start_IP为被搜索网段的开始IP;End_IP为被搜索网段的结束IP地址。

1.2课程设计目的:IP协议的优点是简单,但缺少差错控制和查询机制,而网际控制报文协议(ICMP具有补充IP功能的作用。

在网络管理中,常常要确定当前网络在红处于活动状态的主机,这时可以通过ICMP的回送和回送响应消息来完成这项工作。

这课程设计的目的就是编制程序,利用ICMP数据包,发现网络中的活动主机,即ping消息的请求和应答。

通过课程设计,熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识,培养综合运用网络知识解决实际问题能力。

1.3课程设计要求:设计程序,其功能是发送ICMP数据包,以获取指定望段中的活动主机,并将结果显示在标准输出设备上程序的具体要求如下:1.用命令形式运行scanhost为程序名;start_ip为被搜索网段;end_ip为被搜索网段的结束IP地址。

如在命令行输入scanhost 192.168.0.1 192.168.0.1002.输出格式活动主机1的IP地址活动主机2的IP地址活动主机n的IP地址二、总体设计2.1设计原理首先对ICMP报文的格式有一定的了解,ICMP报文是在IP数据报内部传输的,其结构如图所示:ICMP报文的格式如图所示:0 7 8 15 16 31(位)所有报文的前4个字节都是一样的,但是其它字节则互不相同。

其中类型字段可以有15个不同的值,以描述特定类型的ICMP报文,某些ICMP报文还使用代码字段的值来进一步描述不用的条件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
摘要
1 课程设计目的 (1)
2 课程设计要求 (1)
1 课程设计目的
校验和是用于验证数据传输正确性的一种方法。

在网络体系结构的各层协议中,
很多网络协议都利用校验和来实现差错控制功能。

本课程设计主要目的是通过完
成一个简单例子,了解网络协议中的校验和计算过程。

2 课程设计要求
1
1
2
1)交换性和结合性
因为校验和主要考虑被校验数据中所包含字节的数量是奇数还是偶数,所以校验和的计算可
以以任意顺序进行,甚至可以把数据进行分组后再计算。

例如,用A,B,C,D,……,Y,Z分别表示一系列八位组,用[a,b]这样的字节来表示a*256+b的整数,那么16位校验和就可以通过以下形式给出:
[A,B]+’[C,D]+’……+’[Y,Z] [1]
[A,B]+’[C,D]+’……+’[Z,0] [2]
在这里+’代表1补数加法,即将前面的16位校验和和按位取反。

[1]可以以
[A,B]+’[C,D]+’……+’[J,0]+’([0,K]+’……+’[Y,Z]) [3] 的形式进行计算。

2)字节顺序的自主性
打破被校验数据中的字节顺序仍可以计算正确的16位校验和。

例如,我们交换字节组中两字节的顺序,得到
[B,A]+’[D,C]+’……+’[Z,Y]
所得到的结构与[1]式是相同的(当然结果也是要进行一次反转的)。

为什么会是这样呢?我们发现两种顺序获得的进位是相同的,都是从第15位到第0位进位以及从第7位到第8位进位。

这也就是说,交换字节位置只是改变高低位字节的排列顺序但并没有改变他们的内在联系。

因此无论底层的硬件设置中对字节的接收顺序如何,校验和都可以被准确地校验出来。

例如,假设校验和是以主机序(高位字节在前低位字节在后)计算的数据帧,但以网络序(低位字节在前高位字节在后)存放在内存中。

每一个16位的字中的字节在传送过程中都交换了顺序,在计算校验和之后仍会先交换位置再存入
3

这些改
3
1
2
3
和,这样就可以省去一次数据移动的过程,从而提高校验和的计算速度。

4课程设计分析
校验和的计算过程主要分为三个步骤:数据文件的输入、校验和的计算和校验结果的输出。

其中,
主要的是输入和校验和的计算。

⒈数据输入的方式
输入数据可能是由字符型式存储的,而校验和的计算则要采取数据形式,所以在文件读取数据时,都要进行字符到数据的相互转换。

⑴将读入的ASCII码转化为相应的整型变量。

if(ch>=’0’&&ch<=’9’)
ch-=’0’;
else
{
If( ch>=’a’&&ch<=’f’)
}
{
{
}
⒊程序流程图


cout << "请输入数据" << endl;
string in, out;
cin >> in;
int ans = 0, p = 0;
sum(ans, p, in);
ans = 65535 - ans;//计算校验和,取反码
cout << "校验和为" << ans << endl;
//将数据输出到文件
fstream file("g://file.txt", std::ios::binary|std::ios::out);
if (!file)
{
cout << "打开文件失败" << endl;
return;
}
file << in << endl<<ans;
file.close();
}
/*****************接收端*************************/
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::fstream;
int cal(int &ans, int& p, string str);
void main()
{
string in;
int check;
fstream file("g://file.txt", std::ios::binary | std::ios::in);
if (!file)
{
cout << "打开文件失败" << endl;
}
int cal(int &ans, int& p, string str)
{
int deal;
int temp1, temp2;
if (p == str.size())//如果该次递归没有字符
{
return ans;
}
temp1 = str[++p];
temp1 = temp1 << 7;
if (p == str.size())//如果该次递归只有一个字符{
ans += temp1;
return ans;
}
temp2 = str[++p];
deal = temp1 + temp2;
ans += deal;
if (ans > 65536)//如果发生进位,则溢位
ans -= 65536;
return cal(ans, p, str);
}
6运行结果与分析
发送端:
输入数据
图6-1
将输入的数据存入文件
图6-2
图6-3
接收端:
输出数据
图6-4
图6-5 数据丢失
图6-6
7参考文献
[1]谢希仁编著. 计算机网络(第5版).北京:电子工业出版社,2008
[2]吴宜功吴英编著. 计算机网络课程设计(第2版). 北京: 机械工业出版社,2012。

相关文档
最新文档