IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Protocol IP

El nivell de xarxa és l'encarregat de realitzar les tasques bàsiques per transportar les dades des d'un origen fins a una destinació a traves d'una xarxa.

Model de referència OSI

  • Nivell 3. Nivell de xarxa

Pila de protocols TCP/IP

  • Nivell 2. Nivell d'Internet


Xarxes WAN

Wide Area Network

El nivell de xarxa treballa amb tot tipus de xarxes però adquireix la seva raó de ser quan treballem amb múltiples xarxes.

A la xarxa formada per aquest subconjunt de xarxes o subxarxes de l'anomena WAN (Wide Area Network)

Jordiromerowan01.png

Nivell d'Internet (Nivell 2 TCP/IP) - Nivell de xarxa (Nivell 3 OSI)

Control de la xarxa/subxarxa

Treballa amb blocs de dades de xarxa (3-PDU) anomenats paquets.

Funcions

  • Encaminament: Determinar la ruta (nodes de xarxa pels quals circular) més adequada per als paquets
  • Identificació: Els nodes han de tenir una identificació única que els permeti distingir dels altres nodes i localitzar-los a la xarxa. ADREÇES IP
  • Control de la congestió: determina quins són els camins menys congestionats (similar al trànsit rodat) (ICMP)
  • Interconnexió de xarxes
  • Protocol: IP (Internet Protocol)

Encaminament

És el mecanisme pel qual en una xarxa els paquets es fan arribar d'un origen a una destinació seguint un camí o ruta concreta.

Cada node de la xarxa, quan rep un paquet a de prendre una decisió de que fer amb aquest paquet:

  • Quedar-se el paquet quan ell és el destinatari
  • Enviar al paquet cap a un altre node veí
  • O potser eliminar el paquet per què és incorrecta.

Routers/Encaminadors

Els routers o encaminadors són els dispositius/nodes de xarxa que s'encarreguen de l'encaminament a nivell de xarxa.

Protocol IP

IP és el protocol més utilitzat a nivell de xarxa

La versió actual del protocol és la versió 4 (Ipv4) i data del 1980

IP és un protocol Best Effort (El millor esforç possible)

Intenta transmetre els paquets el millor possible per la xarxa però no pot assegurar:

  • Que els paquets arribin
  • Que els paquets arribin correctament (sense errors)
  • Que els paquets arribin en ordre

El nivell superior (transport) és qui fa el control d'errors

La Internet Engineering Task Force (IETF) és qui s'encarrega de definir el protocol IP

Historia

TCP/IP va ser creat pel DoD (Departament of Defense) dels Estats Units amb l'objectiu de crear una xarxa que sobrevisques a qualsevol circumstància (per exemple un atac Nuclear).

La idea és que les comunicacions funcionin encara que un moment concret un o més nodes de xarxa no funcionin

IP a anat creixent a mesura que Internet anava creixent

  • Les primeres xarxes tenien molts pocs nodes
  • La primera versió d'IP era per a xarxes de com a màxim 25 màquines (32 màquines)
  • La següent versió era per a 24(16) xarxes i 28 (256) màquines per xarxa.
  • La versió actual suporta 232(4.294.967.296 màquines)
  • Actualment uns 4 billions d'adreces no són suficients adreces. S'està implantant poc a poc el protocol IPv6 amb 2128 (3,4x1038 màquines)

Paquets IP

Un paquet està format per dos parts

Capçalera

Dades si les dades a transportar són moltes, les dades s'hauran de fragmentar en diferents paquets

Jordiromeroosi01.png

Jordiromeroip01.png

La mida de la capçalera IP pot variar depenent de la longitud del seu camp d'opcions. Com a mínim ocuparà 5 WORDS (5x32 bits cada paraula) i com a màxim 16 words. Com la mida de les opcions és variable sempre hi ha uns bits anomenats padding que permeten omplir fins arribar a omplir una paraula (és a dir, la capçalera IP sempre serà un múltiple de 32).

  • Version (bits 0-3). Número de versió IP. IPv4 (0100), IPv6 (0110).
  • IHL (Internet Header Length) (bits 4-7). Ens indica en format binari quantes paraules (WORDS=32 bits) té la capçalera IP. Mínim 5.
  • Type of Service, DSCP, ECN (bits 8-15). Camp conflictiu perquè s'ha canviat diferents cops la seva implementació. També conegut com a preferència d'encaminament. Té un format xxxdtrc0. xxx indica una precedència (té sentit en una mateixa xarxa i no a internet). L'últim bit es posa a 0. I dtrc és un dels següents valors:
    • d = delay --> optimitzar el retard.
    • t = throughput --> optimitzar la velocitat eficaç
    • r = realiability --> optimitzar la fiabilitat
    • c = cost --> optimitzar el cost econòmic
  • Total Length (bits 16 - 31). Ens indica la mida del paquet en octets (bytes). D'aquí s'extreu que la mida màxima d'un paquet IP és 65535. La mida mínima és 576 bytes. La mida més utilitzada de paquet actualment és 1500 byte en xarxes Ethernet i en la majoria de connexions a Internet.
  • Identification (bits 32 - 46). S'utilitza per identificar paquets fragmentats i poder reagrupar-los.
  • Flags - bits 47 - 49. S'utilitzen per recuperar paquets fragmentats. El primer bit està reservar i no s'utilitza (valor 0 fixe), el segon bit indica si el paquet està fragmentat(0) o no (1) i el tercer bit indica si aquest és l'últim fragment (0) o hi ha més fragments (1).
  • Fragment Offset - bits 50 - 63. conté el número de fragment
  • Time to live (bits 64 - 72). Indica quant de temps el paquet haurà de continuar viu o, el que normalment és el mateix, quants salts (hops) li queden de vida. Cada procés o router ha de disminuir en 1 aquest contador i si el paquet arriba a 0 cal eliminar-lo. Evita que un paquet estigui donant voltes per la xarxa indefinidament. Abans de destruir el paquet, la màquina ha d'enviar un paquet ICMP Time exceeded a qui ha enviat el missatge.
  • Protocol (bits 73 - 80). Indica el protocol del següent nivell (TCP, UDP or ICMP, etc.). Els números els assigna Internet Assigned Numbers Authority (IANA) i es poden trobar a la seva pàgina principal
  • Header checksum (bits 81 - 96). Un codi de cheksum per comprovar que no hi ha errors. Observeu que només es comprova que la capçalera sigui correcte, no es comproven les dades!. Es responsabilitat dels protocols superiors comprovar les dades (p.ex. TCP) o no comprovar-les (UDP).
  • Source address (bits 97 - 128). Adreça IP d'origen (32 bits).
  • Destination address (bits 129 - 160). Adreça IP destinació (32 bits).
  • Options (bits 161 - 192 <> 478). És l'únic camp de mida variable. Aquest camp conté opcions però no és opcional i és un dels camps més complexes de la capçalera IP. Conté coses com timestamps, SACK. Comença amb un resum de 8 bits que es fa saber quines opcions utilitzem. Podem trobar un resum de les opcions aquí o la descripció completa a IANA. Les més freqüents són
    • DF: S'utilitza per indicar que no es vol fragmentar el paquet. Util per a Path MTU Discovery
    • Record Route: Els routers afegeixen l'adreça IP de la interfície per encaminar el datagrama.
    • Loose Source Routing: Especifica una llista d'adreces IP de router que ha de travessar el datagrama (pot travessar també altres routers que no siguin a la llista).
    • Strict Source Routing: Adreces IP dels únics routers que pot travessar el datagrama.
  • Padding (mida variable): Bits de farciment. Fan que la capçalera ocupi sempre un múltiple de 32 bits.

Configuració IP de nodes de xarxa

Paràmetres necessaris per configurar un paràmetre de xarxa

Paràmetres imprescindibles

  • Adreça IP
  • Màscara de xarxa

Paràmetres "opcionals"

  • Porta d'enllaç
  • Servidors de DNS

Aquests paràmetres no són imprescindibles per tal que una màquina és pugui comunicar amb altres màquines de la mateixa xarxa!

Altres paràmetres

  • Adreça de difusió, adreça de xarxa, adreça MAC

Màscara de xarxa

La màscara determina quins bits estan reservats a la xarxa i quins bits a les màquines.

La màscara més utilitzada és la màscara: 255.255.255.0

11111111.11111111.11111111.00000000

Tenen el format de les adreces IP però no tots els valors són possibles

En format binari, la màscara ha de tenir tots els uns junts i al principi, seguit d'un sèrie de ceros

Només són vàlides les màscares que tenen els valors:

  • 255, 254, 252, 248, 240, 224, 192, 128


[email protected]:~$ ipcalc 192.168.204.115 255.255.255.0
Address:   192.168.204.115      11000000.10101000.11001100. 01110011
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.204.0/24     11000000.10101000.11001100. 00000000
HostMin:   192.168.204.1        11000000.10101000.11001100. 00000001
HostMax:   192.168.204.254      11000000.10101000.11001100. 11111110
Broadcast: 192.168.204.255      11000000.10101000.11001100. 11111111
Hosts/Net: 254                   Class C, Private Internet

els tres primers octets corresponen a la xarxa i no es poden modificar ja que si no pertanyeríem a la mateixa xarxa

Subxarxes

La xarxa (Internet) està formada per subxarxes

L'adreça de xarxa conjuntament amb la màscara de xarxa configuren les subxarxes.

Les subxarxes permeten aprofitar millor les IPS

Recurs limitat

Millor organització jeràrquica

Els routers connecten subxarxes.

PSTN (Public Switched Telephone Network)

La xarxa telefònica commutada (xarxa telefònica) també utilitza subxarxes

No Telèfon: +34 93 894 05 50

  • +34: Codi de país (Espanya)
  • 93: Codi de província (Barcelona)
  • 894: Codi de ciutat/zona (Sitges)
  • 05 50: Número de l'abonat

La màscara determina quins bits estan reservats a la xarxa i quins bits a les màquines

Depenent de les necessitats de xarxa (nombre de subxarxes i nombre de màquines per xarxa) s'escull la classe més adequada.

La màscara determina quins bits estan reservats a la xarxa i quins bits a les màquines.

Classes

Jordiromerosubxarxes01.png

Classful Networks

Va aparèixer als anys 80 per poder classificar les xarxes en tres mides (classe A, B i C)

  • Classe B: Força xarxes mitjanes
  • Classe C: Moltes xarxes de 254 màquines
  • Classes especials (D i E): Reservades per a usos especials

Subxarxes. CIDR

Classless Inter-Domain Routing. CIDR

Apareix als anys 90 per substituir el sistema de classes

Permet utilitzar bits d'host per a crear subxarxes

Ens permet obtenir més tipus de subxarxes que el sistema de classes

La notació de les màscares amb barra (/24) també s'anomena notació CIDR

Jordiromerosubxarxes02.png

IPs reservades

Hi ha altres adreces IP reservades

Jordiromerosubxarxes03.png

Fragmentació

Fragmentació

Jordiromerofragmentacio01.png

  • MTU Maximum_Transfer_Unit

Comprovem la fragmentació d'un paquet icmp modificant el valor del MTU

$ping -s 3200 192.168.204.1

Jordiromerofragmentacio02.png

Encapsulació

Jordiromeroencapsulacio01.png


Jordiromeroencapsulacio02.png

Nivell de transport

Jordiromerodiagrama01.png

Model de referencia OSI

  • Nivell 4 Nivell de transport

Pila de protocols TCP/IP

  • Nivell 3 Nivell de transport
  • Els objectius són els mateixos que en el nivell d'enllaç però aquest com la comunicació és entre les maquines que no estan directament connectades.

Nivell 4. Nivell de transport

Capa de transició que connecta les aplicacions i/o usuaris amb la xarxa

És una capa de transició entre els nivells orientats a la xarxa i els orientats a les aplicacions

Treballa en unitats de dades 4-PDU també anomenades TPDU o segments

Té funcions similars al nivell d'enllaç (salt a salt) però entre dues maquines que no estan connectades directament (extrem a extrem)

S'encarrega de preparar les dades de les aplicacions per a la xarxa i assegurar-se que arribaran correctament al nivell de transport del destinatari.

Protocols: TCP (Transport Control Protocol) i UDP (User Datagram Protocol).

Funcions del nivell de xarxa

Establiment de la connexió

  • Opcional. Només s'aplica als serveis orientats a la connexió.
  • S'estableix un camí virtual a través el qual es durà a terme la comunicació. Les dades s'envien de forma ordenada per aquest camí.

