文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术网络知识ping 命令工作原理详细解析
精品推荐
特别推荐
·详解策略路由和路由策略的区别
·ping 命令工作原理详细解析
·强烈推举系统管理员收藏的命令
·端口大全+注解
·常见端口表汇总
·网络监听的原理、实现技术与防范方法
·网管必须熟悉的几个网络DOS命令
·支招解决:网站本机无法访问故障
·支付宝数字证书无法使用解决方法
·计算机基本知识
·五招技巧快速锁定IP地址
·ADSL知识合集
·Rundll32.exe
·排优解难 网上邻居常遇故障解决方法
·Internet你应该知道的21个事实
·网管知识 网吧的技术漏洞应如何封杀?
·简单经济的可用性测试 上手指南
·巧查家用adsl的带宽
·冲浪技巧:如何抓取网页上的动画
·用注销脚本自动清除上网痕迹
热点TOP10
·端口大全+注解
·提升ADSL速度的三大招数
·常用网络命令及命令实例详解
·关于光纤接续损耗测试以及分析
·ADSL知识合集
·网管必须熟悉的几个网络DOS命令
·常见端口表汇总
·解决双网卡无法共享上网的问题
·系统显示“网络受限制或无连接”是否影响网速
·宽带共享上网软件
·实用-ADSL测速、加速、检测故障全解决
·1394网络适配器是什么东西?
·让ADSL自动拨号和永久在线
·网管们必须具备的硬件基础知识
·网管来看 企业面试网管员的模拟试题和答案
·五招技巧快速锁定IP地址
·巧用宽带路由器共享上网
·OFDM技术及其性能分析
·请问如何查出我被人限制网速~~~
·办公大楼布线网络介绍

ping 命令工作原理详细解析

日期:2008年1月15日 作者: 查看:[大字体 中字体 小字体]


ping 命令工作原理详细解析(1) ping的原理就是首先建立通道,然后发送包,对方接受后返回信息,这个包至少包括以下内容,发送的时候,包的内容包括对方的ip地址和自己的地址,还有序列数,回送的时候包括双方地址,还有时间等,主要是接受方在都是在操作系统内核里做好的,时刻在监听,提供一段c程序的代码,希望对大家有用。

  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include
  #include

  #define PACKET_SIZE 4096
  #define MAX_WAIT_TIME 5
  #define MAX_NO_PACKETS 3

  char sendpacket[PACKET_SIZE];
  char recvpacket[PACKET_SIZE];
  int sockfd,datalen=56;
  int nsend=0,nreceived=0;
  strUCt sockaddr_in dest_addr;
  pid_t pid;
  strUCt sockaddr_in from;
  strUCt timeval tvrecv;

  void statistiCS(int signo);
  unsigned short cal_chksum(unsigned short *addr,int len);
  int pack(int pack_no);
  void send_packet(void);
  void recv_packet(void);
  int unpack(char *buf,int len);
  void tv_sub(strUCt timeval *out,strUCt timeval *in);

  void statistiCS(int signo)
  { printf("\n--------------------PING statistiCS-------------------\n");
ping 命令工作原理详细解析(2)   printf("%d packets transmitted, %d received , %%%d lost\n",nsend,nreceived,
  (nsend-nreceived)/nsend*100);
  close(sockfd);
  exit(1);
  }
  /*校验和算法*/
  unsigned short cal_chksum(unsigned short *addr,int len)
  { int nleft=len;
  int sum=0;
  unsigned short *w=addr;
  unsigned short answer=0;

  /*把ICMP报头二进制数据以2字节为单位累加起来*/
  while(nleft>1)
  { sum+=*w++;
  nleft-=2;
  }
  /*若ICMP报头为奇数个字节,会剩下最后一字节。把最后一个字节视为一个2字节数据的高字节,这个2字节数据的低字节为0,继续累加*/
  if( nleft==1)
  { *(unsigned char *)(&answer)=*(unsigned char *)w;
  sum+=answer;
  }
  sum=(sum>>16)+(sum&0xffff);
  sum+=(sum>>16);
  answer=~sum;
  return answer;
  }
  /*设置ICMP报头*/
  int pack(int pack_no)
  { int i,packsize;
  strUCt icmp *icmp;
  strUCt timeval *tval;

  icmp=(strUCt icmp*)sendpacket;
  icmp->icmp_type=ICMP_ECHO;
  icmp->icmp_code=0;
  icmp->icmp_cksum=0;
  icmp->icmp_seq=pack_no;
  icmp->icmp_id=pid;
  packsize=8+datalen;
  tval= (strUCt timeval *)icmp->icmp_data;
  gettimeofday(tval,NULL); /*记录发送时间*/
  icmp->icmp_cksum=cal_chksum( (unsigned short *)icmp,packsize); /*校验算法*/
  return packsize;
  }


(出处:清风网络学院






上一篇:面试:如何让考官喜欢上你?

下一篇:CCNP路由精华:在可扩展的网络中实施BGP

ping 命令工作原理详细解析 相关文章:
·最详细的黑客入门法则
·初级网管或黑客必需撑握的8个DOS命令
·ping 命令的用法大全
·LINUX 常见问题1000个详细解答
·QQ密码被盗之谜1:本地破解的奥秘原理和方法
·socket编程原理
·DOS命令字典
·VBS脚本病毒原理分析与防范
·秦殇复活-详细剧情攻略 - 游戏攻略
·Excel密码保护的解除方法与解除原理
ping 命令工作原理详细解析 相关软件:
·你为谁工作
·豪杰音乐工作室V1.1 Build 0602
·工作流管理系统 V1.1
·手机的原理与维修
·常用网络命令 视频教程
·《命令与征服3泰伯利亚战争》全版本修改器全集
·shell编程和unix命令
·同济大学.现代通信原理与技术
·精通.Net核心技术原理与构架
·管理学原理 ISO

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot