Title: TIP 1
1TCP / UDP
2TCP - UDP
- Couche Transport de TCP/IPNiveau où se fait la
première fragmentation (et le dernier
réassemblage) dun fichier en segments pour envoi
en datagrammes. - TCP Transmission Control Protocol
- protocole de transport fiable
- travail en mode connecté
- UDP User Datagram Protocol
- protocole de transport non fiable
- utilisé pour ?
3Connexion Réseau
- Port notion
- SAP, défini par un numéro, permettant
didentifier une Application (Telnet, FTP, TFTP,
POP, ... ) au niveau de la couche transport - Le transport assure le (dé)multiplexage de
toutes les connexions des applications de la
machine hôte. - architecture client/serveur définition de
numéros de port réservés pour des applications
connues (well-know ports) lapplication cliente
doit prendre un numéro non réservé. - Connexion
- le couple (_at_IP, port) définit une extrémité de
la connexion (socket unix, winsock windows) - une connexion est définie par ses deux extrémités
(_at_IP, port)client (_at_IP,
port)serveur
4UDP Encapsulation IP
- 1 Dtg / opération de sortie du processus
- RFC 768 Postel 1980
En-Tête IP
En-Tête UDP
donnéesUDP
?
8 octets
5UDP
- Service de Transport non fiable
- Service pour les applications
Bootp,TFTP, NFS, SNMP, diffusion - TSAP ports, socket, winsock
- Mode non Connecté pas de phase de
connexion déconnexion - Présent sur les ordinateurs, les routeurs
- Format
-
6CRC UDP - Optionnel
- CRC optionnel avec "pseudo-entête IP
- Si la CRC 0 gt Transmise avec des 1 ?
- Si erreur destruction (id IP)
- Contrôle de bout en bout
0
8
16
31
_at_ IP Source 32 bits
_at_ IP Destination 32 bits
Pseudo en-tête
zero
Protocole (17)
Longueur UDP 16 bits
Numéro de Port Source
Port Destination
En-tête UDP
Longueur UDP en octets
Somme de contrôle
(facultatif)
données
bourrage (0)
7Exemple de DataGramme UDP
- root_at_linuxgt sock -v -u -n4 -i lisisun1 discard
- connected on 134.214.105.6.1044 to
134.214.105.10.9 - wrote 1024 bytes
- wrote 1024 bytes
- wrote 1024 bytes
- wrote 1024 bytes
- 896378 ifwebtest.insa-lyon.fr.1044 gt
lisisun1.insa-lyon.fr.discard udp 1024 - 898443 ifwebtest.insa-lyon.fr.1044 gt
lisisun1.insa-lyon.fr.discard udp 1024 - 900304 ifwebtest.insa-lyon.fr.1044 gt
lisisun1.insa-lyon.fr.discard udp 1024 - 901816 ifwebtest.insa-lyon.fr.1044 gt
lisisun1.insa-lyon.fr.discard udp 1024 - root_at_linux gt sock -v -u -n4 -i lisisun1 discard
- connected on 134.214.105.6.1044 to
134.214.105.10.9 - root_at_lisisun1lt24gt ./sock -v -u -n4 -i lisisun1
discard - connected on 0.0.0.0.59054 to 134.214.105.10.9
8Fragmentation
- root_at_linux ./sock -v -u -n1 -w1471 -i lisisun1
discard - root_at_linux ./sock -v -u -n1 -w1472 -i lisisun1
discard - root_at_linux ./sock -v -u -n1 -w1473 -i lisisun1
discard - root_at_linux ./sock -v -u -n1 -w1474 -i lisisun1
discard - tcpdump -n host linux
- 57.496792 134.214.105.6.1044 gt 134.214.105.10.9
udp 1471 - 02.566792 134.214.105.6.1044 gt 134.214.105.10.9
udp 1472 - 06.735566 134.214.105.6 gt 134.214.105.10 (frag
441881_at_1480) - 06.737503 134.214.105.6.1044 gt 134.214.105.10.9
udp 1473 (frag 441881480_at_0) - 10.324848 134.214.105.6 gt 134.214.105.10 (frag
442142_at_1480) - 10.326785 134.214.105.6.1044 gt 134.214.105.10.9
udp 1474 (frag 442141480_at_0)
9ARP / UDP
- lisisun1gtarp -d ifwebtest
- lisisun1gt./sock -u -i -n1 -w8192 ifwebtest
discard - lisisun1gt./sock -u -i -n1 -w8192 ifwebtest
discard - 43.958128 arp who-has 134.214.105.6 tell
134.214.105.93 - 43.958191 arp reply 134.214.105.6 is-at
020af5cdd35 - 43.963013 134.214.105.93 gt 134.214.105.6 (frag
8298800_at_7400) - 45.905001 134.214.105.93.4024 gt 134.214.105.6.9
udp 8192 (frag 83091480_at_0) - 45.906361 134.214.105.93 gt 134.214.105.6 (frag
83091480_at_1480) - 45.907619 134.214.105.93 gt 134.214.105.6 (frag
83091480_at_2960) - 45.908867 134.214.105.93 gt 134.214.105.6 (frag
83091480_at_4440) - 45.910466 134.214.105.93 gt 134.214.105.6 (frag
83091480_at_5920) - 45.911003 134.214.105.93 gt 134.214.105.6 (frag
8309800_at_7400)
10Taille Maximum Dtg UDP
- Théorie 65507
- Limitée par la taille de linterface de
programmation - API Socket Max 8192
- Les programmes limitent la taille de lémission
- Si Taille UDP gt buffer de lapplication
- gt Différent de TCP flux continu
11Conception dun serveur UDP
- Serveur Itératifs
- Origine du message _at_IP src, port src
- Connaissance de l_at_IP de destination
- Pour éviter de répondre à des broadcast
- Files dattentes udp
- (cf exemple)
12Adresses
- Socketpoint de connexion
- sfrenot_at_ifwebtest sock -u -s 7777
- sfrenot_at_ifwebtest netstat -a -u
- Active Internet connections (servers and
established) - Proto Recv-Q Send-Q Local Address
Foreign Address - udp 0 0 7777
- udp 0 0 discard
- Restriction dun point de connexion
13Broadcasting / Multicasting
- Atteindre un certain nombre dhôtes
- Broadcasting tous les hôtes
- MultiCasting certains hôtes
- Problème du broadcasting ?
14Différents types de broadcasting
- Broadcast limité 255.255.255.255
- non retransmit par un routeur (routed / rwhod)
- Broadcast de réseau id_mach1
- 134.214.255.255 (optionnel sur un routeur)
- Broadcast de sous-reseau
- 134.214.105.255 (f(netmask))
15Multicasting
- Objectif
- Délivrance vers destinataires multiples
- Sollicitation des serveurs par les clients
- 01005e000000 gt 01005e7fffff
- Correspondance Eth / IP
16IGMP Internet Group Management Protocol
- ICMP / IGMP / IP sont sur la même couche
- Taille fixe / pas de données optionnelles
- Protocole IP 2
- type 1
- demande par le routeur (adresse de groupe0)
0
4
8
16
24
31
type 1 / 2
Version 1
(inutilisé)
CRC (idem que ICMP)
Adresse de groupe sur 32-bits (adresse IP de
classe D)
17Les serveurs en UDP
- DNS Domain Name System (rfc 1034, 1035 1987)
- Remplacement /etc/hosts
- Base de données distribuée
- Nom de machine / Adresse IP Routage de courrier
- Client (resolveur)
- gethostbyname(3) / gethostbyaddr(3)
- Serveur (named)
- primaire, secondaire, forwarder, ventouse
- Bind Berkeley Internet Name Domain Server
18Bases du DNS
.
com
edu
gov
int
mil
ae
net
org
fr
zw
...
...
arpa
in-addr
...
noao
insa-lyon
univ-lyon1
134
tuc
iutbourg
mirflak
214
sun
104
178
19Différents type denregistrements RR
- A adresse IP
- PTR résolution inverse
- CNAME canonical name
- HINFO host information
- MX Mail Exchanger
- ifours MX 20 cismsun.univ-lyon1.fr
- ifours MX 10 cismrelais.univ-lyon1.fr
- NS Name serveur
20TFTPTrivial File Transport Protocol (1350 1992)
- Systèmes sans disques
- Simple
- UDP / IP / Driver contenu dans une mémoire
- 5 messages TFTP
- Block de 512 octets acquittés
- Stop wait protocol
- Biais de sécurité
21Messages
- Linuxgttftp lisisun1
- tftpgtget test1.c
- Received 962 bytes in 0.3 seconds
- tftpgtquit
- linuxgtls -l test1.c
- -rw-r--r-- 1 sfrenot staff 914 Oct 15 1141
test1.c - linuxgtwc -l test1.c
- 48 test1.c
22BOOTP
- BOOTstrap Protocol démarrage des stations
"diskless" - recherche de l'adresse IP
- recherche des info de démarrage (nom du fichier à
télécharger) - Propriétés
- plus général que RARP
- au dessus de UDP portabilité (port 67 serveur,
68 client). Utilise IP pour rechercher une _at_IP ! - fournit _at_IP du client, nom du serveur et chemin
d'accès de l'amorce de système (bootstrap tftp) - la station cliente doit posséder un minimum de la
pile protocolaire - accès au réseau physique, interface, IP et UDP
- BOOTP rend le client responsable de la fiabilité
des transmissions - UDP utilisé avec l'option CRC
- pertes de datagrammes gérés par technique de
temporisation (avec délai aléatoire) et
retransmission
23BOOTP
- Format du datagramme
- sauts nbre de routeurs entre client et serveur
(mis à 0 par le client) - Id_tr aléatoire choisi par client, permet
didentifier le couple demande-réponse - secondes temps depuis le début du boot client
? - _at_IP_Client 0.0.0.0 à la 1 demande
- Votre__at_IP _at_IP que le serveur affecte au client
(réponse) - _at_IP_Serveur _at_IP du serveur qui a répondu
- _at_IP_gateway _at_IP du dernier proxyayant émis le
dtg si serveur pas sur même sous-réseau - Nom_Serveur nom en clair du serveur
- Amorce chemin daccès du fichier amorce qui
sera téléchargé par TFTP
UDP
BOOTP
IP
eth
0
4
8
16
24
31
Compteur de sauts
Opération 1 dem, 2 rép
Type Réseau 1 Eth
Lg_Adr_Phy 6 Eth
Identificateur de transaction
Nombre de secondes
non- utilisé
0 retour sur _at_mac 1 retour par diffusion
_at__IP_Client
Votre __at__IP
300 octets
_at__IP_serveur
_at__IP_gateway
_at__Phy_Client 16 octets
Nom_Serveur 64 octets
Nom_Fichier_Amorce 128 octets
Information spécifique vendeur 64 octets
24BOOTP scénario
Démarrage dune imprimante
- Client IMP
- crée un dtg,
- op1, Id_tr xxxxxx, sec 0, (1,6,0) et _at_eth_imp
- envoie dtg sur _at_IP_diffusion_limitée_67
- attente sur UDP_68
- émission dtg ARP gratuit
- ARP pour _at_eth_serveur
- attente réponse ARP
- poursuite initialisation avectéléchargement
parTFTP (interprêtation du champ vendeur)
- Serveur
- attend sur UDP_67
- Réception du dtg, recherche info op2, _at_IP_imp
a.b.c.d, - renvoi du dtg
- réponse ARP, _at_eth_serveur
25BOOTP Champ Vendeur
- 64 octets pour information vendeur
- représentation définie par RFC 1533 et
identifiée par - Magic Cookie (99_130_83_99)10, (63 82 53 63)H
- Structure type, longueur, valeur. Exemple de
champ vendeur 6382 5363 0104 ffff ff80
0304c02c 4dfb 0c03 6c6a 3490 0c68 706e 702f
6c6a 342e 6366 67ff - Au niveau serveur /etc/bootptab
sous-réseau ff ff ff 80_at_ip routeur c02c 4dfb nom
6c6a 34 lj4 fichier pour adm SNMP
hnpn/lj4.cfg
fin
lj4\ gw192.44.77.251 htether\ hn\ ha0800
090e5b3c\ ip192.44.77.133\ sm255.255.255.128
T144"hpnp/lj4.cfg"\
26NFS (Networked File System rfc 1094 1988)
- Accès fichier transparent en réseau
- Basé sur les Sun / RPC (Remote Procédure Call)
Processus Utilisateur
Client NFS (biod)
Accès local
Accès local au fichier
Serveur NFS (mountd)
2049
UDP IP
UDP IP
Noyau client
Noyau serveur
Disque local
Disque local
27Montage distant
- ifoursgtmount -t nfs lisisun1/export/home /home/
lisisun1
- NFSPROC_GETATTR
- NFSPROC_ SETATTR
- NFSPROC_ STATFS
- NFSPROC_ LOOKUP
- NFSPROC_ READ
- NFSPROC_ WRITE
- NFSPROC_ CREATE
- NFSPROC_ REMOVE
- NFSPROC_ RENAME
- NFSPROC_ LINK
- NFSPROC_ SYMLINK
- NFSPROC_ READLINK
- NFSPROC_ MKDIR
- NFSPROC_ RMDIR
- NFSPROC_ READDIR
/
ifours
/
export
home
home
home
sfrenot
TIP1.ppt
28Les autres serveurs
- Utilisés pour la diffusion
- rwho
- routed
- ntp (Network Time Protocol), port 69 (xntp)
- rtp (Real Time Protocol)
- ...