Reordenació de paquets

  • Opcional. Només s'aplica als serveis no orientats a connexió. No s'estableix cap camí i els paquets poden arribar desordenats.

Control d'errors

  • Les capçaleres (headers) del nivell 4 contenen dades redundants que permeten detectar errors en la transmissió.
  • Recuperació de caigudes de xarxa, reenviament de paquets, etc.


Control de flux:Implementació de buffers.

  • S'utilitzen memòries intermediàries (buffers o cache) que permeten controlar el flux.
  • Si un servidor està massa ocupat els paquets que arriben es guarden a una memòria o cua a l'espera que el servidor els pugui processar.

Qualitat de servei. QoS (Quality of Service)

  • Garanteix la fiabilitat i la qualitat del servei. Per exemple es pot reservar un ample de banda mínim per a una connexió concreta.

Multiplexació de connexions

  • Permet tenir més d'una connexió oberta a través d'un mateix medi físic. S'utilitzen ports i el concepte de sockets

Serveis OSI

Servei orientat a connexió

  • Abans d'intercanviar dades es necessita establir una connexió (Exemples: telèfon, accés a una pàgina web, protocol TCP)

Servei no orientat a connexió

  • Les dades s'envien directament sense establir cap connexió prèvia (enviar una carta, enviar un email, protocol UDP)

Servei confirmat o no confirmat

  • Servei confirmat: Trucada telefònica (pot ser confirmada (et despengen el telèfon) o no confirmada (no et despengen, et denegen la trucada o comunica))
  • Servei no confirmat: Per exemple al parlar per telèfon. És una comunicació full duplex i ni emissor ni receptor necessiten de confirmació per començar a parlar.

Serveis Orientats a connexió

Propietats

Requereixen el establiment inicial de una connexió i la ruptura o alliberament final de la mateixa.

Entre la connexió i l’alliberament es produeix l’intercanvi de dades d'usuari.

Els blocs de dades es reben en el destí en el mateix ordre en que s’emeten a l’origen.

Tots els paquets segueixen la mateixa ruta, aconseguida en l’establiment de la connexió

Com que la ruta es coneguda, els paquets de dades no precisen indicar l’adreça de destinació.

Exemple: Trucada telefònica

Protocols Orientats a connexió. TCP

Orientades a connexió(Connection-oriented)

Els dispositius de cada banda de la connexió (emissor i receptor) utilitzen un protocol preliminar a l'enviament de dades per establir una connexió punta a punta.

Sovint també s'anomenen serveis de xarxa fiables(reliable) per que es garanteix que les dades arribaren en l'ordre adequat.

La comunicació pot estar en diferents estats.

La comunicació es duu a terme en tres fases:

  • Fase1: Establiment de la connexió (handshake)
  • Fase2: Transmissió de dades
  • Fase3: Tancament de la connexió

Encaixada de mans TCP (handshake)

Jordiromerotcp01.png

Acabament de la connexió

Jordiromerotcp02.png

Estats de la connexió

Estats

En els protocols orientats a connexió, la connexió passa per diferents estats

Comanda netstat

$sudo netstat -nt | more
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign  Address         State      
tcp        0      0 192.168.204.115:48424    199.47.219.147:80       ESTABLISHED
tcp        1      0 192.168.204.115:37565    93.184.216.169:80       CLOSE_WAIT 
tcp        0      0 192.168.204.115:45648   173.194.70.125:5222     ESTABLISHED
tcp        1      0 192.168.204.115:37568    93.184.216.169:80       CLOSE_WAIT 
tcp        1      0 192.168.204.115:37552   93.184.216.169:80       CLOSE_WAIT 
tcp        1      0 192.168.204.115:43533   91.189.89.31:80         CLOSE_WAIT 
tcp        1      0 192.168.204.115:36524   91.189.94.25:80         CLOSE_WAIT 
tcp        1      0 192.168.204.115:37571   93.184.216.169:80       CLOSE_WAIT 
tcp        1      0 192.168.204.115:37567   93.184.216.169:80       CLOSE_WAIT
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign  Address         State       PID/Program name
tcp        0      0 0.0.0.0:22               0.0.0.0:*               LISTEN      1269/sshd       
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      961/cupsd       
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2539/dropbox    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      908/smbd        
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1582/mysqld     
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      908/smbd        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1735/apache2    
tcp6       0      0 :::22                   :::*                     LISTEN      1269/sshd       
tcp6       0      0 ::1:631                 :::*                     LISTEN      961/cupsd       
tcp6       0      0 :::445                  :::*                     LISTEN      908/smbd        
tcp6       0      0 :::139                  :::*                     LISTEN      908/smbd

