考试网 >> IT认证 >> 思科 >> Cisco指导 >> ping 命令工作原理详细解析

ping 命令工作原理详细解析

发布时间:2006-06-28 06:09     点击:
分页:上一页  1 [2] 

  /*把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;

  }
分页:上一页  1 [2] 
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有