Re: Ping delay

From: Ray Davis (ray@carpe.net)
Date: Tue Jul 31 2001 - 07:44:27 EDT


> Dear Sir,

No Sirs around here! :)

> I have this network design:
>
> +-----------+
> | c3500XL |
> +-----------+
> | |
> | |
> +---------------+ +---------------+
> | FreeBSD_1 | | FreeBSD_2 |
> +---------------+ +---------------+
>
> FreeBSD_1 and FreeBSD_2 are all connected to 100M ports
>
> If I log on to FreeBSD_1 and ping FreeBS_2, I get ping times of 1.2 to 1.3
> ms or so.
> Ping packets have 56 data bytes, so the packet is 80 bytes or so.
>
> The equipment is connected at 100M full duplex,
> --------------------------------------------------------------------
> FreeBSD_1> ifconfig fxp0
> fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> inet 192.168.0.26 netmask 0xffffff00 broadcast 192.168.0.255
> inet6 fe80::202:b3ff:fe2b:7c1a%fxp0 prefixlen 64 scopeid 0x1
> ether 00:02:b3:2b:7c:1a
> media: autoselect (100baseTX <full-duplex>) status: active
> supported media: autoselect 100baseTX <full-duplex> 100baseTX
> 10baseT/UTP <full-duplex> 10baseT/UTP
> FreeBSD_1>
> --------------------------------------------------------------------
>
> So the time required to clock the data out should be like
>
> 80 bytes * 8 / 10^8 = 6.4 * 10^2 / 10^8 = 6.4 us
>
> Assume that the router copies the data each way, so the time required
> should be four copy times
>
> 4 * 6.4 us = 25.6 us = 0.025 ms
>
> plus delays at either end. Why is the delay so great?

Perhaps system call overhead, user time overhead, driver interrupt
overhead and general ping inaccuracies.

> If I increase the packet size to 1500, so that the time required
> to clock the data out becomes
>
> 1500 * 8 / 10^8 = 120 * 10^2 / 10^8 = 120 us
>
> and four copy times is
>
> 4 * 120us = 480 us = 0.48 ms
>
> we get this kind of result:
>
> --------------------------------------------------------------------
> FreeBSD_1>ping -c 10 -q FreeBSD_2; ping -c 10 -s 1500 -q FreeBSD_2
> PING FreeBSD_2 (192.168.0.31): 56 data bytes
>
> --- FreeBSD_2 ping statistics ---
> 10 packets transmitted, 10 packets received, 0% packet loss
> round-trip min/avg/max/stddev = 1.224/1.374/2.294/0.309 ms
>
> PING FreeBSD_2 (192.168.0.31): 1500 data bytes
>
> --- FreeBSD_2 ping statistics ---
> 10 packets transmitted, 10 packets received, 0% packet loss
> round-trip min/avg/max/stddev = 2.472/2.528/2.569/0.031 ms
>
> FreeBSD_1>
> --------------------------------------------------------------------
>
> That is, the ping time is increased by 1.2 ms.

You are sending 2 packets for each ping because your MTU is likely
1500 bytes and a pick packet with 1500 bytes data is larger than 1500.

> * we are transmitting about 20 times as much data, but the
> ping time is only doubling

The difference between sending one packet of 1 byte and one packet
of 1000 bytes is almost zero.

Cheers,
Ray

> * on the other hand, the time for four copies is going up by
> about 0.5 ms, but the time time is going up by around 2.5
> times as much
>
> Why is that?
>
>
> Regards,
> Jean-Christophe.
>
>



This archive was generated by hypermail 2b29 : Sun Aug 04 2002 - 04:12:47 EDT