计算机网络设计与安全技术 课件7 网络协议校验与传输程序设计_第1页
计算机网络设计与安全技术 课件7 网络协议校验与传输程序设计_第2页
计算机网络设计与安全技术 课件7 网络协议校验与传输程序设计_第3页
计算机网络设计与安全技术 课件7 网络协议校验与传输程序设计_第4页
计算机网络设计与安全技术 课件7 网络协议校验与传输程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

《计算机网络设计与安全技术》第7章

网络协议校验与传输程序设计1学习内容:(1)IP地址的合法性检验;(2)IP协议包分析;(3)IP协议的首部校验和计算;(4)UDP协议报文封装程序设计;(5)TCP协议报文封装程序设计。学习目标:(1)熟练掌握IP地址划分要点,能够通过编程检验IP地址的合法性;(2)深入理解IP协议的数据格式,并能够编程构造IP分组;(3)通过编程,能够设计和实现IP协议包的首部校验和计算功能。(4)通过编程,能够设计和实现TCP和UDP协议包的校验和计算和报文发送功能。27.1IP地址的合法性检验37.1.1

IP地址的标准划分4特殊IP地址网络号主机号源地址目的地址含

义00可用不可用即,指在本网络上的本主机0host-id可用不可用在本网络上的某个主机host-id,如A类地址、B类地址4、C类地址1全1全1不可用可用即55,受限广播,只在本网络上进行广播,各路由器都不转发net-id全1不可用可用直接广播:对网络号net-id上的所有主机进行广播,如A类地址55、B类地址55、C类地址55127任意数可用可用回送测试:用于网络软件测试和本地进程间通信,如5专用地址IP地址类前缀专用地址范围地址总数A10/8~55224B172.16/12~55220C192.168/16~5521667.1.2子网与超网编址方法(1)子网划分

在划分子网的情况下,路由表包含3项内容:目的网络地址、子网掩码和下一跳地址。在选择路由时,使用表项中的子网掩码和目的IP地址操作,将其结果与表项中的目的网络地址相比较。若相等,表明匹配,则把数据报转发到该表项的下一跳地址。否则,执行默认路由等操作。(2)超网分类法CIDR

CIDR将32位的IP地址划分为前缀和后缀两部分,分别表示网络和主机两部分。两者的长度是灵活可变的。CIDR采用斜线标记法,即在IP地址后面加上斜线,再写上前缀所占的位数。例如,IP地址8/20,表示前缀占20位,主机号占12位。77.1.3IP地址检验的程序设计方法

以下只针对IPv4标准。1)IP地址的合法性检验

标准划分的IP地址,占用4个字节。其写法是字符串格式,由3个点号分隔,每部分都是1个字节,最大是255,最小是0。因此,编程时,应先将IP地址分隔成4个部分,然后分别测试其所属范围,看是否属于[0,255]。2)IP类型检验

若要判断IP地址是否属于标准分类,即A、B、C、D和E,则需要参照图7.1给出的范围,比对即可。表7.1和表7.2内的IP地址,也很方便比较范围。3)IP所属子网检验

首先,要判断IP地址、子网号和子网掩码的合法性。

为了判断某一IP地址是否属于某一子网,只需将二进制IP地址与子网掩码按位进行“与”运算。若运算结果与给定子网地址一致,则确定该IP地址属于给定的子网。87.2

IP协议包分析IPv4数据报的结构常用的网络协议协议字段值123468178889协议名ICMPIGMPGGPIPTCPEGPUDPIGRPOSPF97.3

IP协议的首部校验和计算7.3.1设计需求示例针对IP协议包结构,2人一组,共同设计良好的人机界面,并实现首部校验和的计算程序。功能包括:(1)

在界面上,用户能够输入或编辑IP协议包各字段数据,例如,“协议”字段应该是下拉选择方式;(2)

程序能够自动检查IP地址的合法性,且主机可用;(3)

能够自动计算首部校验和的值,并显示计算结果;必须验证程序的正确性:基于Wireshark工具所抓取的真实IP包首部数据,能够成功检验首部校验和字段的计算程序。例如,以下是发出ping命令之后,捕获ICMP包的IP首部信息,可用用来检验“首部校验和”字段的计算结果。10IP首部校验和计算程序界面设计示例11为了检验程序的有效性,所测数据来源于网络抓包结果。采用Wireshark网络协议分析工具,捕获FTP网络服务的数据包,可以观察到IP首部的全部信息,比如标志字段值为0×02,表示不能分片;协议字段值为0×06,属于TCP协议;检验和字段值为0×84fc。可见,程序计算的校验和也是0×84fc,与网络数据包中的相同。127.3.2首部校验和计算程序设计(1)程序设计思路重点有以下两个方面:一要考虑收、发双方的界面设计和测试效果展示;二要分清楚IP首部的固定部分和变化部分。固定部分包括:版本、服务类型、协议,版本仅指IPv4,而服务类型是从表7.3和表7.4查询得到,可以设计为下拉列表方式。协议字段值参照表7.5,也应该设计为下拉列表方式,供用户选择。变化部分很多,具体有:①报头长度和选项字段的关系:如果无选项内容,则报头长度是固定的20字节;否则,还应加上选项和填充字段部分。②总长度及其分片信息影响了标识、标志和片偏移的值。输入不同的总长度和MTU值,就会产生不同的分片结果。对于具体的一个分片,就会得到相应的标识、标志和片偏移的值。这是界面操作和程序设计必须考虑的内容。③生存时间:可以输入。④源IP地址和目的IP地址:可以输入。13(2)IP首部校验和的计算流程①把IP数据报的校验和字段置为0;②把首部看成以16位为单位的数字组成,依次进行二进制求和(注意:求和时应将最高位的进位保存,所以加法应采用32位加法);③将上述加法过程中产生的进位(最高位的进位)加到低16位(采用32位加法时,即将高16位与低16位相加,之后还要把该次加法最高位产生的进位加到低16位);将上述的和取反,即得到校验和。147.3.3校验和计算编程示例1157.3.4校验和计算编程示例2167.4

UDP协议报文封装程序设计在UDP报文中,字段“校验和”的求解很重要,它涉及到伪首部和UDP报文的全部字段信息。7.4.1

UDP报文格式177.4.2

UDP的校验和计算方法UDP的校验和计算内容包括3部分:伪首部、UDP首部和用户数据,即在UDP数据报前面增加一个伪首部,它是IP包的首部。

将伪首部和UDP数据报组合在一起,以16bit为单位划分这些数据后,进行二进制反码求和运算,该值的反码就是校验和。注意,在划分前,校验和字段数填0。而且,如果UDP数据部分的长度是奇数,则需要在其后增补一个全0字节,以便使所有数据都能构成16bit数据。187.4.3

UDP报文封装编程示例197.4.4

UDP报文发送编程示例207.5

TCP协议报文封装程序设计7.5.1

TCP报文段的首部格式217.5.2

TCP报文的校验和计算程序设计本章小结

本章内容主要包括三方面:一是IP协议的首部校验和计算,包括IP地址合法检查、IP报文各字段的使用和内容填报方法、各模块的程序代码等。部分字

温馨提示

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

评论

0/150

提交评论