题目8:Ping程序实现报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络 课程设计报告 题目: Ping程序的实现 姓 名: 学 号: 班 级: 指导老师: 湖南科技大学计算机科学与工程学院 二零一四年 六月 目录 1、课程设计任务描述 1 2、设计原理及相关知识 1 2.1设计原理 1 2.2相关知识 2 3、需求分析 2 3.1功能需求 2 3.2性能需求 3 3.3界面需求 3 4系统设计及实现 3 4.1系统设计 3 4.2系统实现 4 5、设计总结 13 5.1 完成的工作及评价 13 5.2 遇到的问题及解决过程 13 5.3 心得体会及建议 14 6、使用说明 14 参考文献 14 1、课程设计任务描述 另写一个程序,取代windows下的Ping程序命令,可以Ping指定主机、一批主机,并显示输出结果。 2、设计原理及相关知识 2.1设计原理 ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者通过返回的信息来判断网络的连接状况。Ping程序是面向向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。 2.2相关知识 了解ping命令实现原理,就要了解ping命令所使用到的TCP/IP协议。Ping程序来计算时间间隔,并计算有多少个包被送达。用户就可以判断网络的大致情况。 ICMP协议是IP层的 一个协议,但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据 报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。创建通信的套接字--将地址、端口信息与套接字绑定--构建IP包头与ICMP包头--发送构建的数据包--接收对方主机的回应--给出程序反馈信息 图4.1 4.2系统实现 (1)模块或函数功能描述 void ping(int argc,char *argv[]):ping()函数是本程序的核心部分,它通过调用其他模块的函数来实现,其主要步骤包括初始化winsock,初始化协议,创建套接字,名字解析。 int pack(int pack_no):构建数据报 void send_packet(void):发送数据报 void recv_packet(void):接收数据报 int unpack(unsigned char *buf,int len):剥去ICMP报头加显示 unsigned short cal_checksum(unsigned short *buffer, int size); //求校验和函数 void free():用于释放占用的资源,包括关闭套接字和释放winsock (2)关键的代码 IP报头字段数据结构 struct IP { unsigned char ip_hl:4; //首部长度 unsigned char ip_ver:4; //IP版本号 unsigned char ip_tos; //服务类型 unsigned short ip_len; //总长度 unsigned short ip_id; //标识 unsigned short ip_off; //标志位 unsigned char ip_ttl; //生存时间 unsigned char ip_port; //协议类型(TCP、UDP等) unsigned short ip_checksum; //ip首部校验和 unsigned long ip_source; //源ip地址 unsigned long ip_dest; //目的ip地址 }; ICMP报头字段数据结构 struct ICMP { unsigned char icmp_type; //

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档