File: DETAILS

package info (click to toggle)
echoping 6.0.2-10
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 9,296 kB
  • ctags: 515
  • sloc: sh: 8,951; ansic: 3,352; makefile: 170
file content (154 lines) | stat: -rw-r--r-- 5,969 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Some details about echoping
------------

echoping is a debugging tool. It is not a "end user" tool. For
instance, HTTP testing takes host names, not URLs as parameters (if
you want to test in a more HTTPish way, use wget or curl). Also, when
connecting to a server which has both IPv4 and IPv6 addresses,
echoping does not try every address in turn like most user-oriented
programs do. If you want to test only the IPv4 address, use the
address, not the host name (or use the -4 option).

echo service:

echoping by default assumes the remote host accepts such
connections. Experience show that most Internet routers or hosts could
do it but do not by default. Most Unices are not shipped with this
service enabled and, anyway, the administrator is always free to close
it (I think they shouldn't). echoping has therefore less chance to
succeed than ping or bing. (On a typical Unix box, "echo" service is
configured in /etc/inetd.conf but see the CERT advisory
<http://www.cert.org/advisories/CA-96.01.UDP_service_denial.html>.)

What does it measure?

echoping simply shows the elapsed time, including the time to set up
the TCP connection and to transfer the data (but excluding the time
for the - possible - DNS call). Therefore, it is unsuitable to
physical line raw throughput measures (unlike bing). On the other end,
the action it performs are close from a HTTP request and it is
meaningful to use it (carefully) to measure Web performances.

More on Linux:

On operating systems, like Linux, who have the TCP_INFO option (see
http://linuxgazette.net/136/pfeiffer.html for a detailed
presentation), echoping can also display interesting TCP information.

UDP and inetd:

With UDP servers you can have surprises: the first test is quite often
much slower since inetd or xinetd typically has to launch the
process. After that, the process stays a while so the next texts run
faster.

A nice example:

There are many, many traps when measuring something on the
Internet. Just one example: 'echoping -w 0 -n 4 a-sunOS-machine' and
you'll see the first test succeed in a very short time (if you are
close from the machine) and all of the others take a much longer time
(one second). With '-w 1' (wait one second between tests, the
default), everything works fine: it seems the sockets on SunOS need
time to recover :-)

To measure performances on the Internet you can also see:

Unix:

- thrulay, measures the capacity of a network by sending a bulk TCP
  stream over it <http://shlang.com/thrulay/>
- bing, a bandwidth measurement tool
  <http://www.freenix.fr/freenix/logiciels/bing.html>
- patchchar or pchar <http://www.employees.org/~bmah/Software/pchar/>,
  a bandwidth measurement tool
- ping, probably available with your system
- traceroute, idem (otherwise, see <ftp://ftp.ee.lbl.gov/>)
- ttcp, the best measurement tool but it needs some control over the 
  two machines <ftp://ftp.arl.mil/pub/ttcp> 
- Netpipe, it needs some control over the 
  two machines <ftp://ftp.scl.ameslab.gov/pub/netpipe/>
- treno (evaluates available bandwidth for TCP) 
  <http://www.psc.edu/~pscnoc/treno_info.html>
- spray is a tool which I dont't know very well. It is available on some 
  machines (Sun, OSF/1).
I've also heard of but never tried:
- the very good mon program <http://www.kernel.org/software/mon/> includes a 
  up_rtt.monitor which has many similarities with echoping
- NetPerf <http://www.netperf.org/netperf/NetperfPage.html>
- a suite of Bandwidth Measuring programs from gnn@netcom.com 
  <ftp://ftp.netcom.com/~ftp/gnn/bwmeas-0.3.tar.Z>. These are several 
  programs that measure bandwidth and jitter over several kinds of 
  IPC links, including TCP and UDP.
  
Macintosh:

- TCP Watcher, a very nice "swiss-army knife" tool, to test ping, DNS, echo. 
  It includes an echo server. Available on Info-Mac in "comm/inet".

MS-Windows:

(I have little knowledge of that environment and I tested nothing. The
references here are quite old and should be checked.)

- WSNUTIL. Seems to be an echo client and server. 
  <http://www.ccs.org/winsock/xref-e.html#echo_clients>
- echox32. An echo server.
  <http://www.winsite.com/info/pc/win95/misc/echox32.zip/>
- cfinger. An echo client and server.
  <http://www.winsite.com/info/pc/win3/winsock/cfing13b.zip/>
  
Windows-NT :

echo and other services can (apparently) be provided within 'Simple
TCP/IP Services' which can be enabled through the Network Control
Panel

Web clients:

- You can ping or traceroute on the Web. See
  <http://www.traceroute.org/>.

Use all of them with care, the result is not obvious to interpret.

If you are interested in Internet measurements, there is an Internet
Engineering Task Force Working Group, IPPM (IP Performance Metrics)
which produces many fine RFC that are really good to read. See
<http://www.ietf.org/html.charters/ippm-charter.html> for a full
list. I appreciate RFC 2330 and 3148.

And don't forget to read RFC 1470 ("Tools for Monitoring and Debugging
TCP/IP Internets and Interconnected Devices"), specially its
"Benchmark" section and the W. Richard Stevens' books (all of them),
published by Addison-Wesley.

If you want to modify echoping and test it against slow or lossy
connections, it is good to be able to reporudce these bad conditions
at will. To do so, you can use:

On Linux, Netem :

tc qdisc add dev eth0 root netem delay 50ms loss 10%
tc qdisc add dev eth1 root netem delay 50ms loss 10%

It depends on Netem (network emulation)

 Networking -->
   Networking Options -->
     QoS and/or fair queuing -->
        Network emulator

[If it has been compiled as a module, then do a "modprobe sch_netem".]

On FreeBSD, dummynet (<http://info.iet.unipi.it/~luigi/ip_dummynet>):

ipfw add 1000 pipe 1 tcp from judith to kiwi echo
ipfw pipe 1 config plr 0.5

It works fine to test echoping with 50 % of loss.

(In French, see
http://www.bortzmeyer.org/tester-protocoles-reseaux-avec-pertes.html)


$Id: DETAILS 381 2007-03-17 21:18:40Z bortz $