Serveis sense connexió

Propietats

  • Ofereixen la capacitat de comunicació sense necessitat de realitzar una connexió amb el destinatari.
  • L’emissor envia paquets de dades al receptor confiant en que la xarxa tindrà prou intel·ligència com per a conduir les dades per rutes adequades.
  • Els paquets poden seguir rutes diferents durant la comunicació.
  • Els blocs de dades es poden rebrà desordenats.
  • Cada paquet ha de portar l’adreça de destinació i, en alguns casos, el receptor ha d’enviar un acusament de rebuda per confirmar l’èxit de la comunicació.
  • Exemple: Correu postal

Protocols no orientats a connexió. UDP

Datagrames S'envien directament paquets de l'emissor al receptor sense establir prèviament una connexió.

User Datagram Protocol (UDP) No és una connexió fiable, ja que els paquets poden arribar en qualsevol ordre, duplicats, es poden perdre...

Protocols: DNS, DHCP, VoIP, Videoconferència, jocs en xarxa.

Serveis sense connexió

Tipologies Servei de datagrama sense confirmació.

  • L’emissor no necessita confirmació per part del receptor de que els paquets de dades li arriben correctament (protocol IP)

Servei de datagrama amb confirmació. El receptor envia confirmacions a l’emissor. (correu electrònic)

Servei de petició i resposta.

  • És un servei propi de gestió interactiva basat en que a cada petició li segueix una resposta. (peticions a bases de dades).

Ports

Un port és una connexió virtual que pot ser utilitzada per les aplicacions per intercanviar dades.

Els ports més comuns són els dels protocols TCP i UDP

Notació: Decimal (22, 80) o Hexadecimal

El fitxer /etc/services manté una llista de ports i els seus serveis associats.

Cada port esta associat a un servei per la IANA

  • Els ports per defecte dels serveis es poden canviar
$ cat /etc/services | more
........
tcpmux		1/tcp				#  TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/tcp				#  message send protocol
msp		18/udp
chargen		19/tcp		ttytst  source
.......

sockets

Jordiromerosocket01.png

Sockets

  • Dispositius virtuals de comunicacions bidireccionals.

Hi han tantes famílies de sockets com protocols

  • Unix Domain Sockets
  • Internet Sockets (TCP, UDP i RAW)

Unix domain socket

Unix domain socket (UDS o IPC socket)

  • Són sockets virtuals, similars als sockets d'Internet que s'utilitzen en sistemes operatius POSIX per a la

comunicació entre processos (IPC)

  • També anomenats POSIX Local IPC Sockets.

Components

  • Tipus: Datagrama o Stream
  • Camí absolut del fitxe

Sockets d'Internet

Components d'un socket d'Internet

  • Protocol (TCP, UDP, RAW IP)
  • Adreça IP local
  • Número de port local
  • Adreça IP remota
  • Número de port remot

Jordiromerosocket02.png

Ports, serveis i sockets

Jordiromerosocket03.png

Jordiromerosocket04.png

Estat d'un socket

Jordiromerotcp03.png

Jordiromerotcp04.png

NAT

Network Address Translation

  • És un estàndard creat de la Internet Engineering Task Force (IETF). Creat per lluitar contra la falta d'IPs.

Dos usos, dos tipus de NAT

  • SNAT (Source NAT): Compartir una connexió a Internet. Permet compartir una adreça vàlida d'Internet entre diverses adreces de xarxa privades.
  • DNAT (Destination NAT): Permet accedir als serveis

d'una màquina local.

  • PNAT (Port NAT): Canvia el port de distinació

Funcionament

  • Canvia les adreces d'Internet (SNAT adreces origen i DNAT adreces destinació) de les capçaleres IP

Vegeu També

Encapsulació

Nc