ip数据报解析源地址目的地址

合集下载

计算机网络之网络层与网络互联习题与答案

计算机网络之网络层与网络互联习题与答案

网络层与网络互联一.选择题1.若两台主机在同一子网中,则两台主机的IP地址分别与它们的子网掩码相“与”的结果一定()。

A.为全0 B.为全1 C.相同D.不同2.给定一个物理地址,()协议能够动态映射出该地址的逻辑地址。

A.ARP B.RARPC.ICMP D.以上都不是3.在下面的IP地址中属于C类地址的是()。

A.141.0.0.0 B.3.3.3.3C.197.234.111.123 D.23.34.45.564.如果数据包是给本网广播的,那么该数据包的目的IP地址应该是()。

A.255.255.255.255 B.0.0.0.0C.子网最高地址D.子网最低地址5.IP协议中,如果首部不含选项字段,则首部长度字段的值应为()。

A.0 B.5C.10 D.206.MAC地址通常存储在计算机的()。

A.内存中B.网卡上C.硬盘上D.高速缓冲区中7.下列哪一种说法是正确的()。

A.集线器具有对信号整形的功能B.集线器具有信息过滤功能C.集线器具有路径选择功能D.集线器具有交换功能8.下面的()是广播地址。

A.1.1.1.1 B.255.255.255.255 C.1.0.1.0 D.127.0.0.19.网络层中实现IP分组转发的设备是()。

A.中继器B.网桥C.路由器D.网关10.B类地址的默认子网掩码为()。

A.255.0.0.0 B.255.255.0.0 C.255.255.255.0 D.255.255.255.25511.IP地址202.116.39.113用()方法表示。

A.十进制B.二进制C.点分十进制D.点分二进制12.IP地址127.0.0.1称为()。

A.广播地址B.有限广播地址C.回路地址D.“0”地址13.高层互连是指传输层及其以上各层协议不同的网络之间的互连。

实现高层互连的设备是()。

A.中继器B.网桥C.路由器D.网关14.某主机的IP地址为202.113.25.55,子网掩码为255.255.255.240。

路由器转发原理

路由器转发原理

路由器转发原理
路由器转发原理是指路由器根据IP数据报的源IP地址和目的IP地址,从路由表中寻找最佳的路径,通过转发器设备将数据报按照此路径传送出去,这个过程也叫路由转发。

实现:
1. 路由器计算机识别网络传输数据报,并且使用指定的IP地址路由表根据传输数据报的源IP地址和目的IP地址,通过算术运算寻找最佳的路径传输。

2. 根据最优的路径,从传输数据报中提取出目的IP地址信息或源IP地址信息,将数据按照此路径转发至目的IP计算机。

3. 在源IP计算机向目的IP计算机传输数据报之前,源IP计算机发出一条ARP (地址解析协议)请求,源IP计算机将得到通过路由器和目的IP计算机网段上的响应,如果响应可以匹配,则证明连接有效,路由器就可以转发数据报了。

4. 如果响应不可以匹配,路由器将持续转发该请求,直到得到有效的响应,才
能完成路由转发。

ip数据报解析源地址目的地址

ip数据报解析源地址目的地址

青岛农业大学理学与信息科学学院计算机网络综合实习报告题目IP数据报解析源地址/目的地址专业计算机科学与技术学号姓名指导教师日期2014年11月8日目录一、设计任务和目的............................................................................................................................. - 2 -二、设计要求......................................................................................................................................... - 2 -三、设计内容......................................................................................................................................... - 3 -3.1原理概述: ......................................................................................................................................... - 3 -3.1.1 点分十进制表示法:......................................................................................................... - 3 -3.1.2 IP数据报格式: .............................................................................................................. - 3 -3.2 运行结果及分析............................................................................................................................. - 5 -3.2.1程序运行及截图.................................................................................................................. - 5 -3.2.2 分析...................................................................................................................................... - 6 -四、设计方案改进及建议.................................................................................................................... - 7 -五、总结体会......................................................................................................................................... - 7 -六、主要参考文献................................................................................................................................. - 8 -七、附录 ................................................................................................................................................. - 8 -附录1 程序流程图 ............................................................................................................................... - 8 - 附录2 程序源代码及解释................................................................................................................... - 9 -一、设计任务和目的设计一个解析IP数据包的程序,并根据这个程序,从IP数据报头中解析出源地址和目的地址等相关问题,从而对IP层的工作原理有更好的理解和认识。

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位,用于存放检查报头错误的校验码。

ip数据包经由路由转发的时候源ip,目的ip是否改变

ip数据包经由路由转发的时候源ip,目的ip是否改变

ip数据包经由路由转发的时候源ip,⽬的ip是否改变ip数据包经由路由转发的时候源ip,⽬的ip是否改变?最近⾯试⽹络⽅⾯的经常问到这个问题,答案是不能改变的,除⾮做了nat转换才能改变。

不过mac地址是变化的,因为发送端开始不知道⽬的主机的mac地址,所以每经过⼀个路由器mac地址是变化的。

⽬的mac地址是如何得到的?TCP/IP⾥⾯是⽤的ARP协议。

⽐如新建了⼀个内⽹,如果⼀台机器A找机器B,封装FRAME时(OSI的第⼆层⽤的数据格式),要封装对⽅的MAC,开始时A不知道B的MAC,只知道IP,它就发⼀个ARP包,源IP是⾃⼰的,⽬的IP是B的,源MAC是⾃⼰的,⽬的MAC是⼴播的。

然后这个请求包在内⽹内被⼴播,当其他机器接到这个包时,⽤⽬的IP和⾃⼰的IP⽐较,不是的话就丢弃。

B接到时,发现IP与⾃⼰的⼀样,就答应这个包的请求,把⾃⼰的MAC送给A。

如果B是其他⼦⽹的机器,那么路由器会判断出B是其他⼦⽹,然后路由器把⾃⼰的MAC 返回给A,A以后再给B发包时,⽬的MAC封装的是路由器的。

路由转发过程:当主机A发向主机B的数据流在⽹络层封装成IP数据包,IP数据包的⾸部包含了源地址和⽬标地址。

主机A会⽤本机配置的24位IP⽹络掩码255.255.255.0与⽬标地址进⾏与运算,得出⽬标⽹络地址与本机的⽹络地址是不是在同⼀个⽹段中。

如果不是将IP数据包转发到⽹关。

在发往⽹关前主机A还会通过ARP的请求获得默认⽹关的MAC地址。

在主机A数据链路层IP数据包封装成以太⽹数据帧,然后才发住到⽹关……也就是路由器上的⼀个端⼝。

当⽹关路由器接收到以太⽹数据帧时,发现数据帧中的⽬标MAC地址是⾃⼰的某⼀个端⼝的物理地址,这时路由器会把以太⽹数据帧的封装去掉。

路由器认为这个IP数据包是要通过⾃⼰进⾏转发,接着它就在匹配路由表。

匹配到路由项后,它就将包发往下⼀条地址。

路由器转发数据包就是这样,所以它始终是不会改IP地址的。

ipv4报文格式解析

ipv4报文格式解析

ipv4报文格式解析IPv4报文格式如下:1. 版本号(Version):占4位,表示IP协议的版本。

目前广泛使用的是IPv4,其版本号为0100。

2. 首部长度(Header Length):占4位,表示IP首部的长度。

首部长度单位为32位字长(4字节),4位二进制表示最大的十进制数值为15,因此,当首部长度为1111时(即十进制的15),首部长度达到最大长度60字节。

通常情况下,首部长度为20字节。

3. 区分服务(Type of Service):占8位,用于表示数据包的服务质量,如延迟、吞吐量、可靠性和成本等。

现在通常使用3位优先级字段和5位TOS字段。

4. 总长度(Total Length):占16位,表示整个IP数据包的长度,包括首部和数据部分。

范围为0-65535字节。

5. 标识(Identification):占16位,用于标识数据包。

当原始报文超过最大传输单元(MTU)时,需要进行分片,每个分片打上相同的标识符,以便接收端识别为同一个报文的分片。

6. 标记(Flags):占3位,用于表示数据包是否分片以及分片顺序。

