您的位置:首页 > 理论基础 > 计算机网络

TCP/IP 详解 卷1 ch7 Ping

2010-11-04 20:48 489 查看
1. ping 命令,新版默认不回显,要加-s

/home/a/j/nomad2:ping -s x4100.unix-center.net
PING x4100.unix-center.net: 56 data bytes
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=0. time=0.0960 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=1. time=0.0910 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=2. time=0.0560 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=3. time=0.0660 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=4. time=0.0590 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=5. time=0.0560 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=6. time=0.0620 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=7. time=0.0560 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=8. time=0.0650 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=9. time=0.0560 ms
64 bytes from x4100.unix-center.net (192.168.1.10): icmp_seq=10. time=0.0700 ms


第一个往返时间大,可能由于ARP。

2. ping WAN, csdn.net for example,

/home/a/j/nomad2:ping -s 117.79.93.195
PING 117.79.93.195: 56 data bytes
64 bytes from 117.79.93.195: icmp_seq=0. time=88.5 ms
64 bytes from 117.79.93.195: icmp_seq=1. time=0.872 ms
64 bytes from 117.79.93.195: icmp_seq=2. time=0.841 ms
64 bytes from 117.79.93.195: icmp_seq=3. time=0.998 ms
64 bytes from 117.79.93.195: icmp_seq=4. time=1.03 ms
64 bytes from 117.79.93.195: icmp_seq=5. time=0.595 ms
64 bytes from 117.79.93.195: icmp_seq=6. time=0.875 ms
64 bytes from 117.79.93.195: icmp_seq=7. time=0.782 ms
64 bytes from 117.79.93.195: icmp_seq=8. time=0.878 ms
64 bytes from 117.79.93.195: icmp_seq=9. time=0.829 ms
64 bytes from 117.79.93.195: icmp_seq=10. time=1.06 ms


有可能会丢包

3. IP Record Route Option

ping -R

4. ping is implemented in kernel, refer to http://lxr.linux.no/#linux+v2.6.36/net/ipv4/icmp.c
815/*
816 *      Handle ICMP_ECHO ("ping") requests.
817 *
818 *      RFC 1122: 3.2.2.6 MUST have an echo server that answers ICMP echo
819 *                requests.
820 *      RFC 1122: 3.2.2.6 Data received in the ICMP_ECHO request MUST be
821 *                included in the reply.
822 *      RFC 1812: 4.3.3.6 SHOULD have a config option for silently ignoring
823 *                echo requests, MUST have default=NOT.
824 *      See also WRT handling of options once they are done and working.
825 */
826
827static void icmp_echo(struct sk_buff *skb)
828{
829        struct net *net;
830
831        net = dev_net(skb_dst(skb)->dev);
832        if (!net->ipv4.sysctl_icmp_echo_ignore_all) {
833                struct icmp_bxm icmp_param;
834
835                icmp_param.data.icmph      = *icmp_hdr(skb);
836                icmp_param.data.icmph.type = ICMP_ECHOREPLY;
837                icmp_param.skb             = skb;
838                icmp_param.offset          = 0;
839                icmp_param.data_len        = skb->len;
840                icmp_param.head_len        = sizeof(struct icmphdr);
841                icmp_reply(&icmp_param, skb);
842        }
843}


5. 一些应用

注意:ping本机IP(127.0.0.1 and 221.3.24.40)使用wireshark抓不到包。

0) 使用ipconfig /all观察本地网络设置是否正确;

1) ping 127.0.0.1 检查本机TCP/IP协议栈是否正常,失败则重装TCP/IP协议

2) ping 本机IP地址 检查网卡是否工作正常,失败则检查网线是否插上、网卡驱动是否正常

3) ping 网关IP地址 检查网关、网线及网络设置是否正常

4) ping 远端主机 检查本机与外部网络的连接是否正常

5) ping DNS服务器地址 检查本机是否能正常连接到DNS,更合适的检查DNS是否可用的方法是利用nslookup命令来测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: