- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Visual C#实现ICMP网络协议.doc
利用Visual C#实现ICMP网络协议ICMP就是所谓的Internet控制报文协议(Internet Control Message Protocol),在网络中,一般用它来传递差错报文以及其他应注意的信息。ICMP一般被认为是和IP协议同一层的协议,IMCP报文通常被IP层或者更高层的协议(如:TCP或者UDP)使用,ICMP对于互联网以及其他基于IP协议的网络的正常运行起着非常重要的作用。有许多重要的网络程序都是基于ICMP协议上的,最为著名如Ping和Tracert等。本文就来介绍用Visual C#实现基于ICMP协议重要的网络命令Ping的方法。Ping命令是可以说是一个跨平台程序,这是因为Ping命令不仅存在Windows系统上,在Unix系统上也有Ping命令,其实对其他只要是支持网络的操作系统,一般也都存在该命令。Ping命令的主要作用是检测网络上主机的状态。要是在几年前,我们还可以下如此断言,如果不能Ping通某台主机,那么也就无法Telnet或者FTP到这台主机,但随着互联网的安全意识的增加,出现了访问控制清单的路由器和防火墙,由于ICMP报文是在IP数据包中被传输的,而到达一台主机不仅取决于IP层是否到达,还取决于使用何种协议和端口。譬如金山公司的金山网镖就可以禁止其他机器Ping通这台主机。所以在现在的情况下,即时Ping不通某台机器,但也有可能FTP登陆到这台机器,或者通过HTTP来浏览这台机器上的Web页面。 一.Ping命令简介 首先进入Windows系统中的命令提示符,输入Ping/?后,单击回车键,您就可以了解Ping命令的各种参数的使用方法。最为常见的使用方法是Ping 远程计算机名称(或者远程计算机的IP地址),如果在Ping命令的返回字符中有Reply from,说明此主机在线,具体如图01:
图01:Ping通主机时的运行界面 如果返回字符中有Request timeout,一般情况此主机不在线,具体如图02:
图02:Ping不通主机时的运行界面 二.Ping命令、ICMP报文和IP数据包 Ping命令基于的是TCP/IP协议簇中的ICMP协议,在编写基于ICMP协议的网络应用程序时,应注意下面二点: 1. ICMP报文是封装在IP数据包中传输的。 了解这一点对后面编程非常重要,图03是IP数据包的组成结构图:
图03:IP数据包的组成结构图 习惯上把IP数据包划分为三个部分: (1).IP数据包中的前二十个字节的数据,即图03中从【4位版本】到【32位目的地址IP】,这称为IP首部。 (2).选项,即图03中的【选项(如果有)】部分。 (3).数据,即图03中的【数据】部分。 其中后面二个部分组成的就是ICMP报文。ICMP报文的具体组成结构如图04所示:
图04:ICMP报文组成结构图 2. ICMP协议没有固定的端口号。 ICMP协议和其他协议不同,其他协议基本都对应固定的端口号,如HTTP协议是通过80端口号来交换数据的。 了解上面的二点对后面在Visual C#实现Ping命令是非常有用的。因为在下面的在编写Visual C#实现Ping命令的程序中,程序中定义一个名称为IcmpPacket类,通过这个类来构造ICMP报文,而定义IcmpPacket类依据的就是图03所示的ICMP报文组成结构。同样由于ICMP协议没有对应固定的端口号,这就意味着,编写Visual C#实现Ping命令中可以随意选择端口号,本文选择的端口号是30。 由于ICMP协议是一个复杂的协议,而本文由于篇幅所限,对ICMP的很多细节,就不能一一介绍,如果你对ICMP协议感兴趣或对上面的介绍的仍然感觉有点模糊,那就请参阅探讨ICMP协议的相关书籍,它们一般介绍的都很详细。三.简介Visual C#实现Ping命令使用的类: Visual C#实现Ping命令中涉及到很多的类,其中最重要的是Socket类。这是因为程序中发送含有ICMP报文的IP数据包,接收含有ICMP超时或ICMP会显报文的IP数据包和设定IP数据包中的TTL数值都会使用到Socket类。表01和表02是Socket类中的常用属性和方法及其简要说明。
属性 说明 AddressFamily 获取Socket的地址族。 Available 获取已经从网络接收且可供读取的数据量。 Blocking 获取或设置一个值,该值指示Socket是否处于阻塞模式。 Connected 获取一个值,该值指示Socket是否已连接到远程资源。 Handle 获取Socket的操作系统句柄。 LocalEnd
您可能关注的文档
- 内蒙古工业大学2009年概率论与数理统计期末试卷.doc
- 内蒙古工业大学Web程序设计实验四报告.doc
- 内蒙古工业大学wgy.doc
- 内蒙古科技大学通信工程专业培养方案.doc
- 册答案新视野大学英语(第2版)第1册.doc
- 写 作 基 础.doc
- 写作时替换的高级词汇.doc
- 写作的基本要求与技巧.doc
- 写作高级词汇替换.doc
- 写给2012考研的人们.doc
- DB12 046.89-2011 产品单位产量综合电耗计算方法及限额 第89部分:手机 .docx
- DB12 046.88-2011 产品单位产量综合电耗计算方法及限额 第88部分:晶振 .docx
- DB12T 419-2010 无公害农产品 核桃栽培管理技术规范 .docx
- DB12T 417-2010 沙化和荒漠化监测技术规程.docx
- DB12T 449-2011 民用建筑四防门通用技术条件.docx
- DB12 046.100-2011 产品单位产量综合能耗计算方法及限额 第100部分: 果汁饮料 .docx
- DB12T 427-2010 葱姜蒜中205种农药多残留测定方法-GCMS法.docx
- DB12T 421-2010 有机农产品 甘薯有机栽培技术规范.docx
- DB12T 426-2010 蔬菜水果中205种农药多残留测定方法-GCMS法 .docx
- 《老年人身体康复》精品课件——项目6 中国传统康复技术.pptx
最近下载
- 《模拟电子技术基础》模电期末试题集及答案(8套).pdf
- 2023年太原师范学院数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 物联网工程专业生涯发展.pptx VIP
- 2024年04月自然资源部南海局所属事业单位2024年度公开招考61名工作人员笔试参考题库附带答案详解.docx VIP
- 中国移动湖北移动招聘笔试题库2023.pdf
- SENNHEISER森海塞尔话筒剧院EK 3241使用说明书Instruction manual EK 3241.pdf
- 七年级数学《平面直角坐标系》单元教学设计.doc VIP
- 移动公司笔试题目.docx VIP
- 2023-2024学年广东省深圳市龙华区部编版四年级上册期末考试语文试卷【含答案】.pdf
- 业务跟单年度工作总结.pptx VIP
文档评论(0)