编写计算机程序,实现点分十进制的IP_第1页
编写计算机程序,实现点分十进制的IP_第2页
编写计算机程序,实现点分十进制的IP_第3页
编写计算机程序,实现点分十进制的IP_第4页
编写计算机程序,实现点分十进制的IP_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录一、问题背景概述11.1背景概述11.2题目要求1二、协议分析说明分析12.1 IP地址的分类12.2 不常用的特殊IP地址12.3 IP数据报的格式12.3.1 IP数据报首部的固定部分12.3.2 IP数据报首部的可变部分1三、实验方案设计及实现53.1.实验方案设计说明53.1.1设计原理53.1.2基本流程53.2实验实现过程说明6四、程序代码9五、总结11附录A参考文献12一、问题背景概述 1.1 背景概述在因特网中,IP协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以

2、与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。在计算机领域中,网络在发送分组是不需要先建立连接,每一个分组(也就是IP数据报)独立发送,与起前后的分组无关(不进行编号),即网络成不提供服务质量的承诺。也就是说,所传送的分组可能出错、丢失、重复和失序(即不安序到达终点),当然也不保证分组交付的时限。IP是怎样实现网络互连备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP协议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转

3、换成“IP数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。通信协议是为了使计算机网络中不同的设备之间能进行正常的数据通信而预先制定的一套通信主机双方相互了解和共同遵守的格式和约定。由网络互联协议IP和传输控制协议TCP一起构成的TCPIP协议,已成为事实上的网络互联协议标准,几乎所有的WAN和LAN都支持该协议。1.2 题目要求题目是编写计算机程序,实现点分十进制的IP地址标识方法,要求是“从IP数据报头中取出源和目的地址,将它们以点分十进制表示输出”。二、协议分析说明分析2.1 IP地址的分类 IP地址是一种层次型地址,分为网

4、络标识和主机标识两个部分。因特网中每个主机和路由器都有一个IP地址,来对它们的网络和主机号进行编码,这种编码是唯一的,任何两个不同的主机不会有相同的IP地址、所有的IP地址都是32位,在IP数据报的源站地址和目的站地址都用到了IP地址,其格式如图3所示。连接到多个网络上的主机在每个网络上都有不同的IP地址。 A类IP地址 一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位

5、,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。 A类IP地址 地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。 B类IP地址 一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码,。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,

6、每个网络所能容纳的计算机数为6万多台。 B类IP地址地址范围128.1.0.1-191.254.255.254(二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111110 11111111 11111110)。 C类IP地址 一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于

7、小规模的局域网络,每个网络最多只能包含254台计算机。C类IP地址范围192.0.1.1-223.255.254.254(二进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110)。 除了以上三种类型的IP地址外,还有几种特殊类型的IP地址,TCP/IP协议规定,凡IP地址中的第一个字节以“lll0”开始的地址都叫多点广播地址。因此,任何第一个字节大于223小于240的IP地址是多点广播地址;IP地址中的每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;IP地址中的每一个字节都为

8、1的IP地址(“255255255255”)是当前子网的广播地址;IP地址中凡是以“llll0”的地址都留着将来作为特殊用途使用;IP地址中不能以十进制“127”作为开头,该类地址中数字127001到127111用于回路测试,同时网络ID的第一个6位组也不能全置为“0”,全“0”表示本地网络。D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。地址范围224.0.0.1-239.255.255.254 。E类IP地址以“11110”开始,

9、保留用于将来和实验使用。2.2不常用的特殊IP地址网络号主机号源地址使用目的地址使用代表的意思00可以不可在本网络上的主机0Host-id可以不可在本网络上的某个主机host-id全1全1不可可以只在本网络上进行广播Net-id全1不可可以对net-id上的所有主机进行广播127非全0或全1的任何数 可以可以用作本地软件环回测试之用2.3 IP数据报的格式2.3.1 IP数据报首部的固定部分(1)版本 占4为,指IP协议的版本,通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPV4)。(2)首部长度 占4位,可表示的最大十进制数值是15,请注意这个字段所表示数的单位

10、是32位字(1个32位字长是4字节)。当IP的首部长度为1111时,首部长度就达到最大值60字节,当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。(3)区分服务 占8位,用来获得更好的服务,这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。(4)总长度 总长度指首部和数据只和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为65535字节。(5)标识 占16位。IP软件在存储器中维持一个计数器,没产生一个数据报,计数器就加1,并将此值赋给标识字段。(6)标志 占3位,标志字段中的最低位记为MF。MF=1即表示后面“还有分片”的数据报,MF=0表示这