其中,第一位未使用;第二位表示“不允许分片”(Don't Fragment,DF),第三位表示“更多分片”(More Fragments,MF)。

7. 分片偏移量(Fragment Offset):占13位,用于标记分片在分组中的位置。

8. 生存时间(Time to Live,TTL):占8位,表示数据包可以在网络中传输的最大跳数。

9. 协议(Protocol):占8位,表示传输层使用的协议类型,如ICMP、IGMP、TCP、UDP等。

10. 头部校验和(Header Checksum):用于校验IP报头的正确性,仅校验头部,数据部分由传输层协议负责校验。

11. 源IP地址(Source IP Address):占32位,表示数据包的源IP 地址。

12. 目的IP地址(Destination IP Address):占32位,表示数据包的目的IP地址。

以太帧及IP相关报文分析

以太帧及IP相关报文分析

以太帧及IP相关报文分析以太帧(Ethernet Frame)和IP(Internet Protocol)相关报文是计算机网络中最基础且重要的数据传输单位。

本文将从以下几个方面对以太帧和IP报文进行分析。

一、以太帧以太帧是以太网中数据传输的基本单位,由目的MAC地址、源MAC地址、以太类型/长度、数据字段和帧校验序列构成。

1.目的MAC地址和源MAC地址:2.以太类型/长度:以太类型字段用于指示以太帧中封装的数据的协议类型,例如IP协议、ARP协议等。

当以太类型字段的值为小于或等于1500时,这个值表示数据字段的长度,即以太帧中封装的数据长度;当以太类型字段的值大于1500时,这个字段被称为以太类型,表示封装的数据是什么类型的协议。

3.数据字段:数据字段是以太帧中封装的实际数据,如IP报文、ARP报文等。

数据字段的长度可变,具体长度由以太类型字段指示。

4.帧校验序列:帧校验序列用于检验以太帧在传输过程中是否出现错误。

发送端在发送数据前会计算校验和,并将校验和值附加到帧的最后。

接收端在接收到数据后也会进行计算,如果计算结果与接收到的校验和不一致,则表明数据在传输过程中发生了错误。

二、IP报文IP报文是基于IP协议进行数据传输的基本单位,由IP头部和数据部分构成。

1.IP头部:IP头部包含了多个字段,用于指示数据传输的相关信息。

-版本:指示IP协议的版本,通常为IPv4或IPv6-首部长度:指示IP头部的长度,以32位字长为单位。

-区分服务:指示数据传输的优先级和服务质量要求。

-总长度:指示IP报文的总长度,包括IP头部和数据部分的长度。

-标识、标记和片偏移:用于支持IP分片,当数据包过大时,可以进行分片以适应网络传输。

-生存时间(TTL):表示IP报文在网络中可以经过的最大路由器跳数。

-协议:指示IP报文的上层协议类型,如TCP、UDP等。

-校验和:用于检验IP头部在传输过程中是否出现错误。

-源IP地址和目的IP地址:指示IP报文的源地址和目的地址。

路由器转发IP数据报的基本过程

路由器转发IP数据报的基本过程

路由器转发IP数据报的基本过程1. 路由器的基本概念和作用路由器是一种网络设备,用于在不同网络之间传输数据。

它可以根据网络地址将数据从源地址转发到目的地址。

路由器是网络中的交通警察,负责决定数据的最佳路径并转发数据包。

2. IP数据报的基本结构IP数据报是在网络中传输的基本单位,它包含了源地址、目的地址、数据内容和其他控制信息。

IP数据报的基本结构如下:•版本:标识IP协议的版本,通常为IPv4或IPv6。

•头部长度:指示IP数据报头部的长度。

•服务类型:用于指定数据报的服务质量要求。

•总长度:指示整个IP数据报的长度。

•标识、标志和片偏移:用于分片和重组IP数据报。

•生存时间:指示数据报在网络中可以存活的时间。

•协议:指示IP数据报的上层协议,如TCP、UDP等。

•头部校验和:用于检测IP数据报头部的错误。

•源地址:发送IP数据报的源主机的IP地址。

•目的地址:接收IP数据报的目的主机的IP地址。

•选项:可选字段,用于提供一些附加的功能。

3. 路由器的转发过程路由器的转发过程是指将收到的IP数据报从一个接口转发到另一个接口的过程。

下面是路由器转发IP数据报的基本过程:步骤1:接收数据报路由器从一个接口接收到来自源主机的IP数据报。

步骤2:检查目的地址路由器检查IP数据报的目的地址,以确定数据报的最终目的地。

步骤3:查找路由表路由器使用路由表来决定将数据报转发到哪个接口。

路由表是路由器的重要组成部分,它记录了网络地址与接口之间的映射关系。

步骤4:选择最佳路径路由器根据路由表中的信息选择最佳路径,以确保数据报能够快速、安全地到达目的地。

最佳路径通常是根据距离、带宽和网络拥塞等因素来确定的。

步骤5:转发数据报路由器将数据报从源接口转发到目的接口。

在转发过程中,路由器会根据目的地址修改数据报的目的MAC地址,并重新计算IP数据报的校验和。

步骤6:发送数据报路由器将修改后的数据报发送到下一个接口,继续转发到下一个路由器或目的主机。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青 岛 农 业 大 学
理学与信息科学学院
计算机网络综合实习报告
题 目IP数据报解析源地址/目的地址
专 业计算机科学与技术
学Байду номын сангаас号
姓 名
指导教师
日 期2014年11月8日
一、
设计一个解析IP数据包的程序,并根据这个程序,从IP数据报头中解析出源地址和目的地址等相关问题,从而对IP层的工作原理有更好的理解和认识。
◆服务类型(SERVICE TYPE): 8位,规定本数据报的处理方式。前三位是优先级,0-7,0表示最低,7最高(最重要),但目前的IPv4没有使用优先级。后4位是TOS,表示本数据报在传输过程中所希望得到的服务,D--最小延迟(minimize delay);T--最大吞吐率(maximize throughout);R--最高可靠性(maximize reliability);C--最低成本(minimize cost)。
通过实际操作,加深对计算机网络的理解,了解计算机网络应用的灵活性,加深对IP数据报格式的了解,点分十进制理解,巩固所学习的C语言。
二、
编写计算机程序,从网络捕获数据包,从IP数据报头中解析出源地址和目的地址,将它们以点分十进制形式输出。
三、
3.1
3.1.1
对主机或路由器来说,ip地址都是32位的二进制代码,为了提高可读性,我们常常把32位的ip地址中的每8位用其等效的十进制数字表示,并且在这些数字之间加上一个点,这就叫做点分十进制表示法(dotted decimal notation)。例如:一个ip地址:100000 00000用点分十进制表示为:128.11.3.31读起来要方便得多。
四、
首先理解点分十进制表示方法的运用,理解IP数据报的格式,利用C语言设计程序以点分十进制表示输出IP数据报头源/目的地址。
从网络抓取数据包作为源操作数,再生成32位二进制数作为目的操作数,用编程实现将二进制数转化成十进制数,以点分的形式输出在屏幕上。
五、
通过本次课程设计,让我学到了很多。经过实习,通过实际操作,对计算机网络加深了理解。才知道计算机网络的可以应用的很灵活,而且加深了对IP数据报格式的了解,点分十进制理解,而且对于C语言也进行了巩固。
本实验的功能主要是实现将32位的二进制表示成十进制数
图3-2 IP组成结构图[2]
3.2
3.2.1
图3-2-1程序运行图
图3-2-2运行结果图
3.2.2
IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。对于IPv4,4位版本字段是4。4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节,也就是不带任何选项的IP首部,4位能表示的最大值是15,也就是说首部长度最大是60字节。8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小成本),还有一个位总是0。总长度是整个数据报(包括IP首部和IP层payload)的字节数。每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。3位标志和13位片偏移用于分片。TTL(Time to live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。协议字段指示上层协议是TCP、UDP、ICMP还有IGMP。然后是校验和,只校验IP首部,数据的校验由更高层协议负责。IPv4的IP地址长度为32位。选项字段的解释从略。
在实习中并不是一番风顺的,但是经过努力最终解决了这些困难,让我认识到了坚持的重要性。总的来说通过实习是我收获不小,也让我认识到了认真学习知识的重要性。希望学校以后多提供这样的机会。
本次实习,其目的是将以前所学的计算机网络理论知识上升为实践,在编程的基础上进一步了解计算机通信交流以及组网的方法,实践就要求对知识的掌握更加的系统化。在实习之初,仔细的查找了相关的资料,了解与本实习有关的知识,对IP数据报报头的格式更进一步的复习和掌握,并查找最前沿的资料充实自己,力求将自己的实习做得的更加全面,在实习的准备过程中了解到,在实际的网络管理中大多使用的sniffer软件对流经网络的数据进行抓取和处理以及分析的过程也可以通过软件的设置将所需数据显示在终端上,本实验所要求处理的任务是将IP数据报报头中的源和目的IP地址以点分十进制的形式输出,程序的实现比较简单,结合以前C语言的基础和编程方法使用随机数生成指令,以及调用C语言库函数实现将二进制的源和目的IP地址转化为点分十进制。
◆标志(FLAGS):3位,表示该IP数据报是否允许分片以及是否最后一片。
◆片偏移(FRAGMENTATION OFFSET):表示本片数据在他所属原始数据报数据区的偏移量。
◆生存时间(time to live,TTL): 8位,
◆协议(PROTOCOL):8位,指明被IP数据报封装的协议:ICMP=1,IGMP=2,TCP=6,EGP=8,UDP=17,OSPF=89.
◆首部校验和(HEADER CHECKSUM):16位,保证首部数据完整性。
◆源IP地址(SOURCE ADDRESS):32位(IPv4中),发送方源地址。
◆目的地址(DESTINATION ADDRESS): 32位(IPv4中),最总接收方IP地址。
◆IP选项(IP OPTIONS):变长字段,传输数据报时的附加功能。
值得注意的有2点:
①服务类型代表用户的希望,并不具有强制性,目前许多设备TCP/IP中不支持服务类型特性。
②在D、T、R、C这4个参数中只能设置其中一个。
◆数据报总长度:在IP数据报封装到以太网帧中进行传输时很有用.
◆标识(IDENTIFICATION):16位每个IP数据报都有一个本地唯一的标识符,它由信源机赋予IP数据报。每次自动加1.
3.1.2 IP
IP协议所处理的数据单元称为IP数据报。其格式如下:
图3-1 数据报格式图[1]
IP数据报由首部和数据两部分组成,首部又分为定长部分和变长部分。
◆版本(VER):4位,表示数据报的IP协议版本,当前的IP协议版本号为4,即IPv4;下一代网络协议IPv6,版本号为6.
◆首部长度(HLEN):4位,表示以字长(4字节)为单位的数据报首部长度。
相关文档
最新文档