TCP IP协议 ICMP协议分析与设计041440516董迎顺
实验二IP协议与ICMP协议分析实验
实验二IP协议与ICMP协议分析实验引言:IP(Internet Protocol)是互联网协议族的核心协议之一,负责实现网络数据包的传输。
而ICMP(Internet Control Message Protocol)是基于IP协议的重要协议,用于在IP网络中传递控制和错误消息。
实验目的:本实验旨在通过对IP协议和ICMP协议的分析,深入了解二者的工作机制和应用。
实验原理:1.IP协议:IP协议是一种无连接的、不可靠的协议,负责将分组从源地址传输到目的地址。
它的主要特点是在网络层提供了全球唯一的逻辑标识符--IP 地址,实现了跨网络的传输。
IP分组的格式包括首部和数据两部分。
首部长度为20字节,包含了版本号、首部长度、服务类型、总长度、标识、标识、标志、片偏移、生存时间、协议、首部校验和、源地址和目的地址等信息。
2.ICMP协议:ICMP是一种网络层协议,用于检测和报告网络层的错误。
它通常使用在IP分组传输中,可以在主机、路由器之间传递控制和错误信息。
ICMP报文的格式包括首部和数据两部分。
首部长度为8字节,包含了类型、代码、校验和等信息。
数据部分根据不同的类型和代码而不同。
实验步骤:1.IP数据包的抓取和分析:首先,在一台计算机上安装Wireshark软件,并使用Wireshark抓取与该计算机相关联的网络接口的IP数据包。
然后,通过过滤条件过滤出IP协议的数据包,并逐一观察IP数据包的首部信息,包括版本号、首部长度、服务类型、总长度、标识等。
最后,根据抓包结果,分析IP数据包的传输过程和相关特性。
2.ICMP报文的抓取和分析:继续使用Wireshark软件,过滤条件设置为ICMP协议,抓取与该计算机相关联的网络接口的ICMP报文。
然后,逐一观察ICMP报文的首部信息,包括类型、代码、校验和等。
最后,根据抓包结果,分析ICMP报文的类型和用途,并进一步了解ICMP协议的工作机制。
实验结果:通过实验,我们得到了IP数据包和ICMP报文的抓包结果,并分析了其首部信息和特性。
《TCPIP协议分析与编程》课程设计报告模版[网络1313-1314]
《TCP/IP协议分析与编程》课程设计学院计算机工程学院班级网络1313姓名张三丰学号 2013001001 成绩指导老师曹煦晖李琳2016年7 月15 日计算机工程学院《TCP/IP协议分析与编程》课程设计评审表姓名楷体,小四学院楷体,小四学号楷体,小四专业班级楷体,小四题目宋体,四号,加粗课程设计任务与要求楷体,小四课程设计完成情况楷体,小四评审意见评审成绩评审时间2016年 7 月 15 日指导教师签名曹煦晖李琳注:除“评审意见”栏、“评审成绩”栏、“指导教师签名”栏外,其余各栏均由学生在课程设计验收评审前如实填写。
目录(黑体三号,居中,单倍行距,段前后6磅)1■理论知识(黑体四号) (1)1.1■■XX工作原理分析(宋体四号) (2)1.1.1■■XXXXXX(宋体四号) (3)1.1.2■■XXXXXX (4)1.2■■问题的分析 (5)1.2.1■■XXXXXX (6)1.2.2■■XXXXXX (7)2、程序设计与实现 (8)2.1■■程序设计 (9)2.1.1■■XXXXXX (10)2.1.2■■XXXXXX (11)2.2■■程序的实现及测试情况 (12)2.2.1■■XXXXXX (13)2.2.2■■XXXXXX (14)参考文献(黑体四号) (15)附录(黑体四号) (16)说明:“■”符号代表空格,目录内容需具体到三级标题(即X.X.X),行距为24磅。
可使用Microsoft Word中的“插入目录”功能。
课程设计题目(宋体小二号,加粗,居中,单倍行距,段前后12磅)……(“■”符号代表空格)1■XXXXXX(一级标题,黑体四号,加粗,单倍行距,段前后6磅)……1.1■■XXXXXX(二级标题,宋体四号,加粗,单倍行距,段前后6磅)……1.1.1■■XXXXXX(三级标题,宋体四号,加粗,单倍行距,段前后6磅)……(1)XXXXXX(宋体小四号,行间距为固定值24磅,首行缩进2字符)……①■XXXXXX(宋体小四号,行间距为固定值24磅,首行缩进2字符)……正文(宋体小四号,行间距为固定值24磅,首行缩进2字符,文中的所有字母、数字、符号均使用半角、“Times New Roman”字体,标点符号统一在中文输入法下输入)文中的所有图必须有编号和图题,位于图下方,且与图必须在同一面中。
TCP IP协议 IP协议分析041440516董迎顺
长春大学计算机学院网络工程专业TCP/IP协议实验报告备注:实验包括基本技能、进阶技能和创新技能,如果没有创新技能方案则最高分为90分,实验名称:实验一IP协议分析班级:网络五班姓名:董迎顺学号:041440516实验地点:机房日期:2015-11-11一、实验目的:1.掌握IP数据报的报文格式。
2.理解特殊IP地址的含义。
3.理解IP分片过程。
二、基本技能实验内容、要求和环境:【实验环境】1.安装Windows2000/2003Server/XP操作系统的PC计算机一台。
2.每台PC具有一块以太网卡,通过双绞线与局域网相连。
3.每台PC运行网络协议分析软件Ethereal或Wireshark。
【实验内容、要求】1.启动网络嗅探工具,设置好过滤条件,捕获IP报文并分析报文格式。
【实验指导】1、IP报文格式IP数据报是由IP首部加数据组成的。
IP首部的最大长度不超过60字节。
IP数据报文格式如下图所示:4位版本4位首部长度8位服务类型16位总长度(字节数)16位标识3位标志13位片偏移8位生存时间8位协议类型16位首部检验和32位源IP地址32位目的IP地址选项(如果有)数据图1-1 IP报文格式2、IP路由表大部分网络层设备都存储着一张记录路由信息的表格,称为路由表。
它由许多条项目组成。
网络层设备收到数据报后,根据其目的IP地址查找路由表确定数据报传输的最佳路径(下一跳)。
然后利用网络层的协议重新封装数据报,利用下层提供的服务把数据报转发出去。
路由表的项目一般含有五个基本字段:目的地址、网络掩码、下一跳地址、接口、度量。
路由表按如下顺序匹配:直接交付:路由表表项的“目的地址”字段是交付主机的本网络地址。
特定主机交付:路由表表项的“目的地址”字段是某台特定主机的IP地址。
特定网络交付:路由表表项的“目的地址”字段是另一个网络的地址。
默认交付:路由表表项的“目的地址”字段是一个默认路由器(默认网关)。
TCP IP协议族 ARP攻击以及防御041440516董迎顺
报告成绩:教师:年月日
2设置静态的MAC-->IP对应表,不要让主机刷新设定好的转换表。
3除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
4使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
5使用“proxy”代理IP的传输。
6使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
7管理员定期用响应的IP包中获得一个RARP请求,然后检查ARP响应的真实性。
8管理员定期轮询,检查主机上的ARP缓存。
9使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
10若感染ARP病毒,可以通过清空ARP缓存、指定ARP对应关系、添加路由信息、使用防病毒软件等方式解决。
在交换机上配置802.1x协议后,攻击者在连接交换机时需要进行身份认证(结合MAC、端口、帐户、VLAN和密码等),只有通过认证后才能向网络发送数据。攻击者未通过认证就不能向网络发送伪造的ARP报文。
对ARP的防御有以下几条:
1不要把网络安全信任关系建立在IP基础上或MAC基础上(RARP同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
为了解决ARP攻击问题,可以在网络中的交换机上配置802.1x协议。
IEEE 802.1x是基于端口的访问控制协议,它对连接到交换机的用户进行认证和授权。
tcp、udp、ip、icmp报文格式分析
tcp、udp、ip、icmp报⽂格式分析TCP 、UDP 、IP、 ICMP协议报⽂格式分析Tcp报⽂格式:Wireshark抓包如图:源端⼝/⽬的端⼝(16bit):在TCP报⽂中包涵了源端⼝/⽬的端⼝,源端⼝标识了发送进程,⽬的端⼝标识了接收⽅进程。
由上图可以看出在此报⽂中我们的源端⼝号是54160, ⽬的端⼝是cichlid(1377)。
序列号(32bit):Sequence Number这个是发送序列号,⽤来标识从源端向⽬的端发送的数据字节流,它表⽰在这个报⽂端中的第⼀个数据字节的顺序号,序列号是32位的⽆符号类型,序列号表达达到2^32 - 1后⼜从0开始,当建⽴⼀个新的连接时,SYN标志为1,系列号将由主机随机选择⼀个顺序号ISN(Initial Sequence Number)。
此报⽂中的序列号是0x37e3d3a9如下图:确认号(32bit):Acknowledgment Number它包涵了发送确认⼀端所期望收到的下⼀个顺序号。
因此确认序列号应当是上次成功接收到数据的顺序号加1。
只有ACK标志为1时确认序号字段才有效。
TCP为应⽤层提供全双⼯服务,这意味着数据能在两个⽅向上独⽴的进⾏传输,因此连接的两断必须要保证每个⽅向上的传输数据顺序。
由图可以看出此报⽂的确认号为0xaa09ab7b。
偏移(4bit):这⾥的偏移实际指的是TCP⾸部的长度,它⽤来表明TCP⾸部中32bit字的数⽬,通过它可以知道⼀个TCP包它的⽤户数据从哪⾥开始,这个字段占4bit,若此字段的值为1000,则说明TCP⾸部的长度是8 * 4 = 32字节,所以TCP⾸部的最⼤长度是该字段的值为1111 = 15, 15 * 4 =60字节。
此报⽂我们的偏移量在0x50中,⼜因它占4bit,0x50等于⼆进制的0101 0000 所以我们的偏移量是 0101=5,所以我们的TCP报⽂⾸部长度为5* 4 = 20字节。
TCPIP协议族读书报告(董迎顺)
报告成绩:
教师:
年
月
日
2
长春大学计算机学院网络工程专业
TCP/IP 协议族
主题名称 姓 名 董迎顺 班 级 TCP/IP 协议的认识 网络五班 学 号 041440516 组 号 6
读书报告
本学期我们开始学习 tcp/ip 协议,记得上学期的《计算机网络》一书中对 tcp/ip 有 些涉及,不过没有深入,而我们即将学习的《TCP/IP 协议族》内容很多,会深入的了 解 tcp/ip。 TCP/IP 协议族是 Internet 的基础,也是当今最流行的组网形式。TCP/IP 是一组协 议的代名词,包括许多别的协议,组成了 TCP/IP 协议族。其中比较重要的有 SLIP 协 议、PPP 协议、IP 协议、ICMP 协议、ARP 协议、TCP 协议、UDP 协议、FTP 协议、 DNS 协议、SMTP 协议等。TCP/IP 协议并不完全符合 OSI 的七层参考模型。传统的开 放式系统互连参考模型, 是一种通信协议的 7 层抽象的参考模型, 其中每一层执行某一 特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而 TCP/IP 通讯协议 采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。 TCP 即传输控制协议,它提供的是一种可靠的数据流服务。当传送受差错干扰的 数据,或举出网络故障,或网络负荷太重而使网际基本传输系统不能正常工作时,就需 要通过其他的协议来保证通信的可靠。 TCP 采用“带重传的肯定确认”技术来实现传输的 可靠性。 并使用“滑动窗口”的流量控制机制来提高网络的吞吐量。 TCP 通信建立实现了 一种“虚电路”的概念。双方通信之前,先建立一条链接然后双方就可以在其上发送数据 流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。 IP 协议即互联网协议,它将多个网络连成一个互联网,可以把高层的数据以多个 数据包的形式通过互联网分发出去。IP 的基本任务是通过互联网传送数据包,各个 IP 数据包之间是相互独立的。 还有我们即将学到的 SLIP 协议,PPP 协议,ICMP 协议,ARP 协议等。虽然还没 有学到,但是也有了大概的了解,每一个协议都起到了很重要的作用。 通过整理 tcp/ip 的读书报告,我对 tcp/ip 有了更系统的了解,一些协议的作用也记 得更牢了,并且深化了理解,加深了对网络技术的认识。
ICMP协议解析网络故障诊断与错误报告的协议分析
ICMP协议解析网络故障诊断与错误报告的协议分析网络故障和错误报告对于保持网络通畅和稳定至关重要。
而ICMP 协议作为网络通信中一种常见的控制协议,承担着网络故障诊断和错误报告的重要任务。
一、ICMP协议简介ICMP(Internet Control Message Protocol)是一种基于IP协议的网络层协议,它被用于向网络中的其他主机或路由器发送控制信息和错误报告,以便进行网络故障诊断和错误的处理。
二、ICMP协议的作用1. 错误报告:ICMP协议可以向源主机或路由器发送错误报告,指示某个数据包在传输过程中发生错误。
这有助于及时发现并解决网络传输中的问题,提高网络的可靠性和稳定性。
2. 网络故障诊断:ICMP协议可以通过发送特定类型的控制消息,来检测目标主机或路由器是否可达、网络延迟情况以及其他网络故障信息,帮助网络管理员进行网络故障的诊断与解决。
三、ICMP协议的工作原理1. ICMP消息格式:每个ICMP消息都包含一个报头部分和一个数据部分。
报头部分包含消息的类型、代码和校验和等字段,用于标识和分类不同类型的ICMP消息。
数据部分则用于携带相关的控制信息或错误报告的具体内容。
2. ICMP消息类型:ICMP协议定义了多种不同类型的消息,用于表示不同的控制信息和错误报告。
例如,ICMP回显请求和回显应答消息用于进行网络连通性的测试,ICMP目标不可达消息用于指示主机或路由器不可达等。
3. ICMP消息的传输和响应:当一台主机或路由器收到ICMP控制消息后,会根据消息的类型和代码进行相应的处理。
对于错误报告,源主机或路由器通常会进行一些错误的修复或处理;对于网络故障诊断,接收方主机或路由器会根据ICMP消息作出相应的反应,如发送回ICMP响应消息。
四、常见的ICMP协议应用1. Ping命令:Ping命令基于ICMP协议的回显请求和回显应答消息,用于测试目标主机或路由器的连通性。
发送Ping命令后,源主机会收到目标主机发回的ICMP回显应答消息,从而得知目标主机的连通状态。
实验04 - IP、ICMP协议分析
《计算机网络》实验报告实验四IP、ICMP协议分析姓名:XXX学号:XXXXXXXX专业:XXXXXXXXX学院:XXXXXX报告日期:XXXXX(一) 实验目的与要求目的:(1) 分析IP协议,理解子网掩码和路由转发。
(2) 分析ICMP协议。
(二) 实验内容1.分析IP协议:实验网络拓扑结构如图1:以太网交换机192.168.0.X本机192.168.0.Y220.178.4.163 192.168.0.100220.178.4.100路由器图1 路由器连接的不同网络(1) ping 127.0.0.1。
(2) 在IE浏览器中打开安徽农业大学主页,看能否正常访问;将本机TCP/IP属性中的网关(Default Gateway)置空,再次打开安徽农业大学主页,看能否正常访问。
(3) 设本机的IP地址为192.168.0.X(X的取值范围在1到45之间),现将IP地址的最后一个数字修改为200+X,同时将子网掩码修改为255.255.255.128,默认网关恢复为192.168.0.100,试着ping隔壁计算机(注意:隔壁机器不做任何修改!),看能否ping通;试着ping实验室网关地址192.168.0.100,看能否ping通,为什么?2.分析ICMP协议:(1) 恢复本机的TCP/IP参数:IP地址192.168.0.X、子网掩码255.255.255.0、默认网关192.168.0.100、DNS服务器210.45.176.5。
(2) 在WireShark软件中设置过滤(Filter)条件为“icmp”,ping隔壁计算机,并将分析结果填写下表。
字段项ICMP请求报文ICMP应答报文链路层Destination MAC Address链路层Source MAC Address网络层Source IP Address网络层Destination IP Address网络层ICMP Type值(3) ping ,并将分析结果填写下表。
TCPIP协议分析_实验5_ICMP协议分析
《TCP/IP协议分析》实验报告实验序号:5 实验项目名称:ICMP协议分析20网工学号姓名专业、班实验地点指导教师实验时间2022-10-5 一、实验目的、要求、步骤和结果动手项目5-1:在网络上使用ICMPv4 Echo请求消息ping另一个设备项目目标:往网络中的某个主机发送Echo请求消息,接收Echo应答消息,并在Wireshark 软件中捕获这个处理过程。
过程描述:本项介绍如何在Windows 命令提示符下使用ping 实用工具,测试与另一台本地计算机的连通性,使用Wireshark数据包分析器捕获ICMPv4数据包的交换。
(1)单击“开始”按钮,单击“运行”,在“打开”文本框中输入cmd,之后单击“确定”按钮。
打开一个命令提示符窗口。
(2)在命令提示符下,输入ping 命令并按Enter键,查看可用的命令行参数。
在遵循下述步骤打开Wireshark 程序的过程中,保持命令行提示符窗口为打开状态。
(3)单击“开始”按钮,将鼠标指针移动到“所有程序”上,然后单击Wireshark。
(4)在菜单栏单击Capture,然后单击Interfaces。
(5)确定活动网卡,然后单击右侧的Start按钮(可能会有多个网卡,这也没有问题)。
(6)单击任务栏上的“命令提示符”按钮切换到命令提示符窗口,或使用Alt +Tab键让命令提示符窗口处于活动状态。
(7)输入ping ip_address命令,其中ip_address是网络上另一台设备的地址。
在Wireshark跟踪缓冲区中应该有一些数据包。
(8)不要关闭命令提示符窗口。
单击任务栏上的Wireshark按钮,或使用Alt +Tab键让Wireshark 窗口处于活动状态。
(9)单击菜单栏的Capture,然后单击Stop按钮,使Wireshark停止捕获更多的数据包。
(10)滚动浏览捕获在跟踪缓冲区中的数据包。
你应该能够看到几个ICMP Echo 请求和ICMP Echo应答数据包。
02_ICMP协议分析
差错报告报文
参数出错报文
1) 参数出错报文报告出错的报文头与错误的报文选项参数 2) 路由器或信宿机在丢弃参数出错的报文时,将向信源机发出参数出错报文; 3) 参数出错报文格式:
类型(12) 指针
码(0-或121)
校验和
未用(全£0)
数据报报头+前64位数据
......
0 -- 数据报某个参数错,指针域指向出错的字节; 1 -- 数据报缺少某个选项,无指针域;
差错报告报文
信息不可达报文
网关在以下情况下发出信息不可到达报告 1) 信宿机硬件出现故障或关机; 2) 发送者指定的地址不存在; 3) 网关不知道去往信宿的路径;
信宿不可到达报告的格式
类型(3)
码(0-12)
校验和
未用(全0)
出错数据报报头+前64bit数据
........
差错报告报文
信息不可达报文
√
1 主机不可达
√
2 协议不可达
√
3
3 端口不可达
√
4 需要进行分片,但设置了 DF 不分片(2.3.2 节)
√
5 源路由选择失败
√
6 目标网络未知
√
ICMP数据包类型
ICMP报文类型
7 目标主机未知
√
8 源主机被隔离
√
9 与目标网络的通信被强制禁止
√
10 与目标主机的通信被强制禁止
√
11 对于请求的服务类型 TOS,网络不可达
码域值: 0 ~ 12,进一步说明信宿不可到达的具体原因
码值 0 2 4 6 8
10 11 12
意义
码值 意义
网络不可到达
1 主机不可到达
基于TCPIP协议的网络通信服务器设计与实现
基于TCP/IP协议的网络通信服务器设计与实现作者:吕焦盛来源:《赤峰学院学报·自然科学版》2019年第09期摘要:随着工业自动化的到来,通过网络平台远程控制工业设备已成为现代社会的重要标志.针对传统的网络通信服务器工作效率不高,多设备之间的协同性不能很好地取得一致性,用户无法实时地对不同区域进行有效监控的问题,提出一种基于TCP/IP协议的网络通信服務器设计与实现方法.首先,构建网络通信服务器模型,分析不同通信服务器架构,选用基于C/S 架构作为操控对象满足实际需求与硬件平台的协调性,服务器软件架构则采用TCP/IP协议实现网络通信,最后对数据库需求进行梳理分析采用Oracle数据库,以满足虚拟与现实之间的对应关系,从而提高网络通信服务器工作效率以及稳定性,实现对不同设备之间的实时有效监控.仿真结果表明,该方法可以提升通信服务质量,增强系统的稳定性和传输效率,具有一定的实用性.关键词:TCP/IP协议;远程控制;通信服务器;数据库中图分类号:TP311; 文献标识码:A; 文章编号:1673-260X(2019)09-0050-03随着通信技术和自动化技术的快速发展,传统的依赖人工对多个设备之间进行协调统一,进而对不同区域进行实时监控的方法,已经无法满足工业自动化对有效性和灵活性的需求,而现有的通信服务器则受制于硬件平台和软件算法的制约,不能根据不同的工作环境进行调节且运行速度无法满足工业自动化的要求,不能很好地体现自动化以及通信技术的优势[1].网络通信服务器作为数据实时异地高速传输的重要媒介,可以极大提高用户对于通信服务的需求和满意度,确保通信传输的质量,在节约人力资源的同时确保多设备之间的实时有效协调工作[2].1 网络通信服务器在大型网络应用系统中,多个不同区域的子系统构成了总系统,以往的管理方法则是通过对每个子系统进行维护进而实现整体系统的管理,极大的浪费了人力资源,同时系统的协调性不能很好的满足要求[3].网络通信服务器可以解决多台电脑之间的通信问题,为数据的不同区域长距离传输提供了解决方案,作为一个独立的系统存在,依赖于软硬件的架构设计.网络通信服务器作为网络连接的桥梁,以不同的标准可以进行不同的划分,以通信的对象为标准可以划分为:针对数据传递的PC服务器,价格低廉、开发简单但运算速度低,覆盖范围小;针对控制对象和软件进行优化的RISC/UNIX服务器,具有较强的针对性和开放性,用户可以根据自己的需求进行二次设计和开发但安全性差,容易受到黑客攻击丢失数据;对多个对象进行同步集中监控的主机服务器,具有较强的安全性和稳定性,但价格较高不易维护[4].网络通信服务器的主要功能为:作为“远程控制软件”载体的数据访问功能;为了达到主机与子系统之间数据格式转换、通信协议的网关功能;便于不同区域系统进行数据交换的调制解调功能;系统进行数据传输和接收的电子函件功能;在局域网之间进行数据的自动传输与分组的路由器和桥接器功能[5].串口通信服务器体系结构如图1所示.2 网络通信系统及信道模型网络通信服务器数据的传输离不开通信信道,由于大型网络通信系统稳定性受多方面影响,误码率较高,同时数据在进行传输时,受传输规则的限制当数据量增大时,已有信道不能满足数据的传输就会造成通信信道紊乱,进而导致数据传输延迟,给网络通信服务器带来压力,因此需要对网络通信信道进行质量优化,即对信道进行抗干扰措施和信道均衡[6].为了提高网络通信系统的通信服务质量,增强系统的稳定性和传输效率,首先构建网络通信模型,假设h(t)为网络通信系统在t时刻的平稳函数,i(t)为第i个信源的偏移相位,T 为系统周期,a为系统信源,?啄为阶跃函数,则:如果在去除延迟偏量的基础上对信源相位进行重加权计算,那么网络通信系统在t时刻的平稳函数h(t)可以表示为:根据网络通信系统的多普勒效应,如果数据到达接收端时延迟了TS的整数倍,那么平稳函数h(t)为:式(3)中,Nm表示信源个数,路径偏移相位为?子i(t).最终得到网络通信系统信号接收模型xm(t),继而依据信号接收模型实现信道均衡和干扰抑制.式(4)中,Si(t)为第i个信源在多径信道分量中的复包络,nm(t)为信道噪声,?渍m为包络偏移.网络通信系统信道模型如图2所示:3 网络通信服务器设计3.1 网络通信服务器的设计思想协议的存在,可以使不同网络通信服务器之间进行数据传输和交换[7].为了提高网络通信的可靠性,网络系统中所有主机必须使用统一的网络协议,常用的网络协议有TCP/IP协议、IPX/SPX协议和NETBEUI协议[8].NETBEUI协议缺乏路由和网络层寻址功能,只适用于单个网络环境;IPX/SPX协议可扩展性受到限制,因此大规模的IPX网络管理实现比较困难;TCP/IP 协议可以与Internet连接,Internet具有强大的网络功能以及普遍性,因此TCP/IP协议具有很好的可靠性和可扩展性,本设计采用TCP/IP协议作为网络通信服务器设计基础[9].TCP/IP协议作为OSI七层模型中的第三次(网络层)和第四层(传输层),具体如图3所示.TCP在网络通信搭建虚拟通道,构建双向信息数据的处理,使数据能够安全、准确的在通信双方之间进行传输;IP则是作为协议层对传输的数据进行验证,校验通信双方是否满足通信协议,如果满足则将其放在网络层[10].3.2 网络通信服务器总体架构设计网络通信服务器总体架构的设计应满足系统稳定性、传输实时性、数据安全性和系统扩展性的需要.服务器总体架构主要由两部分组成硬件部分和软件部分,其中硬件架构主要由五部分构成分别为:PC客户端、路由器、互联网服务器、网络通信服务器和用户设备.在设计时需要具体问题具体分析,根据不同的实际需要对硬件架构的五部分进行分析、细化,以便为软件部分搭建一个完善的服务体系[11].硬件部分具体参数为:高性能计算机,内存为16GB以上、CPU为i5酷睿处理器、主频为4.0GHz、硬盘为1TB固态硬盘且划分为4个区域用于数据备份、安装系统以及状态记录,图形处理器为NVIDIA TITAN-XGPU.软件架构设计如图4所示,包括互联网服务器、通信服务器以及终端处理工具.软件架构设计实现的功能主要包括:配置数据库;IE用户与网络设备之间的连接管理;对数据状态进行实时监控,显示上下行數据为系统的远程操作做技术支撑;显示用户操作记录以及匹配系统时间.C/S架构包括服务器和客户端,特点是层数少实时性好、响应速度快,可以实现数据的交互和回传,同时界面可视化具有较好的稳定性.3.3 网络通信服务器数据库设计为了满足不同数据的操作,使得数据能够合理、有效的存储,继而在特定条件下建立的数据之间的关系,称为数据库[12].数据库的设计,首先需要对用户的需求进行分析、细化,在确定了TCP/IP协议、通信服务器总体架构基础上进行数据库的选择,网络通信服务器数据库的逻辑结构应能够反映用户的实际需要,满足实际与虚拟之间的对应关系,同时保证数据的准确性和真实性,数据库的设计关系到程序是否冗余以及系统是否流畅.Oracle数据库简捷有效、没有冗余信息,可以避免数据偏差确保数据一致性,因此本设计采用Oracle数据库.4 网络通信服务器功能实现与仿真网络通信服务器性能的优劣主要通过系统的稳定性、时效性和安全性进行判定.通过对现场设备和WEB服务器进行调试,设立通行证密码机制利用手机锁功能进行加密保护进而保护数据的安全性;同时为了避免数据的中断和丢失,进行多次测试采用异常处理机制对数据进行保护;而为了提高时效性则通过提高系统响应时间来缩短信息在服务器的滞留时间.最后,通过对现场设备和WEB服务器进行调试得出基于TCP/IP协议的网络通信服务器,可以大大提高系统的稳定性,并且在安全性和时效性上也具有一定的优势.5 结束语随着信息技术的发展以及自动化水平的提高,网络通信服务能力的提升对国民经济的发展起着极为重要的作用.基于TCP/IP协议的网络通信服务器具有明显的系统化和完整化,可以很好地解决传统通信服务器受制于硬件平台和软件算法的制约,不能很好的体现自动化优势的现象.文章首先分析了网络通信服务器的现状,在此基础上进行了通信系统模型的讨论,继而进行通信服务器总体架构的设计确定硬件以及软件架构体系,最后对服务器数据库的设计进行选择,形成了一个完整的系统,具有较高的应用价值.——————————参考文献:〔1〕戴宁.基于TCP/IP协议的网络通信服务器设计[D].西安:西安电子科技大学,2014.〔2〕林锐,白云.一种用于协同工作的网络通讯服务器及其API设计[J].计算机应用研究,2000,17(4):83-85.〔3〕潘绍明,罗功坤,何为民.嵌入式网络通信服务器设计与实现[J].电子测量技术,2008,31(4):104-106.〔4〕王文武,赵卫东,王志成,等.高性能服务器底层网络通信模块的设计方法[J].计算机工程,2009,35(3):103-105.〔5〕王瑞彪,李凤岐,施玉勋,等.基于IOCP机制的网络游戏服务器通信层的实现[J].计算机工程与应用,2009,45(7):75-78.〔6〕黄悦.VxWorks下基于客户机/服务器模式的网络通信设计[J].现代电子技术,2007,30(14):143-146.〔7〕靳辉,江务学,郑羽,等.基于并发服务器的网络通信的设计和实现[J].电脑开发与应用,2005,18(2):39-41.〔8〕杨旸,施炜,席裕庚.基于Winsock的客户/服务器应用的网络通信支持[J].计算机工程,1998,24(1):60-62.〔8〕刘芳.基于大数据特征选择的深度学习算法[J].赤峰学院学报(自然科学版),2019(5):46-48.〔9〕孙洁,刘晓悦.网络监控系统中服务器与单片机实时通信的设计与实现[J].电气自动化,2007,29(5):43-44.〔10〕高建国,戴海鸿.嵌入式通信服务器E1网络驱动程序设计与实现[J].南京邮电大学学报(自然科学版),2009,29(6):91-95.〔11〕陈春丽,叶顺流.网络与通信技术OPCUA服务器设备集成关键技术研究与开发[J].科技创新导报,2013(7):48-51.〔12〕刘潇婷,毕春娜.网络通信服务器对目标对象快速搜索方法的比较[J].科技资讯,2007(22):88-88.。
TCPIP协议分析器的设计与实现
图1系统功能模块图1系统需求分析本系统主要功能需求有以下几项:①具备网络数据包捕获的参数设置:在进行数据捕获之前要进行协议类型、MAC 地址、IP 地址等参数的设置,满足用户的一些常规需求,保证用户使用系统的合理性。
②能够捕获到本机所有的网络数据包:通过本系统可以对网络上的数据包进行捕获,包括ICMP 、DNS 、ARP 、RARP 等一些网络协议的数据包的捕获,让用户通过本系统能够捕获到有用的数据包。
③能正确地对捕获到的网络数据包进行网络协议分析:在捕获到网络数据包后能够对网络数据包进行包结构分析,对数据链路层数据按照帧格式进行分析,对网络层的IP 数据报的分析,对传输层TCP 和UDP 的头格式进行分析,对应用层协议进行分析。
④能够把捕获到的网络数据包保存到当地文件中:在用户的使用过程中,可能需要对捕获到的网络数据包进行存储,那么需要满足用户对网络数据包的存储功能,让用户能够更灵活地使用本系统。
⑤能够打开已经捕获到的网络数据文件并进行网络协议分析:能够满足用户打开已经保存的网络数据文件,并进行网络协议分析,这样用户就能随时随地对以前的网络数据进行协议分析了。
⑥能统计当前所有网络接口的网络数据包:通过这个功能,用户可以查看当前网络接口的数据包数量和每秒通过的数据量,用户可以清晰地掌握当前网络接口通过数据包的状况,有助于用户对网络接口的检测。
2总体设计2.1系统总体模块设计通过系统需求分析可以将网络协议分析器分为四大主要功能模块,分别为文件存储与读取模块、抓包参数设置模块、数据包捕获模块和数据包分析模块。
这些模块详细功能如下:①文件存储与读取模块:通过捕获网络数据包,把其存储到文件中,有利于以后对网络数据包的分析;读取已经捕获到并存储到文件中的数据包,并进行协议分析。
②抓包参数设置模块:通过配置抓包参数,来确定捕获数据包的类型,可以指定捕获网络数据包的MAC 地址和网络地址,并能够对网络协议和网络数据包大小进行设置。
TCP IP协议ARP地址解析协议分析041440516董迎顺
长春大学计算机学院网络工程专业TCP/IP协议实验报告备注:实验包括基本技能、进阶技能和创新技能,如果没有创新技能方案则最高分为90分,实验名称:实验二ARP地址解析协议分析班级:网络五班姓名:董迎顺学号:041440516实验地点:机房日期:2015-11-18一、实验目的:1.能够使用ARP命令对ARP选路表(下文简称ARP表)进行简单操作。
2.学会使用Ethereal捕获ARP数据包并分析其格式。
3.深入理解ARP(地址解析协议)的工作原理和重要作用。
二、基本技能实验内容、要求和环境:【实验环境】1.安装Windows2000/2003Server/XP操作系统的PC计算机一台。
2.每台PC具有一块以太网卡,通过双绞线与局域网相连。
3.每台PC运行网络协议分析软件Ethereal或Wireshark。
【实验内容】1.在同一网段内的两台机器间执行ping命令,截获报文,分析ARP协议报文结构。
特别注意分析目的IP地址。
2.分析ARP协议在同一网段内的解析过程。
3.使用arp –a,arp-d等arp 缓存控制命令,察看在上述实验步骤中ARP缓存的变化情况。
【实验指导】ARP协议是“Address Resolution Protocol”的缩写。
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。
在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。
所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
ARP 协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
在DOS提示符下使用arp -a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。
当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。
第2章+TCPIP协议分析-4+网际控制消息协议(ICMP)
8
代码 Code (8bit)
16
不同类型和代码有不同的内容Data 不同类型和代码有不同的内容Data
Data
差错信息 出错IP数据报头+原始数据报的前8个字节 出错IP数据报头+原始数据报的前8 IP数据报头
IP数据报 传输协议
IP数据报 差错报告报文
网络
ICMP报文 报文
类型 码值 =3
信宿机不可达
校验和
码值=0 网络不可达 码值 码值=1 码值 主机不可达 码值=2 码值 协议不可达 码值=3 码值 端口不可达 …
代码
0 1 2 3 4 5 6 7 8 9 10 11 12
意义
网络不可达 主机不可达 协议不可达 端口不可达 需要分段但DF置位 需要分段但DF置位 DF 源路由失败 目的网络未知 目的主机未知 源主机被隔离 与目的网络的通信被禁止 与目的主机的通信被禁止 对所请求的服务类型, 对所请求的服务类型,网络不可达 对所请求的服务类型, 对所请求的服务类型,主机不可达
ICMP源抑制报文 ICMP源抑制报文
(3)改变路由请求(重定向)—— 5 改变路由请求(重定向) 当路由器检测到一台主机使用了一条非优化路 由时,它就向主机发送一个重定向的ICMP报文, ICMP报文 由时,它就向主机发送一个重定向的ICMP报文,请 求主机改变路由,同时转发初始数据报。 求主机改变路由,同时转发初始数据报。
(2)拥塞和数据流控制—— 4 拥塞和数据流控制 发生拥塞的路由器为每个丢弃的数据报发送一 个源抑制报文当一台主机收到源抑制报文时, 个源抑制报文当一台主机收到源抑制报文时,就需 要降低传送率。 要降低传送率。
《TCPIP协议分析》课程设计
地址掩码请求;应答
10;9
路由器恳求;通告
13;14
时间戳请求;应答
4
源站抑制
通知类
5
重定向
源端抑制报文格式
类型:4
代码:0
检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节
超时报文格式
类型:11
代码:0或1
检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节
简单示意图:
ICMP
攻击者[IP=172.16.52.140]--------------------------------->受害者[截获攻击者IP=172.16.52.140]==>可以换IP回来反击
2.伪造IP的Flood
如果你是Win2000/XP并且是Administrator权限,可以试试看FakePing,它能随意伪造一个IP来Flood,让对方摸不到头脑,属于比较隐蔽阴险的Flood。
成绩:
《TCP/IP协议分析》课程设计
题目:ICMP协议分析
院(系):
专业班级:
ICMP协议分析
ICMP协议分析专业:信息对抗技术学生姓名:石星宇学号:02123010完成时间:2014年11月25日ICMP协议分析................................................................................................ - 1 -一、ICMP协议概述.............................................................................. - 1 -二、ICMP报文类型.............................................................................. - 1 -三、ICMP的应用.................................................................................. - 1 -四、ICMP协议抓包分析...................................................................... - 2 -对帧的分析:................................................................................... - 3 -对以太网帧头的分析:................................................................... - 3 -IP首部分析...................................................................................... - 4 -ICMP报文分析................................................................................ - 4 -ICMP协议分析一、ICMP协议概述为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。
TCPIP历史及体系结构文献阅读综述
TCP/IP历史及体系结构——文献阅读综述空白小龙摘要:本文从TCP/IP的起源、特性、协议的目标和TCP/IP协议模型等方面,叙述了TCP/IP的历史和它的体系结构。
关键词: TCP/IP TCP/IP协议历史体系结构TCP/IP是使计算机能互相通信的一组协议,TCP/IP协议是互联协议的一种标准。
实际上,要实现网络的互联,有许多协议可以选用,而TCP/IP是使用最广泛、业界公认的一种协议。
这主要是由于TCP/IP是Internet上选用的协议,而Internet是世界上用户群最多的、规模最大的网络。
如果一台计算机要在Internet上通信,则必须选用TCP/IP,几乎所有厂商在设计硬件和软件时,都是按照支持TCP/IP标准来考虑的。
所以也可以说,TCP/IP是Internet通信协议的标准。
TCP/IP协议并不是一个协议,它是许多协议的总称。
当多个协议一起工作时,这一组协议统称为协议集或协议栈。
TCP/IP就是一个协议集,它包括IP(Internet Protocol),TCP(Transmission Control Protocol)、ARP(Address Resolution Protocol)、ICMP(Internet Control Message Protocol)、UDP(User Datagram Protocol)、RIP(Routing Information Protocol)、FTP(File Transfer Protocol)、HTTP(Hypertext Transfer Protocol)等。
TCP/IP是一个非常重要的协议。
该协议几乎得到所有主要单机操作系统和网络操作系统的支持,例如,Windows 98/2000/XP、Windows NT、Linux、Unix、OS2和Netware。
该协议更得到几乎所有硬件和软件厂商的支持,例如,Microsoft、Novell、IBM、Apple和Red Hat公司等。
计算机组网技术无线局域网技术安全发展读书报告041440516董迎顺
无线局域网中的设备在实际通信时是逐跳的方式,要么是用户设备发数据给接入设备,饭由接入设备转发,要么是两台用户设备直接通信,每一种通信方式都可以用链路层加密的方法来实现至少与有线连接同等的安全性。无线信号可能被侦听,但是,如果把无线信号承载的数据变成密文,并且,如果加密强度够高的话,侦听者获得有用数据的可能性很小。另外,无线信号可能被修改或者伪造,但是,如果对无线信号承载的数据增加一部分由该数据和用户掌握的某种秘密生成的冗余数据,以使得接收方可以检测到数据是杏被更改,那么,对于无线信号的更改将会徒劳无功。而秘密的独有性也将使得伪造数据被误认为是合法数据的可能性极小。
我国从2001年开始着手制定无线局域网安全标准,经过西安电子科技大学、西安邮电学院、西电捷通无线网络通信有限公司等院校和企业的联合攻关,历时两年多制定了无线认证和保密基础设施WAPI,并成为国家标准,于2003年12月执行。WAPI使用公钥技术,在可信第三方存在的
条件下,由其验证移动终端和接入点是否持有合法的证书,以期完成双向认证、接入控制、会话密钥生成等目标,达到安全通信的目的。WAPI在基本结构上由移动终端、接入点和认证服务单元三部分组成,类似于802.11工作组制定的安全草案中的基本认证结构。同时我国的密码算法一般是不公开的,WAPI标准虽然是公开发布的,然而对其安全性的讨论在学术界和工程界目前还没有展开。
另外,只要按照无线局域网规定的格式封装数据包,把数据放到网络上发送时也可以被其它的设备读取,并且,如果使用一些信号截获技术,还可以把某个数据包拦截、修改,然后重新发送,而数据包的接收者并不能察觉。
因此,无线信道上传输的数据可能会被侦听、修改、伪造,对无线网络的正常通信产生了极大的干扰,并有可能造成经济损失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长春大学计算机学院网络工程专业TCP/IP协议实验报告备注:实验包括基本技能、进阶技能和创新技能,如果没有创新技能方案则最高分为90分,实验名称:实验三ICMP协议分析与设计班级:网络五班姓名:董迎顺学号:041440516实验地点:机房日期:2015-11-25一、实验目的:1.掌握使用Ethereal工具对ICMP协议进行抓包分析的方法。
2.理解不同类型ICMP报文的具体意义。
3.通过实验,进一步了解ICMP协议。
二、基本技能实验内容、要求和环境:【实验环境】1.安装Windows2000/2003Server/XP操作系统的PC计算机一台。
2.每台PC具有一块以太网卡,通过双绞线与局域网相连。
3.每台PC运行网络协议分析软件Ethereal或Wireshark。
【实验内容】1、分析ping程序使用的ICMP信息包启动Ethereal协议分析工具,选择“Capture”→“Start”,开始数据包的抓取,接下来点击“开始”菜单,在运行中输入“cmd”,进入Windows系统的命令行模式,在命令行模式下输入“ping –n 10 目标IP地址”,ping结束后,停止Ethereal抓包程序,并在Ethereal中的“Filter”域中输入关键字“ICMP”,点击“Apply”按钮,将非ICMP数据包过滤掉。
在中间窗口的“Internet Protocol”中可以看到,协议号为01,表明是一个ICMP格式的数据包。
查看数据包内容窗口中的“Internet Control Message Protocol”,可以看到该ICMP数据包的协议类型为8(Type 8),代码为0(Code 0),表明是一个ICMP请求(Request)数据包。
请注意其他字段“Identifier”,“Sequence number”和“Data”的内容。
分析查看这些ICMP协议数据包,回答以下问题:(1)本机的IP地址是多少?目标主机的IP地址是多少?(2)为什么ICMP协议数据包没有源端口号和目的端口号?(3)查看本机发送的每个Request数据包,回答这些ICMP数据包的类型号(Type)和代码(Code)是多少?这些ICMP数据包中的其他字段有哪些?“Checksum”、“Sequence”和“Identifier”字段分别占多少字节?(4)查看回复的Reply数据包,它们的类型号(Type)和代码(Code)是多少?这些ICMP数据包中还有其他哪些字段?“Checksum”、“Sequence”和“Identifier”字段分别占多少字节2、分析traceroute程序使用的ICMP信息包启动Ethereal协议分析工具,选择“Capture”→“Start”,开始抓取数据包。
然后点击“开始”菜单,在运行中输入“cmd”,进入Windows系统的命令行模式,在命令行模式下输入“tracert 某域名”,tracert命令结束后,停止Ethereal抓包程序,并在Ethereal中的“Filter”域中输入关键字“ICMP”,点击“Apply”按钮,将非ICMP数据包过滤掉。
分析查看这些ICMP协议数据包,回答以下问题:(1)本机的IP地址是多少?目标主机的IP地址是多少?(2)查看echo数据包,与ping所使用的ICMP包比较一下,看看是否相同,有什么区别?【实验指导】ICMP是Internet Control Message Protocol(Internet控制报文协议)的缩写,是TCP/IP协议族的一个子协议,用于在主机和路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由器是否可用等网络本身的消息。
由于IP网络的不可靠并且不能保证信息传递,因此当发生问题时,通知发送者是很重要的。
ICMP协议提供有关阻止数据包传递的网络故障问题反馈信息的机制,它让TCP等上层协议能够意识到数据包没有送达目的地,ICMP协议提供一种查出灾难性问题的方法。
这些灾难性的问题包括“TTL Exceeded”(超过生存时间)和“需要分更多的数据段”等。
ICMP协议不报告IP校验失败等常见的问题。
这是因为假定TCP或者其他可靠的协议能够处理这类数据包损坏的问题。
而且,如果使用UDP等不可靠的协议,我们就不应理会较小数量的数据损失。
反之,如果网络有问题则需要立即报告。
例如,当IP的TTL值(IP生存时间)将达到零,这就可能是网络的某个部分发生了路由环路问题,这样将没有任何数据包能发送到目的地。
端点系统需要了解这些类型的故障。
ICMP是一种发送各种消息,用于报告网络状态的协议,而非仅仅是简单的ping(连通性测试程序)。
回应请求(Echo Request)仅是ICMP协议提供的众多消息之一。
Ping 信息可以被过滤掉。
但是,大多数ICMP消息类型是IP、TCP和其他协议正常运行所需要的。
ICMP协议本身非常复杂。
每一种类型的ICMP消息也称“主要类型(Major Type)”,它拥有自己的“子类型编码(Minor Codes)”。
ICMP协议工作在第3层,因此,它能够在互联网上路由。
一个ICMP数据包实际上就是一个IP数据部分包含ICMP协议数据的IP数据包。
每一个ICMP消息都将包含引发这条ICMP消息的数据包的完全IP包头,这样端点系统就会知道实际上哪一个数据包没有发送到目的地。
ICMP协议消息包含不会变化的3个字段,随后是ICMP数据,然后是引发此消息的源IP数据包包头。
不会变化的3个字段中,第1个字段包含ICMP类型(主要类型)、第2个字段包含了类型代码、第3个字段是ICMP消息校验值。
ICMP协议在某些情况下不会发送错误信息。
ICMP不会对ICMP信息做出响应。
如果ICMP 回应其他ICMP消息,这些消息的数量会爆炸性增长而演变为一场ICMP消息风暴。
为了防止出现广播风暴,ICMP消息也不会回应一个广播或者多播地址。
各种ICMP的报文格式如下:目的不可达报文类型:3代码:0至12检验和未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节∙源端抑制报文类型:4代码:0检验和未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节∙超时报文类型:11代码:0或1检验和未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节∙参数问题类型:12代码:0或1检验和指针未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节∙改变路由类型:5代码:0到3检验和目标路由器IP地址收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节∙回送请求和回答类型:8或0代码:0检验和标识符序号由请求报文发送;由回答报文重复∙时间戳请求和回答类型:13或14代码:0检验和标识符序号原始时间戳接收时间戳发送时间戳∙地址掩码请求和回答类型:17或18代码:0检验和标识符序号地址掩码∙路由询问和通告类型:10代码:0检验和标识符序号类型:9代码:0检验和地址数地址项目长度寿命路由器地址1优先级1路由器地址2优先级2...三、基本技能实验结果与分析:1(1)在cmd中输入ipconfig查看本机ip目标主机ip通过ping命令看是否能ping通(2)ICMP是:Internet 控制信息协议(ICMP)是IP 组的一个整合部分。
通过IP 包传送的ICMP 信息主要用于涉及网络操作或错误操作的不可达信息。
ICMP 包发送是不可靠的,所以主机不能依靠接收ICMP 包解决任何网络问题。
ICMP不象TCP或UDP有端口,但它确实含有两个域:类型(type)和代码(code)。
而且这些域的作用和端口也完全不同。
Ping用到的是ICMP 协议。
不是端口。
(3)在cmd中输入ping –n 10 192.168.31.197在wireshark中抓取icmp数据包随便找一个icmp的request包分析一下可以看见ICMP数据包的协议类型为8(Type 8),字节为1bit;代码为0(Code 0),字节为1bit;表明是一个ICMP请求(Request)数据包。
“Identifier”为0x0001 ,字节为2bit。
“Sequence number”为15(0x000f),字节为2bit;“Data”的为32bit的长度(4)查看回复的Reply数据包可以看见type类型是8,字节为bit。
Code为0;表明是一个ICMP reply数据包;identifier 为0x0001,字节为2bit ,Sequence number”为11(0x000b),字节为2bit;“Data”的为32bit 的长度。
其他字段:checksum:0x5550;sequence number(le)2(1)在cmd中输入ipconfig 显示本机的ip地址是192.168.31.113目标主机的IP地址是119.75.217.109(百度)(2)在命令行模式下输入“tracert 某域名”,在wieshark中抓icmp查看echo数据包四、进阶技能的任务与要求设计一个程序,实现类似ping命令的功能。
五、进阶技能的规划设计与步骤#include<WinSock2.h>#include<stdio.h>#pragma comment(lib,"ws2_32.lib")#include<WS2tcpip.h>//#include<string.h>//定义一个结构体,来表示ICMP报文的头。
typedef struct icmp_head{unsigned char icmp_type;//消息类型unsigned char icmp_code;//代码unsigned short icmp_checksum; //校验和DWORD icmp_id; //请求id号,进程号DWORD icmp_sequence; //序列号DWORD icmp_timestamp; //时间戳}ICMP_HEAD, *PICMP_HEAD;//计算校验和的通用算法unsigned short checksum(PICMP_HEAD picmp, int leng) {long sum = 0;unsigned short *pusIcmp = (unsigned short *)picmp;while (leng > 1){sum += *(pusIcmp++);if (sum & 0x8000000){sum = (sum & 0xffff) + (sum >> 16);}leng -= 2;}if (leng){sum += *(unsigned char *)pusIcmp;}while (sum >> 16){sum = (sum & 0xffff) + (sum >> 16);}return (unsigned short)~sum; //取反}int main(int argc, char **argv){WSADATA wsaData;SOCKET client; //原始套接字SOCKADDR_IN destAddr;struct hostent * host = NULL;int nTimeOut = 1000;char szSendBuffer[sizeof(ICMP_HEAD) + 32] = { 0 }; //定义ICMP报文的发送缓冲区char szRecvBuffer[1024];PICMP_HEAD picmp = (PICMP_HEAD)szSendBuffer;//PICMP指向发送缓冲区if (argc < 2){printf("请输入目标主机的名称或者ip地址:\r\n");system("pause");return 1;}//加载动态连接库WSAStartup(MAKEWORD(2, 2), &wsaData);//创建原始套接字client = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);if (client == INVALID_SOCKET){printf("SOCKET()失败!错误码:%d\n", WSAGetLastError());system("pause");}//设置接收超时时间setsockopt(client, SOL_SOCKET, SO_RCVTIMEO, (const char *)&nTimeOut, sizeof(nTimeOut));//设置目标主机的地址host = gethostbyname(argv[1]);if (host == NULL){printf("主机名解析失败!\n");system("pause");return 1;}destAddr.sin_family = AF_INET;destAddr.sin_addr.S_un.S_addr = *((unsigned long *)host->h_addr);destAddr.sin_port = htons(0);//ICMP报文的封装//ICMP_HEAD封装picmp->icmp_type = 8;picmp->icmp_code = 0;picmp->icmp_checksum = 0;picmp->icmp_id = GetCurrentProcessId();//封装数据memcpy((szSendBuffer + sizeof(ICMP_HEAD)), "AQWERTYUIOPPASDFGHJKLZXCVBNM", 32);//计算校验和picmp->icmp_checksum = checksum((PICMP_HEAD)szSendBuffer, sizeof(szSendBuffer));//向目标主机发送ICMP报文并接受回射ICMP报文struct sockaddr_in fromAddr;int sizeFrom = sizeof(SOCKADDR_IN);memset(szRecvBuffer, 0, 1023);//向目标主机发送ICMP报文int sendBytes = sendto(client, szSendBuffer, sizeof(szSendBuffer), 0, (SOCKADDR *)&destAddr,sizeof(destAddr));if (sendBytes == SOCKET_ERROR){printf("发送错误:错误代码%d\n", WSAGetLastError());system("pause");return1;}else{printf("发送ICMP报文成功!发送的字节数:%d\n", sendBytes);}//从目标主机接收回射的ICMP报文int reciveBytes = recvfrom(client, szRecvBuffer, sizeof(szRecvBuffer), 0, (SOCKADDR *)&fromAddr,&sizeFrom);if (reciveBytes == SOCKET_ERROR){printf("接收错误:错误码%d\n", WSAGetLastError());system("pause");return 1;}else{printf("接收成功!收到的字节数:%d\n", reciveBytes);PICMP_HEAD PTEMP = (PICMP_HEAD)szRecvBuffer + 20;//跳过报文的ip头部DWORD t2 = GetTickCount();int time = t2 - picmp->icmp_timestamp;//经过的时间int datalen = reciveBytes - 20 - sizeof(ICMP_HEAD);//发送的字节数if (strcmp(inet_ntoa(fromAddr.sin_addr), inet_ntoa(destAddr.sin_addr)) == 0)//保持地址一致{printf("来自%s的回复:字节=%d 时间=%d ms\n", inet_ntoa(destAddr.sin_addr), datalen, time);}}system("pause");return 0;}六、进阶技能实验结果与分析该代码不完善,有bug,在调试的时候有时可以出结果,有时候不显示七:思考题:1.ICMP的用途是什么?答:它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。