11、已是若干数据报片中的最后一个。标志字段中间的以为记为DF,意思是“不能分片”,只有当DF=0时才允许分片。(7)片偏移 占13位。片偏移指出:较长的分组在分组后,某片在源分组中的相对位置。(8)生存时间 占8位,生存时间字段常用的英文缩写是TTL,表明是数据报在网络中的寿命。(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(10)首部检验和 占16位,这个字段只检验数报的首部,但不包括数据报部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和。不检验数据部分可减少计算的工作量。为了进一步减少计算检验和

12、的工作量,IP首部的检验和不采用复杂的CRC检验码的采用简单的计算方法。(11)源地址 占32位。(12)目的地址 占32位。2.3.2 IP数据报首部的可变部分 IP首部的可变部分就是一个选项字段,选项字段用来支持排错、检测以及安全等措施,内容很丰富。此字段的长度可变,从1字节到40个字节不等,取决与所选择的项目。某些选项项目只需要1个字节,它只包括1字节的选项代码。但还有些选香港需要多个字节,这些选项一个个拼接起来,中间不需要有分隔,最后用全0的填充自读那补充成为4字节的整数倍。三、实验方案设计及实现3.1实验方案设计说明3.1.1 设计原理3.1.2 程序基本流程3.2实验实现过程说明在

13、数据传输过程中,网络层把运输层产生报文段或用户数据报封装成数据帧,然后在加上IP数据报的首部信息再组成IP数据报传给数据链路层,再加上数据层的首部信息和尾部信息,最后交给物理层在物理传输媒体上进行比特流的传输。接受方对接受到的数据逐层解封,去掉首部,直到找到IP数据报为止,再从IP数据报的首部信息中取出源地址和目的地址,取出来的源地址和目的地址全是二进制的机器语言,把取出的二进制地址转化为十进制地址,并将他们以十进制表示输出。下面的图3-1,图3-2,图3-3,图3-4,图3-5是验证从任意的 IP数据报中取出任意的五个源地址和目的地址输出的过程,具体结果如下图:图3-1 图3-2图3-3 图

14、3-4图3-5四、程序代码#include"math.h"#include<time.h>#include"stdio.h"#include<stdlib.h>void getid(int ad32) /用getid函数表示二进制和十进制之间的转换 int p=0,q=0,r=0,t=0; /定义四个整形变量表示IP数据报的四个字节 int i; for(i=0;i<8;i+) p+=pow(2,7-i%8)*adi; /二进制转化为十进制过程中,二进制的最高位为2的7次幂依次降序到0次幂,在减去i%8求余 printf(&

15、quot;%d.",p); /表示输出值 for(i=8;i<16;i+) q+=pow(2,7-i%8)*adi; /相应二进制数转化为十进制数 printf("%d.",q); for(i=16;i<24;i+) r+=pow(2,7-i%8)*adi; printf("%d.",r); for(i=24;i<32;i+) t+=pow(2,7-i%8)*adi; printf("%d",t);void main() int a1500; int i,j; int m=0,n=0; int b32; i

16、nt c32; void getid(int ad32); /调用getid函数 srand(unsigned) time(NULL); /表示从IP数据报中取出源地址b和目的地址cfor(i=0;i<1500;i+) /IP数据报最大长度为1500字节,每个字节为8个比特流 ai=rand()%2; /随机产生一个0、1的数printf("%d",ai);for(j=96;j<=127;j+) /IP数据报的源地址(含32位)前面还有三个部分,共32*3=96位,所以源地址从96开始bm=aj;m+;for(j=128;j<=159;j+) /目的地址(

17、含32位)从128位开始cn=aj;n+;printf("n源地址是:"); /输出十进制地址getid(b);printf("n目的地址是:");getid(c);printf("n");五、总结以上就是我这次课程设计的全部内容,从这次课程设计中我们真正感觉到了网络层传输的复杂性,IP协议的重要性。对于我们来说这个课程设计难度有点大,在平时过程中我们学的都是理论知识,而动手能力很差,把知识与实际结合起来的机会更少。通过这次课程设计我们深刻理解了点分十进制记法和更深层次的认识了IP数据报的格式,同时学到了一些在编程方面的知识,很多是自

18、己没有接触过的东西。在编程过程中遇到问题时,通过查找资料,或者百度搜索解决。通过本次课程设计,我们更充分的理解了IP协议的源地址和目的地址二进制转化为十进制的过程,在实验过程中也充实了以前不懂的知识点,增强了自己的动手能力,也明白了编程的重要性。一个软件的好坏不仅仅在于算法的先进,软件是否能够满足用户需求,操作是否简单也是很重要的一个因素。这个程序我们已经尽力做了,但肯定存在很多的不足之处,希望老师谅解。附录A参考文献文末参考文献的著录引用应做到规范完整,并符合国家的相关标准。根据GB3469国家标准规定,被引用的参考文献类型标识为单字母,各种参数文献的类型标识字母如下表所示:参考文献类型专著

19、论文集(单篇论文)报纸文章期刊文章文献类型标识MC(A)NJ参考文献类型学位论文报告标准专利其它文献文献类型标识DRSPZ电子文献类型的参考文献,建议以下列字母作为标识:数据库DB,计算机程序CP,电子公告EB。一般性的网页文章建议以EB/OL标识(在线的电子文章)。要求引用的参考文献应不少于3篇,引用列举条目的具体要求为:参考文献的序号左顶格,并用数字加方括号表示,如1,2,以与正文中的指示序号一致。每一参考文献条目的最后均以“.”结束。各类参考文献条目的编排格式以及示例如下:1. 连续出版物序号 主要责任者.文献题名J.刊名,出版年份,卷号(期号):起止页码. 例如:1 毛峡,丁玉宽.图像的情感特征分析及其和谐感评价J.电子学报,2001,29(12A):1923-1927.2. 专著序号 主要责任者.文献题名M.出版地:出版者,出版年:起止页码.例如:2 刘国梁,王成.图书馆史研究M.北京:高等教育出版社,1979:15-18,31.3. 会议论文集序号 主要责任者.文献题名A/主编.论文集名C.出版地:出版者,出版年:起止页码.例如:3 毛峡,孙云.和谐图案自动的生成研究A.第一届中国情感计算及智能交互学术会议论文集C.北京:中国科学院自动化

温馨提示

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

评论

0/150

提交评论