实验3icmp协议实践ping解析计算机网吧管理计算机linuxUnix相关.pdf
《实验3icmp协议实践ping解析计算机网吧管理计算机linuxUnix相关.pdf》由会员分享,可在线阅读,更多相关《实验3icmp协议实践ping解析计算机网吧管理计算机linuxUnix相关.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机网络实验上机指导书 专业 _ 班级 _ 学号 _ 姓名 _ 沈阳工程学院信息工程系 实验 2ICMP 协议实践-ping解析 一.实验目的 掌握 ICMP 原理,利用其实现网络主机状态测试。二.实验内容 利用 ICMP 协议原理编程实现 PING 命令,测试目标主机是否可到达。并了解 Ping 实现原理。三.实验前的准备 了解 ICMP 原理及相关概念。掌握相关软件编程知识。四.实验要求及实验软硬件环境【基本要求】设计程序完成 PING 命令。完成此项实验,完成实验报告。【实验组织方式】个人实验【实验条件】局域网环境下微机两台,编程软件。五.实验步骤 六 了解 ICMP 原理以及网络编程
2、(1)源程序:Win dows Ping PingPingPingPingPingS.Army Ballistic Research Laboratory*/while(n left 1)sum+=*w+;n left-=2;/*mop up an odd byte,if n ecessary*/if(n left=1)u_short u=0;*(u_char*)(&u)=*(u_char*)w;sum+=u;用其实现网络主机状态测试二实验内容利用协议原理编程实现命令测试目标主机是否可到达并了解实现原理三实验前的准备了解原理及相关概念掌握相关软件编程知识四实验要求及实验软硬件环境基本要求设计程
3、序完成命令完成此网络编程源程序实验结果如图所示図面乜实面实脸图程序运行结果简单的程序把报头二进制数据以字节为单位累加起来若报头为奇数个字节会剩下最后一字节把最后一个字节视为一个节数据的高字字节这个字节数据的低字节为继续去报头求报头长度即报头的长度标志乘越过报头指向报头报头及数据报的总长度小于报头长度则不合理以毫秒为单位计算确保所接收的是我所发的的的回应生成使用的原始套接字这种套接字只有才能生成回收权限设置当前用户权限He ply Heplv Bepli/lleply f r-on:f r-on:f ron:193.K9.0.24:1?2:L 8 24:192,163-0-24:192.168_
4、0.24:bi/tes=32 hsrtes=32 bytes=32 bytes=32 iIme=78ms time=78ms t ine=78n s t ime 79rns TTL=&4 TTL=64 ITL=64 TTL=&4 /*add back carry outs from top 16 bits to low 16 bits*/sum=(sum 16)+(sum&Oxffff);/*add hi 16 to low 16*/sum+=(sum 16);/*add carry*/an swer=sum;/*trun cate to 16 bits*/return(an swer);实验
5、结果如图 6-1所示。C:AW INDO stem 3 2c m d.exe C:Documents and Ssttins Mldutin istratorpinsr 172 169図5 192_1&8,0 C192.160.0.51 uitK 32 bj/tei data:hineOut PQ cunents Settws dutin istrator面乜实pin?r 1?2.168-B.24 Tinging 192.1&8.3.24 192-1&8.0.24 uith 32 bi/tes oF datA:Do cuments And Settings Mldmin istratorS面h
6、实脸 图 6-1 ping 程序运行结果(2)LINUX/*简单的 ping 程序*/#in clude#in clude#in clude#i nclude#i nclude#in clude#in clude#in clude#in clude#in clude 用其实现网络主机状态测试二实验内容利用协议原理编程实现命令测试目标主机是否可到达并了解实现原理三实验前的准备了解原理及相关概念掌握相关软件编程知识四实验要求及实验软硬件环境基本要求设计程序完成命令完成此网络编程源程序实验结果如图所示図面乜实面实脸图程序运行结果简单的程序把报头二进制数据以字节为单位累加起来若报头为奇数个字节会剩下最
7、后一字节把最后一个字节视为一个节数据的高字字节这个字节数据的低字节为继续去报头求报头长度即报头的长度标志乘越过报头指向报头报头及数据报的总长度小于报头长度则不合理以毫秒为单位计算确保所接收的是我所发的的的回应生成使用的原始套接字这种套接字只有才能生成回收权限设置当前用户权限%d#include#include#define PACKET_SIZE 4096#define MAX_WAIT_TIME 5#define MAX_NO_PACKETS 3 char sendpacketPACKET_SIZE;char recvpacketPACKET_SIZE;int sockfd,datalen=
8、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_s
9、ub(struct timeval*out,struct timeval*in);void statistics(int signo)printf(n-PING statistics-n);printf(%d packets transmitted,%d received lostn,nsend,nreceived,(nsend-nreceived)/nsend*100);close(sockfd);exit(1);/*校验和算法*/unsigned short cal_chksum(unsigned short*addr,int len)int nleft=len;用其实现网络主机状态测试二
10、实验内容利用协议原理编程实现命令测试目标主机是否可到达并了解实现原理三实验前的准备了解原理及相关概念掌握相关软件编程知识四实验要求及实验软硬件环境基本要求设计程序完成命令完成此网络编程源程序实验结果如图所示図面乜实面实脸图程序运行结果简单的程序把报头二进制数据以字节为单位累加起来若报头为奇数个字节会剩下最后一字节把最后一个字节视为一个节数据的高字字节这个字节数据的低字节为继续去报头求报头长度即报头的长度标志乘越过报头指向报头报头及数据报的总长度小于报头长度则不合理以毫秒为单位计算确保所接收的是我所发的的的回应生成使用的原始套接字这种套接字只有才能生成回收权限设置当前用户权限2 字 int su
11、m=0;unsigned short*w=addr;unsigned short answer=0;/*把 ICMP 报头二进制数据以 2 字节为单位累加起来*/while(nleft1)sum+=*w+;nleft-=2;/*若 ICMP 报头为奇数个字节,会剩下最后一字节。把最后一个字节视为一个 节数据的高字节,这个 2 字节数据的低字节为 0,继续累加*/if(nleft=1)*(unsigned char*)(&answer)=*(unsigned char*)w;sum+=answer;sum=(sum16)+(sum&0 xffff);sum+=(sum16);answer=sum
12、;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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 icmp 协议 实践 ping 解析 计算机 网吧 管理计算机 linuxUnix 相关
限制150内