Il est aisé de visualiser la manière dont TCP fonctionne en utilisant telnet. Vous avez certainement l'habitude d'utiliser telnet pour vous connecter à des systèmes distants. En réalité, telnet est un programme générique pour établir toute ``connexion'' (ou socket) TCP. En l'occurrence, nous allons tenter une connexion à la page web de cnn.com.
Nous devons d'abord obtenir l'adresse IP de cnn.com:
[NdT: il se peut que la commande soit hostx
cnn.com; ce qui retournera cnn.com A adresse_IP_decimale.]
[root@cericon]# host cnn.com
cnn.com has address 207.25.71.20 |
[root@cericon]# tcpdump
\
'( src 192.168.3.9 and dst 207.25.72.20 ) or ( src 207.25.71.20 and dst 192.168.3.9 )' Kernel filter, protocol ALL, datagram packet socket tcpdump:listening on all devices |
A présent, nous pouvons utiliser le protocole HTTP pour capter la
page principale. Tapez la commande HTTP GET
/HTTP/1.0 et pressez deux fois la touche (comme cela est requis dans le protocole HTTP). Les quelques premières
et dernières lignes sont données ci-dessous:
[root@cericon]# telnet
207.25.71.20 80
Trying 207.25.71.20... Connected to 207.25.71.20. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.0 200 OK Server: Netscape-Enterprise/2.01 Date: Tue, 18 Apr 2000 10:55:14 GMT Set-cookie:CNNid=cf19472c-23286-956055314-2; expires=Wednesday, 30-Dec-2037 16:00:00 GMT;path=/; domain=.cnn.com Last-modified: Tue, 18 Apr 2000 10:55:14 GMT Content-type: text/html <HTML> <HEAD> <TITLE>CNN.com</TITLE> <META http-equiv=''REFRESH'' conntent=''1800''> <!-CSSDATA:956055234-> <SCRIPT src=''/virtual/2000/code/main.js'' language=''javascript''></SCRIPT> <LINK rel=''stylesheet'' href=''/virtual/2000/style/main.css'' type=''text/css''> <SCRIPT language=''javascript'' type=''text/javascript''> <!-// if ((navigator.platform=='MacPPC')&&(navigator.ap .............. .............. </BOBY> </HTML> connexion closed by foreign host. |
Dans l'autre fenêtre, tcpdump est en train
de nous montrer quels paquets sont échangés. tcpdump
facilite la lecture en affichant les noms d'hôte au lieu des adresses
IP et aussi les lettres www plutôt que
le numéro de port 80. Le port choisi aléatoirement (au-delà de 1024)
est en l'occurrence 4064.
[root@cericon]# tcpdump
\
'(src 192.168.3.9 and dst 207.25.71.20) or (src 207.25.71.20 and dst 192.168.1.3)' Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on all devices 12.52.35.467121 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: S 2463192134:2463192134(0) win 32120 <mss 1460,sackOK,timestamp 154031689 0,nop,wscale 0 12.52.35.964703 eth0 < www1.cnn.com> cericon.cranzgot.co.za.4064: S 4182178234:4182178234(0) ack 2463192135 win 10136 <nop,nop,timestamp 1075172823 154031 12:52:35.964791 eth0 > cericon.cranzgot.co.za4064 > www1.cnn.com.www: . 1:1(0) ack 1 win 32120 <nop,nop,timestamp 154031739 1075172823> (DF) 12:52:46.413043 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: P 1:17(16) ack 1 win 32120 <nop,nop,timestamp 154032784 1075172823> (DF) 12:52:46.908156 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 1:1(0) ack 17 win 10136 <nop,nop,timestamp 1075173916 154032784> 12:52:49.259870 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: P 17:39(2) ack 1 win 32120 <nop,nop,timestamp 154033068 1075173916> (DF) 12:52:49.886846 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: P 1:278(77) ack 19 win 10136 <nop,nop,timestamp 1075174200 154033068> 12:52:49.887039 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 278 win 31856 <nop,nop,timestamp 154033131 1075174200> (DF) 12:52:50.053628 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 278:1176(898) ack 19 win 10136 <nop,nop,timestamp 1075174202 154033068> 12:52:50.160740 eth0 < www1.cnn.com .www > cericon.cranzgot.co.za.4064: P1176:1972(796) ack19 win 10136 <nop,nop,timestamp 1075174202 154033068> 12:52:50.220067 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 1972 win 31856 <nop,nop,timestamp 154033156 1075174202> (DF) 12:52:50.824143 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 1972:3420(1448) ack 19 win 10136 <nop,nop,timestamp 1075174262 154033131> 12:52:51.021465 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 3420:4868(1448) ack 19 win 10136 <nop,nop,timestamp 1075174295 154033165> .............. .............. 12:53:13.856919 eth0 > cericon.cranzgot.co.za.4064 > www.cnn.com.www: . 19:19(0) ack 53204 win 30408 <nop,nop,timestamp 154035528 1075176560> (DF) 12:53:14.722584 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: ; 53204:54652(1448) ack 19 win 10136 <nop,nop,timestamp 1075176659 154035528> 12:53:14722738 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 54652 win 30408 <nop,nop,timestamp 154035615 1075176659> (DF) 12:53:14.912561 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 54652:56100(1448) ack 19 win 10136 <nop,nop,timestamp 1075176659 154035528> 12:53:14.912706 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 58500 win 30408 <nop,nop,timestamp 154035634 1075176659> (DF) 12:53:15.706463 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 58500:59948(1448) ack 19 win 10136 <nop,nop,timestamp 1075176765 154035634> 12:53:15.896639 eth0 < www1.cnn.com.www > cerincon.cranzgot.co.za.4064: . 59948:61396(1448) ack 19 win 10136 <nop,nop,timestamp 1075176765 154035634> 12:53:15.896791 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: .19:19(0) ack 61396 win 31856 <nop,nop,timestamp 154035732 1075176765> (DF) 12:53:16.678439 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 61396:62844(1448) ack 19 win 10136 <nop,nop,timestamp 1075176864 154035732> 12:53:16.867963 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 62844:64292(1448) ack 19 win 10136 <nop,nop,timestamp 1075176864 154035732> 12:53:16.868095 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 64292 win 31856 <nop,nop,timestamp 154035829 1075176864> (DF) 12:53:17.521019 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: FP 64292:65200(908) ack 19 win 10136 <nop,nop,timestamp 1075176960 154035829> 12:53:17.521154 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: . 19:19(0) ack 65201 win 31856 <nop,nop,timestamp 154035895 1075176960> (DF) 12:53:17.523243 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: F 19:19(0) ack 65201 win 31856 <nop,nop,timestamp 154035895 1075176960> (DF) 12:53:20.410092 eth0 > cericon.cranzgot.co.za.4064 > www1.cnn.com.www: F 19:19(0) ack 65201 win 31856 <nop,nop,timestamp 154036184 1075176960> (DF) 12:53:20.940833 eth0 < www1.cnn.com.www > cericon.cranzgot.co.za.4064: . 65201:65201(0) ack 20 win 10136 <nop,nop,timestamp 1075177315 154035895> 103 packets received by filter |
Les lignes 61 et 63 correspondent à l'étape de déconnexion.
Des informations plus détaillées à propos de tcpdump peuvent être obtenues dans tcpdump(8), en particulier dans la section relative aux paquets TCP.