Prabakaran Blogs

Network Debugging Utility – tcpdump

tcpdump tool helps to see all or certain packets going over the Ethernet to debug network problems. It needs to be run as root under Linux in order to be able to sniff network packets.
The range of packets captured can be specified by the using a combination of logical operators and parameters such as source and destination IP addresses, protocol types and TCP/UDP port numbers.

tcpdump output has the following format,

For UDP packets

20:12:40.623187 csqlcache.com.3050> 192.168.1.51.34353: udp 234

where

Timestamp  20:12:40.623187
Source address csqlcache.com
Source port 3050
Destination address  192.168.1.51
Destination port 34353
Protocol udp
Packet Size  234

For TCP packets

20:12:40.623187 IP(…) csqlcache.com.3051 > 192.168.1.51.34353: P1:53(52)) ack 168 win 64315 

where

Timestamp  16:23:01.079553
Protocol IP
Source address csqlcache.com
Source port 3051
Destination address 192.168.1.51
Destination port 34353
Sequence number 1
Number of user data bytes in datagram (52)

To capture all traffic with the tcp or udp source or destination number 22 (ssh port), run the following command

$tcpdump port 22
It displays the following output

0:12:40.623084 IP (tos 0×10, ttl 64, id 34755, offset 0, flags [DF], proto TCP (6), length 92) 192.168.1.113.ssh > 192.168.1.103.appserv-https: P 3533382018:3533382070(52) ack 1574531805 win 9648
20:12:40.699411 IP (tos 0×10, ttl 64, id 34756, offset 0, flags [DF], proto TCP (6), length 156) 192.168.1.113.ssh > 192.168.1.103.appserv-https: P 52:168(116) ack 1 win 9648
20:12:40.623187 IP (tos 0×0, ttl 128, id 5012, offset 0, flags [DF], proto TCP (6), length 40) 192.168.1.103.appserv-https > 192.168.1.113.ssh: ., cksum 0x57ec (correct), ack 52 win 64431
20:12:40.777047 IP (tos 0×0, ttl 128, id 5013, offset 0, flags [DF], proto TCP (6), length 40) 192.168.1.103.appserv-https > 192.168.1.113.ssh: ., cksum 0x57ec (correct), ack 168 win 64315
20:12:41.506720 IP (tos 0×0, ttl 128, id 5014, offset 0, flags [DF], proto TCP (6), length 92) 192.168.1.103.appserv-https > 192.168.1.113.ssh: P 1:53(52) ack 168 win 64315
From this you can derive meaningful information for doing network analysis of your programs. This tool will be very helpful for debugging socket programs.

There are many options provided for this tool, for example

To capture all TCP traffic with source address csqlcache

$tcpdump tcp src host csqlcache
For complete set of options, please visit http://www.tcpdump.org/

January 2, 2011 Posted by | system programming | | Leave a Comment

   

Follow

Get every new post delivered to your Inbox.