文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术网络知识ping 命令工作原理详细解析
精品推荐
特别推荐
·详解策略路由和路由策略的区别
·ping 命令工作原理详细解析
·强烈推举系统管理员收藏的命令
·端口大全+注解
·常见端口表汇总
·网络监听的原理、实现技术与防范方法
·网管必须熟悉的几个网络DOS命令
·支招解决:网站本机无法访问故障
·支付宝数字证书无法使用解决方法
·计算机基本知识
·五招技巧快速锁定IP地址
·ADSL知识合集
·Rundll32.exe
·排优解难 网上邻居常遇故障解决方法
·Internet你应该知道的21个事实
·网管知识 网吧的技术漏洞应如何封杀?
·简单经济的可用性测试 上手指南
·巧查家用adsl的带宽
·冲浪技巧:如何抓取网页上的动画
·用注销脚本自动清除上网痕迹
热点TOP10
·提升ADSL速度的三大招数
·常见端口表汇总
·ADSL共享上网方法
·让ADSL自动拨号和永久在线
·巧用宽带路由器共享上网
·网管必须熟悉的几个网络DOS命令
·ADSL知识合集
·Windows上网后速度越来越慢怎么办?
·常用网络命令及命令实例详解
·让ADSL开机后自动拨号连接网络
·新手常见安全问题
·实用-ADSL测速、加速、检测故障全解决
·家庭多机共享上网的解决之道
·宽带共享上网软件
·域名解析 A记录 MX记录 CNAME记录 TTL
·端口大全+注解
·宽带拨号错误代码表
·网管们必须具备的硬件基础知识
·解决双网卡无法共享上网的问题
·只改一个值 加快宽带上网速度

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 命令工作原理详细解析 相关文章:
·ping 命令的用法大全
·透析ICMP协议(四): 应用篇ping(RAW Socket)
·ping 命令工作原理详细解析
·如何正确使用Windows的Ping命令
·秘籍宝典:Ping命令的使用
·浅谈Google AdSense Pin:美国佬不了解中国国情
·不要小看了ping命令
·利用X-scan实现DDoS Ping攻击
·关于Google Adsense PIN的一些处理方式
·iBatis: 又一个O/R Mapping方案
ping 命令工作原理详细解析 相关软件:
·Deepin WinXP SP2完美精简版V4 ISO 见查看
·Deepin Windows XP SP2 完美精简版V4 正式版
·DEEPINXP精简版V4RC2 ISO
·Pinnacle.v10.5.1.品尼高 BIN 昨日发布!!
·Deepin XP 模式优化工具V1.51 绿色版
·Russ Freeman & The Rippingtons《Sahara》320kps
·超级PingV5.2.1
·DEEPIN V5与亮版与衮雪II合集 ISO 见查看
·超真实滑雪2005(RTL Ski Alpine 2005)免CD补丁
·Bookkeeping Basics Fixed Assets and Bad Debts

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