Sistemes de transport de dades

Anuncio
SISTEMES DE TRANPORT DE DADES
TEMA 1.− REVISIÓ DE LES ARQUITECTURES DE COMUNICACIONS
TEMA 1.− REVISIÓ DE LES ARQUITECTURES DE COMUNICACIONS
Models jeràrquics: ISO i Internet
El protocol és la forma de que dos nivells s'entenguin.
Entitat: creació d'un proces que fa un funció d'un nivell. Un nivell pot ser programat pr un o diverses entitats,
i es comuniquen amb d'altres nivells amb els Service Acces Point.
Un nivell ha de definir les funcions que realitza el protocol per comunicar−se amb d'altres nivells del mateix
tipus, i la interficie de comunicació entre els diferents nivells.
Funcions dels nivells OSI:
• Físic: definició mecànica i elèctrica de la interfície de xarxa. Conectors, cables, etc.
• Enllaç: control de conexió de dades.
• Xarxa: sortida de la xarxa, adreçament, etc. El protocol IP es comú a totes les xarxes.
• Tranport: protocol extrem a extrem, i ha de ser independent de a xarxa. En aquest nivell el protocol és
el TCP.
• Sessió: només en l'arquitectura OSI. Dialeg entre les diferents entitats.
• Presentació: representació d'estructures de dades unica per qualsevol xarxa. Traducció d'ASCII a codi
d'altres màquines, etc.
• Aplicació: transferencia de fitxers, web, etc.
Els nivells de TCP−IP són els següents:
• Físic: mateixa funció que l'anterior.
• Internet: interconexió − IP.
• Transport: TCP−UDP. El TCP ofereix un control d'errors (OSI) però el UDP no ofereix aquest
control d'errors, al no utilitzar aquest control triga menys en realitzar la comunicació i per tant es molt
útil per aplicacions en temps real.
• Aplicació.
Cada nivell te el seu PDU (Protocol Data Unit) que són les trames. En el nivell xarxa les trames s'anomenen
paquets i si estem parlant de TCP se'n diuen Datagrames. En cada nivell s'afegeix la capçalera corresponent al
paquet o trama que ens ha arribat del nivell superior.
El PDU d'un nivell passarà a ser el SDU (Service Data Unit) del nivell següent, al qual s'afegirà la capçalera
formant així el nou PDU.
Els terminals estan conectats a nodes que es conecten a les xarxes. Aquests nodes no tenen que implementar
tots els nivells, sino que nomes amb els nivells físic, d'enllaç i de xarxa n'hi ha suficient. Per tant el nivell de
transport te un protocol d'extrem a extrem, es a dir, es comunica directament amb l'altre terminal o DTE (Data
Terminal Equipment).
Segons el tipups de xarxa s'hauran d'implementar tots els nivells o nomès els bàsics:
1
• Commutació de paquets: ha d'implementar els tres nivells més baixos.
• Connexió punt a punt: només necessita el nivell físic, aquest tipus de connexió es fa via modem, port
serie, etc. Al ser una connexió punt a punt no hi ha xarxa, sino que només existeix el cable que uneix
els dos equips o el modem. En aquestc as el nivell 3 o xarxa esta buit i no te cap funció.
• Commutació de circuits: és una connexió molt similar a la connexió punt a punt, però sense un sol
cable, es a dir, hi han molts cables però es busca un camí, el qual serà únic i dedicat a la connexió..
• LAN's: aquest tipus e xarxes tenen un bus que es conecta al nivell físic, es a dir, és un medi compartit.
En aquestes xarxes el nivell 3 o xarxa també està buit ja que no hi ha fases de connexió, desconnexió,
ni tampoc te un encaminament.
Els repetidors treballen a nivell físic i retransmenten bits.
Els bridges treballen a nivell d'enllaç de dades i retransmeten trames MAC.
Els routers treballen a nivell de xarxa i retransmeten paquets. Aquests s'utilitzen per conectar diferents
xarxes, ja que les xarxes poden tenir diferents protocols, diferent mida dels paquets, i per tant no e spoden
conectar les xarxes directament, sino que necessiten un intermediari.
Els gateways o conversors de protocols treballen per la resta de nivells.
Serveis de comunicació
Un model de referencia és un model abstracte que no indica com s'implementa una connexió, sino que indica
quines regles ha de seguir la xarxa.
Servei: conjunt de funcions que ofereix un nivell a l'usuari d'aquest nivell o servei. Un nivell ofereix els
serveis a d'altres nivells mitjançant el SAP (Service Acces Point) que és el punt mitjançant el qual l'usuari d'un
servei es conecta al servidor d'aquest servei.
En l'arquitectura OSI els serveis entre capes adjacents s'expresen en termes de primitives i paràmetres. Una
primitiva especifica la funció que es realitzarà i els paràmetres s'utiltzen per passar dades i informació de
control. Les primitives d'un servei són senyals que s'utilitzen per indicar com va la comunicació entre nivells.
Les primitives són:
• REQUEST o PETICIÓ: primitiva emessa per un usuari de servei per invocar algun servei i pasar els
paràmetres necessaris per especificar completament el servei sol.licitat.
• INDICATION o INDICACIÓ: una primitiva emessa per un suministrador de servei per: indicar que
ha sigut invocat un procediment per l'usuari de servei en la conexió i per suministrar els paràmetres
asociats o notificar a l'usuari de servei d'una acció iniciada pel suministrador.
• RESPONSE o RESPOSTA: primitiva emesssa per un usuari de servei per confirmar o completar
algun procediment invocat previament mitjançant una indicació a aquest usuari.
• CONFIRM o CONFIRMACIÓ: primitiva emessa per un suministrador de serveii per confirmar o
completar algún procediment invocat previament mitjançant una petició per l'usuari del servei.
Segons el nombre de primitives que intervinguin en una conexió tindrem diferents tipus de serveis:
• Servei confirmat (confirmed Service): es aquell que te les quatre primitives
• Servei no confirmat (Unconfirmed Service): aquell que nomès te les primitives request i indication.
A més d'aquest tipus de serveis hi han dos tipus mñes de serveis:
• Orientat a la conexió(Connection Oriented CO): es caracteritza per una fase d'establiment de la
2
connexió on la primitiva és CONNECT. Una fase de transferencia de dades amb la primitva DATA. I
l'última fase que és l'acabament de la connexió amb les primitives RELEASE, ABORT o P−ABORT,
segons com hagi acabat la comunicació: be, erronea o tallada pel servidor.
• Sense connexió (Connectionless CL): en aquest cas només hi ha transferencia de dades amb la
primitva UNIT DATA.
El model OSI esta pensat per a que sigui orientat a la connexió però alguns nivells poden ser sense connexió.
• Nivell Aplicació, Presentació, Sessió i Transport: es CO, però estranyament es pot probar que sigui
CL
• Xarxa i Enllaç de dades: poden ser, indistintivament, CO o CL.
• Físic: és CO.
Protocols de comunicació
Per a que dues entitats es comuniquin amb èxit han de parlar el mateix llenguatge. Que comuniquen, com es
comuniquen i quan lo han de fer han de constituir un conjunt de regles aceptades mutuament entre les entitats
involucrades. El conjunt de convencions es denomina protocol, que pot definir−se com un conjunt de normes
que gestionen l'intercanvi de dades entre dos entitats. Els elements clau d'un protocol són:
• Sintaxis: compren qüestion com format de dades, codificació i nivels de senyal.
• Semàntica: compren informació de control per a la coordinació i la gestió d'errors.
• Temporització: compren la coordinació en la velocitat i l'ordre seqüèncial.
Les dades a intercanviar han de ser enviats en trames amb un format específic (sintaxis). El camp de control
proporciona funcions de regulació, com especificació de moe i establiment de conexió (semàntica). També
s'incorporen metodes pel control de fluxe (temporització).
Les funcions que formen la base de tots els protocols:
• Segentació i ensamblatge: la segmentació consisteix en dividir un missatge d'un nivell superior en
trossos mes petits que utilitzi el nostre protocol. Eventualment les dades segmentades han
d'agrupar−se en missatges apropiats per al nivell d'aplicació.
• Encapsulament: a les PDU de nivell superior se li afegeix una capçalera i una cola, aquest afegiment
d'informació (normalment de control) és l'encapsulament
• Control de conexió.
• Entrega ordenada de les trames.
• Control de fluxe: és una funció realitzada per l'entitat receptora per limitar la quantitat o taxa de dades
que envia l'entitat emissora.
• Control d'errors: técniques per gestionar laperdua o els errors de dades i informació de control.
• Adreçament.
• Multiplexació.
• Serveis de transmissió:un protocol pot oferir una gran varietat de serveis addicionals a les entitats que
facin us d'ell.
Normalitació
Aventatges de l'estandarització:
• Un estàndar assegura un gran mercat. Això estimula la producció massiva.
• Un estàndar permet que els productes de diferents suministradors es comuniquin, dotant així de major
flexibilitat en la selecció i us dels equips.
3
Les principals desaventatges són:
• Els estàndars tendeixen a congelar la tecnologia. Mentre que un estàndar es desenvolupa, es revis i
s'adopta, s'haurà desenvolupat d'altres tècnologies mes eficaces.
• Hi han molt estàndars per a la mateixa funció.
TEMA 2.− NIVELL XARXA
Introducció
Aquest nivell proporciona independencia als nivells superiors respecte a les técniques de conmutació i de
transmissió utilitzades per conectar els sistemes; es responsable de l'estaliment, manteniment i tancament de
les conexions.
Aquesta capa o nivell proporciona els mitjans per a la transferencia d'informació entre sistemes finals a través
d'algun tipus de xarxa de comunicació. Llibera a les capes superiors de la necessitat de teir coneixement sobre
la transmissió de ades i les tecnologies de conmutació utilitzades per conectar els sistemes. En aquest nivell, el
sistema computador esta immers en un diàleg amb la xarxa per especificar l'adreça destí i solicitar certes
facilitats de la xarxa, com prioritat. En una connexió punt a punt entre dos estacions, no existeix la necessitat
d'una capa de xarxa ja que la capa d'enllaç de dades pot proporcionar les funcions necessaries de gestió
d'enllaç.
Termes d'interconexió de xarxes:
• Xarxa de comunicació: un sistema que proporciona un servei de transferencia de dades entre estacions
conectades a la xarxa.
• Internet: una col.lecció de xarxes de comunicació interconectades per ponts o dispositius
d'encaminament.
• Subxarxa: fa referència a una xarxa constitujent d'una internet. Això evita certa ambigüitat ja que des
del punt de vista de l'usuari la internet entera és una única xarxa.
• Sistema final (ES): dispositiu conectat a una de les subxarxes d'una internet que s'utilitza per
implementar les aplicacions o serveis de l'usuari final.
• Sistema intermig (IS): dispositiu utilitzat per conectar subxarxes i permetre la comuniació entre
sistemes finals connectats a diferents subxarxes.
• Pont (brige): un IS utilitzat per conectar dos xarxes LAN que utilitzen el mateix protocol LAN, El
pont actua com un filtre d'adreces, recollint paquets d'una LAN que van dirigits a un destí en una altra
LAN i pasant−los cap endavant. El pont no modifica el contingut del paquet, ni incorpora res al
mateix. El pont opera en el nivell 2 del model OSI.
• Dispositius d'encaminament (router): un IS utilitzat per conectar dos xarxes que poden o no ser
similars. El dispositiu d'encaminament utilitza un protocol de internet present en cada dispositiu
d'encaminament i en cada computador de la xarxa. El dispositiu d'encaminament opera en el nivell 3
del model OSI.
Els requisits globals del sistema d'interconexió de xarxes es pot expresar en termes generals. Aquest requisits
són:
• Proporcionar un enllaç entre xarxes (nivell 2).
• Proporcionar un encaminament (nivell 3) i entrega de les dades entre processos en diferents xarxes.
• Proporcionar un servei de contabilitat que realitzi un seguiment de la utilització de les diferents arxes i
dispositius d'encaminament i mantingui informació de l'estat.
• Proporcionar les serveis mencionats de forma que no es requereixi la modificació de l'arquitectura de
la xarxa de qualsevol de les xarxes interconectades. Algunes de les diferencies de les diferents xarxes
4
poden afectar a:
· Diferents esquemes d'adreçament: les xarxes poden utilitzar diferents noms i adreces dels punts finals.
· Diferent tamany màxim de paquets: pot ser que s'hagi e trocessar un paquet en unitats mes petites al passar
per una altra xarxa.
· Diferents mecanismes d'acces a la xarxa: el mecanise d'acces de l'estació a la xarxa podría ser diferent per
estacions en xarxes diferents.
· Conexió, sense connexió: les arxes individuals poden proporcionar un servei orientat a la conexió (circuits
virtuals) o no orientats a la conexió (datagrama). Es desitjable que el servei entre xarxes no depengui de la
naturalessa del servei de conexió de les xarxes individuals.
· Tècniques d'encaminament: l'encaminament dintre de la xarxa pot dependre de la detecció d'errors i de les
técniques de control de congestió particulars de cada xarxa. El sistema d'interconexió entre xarxes ha de ser
capaç de coordinar aquestes técniques per encaminar les dades adaptativament entre les estacions de les
diferents xarxes.
Estructura interna del nivell Xarxa
El nivell Xarxa es divideix en tres parts per facilitar la comunicació amb el nivell d'enllaç i el nivell de
transport. Les tres parts són les següents:
· SNICP(SubNetwrok Independent sublayer Protocol): dona un única interficie cap al nivell superior i és el
que implementa les funcions necessaries per assolir la transparència de les xarxes).
· SNDCP (SubNetwork Dependent Convergence sublyare Protocol): depen de la subxarxa a que estigui
connectat, però es un nivell intermedi que adapta els serveis de xarxa del SNACP al SNICP, es a dir, adpata
adreces.
· SNACP (SubNetwork Access sublayer Protocol): depen només del tipus de subxarxa que hi hagi sota, es a
dir, fa unes funcions similars a la cap d'enllaç de dades.
El següent esquema indica la interconexió e xarxes amb aquestes tres parts del nivell xarxa:
Si A i B son xarxes del mateix tipus (per exemple LAN's CSMA−CD) els subnivells SNDCP i SNICP no
tendrien cap funció.
En canvi si A fos una LAN CSMA−CD (802.3) i B una LAN Token Ring (802.5), llavors SNDCP tindria les
funcions de routing i adaptació de la mida del paquet, i el subnivell SNICP tindria la funció de routing.
El següent esquema mostra un exemple d'interconexió via IP, en la que dos LAN s'interconecten mitjançant
una WAN de conmutació de paquets X.25.
t1, t6, t7, t10, t11,
t16:
t2, t5:
LLC1−H
t3, t4:
MAC1−H LLC1−H
t8, t9:
P−H
t12, t15:
LLC2−H
IP−H TCP−H DATA
IP−H
IP−H
IP−H
IP−H
TCP−H
TCP−H
TCP−H
TCP−H
DATA
DATA
DATA
DATA
MAC1−T
5
t13, t14:
MAC2−H LLC2−H IP−H TCP−H DATA
MAC2−T
Leyenda de la figura de la pagina anterior:
xxx−H: Capçelera del nivell xxx
xxx−T: Cua del nivell xxx
P−H: capçelera del paquet X.25.
La figura mostra el funcionament del protocol d'interconexió per a les dades intercanviades entre el
computador A i el B a través d'una WAN. La figura mostra el format de la unitat de dades en cada etapa. Els
sistemes i els dispositius d'encaminament finals han de compartir el mateix protocol que hi ha per sobre de IP.
Els dispositius d'encaminament intermitjos només necessiten implementar fins al protocol IP.
Podem fixar−nos que l'unica capçalera que es manté inalterada és la del protocol IP, ja que IP incorpora, entre
d'altres coses l'adreça global d'internet. Aquesta adreça, lògicament, consta de dos parts: un identificador de la
xarxa i un indetificador del sistema final.
Servei Xarxa
El servei de xarxa ho dona la xarxa a la qual ens hem conectat. Aquests serveis poden ser:
· El servei CONS (Connection Oriented Network Service) es basa en circuits virtual i per tant hi ha un reserva
de recursos (enllaços, ample de banda, memòria de buffers, etc.) i aquests recursos nomès seràn utilitzats per
aquesta connexió. L'encaminament només es fa una vegada i per tant una vegada establert el camí serà fix.
Amb la reserva de recursos es pot garantir una qualitat de servei (QoS). En aquest cas l'establiment de la
connexió és costos ja uqe s'ha de buscar el camí òptim, fer la reserva de recursos, etc. La reserva de recursos
es manté fins que es fa la desconnexió i per tant si no s'utilitzen per la connexió es desaprofiten.
· El servei CLNS (ConnectionLess Network Service) no te reserva de recursos i per tant no hi ha QoS. Si hi
ha un error en alguna xarxa intermitja, el paquet busca un altre camí alternatiu. Per tant l'encaminament es fa
per cada PDU, i no se sap per on van el paquets i per tant es molt díficil de tarificar aquests serveis. Els
protocols de transport han de ser complexos per comprobar tots els possibles errors.
La transferència de PDU entre terminals ha de ser transparent per a les diferents xarxes:
• Però les xarxes per on passa el PDU poden ser diferents.
• Adreçament: cada tipus de xarxa te la seva propia adreça, comp podria ser el IEEE de 6 octets, l'IP de
4 octets, l'ATM de 8 octets, etc.
El E.164 és l'adreça estàndara de ISO i te el següent format:
IDP
AFI
SDP
IDI
IDP: Initial Domain Part
AFI: Authority and Format Id
IDI: Initial Domain Id
6
DSP: Domain Specific Part.
• Binding: connexió per trobar el camí o path, està relacionat amb l'encaminament. Els IS (Intermediate
System) o routers gestionen aquest encaminament. La forma de trobar el camí de forma transparent es
utilitzar una identificació universal per accedir a les xarxes. Per l'encaminament tenim el ARP (Adress
Resolution Protocol)
• QoS: aquest dependerà del tipus de connexió, ja sigui CO o CL.
FASE
PARAMETRE QoS
CO
CL
establiment
retard
prob. fallida
X
X
transferencia de dades
throughput (flux info)
retard
taxa d'errors residuals
prob. fallida transf.
X
X
X
X
X
X
Desconexió
retard
7
prob. fallida
X
X
General
protecció de PDU
prioritat de PDU
cost economic
X
X
X
X
X
X
Les primitives del servei de xarxa són les mateixes que les el model OSI, però amb un nom diferent:
• N−CONNECTION.REQUEST
• N−CONNECTION.INDICATION
• N−CONNECTION..RESPONSE
• N−CONNECTION.CONFIRMATION.
I al igual que en el model OSI la connexió CO te les quatre primitives i la connexió CL només te les dues
primeres, però el prefix és:
N−UNITDATA.primitiva
ISO IP
El protocol ISO IP es un protocol amb serveis no orientats a la conexió (CLNS) i les primitives tenen el
següent format:
N−UNITDATA.REQUEST (@ font, @destí, QoS, dades−usuari−NS−UserData)
N−UNITDATA.INDICATION (@font, @destí, QoS, N−UserData)
Els paràmetres de qualitat de servei poden ser, entre d'altres:
• retard extrem a extrem (transit delay)
• prioritat de les dades, hi hauran dades més prioritaries que d'altres i si s'han de perdre, les menys
prioritaries seran les mes afectades.
8
• encriptar dades.
• cost.
El format de la capçalera de la trama ISO IP és el següent:
· Protocol ID: identifica quin és el protocol amb el qual tteballem.
· Length Id: indica quan octets te la capçalera.
· Versió: indica la versió del protocol que estem utilitzant.
· PDU Lifetime: aquest camp ho fixa l'estació font i indica el temps de vida del datagrama dins de la xarxa. El
temps va desde 500 ms a 127 seg. Això implica que cada unitat representa 500 ms. Aquest camp disminueix
en una unitat cada vegada que el datagrama passa per un router.
· SP (Segmentattion Permitted): indica que es permet la segmentació dels datagrames.
· MS (more Segments): indica que venen més segments que formen part d'un mateix datagrama, indicant així
que formen part d'un datagrama.
1 ! el segment no es final
0 ! el segment és l'ultim d'un datagrama.
· ER (Error report): demana un informe d'errors.
L'ensamblatge dels paquets es fa en la estinació i no en els routers.
· PDU Segment length: longitud de tota la PDU incloent la capçalera. La longitud s'indica en octets.
· Checksum: control d'errors però només de la capçalera.
· Destination Adress Length: indica la longitud del camp que ens indicarà l'adreça de destinació del
datagrama.
· Destination Source Length: indica la longitud del camp de l'adreça font del datagrama.
· Data Unit Id: identificació del datagrama, al que pertanyen un segment. Els segments que tene el mateix
numero indica que pertanyen al mateix datagrama. Aquest id és únic.
· Segment offset: indica la posició del segment dins del datagrama al que pertanyen. La posició s'indica en
unitats de 64 bits.
· Total length: indica la longitud total de la PDU.
· Opcions: segueixen la codificació TLV (tipus, longtiud i valor). Hi poden haver de seguretat, per marcar pels
routers per on ha passat la PDU, etc.
IP Internet
El protocol internet (IP) forma part del conjunt de protocols TCP/IP i és el protocol més utilitzat
d'interconexió de xarxes. Funcionalment es similar al protocol normalitzat de xarxa sense conexió de ISO.
9
Es un protocol amb un servei CLNS, no orientat a la conexió, i és la xarxa qui intenta fer el màxim per a que
els datagrames arribin a la seva destinació (best effort).
Aquest protocol permet:
• flexibilitat, és a dir, que diferents xarxes puguin comunicar−se entre elles.
• fiabilitat per que cada datagrama és independent, és a dir, si hi ha alguna xarxa que no funciona, el
datagrama busca un altre camí alternatiu per arribar a la destinació.
Serveis IP
IP proporciona dues sprimitives de servei en l'interfície amb els següent nivell superior:
SEND (@font, @destí, protocol, tipus servei, ident., fragment id, ttl, long dades, opcions, dades)
DELIVER (@font, @destí, protocol, tipus servei, long dades, opcions, dades)
La primitiva SEND (enviament) s'utilitza per sol.licitar la transmissió d'una unitat de dades. La primitiva
DELIVER (entrega) l'utilitza IP per notificar a un usuari l'arribada d'una unitat de dades. Els paràmetres
associats amb aquestes dues primitves són els següents:
• Adreça origen: adreça global de la xarxa de l'entitat IP que envia la unitat de dades.
• Adreça destí: adreça global de la xarxa de l'entitat IP de destí.
• Protocol: entitat de protocol recipient (un usuari IP). Indica quin és protocol de nivell superior
utilitzat (típicament TCP o UDP).
• Tipus de servei: utilitzat per especificar el tractament de la unitat de dades en la seva transmissió
mitjaçant els components de les xarxes. Fa referència a la qualitat de servei. Indica com s'ha de tractar
la PDU a traves de les xarxes.
• Identificador: utilitzat en combinació de les adrces d'orgien i destí, i el protocol per identificar d'una
forma única l'unitat de dades. Aquest paràmetre es necessita per reensamblar i informar d'errors.
Ientifica a l'aplicació que hi ha per damunt el protocol de transport.
• Indicador de fragmentació: inidica si IP pot segmentar les dades per realitzar el transport.
• TTL: temps de vida del datagrama en la xarxa, mesurada en salts de xarxes.
• Longitud de les dades: longitud de les dades que es transmeten.
• Opcions: opcions sol.licitades per l'usuari IP.
• Dades: dades d'usuari a ser transmessos.
Les opcions actualment definies són:
· Seguretat: permet que s'incorpori una etiqueta de seguretat al datagrama.
· Encaminament per la font: constitueix una llista seqüèncial d'adreces de dispositius d'encaminament que
especifica la ruta a seguir.
· Registre e ruta: es reserva un camp per registrar la seqüència de dispositius d'encaminament vistats.
· Identificació de seqüència: nom dels recursos reservats i utilitzats per un servei de la seqüència.
· Marques de temps.
Format del datagrama IP
10
· Versió: indica el numero de la versió del protocol. (IPv4, IPv6).
· Header Length: longtiud de la capçalera Internet. Longitud de la capçalera expressad en paraules de 32 bits.
El valor mínim és de 5 (20 octets) i el màxim és de 15 (60 octets).
· Tipus de servei: especifica els paràmetres de seguretat, prioritat, retard i rendiment.
Bits 0, 1 i 2, indiquen la prioritat.
Bit 3, indica el retard, si es 1 hi haurà el mínim retard possible, i si es 0 es comportarà normalment.
Bit 4, indica el throughput, si es 1 el datagrama anirà pels camins mes descongestionats.
Bit 5, indica la fiabilitat, si es 1 buscarà una fiabiiltat alta per a que no es perdi el datagrama.
Bit 6 i 7 de moment no tenen cap significat.
· Total length: longitud total del datagrama, en octets.
· Identification: identificador de l'apliació
· DF(don't fragment flag): indica que no hi ha fragmentació quan esta a 1.
· MF (More flag): indica que venen més fragments del mateix datagrama.
· Offset: son 13 bits que indica el lloc on es situa el fragment dins del datagrama original, mesurat en unitats
de 64 bits. Això implica que tots els fragments excepte l'últim contenen un camp de dades amb una longitud
de 64 bits.
· TTL: temps de vida del datagrama mesurat en salts de dispositius d'encaminament.
· Protocol: identifica el protocol d'usuari del nivell superior (TCP=6 i UDP=17).
· Cheksum: control d'errors que només s'aplica a la capçalera.
· Padding: s'utilitza per assegurar que la capçalera del datagrama tingui una longitud múltiple de 32 bits.
· Dades: aquest camp ha de tenir una longitud múltiple de 8 bits. La màxima longitud d'una datagrama (camp
de dades + capçalera) és de 65535 octets (64 Kbytes).
Adreçament IP
Els camps d'adreça orgien i destí contenen cada un una adreça internet global de 32 bits, que generalment
consta d'un identificador de xarxa i d'un identifiador de computador o host. Existeixen tres calses de xarxes
que es poden associar a les següents condicions:
• Classe A: poques xarxes i cada una amb molts computadors.
• Classe B: un nombre mig de xarxes, cada unes amb un nombre mig de computadors.
• Classe C: moltes xarxes, cada una amb pocs computadors.
0
11
Xarxa (7 bits)
Computador (24 bits)
Classe A
1
0
Xarxa (14 bits)
Computador(16 bits)
Classe B
1
1
0
Xarxa (21 bits)
Computador (8 bits)
Classe C
1
1
1
Multicast (28 bits)
Classe D
1
1
1
1
0
no s'utilitza (pensat per un futur)
Classe E
12
Les adreces Ip identifiquen un punt de connexió a la xarxa i no una xarxa en si. L'adreça de computador no és
l'adreça del terminal sino que la del punt de conneió, per tant, si es canvia el terminal de xarxa, la seva adreça
IP canviarà també.
Per codificar les adreces Ip s'utilitzen 4 dígits decimals separats per punts: d.d.d.d
Tipus
Classe A
Classe B
Classe C
Classe D
# xarxes
126
16384
2097152
# host
16777124
65534
254
Codificació
n.h.h.h
n.n.h.h
n.n.n.h
0..127
128..191
192..223
224..254
Convenis que s'utilitzen per l'assignació d'adreces:
• 0.0.0.0: indica aquest terminal en aquesta xarxa.
• 0.0.0.x; 0.0.x.x; 0.x.x.x: qualsevol terminal dins d'aquesta xarxa.
• 255.255.255.255: broadcast, el datagrama va dirigit a tots els terminal d'aquesta xarxa.
• 127.0.0.0: loopback, esta per fer probes i comunicar processos de la mateixa màquina, sense sortir
fora.
• 192.0.0.0: per fer probes.
Adreces de subxarxes (SUBNETTING)
Una xarxa es pot dividir en d'altres xarxes més petites (subxarxes) i per tant el router ha de saber on es troba
cada terminal dins de les subxarxes. Una solució seria tenir una taula en el router amb totes les adreces dels
terminals però això es complicat de gestionar.
La solució que es va escollir utiltza el concepte de subxarxa que ientifica les adreces de la següent forma:
Xarxa
Sub−xarxa host
Per poder definir aixo es defineix una mascara (network mask) la qual ens indicaria quins bits identifica la
xarxa i quins altres el host. En les màscares on hi troben un 1 indicarà que aquest bit identifica la xarxa i si
trobem un 0 identificarà el host.
Per exemple la màscara: 255.255.255.0
Indica que els tres primers octets identifiquen la xarxa i l'últim identifica el host.
Supernetting
Les adrecves de classe C admeten pocs terminals i com no quedaven adreces calsse B, s'havien d'utilitzar
adreces classe C per identificar les xarxes, i per tant diferents adreces classe C havien d'identificar la mateixa
xarxa o entitat (això es coneix com supernetting).
Amb el supernetting apareien el cas Classesless InterDomain Routing (CIDR) que agrupa diferents adreces de
classe C consecutives, ientificant la mateixa xarxa.
(192.5.48.0, 4)
13
El 4 indica el nombre d'adreces de classe C de la mateixa entitat, en aquest cas les adreces (192.5.48.0,
192.5.49.0, 192.5.50.0, 192.5.51.0) identifiquen la mateixa entitat.
Per gestionar aquestes adreces s'utilitzen també les màscares, en aquest acs la màscara seria:
msk: 255.255.252.0
IP : 192.5.48.0
Amb la màscara es fa la AND amb l'adreça IP i el resultat és el que interpreta el router com adreça de la
xarxa.
Adress Resolution Protocol (ARP)
ARP: resolució d'adreces.
El problema que es planteja és que tenim una adreça IP d'un host i volem averiguar la seva adreça e xarxa
(MAC).
Per solucionar−lo podem tenir una taula amb totes les adreces IP, però això es molt díficil de gestionar.
Una altra solució es fer una relació amb l'adreça IP i l'adreça xarxa de tal forma que amb una adreça IP
poguem conèixer l'adreça xarxa del terminal.
La solució adoptada és l'ARP. L'ARP original stà pensat per xarxes Ethernet. El terminal A envia un
broadcast a tota la xarxa preguntant qui te l'adreça IP de destí amb un paquet ARP, i qui te aquesta adreça
determinada, contesta al terminal origen dient−li la seva adreça de xarxa o MAC, de forma unicast. Quan el
terminal B contesta al A tots els terminals actualitzen la seva taula ARP.
Si les xarxes no tenen un medi compartit (ATM), llavors es defineix un servidor que te totes les adreces IP i
MAC dels termials, i es aquest al que es pregunta i qui respon.
Aquest mecanisme es pot exportar al cas en que el terminal destí es trobi en una altra xarxa, i per tant, en
aquest cas seria el router qui contestaria l'adreça del terminal destí. Si el router no te aquesta funció, el router
deixarà passar la pregunta a tots els terinals que depenen d'ell.
Cada terminal o host manté una cache amb mapeigs d'adreces ethernet/adreces IP. Normalment les entrades
s'eliminen als 20 minuts d'haber sigut obtingudes.
El format del paquet ARP és el següent:
Header−Ethernet ARP
El camp Type de la capçalera d'Ethernet estarà a 0806 indicant així que es transmet una trama ARP.
· HW Type: identifica el tipus de xarxa (Ethernet, ATM , etc.)
· Protocol Type: identifica el protocol utilitzat.
· Hw LEN i Plen,tamnay de les adreces hardware i de xarxa.
· Operation: indica que es un paquet ARP ja sigui de resposta o de pregunta.
14
· Sender HA: adreça ethernet del que envia (HA−Hardware Adress).
· Sender IP: adreça IP del que envia.
· Target HA: adreça Ethernet demanada.
· Target IP: adreça IP del qual es vol coneixer la seva adreça Ethernet (MAC).
Existeixen dos variants de l'ARP que són els segëunts:
• Reverse ARP (RARP): aquest protocol vol resoldre el problema on tinguem una estació que no te una
adreça IP propia (sensedisc). El principi és el mateix que l'ARP, però en arrancar el terminal és quan
pregunta auina és la seva adreça IP, en aquest cas poden contestar tots els terminals que estiguin
conectats.
H−Ethernet (Type=0835)
RARP
El proces que segueix aquest protocol és:
• Terminal A envia RARP request (broadcast Ethernt)
• 1 o mes RARP server contesta indicant l'adreça IP i MAC. El terminal A tria un dels servidors dels qui li
han respos (en concret tria el primer que li arriba).
• Boot.
En les xarxes normalment hi ha un RARP server primari i un de secundari, i si el primari no contesta,
contestarà el secundari.
• BootP: juntamanet amb el RARP trobem el protocol BootP que permet carregar el fitxer de
configuració (Boostrap Protocol). EL proces que segueix és el següent:
• RARP
• Carregar fitxer de configuració
• TFTP: transferencia de fitxer de configuració.
Dynamic Host Configuration Protocol (DHCP)
Protocol de configuració dinàmica.
Aquest protocol asigna una adreça IP que arranca el tertminal, també li dona tota la informació necessaria per
a la comunicació. Però en aquest cas l'adreça IP d'un terminal no és sempre la mateixa, sino que pot canviar
cada vegada que arranca i no com en el RARP que sempre és la mateixa adreça IP.
La forma d'assignar l'adreça IP es fe de:
• Forma manual.
• Forma automatica: l'adreça serà permanent.
• Forma dinàmica: hi ha un temps d'assignació, es a dir, lk'adreça IP s'utilitza durant un cert temps.
ICMP (Internet Control Message Protocol)
15
L'estàndar IP especifica que una implementació eficient ha d'implementar l'ICMP. ICMP proporciona un medi
per transferir missatges des dels dispositius d'encaminament i altres computadors a un altre. ICMP
proporciona informació de realimentació sobre problemes de l'entorn de la comunicació. Algunes situacions
on s'utilitza són:
• Quan un datagrama no pot arribar al seu destí.
• Quan el dispositiu d'encaminament no te capcitat d'emmagatzemar temporalment per reenviar el
datagrama.
• I quan el dispositiu d'encaminament indica a una estació que envïi el tràfic per una ruta més curta.
En la majoria dels casos, el missatge ICMP s'envia, en resposta a un datagrama.
Encara que ICMP está, a tots els efectes, en el mateix nivell que IP en el conjunt de protocols TCP/IP, és en
realitat un usuari de IP. Quan es crea un missatge ICMP es passa a IP, que encapsula el misstage amb una
capçalera IP i després el transmet amb el datagrama de forma habitual. Ja que l'ICMP s'envia en datagrames
IP, no es garantitza la seva entrega i el seu us no es pot consideerar segur.
A continuació es veu el format del paquet ICMP. Tots els missatges comencen amb una capçalera de 64 bits
que consta dels següents camps:
0
8
Tipus
Codi
16
31
Checksum (suma
comprobació)
Paràmetres
• Tipus: (8 bits) especifica el tipus de missatge ICMP.
• Codi: (8 bits): s'usa per especificar paràmetres del missatge que es poden codificar en un o uns pocs
bits.
• Cheksum: (16 bits) suma de comprobació del missatge ICMP sencer. S'utilitza elmateix algoritme de
suma de comprobació que IP.
• Paràmetres: (32 bits) s'utilitza per especifiar paràmetres més llargs.
Aquests camps estan seguits genralment per camps d'informació addicional que especifiquen més el contingut
del missatge.
Els misastges ICMP inclouen el següent:
· No es pot accedir al destí. (tipus=3)
· Temps excedit. (tipus=11)
· Problema de paràmetre.
· Ralentització de l'origen − Source
Quench. (tipus=4)
· Redirecció −Redirect. (tipus=5)
· Eco. (tipus=8)
16
· Resposta a eco. (tipus=0)
· Marca de temps −Timestamp. (tipus=13)
· Resposta a la marca de temps. (tipus=14)
· Petició de màscara d'adreça. (tipus=17)
· Resposta de màscara d'adreça. (tipus=18)
El missatge que no es es pot accedir al destí cubreix un cert nombre de possibilitats. Un dispositiu
d'encaminament pot retornar aquest misastge si no sap com arribar a la xarxa de destí.
Temps excedit indicat si ha expirat el temps de vida (TTL) del datagrama.
Redirect s'envia a un computador connectat directament a un dispositiu d'encaminament per informar−li d'una
ruta millor per un destí particular.
Un error sintàctic o semàntic en la capçalera IP farà que un dispositiu d'encaminament o un computdor retorni
un misstage de problema de paràmetre.
El missatge Source Quench proporciona un control de fluxe, i s'envia a un computador per indicar−li que
redueixi la velocitat de transferència a la que envia tràfic al destí internet.
Eco i resposta a eco proporciona un mecanisme per comprobar que la comuniació entre dues entitats es
possible.
Timestamp i resposta timestamp proporciona un mecanisme per mostrejar les característiques en quanta
retard del conjunt de xarxes.
Petició de la màscara d'adreça i la resposta són utils en un entorn que inclou subxarxes.
Encaminament IP
Conceptes Bàsics
Router: dispositu d'encaminament que conecta diferents xarxes i serveix per quan un terminal vol enviar
informació a un altre terminal d'una xarxa diferent.
Per poder encaminar els datagrames IP a través de diverses xarxes, els routers han de construir taules
d'encaminament. Si el terminal A envia a un B un datagrama IP amb un tamany de 1500 bytes i la xarxa del
terminal B només admet datagrames de 530 octets, el router ha de fragmentar aquest datagrama. El datagrama
no es rensambla en el router sino sino en el terminal B.
Les característiques de l'encaminament són:
• És jerarquic.
• Basta en taules d'encaminament (es guarda l'adreça IP de destí a la qual esta associada l'adreça del
pròxim router −next hop−.
• L'encaminament és pas a pas, es a dir, si un router no sap que fer el passa al següent router (nest−hop
17
routing).
• Hi ha un default routing per les adreces que no es tenen registrades en la taula d'encaminament.
L'encaminament estàtic consisteix en que els gestors de la internet construeixen les taules d'encaminament
per cada Router. És sencill però està lluny del comportament òptim i necessitat de mantenir moltes taules. És
util per internet petites i sencilles.
Els avantatges d'aquest encaminament són:
• Decissió d'encaminament ràpida.
• Cada router no te perque conèixer tota la topologia de la xarxa, només els veïns.
• No te perque haver−hi totes les adreces de xarxes en la taula. Si ve un paquet amb una adreça IP
desconeguda pel router, aquest surt per la sortida del router per defecte.
• Ofereix el routing espcific que consiteix en que per anara al termnal A ha d'anara per aquest altre
router.
L'encaminament dinàmic distribuit es veu mé endavant amb el protocol RIP (Routing Information Protocol,
que es basa en el vector distancia) i el protocol OSPF.
Algorisme d'encaminament
Donat una adreça i una taula, aquest algoritme ens indica com es consulta la taula d'encaminament donada.
• Extreure l'adreça IP de destí del datagrama i aplicar la màscara, amb això obtenim el prefix de xarxa (N).
• Si N te acces directe llav enviar a la mateixa xarxa
sino si esta_taula_routing? llav enviar al next−hop.
sino si hi ha default routing llav enviar al next−hop.
sino error
Enviar next−hop: no modifica les adreces IP del paquet datagrama, per tant per enviar el datagrama a l'altre
router no fa un nou paquet IP, sino que envia el datagrama a l'adreça Ethernet que tingui associada el router de
destí.
Protocols d'encaminament
Sistema Autónom (AS) és un conjunt de xarxes connectat per dispositius d'encaminament homogenis. És una
configuració on e spoden trobar diferents xarxes i subxarxes. RedIris és un sistema autònom que engloba totes
les xarxes d'Espanya. De fet un AS és una unitat d'encaminament i una unitat de gestió. Existeixen punts
neutres els quals fan que per enviar informació a un altre AS no s'hagi de passar per mes del compte de AS,
sino que s'hagi depassar pels essencials.
Dins d'un AS hi ha l'Interior Gateway Protocol (IGP) que permet connectar diferents subxarxes dins del
mateix AS. El IGP en si no existeix, sino que és un protocol generic i cada AS es monta el seu protocol.
Per la comuniació entre AS es troben els Exterior Gateway Protocol (EGP) que permet comunicar diferents
AS.
Els Border Gateway Protocol (BGP) comunica entre si diferents areas que es formen per diverses subxarxes
del mateix AS.
18
L'EGP i BGP és estàndar, però IGP com ha tal no existeix, sino que hi ha variants:
• RIP: Routing Information Protocol.
• OSPF.
• HELLO
En un principi teniem la CORE NETWORK o BACKBONE (xarxa nucli) la qual tenia un routers especials
que feien la interconnexió de xarxes dins d'aquesta xarxa. Aquests routers són els CORE ROUTERS (que no
tenen un efault router per una entrada desconeguda i que es basen en el vector distancia).
Un exemple de com s'omple la taula d'encaminament en aquests routers és el següent:
Taula K
destí D
N1
0
N2
0
N4
8
N17 5
N24 6
N30 2
N42 2
ruta
directe
directe
L
M
J
Q
J
K rep de J
vector dist
N1
2
N2
3
N4
3
N17
6
N24
5
N30
10
N42
3
N21
4
Nova Taula K
destí D ruta
N1
0
directe
N2
0
directe
N4
4
J
N17 5
M
N24 6
J
N30 2
Q
N42 4
J
N21 5
J
Els protocols utlitzats per aquests routers es GGP (Gateway Gateway Protocol) el qual envia les taules
d'encaminament als routers veïns.
Aquest protocol envia missatges periodics i aquests missatges són grans degut a que s'envia la taula
d'encaminament sencera dels routers. El temps de resposta és lent i el protocol es basa en el vector distancia.
El paquet que s'envia indica per cada distancia tots els routers que es troben a aquesta distancia.
Un altre protocol és el basat en l'estat de l'enllaç (Link−State Routing). Aquest verifica periodicament la
connectivitat amb els veïns i propaga a través d'un broadcast als routers, avisant de la seva connectivitat,
aquest broadcast el fa periodicament. Com cada router te tot el mapa de la xarxa, cada router busca el camí
més curt amb l'algorisme Dijkstra, també conegut com Shortest−Path Rountig.
El que s'utilitza és el GGP i el segon nomes està proposat.
EGP
El protocol que s'utiltza per passar informació d'encaminament entre sistemes autónoms diferents es coneix
com protocol de dispositiu d'encaminament exteriot (EGP: exterior Gateway Protocol).
En els AS hi ha una base de dades publica, centralitzada i global que conté tots els AS codificats amb 16 bits
(+de 65000 AS). Un AS pot estar format per altres AS formant una jerarquia.
El protocol d'encaminament EGP te les característiques següents:
• Reconeixement: identificació dels routers d'entrada dels diferents AS.
• Només els veïns s'intercanvien informació.
19
• Verificació periodica dels veïns, per saber si algun router ha caigut.
• Cada router nomes envia informació del seu propi AS.
Els routers es comuniquen les distancies entre xarxes, es a dir, es basa en el vector distancia:
• d=0, la xarxa de destí està directament connectada al router.
• d=1, s'ha de passar per un router per arribar a la xarxa de destí
• maxim=128, ja que és el màxim TTL dels datagrama.
Cada router difon als seus routers veïns la seva taula i rep la taula dels veïns. D'aquesta forma es va
actualitzant la taula d'encaminament.
BGP
Funcionen per connectar AS i està pensat per evitar bucles, els quals es permeten en EGP. Aquest protocol es
fa sobre paquets TCP/IP i el EGP amb paquets UDP/IP. És un encaminament entre AS i és el substitut de
l'EGP.
• És un protocol mes robust.
• Detecta i el.limina bucles.
• Permet gestionar rutes alternatives. És a dir, hi ha diferents routers BGP en un sol AS.
• Permet seleccionar la millor ruta.
• El missatge BGP d'un AS extern és difon als diferents routers BGP dins del mateix AS.
• Atributs/ruta: origen, llista de AS per anar d'un AS a un altre, next−hop (proxim router).
El BGP, si hi ha una xarxa inaccessible ho indica, al contrari que l'EGP que continua intent−ho.
També es basa en el vector distància i es queda amb la millor ruta si e spot accedir per camins diferents a una
xarxa.
BGP s'ha convertit en el protocol de dispositiu d'encaminament exterior estàndar en Internet.
BGP es va dissenyar per permetre la cooperació en l'intercanvi d'informació d'encaminament entre routers.
BGP involucra tres procediments funcionals que són:
• Adquisió de veí.
• Detecció de veí abastable.
• Detecció de xarxa abastable.
L'esencia de BGP és l'intercanvi d'informació d'encaminament entre routers participants en múltiples AS.
IGP − RIP (Routing Information Protocol)
Encaminament dinàmic distribuit.
Protocol basat en el vector distància, és a dir, la informació que espassa entre routers és la distància.
Cada router intercanvia amb els routers veïns de forma periodica informació sobr el cost de comuniació a
totes les subxarxes de la xarxa. A partir de la informació rebuda, cada router actualitza les seves taules
d'encaminament.
Els nodes són considerats com actius (gestionen o envien informació fent un broadcast cada 30 seg) i passius
20
(que serien els host i per tant els que reben la informaci´9:
Cada 30 seg. els routers intercanvien missatges d'encaminament. Els routers tene una temporització (de 180 s)
que si al cap d'aquest temps no s'actualitza la informació llavors aquesta entrada de la taula d'encaminament es
descarta. És a dir, si en 180 seg no rep informació d'un router el considerarà com si s'hagués desconectat. La
distància màxima d'aquest protocol és de 16 routers.
Resum de les característiques:
• Protocol basat en el vector distancia però pensat per ser utilitzat en LAN.
• Els routers poden ser actius (envien informació) o passius (reben informació) i els hosts són passius.
• Router actiu fa un broadcast de la informació del routing cada 30s.
• Nomes es canvia una ruta si la nova és estrictament més curta.
• Els routers estan temporitzats a 180s i si al cap d'aquest temps no ha arribat cap refresc de l'entrada,
aquesta entrada a la taula d'encaminament queda el.liminada.
• Distancia maxima 16 routers.
Aquest protocol te el problema slow convergence problem que consisteix en el segünt:
Si la connexió de N1 a R1 es talla la distancia es posa a 16 iquan arribi el refresc de R2 a R1, indicará que la
distancia a N1 és 2 i per tant R1 posarà que la seva distancia és 3, quan en realitat no hi ha connexió (d=16).
Ara quan arribi el refresc de R1 a R2, s'actualitzarà el R2 a d=3 i així fins que arribi a 16, i par tant hi ha un
temps en que el routing es fa malament.
Hi ha tres possibles solucions:
a) split horizon update: afegeix a la informació que s'intercanvien els routers la interficie física de la taula de
routing.
b) Hold down: si un router s'adona que una connexió s'ha tallat el router ignora la informació que li ve durant
un temps donat (60s)
c) poison reverse: el router envia directament un broadcast enunciant el problema als altres routers.
El format de les adreces és de 14 octets encara que només s'utilitzen 4.
Exemple de reomplert d'una taula d'aquest protocol:
( xarxa, distancia)
Direct/
destí next−hop metric
N1
N2
N3
N4
N5
N6
R1
0
0
R2
R5
R2
2
1
1
2
2
3
Local/RIP Interficie
remote
R
D
D
R
R
R
R
L
L
R
R
R
2
2
1
2
1
2
R3 es queda amb el primer missatge que li arribi, si aquestes pertanyen a la mateixa xarxa.
21
RIP−2 introdueix millores en RIP−1, com èr exemple el suport a encaminament amb subxarxes (subnet
routing), autenficació, suport a CIDR, etc.
IGP−OSPF (Open Shortest Path First)
OSPF utilitza el que es coneix com un algoritme d'encaminament d0estat de l'enllaç. Cada router manté les
descripcions de l'estat dels seus enllaços locals a les subxarxes, i periodicament transmet la informació d'estat
actualitzada a tots els dispositius d'encaminament dels que te coneixement. Cada router que rep un paquet
d'actualització ha de confirma−lo a l'emissor. Aquesta actualització provoca un tràfic d'encaminament mínim
ja que les descripcions dels enllaços són petites i es estrany que es tinguin que enviar.
L'OSPF s'utilitza molt freqüentment com protocol de dispositiu d'encaminament interior en xarxes TCP/IP.
OSPF calcula una ruta a través del conjunt de xarxes que suposa el menor cost d'acord amb una mètrica de
cost configurable per l'usuari. L'usuari pot configurar el cost per a que expressi una funció de retard, la raó de
dades, els cost en peles, o altres factors.
Cada router manté una base de dades que reflexa la topologia coneguda del siatema autònom del qual forma
part. Aquesta topologia s'expresa com un graf dirigit.
Les característiques del OSPF són:
• Open: ve perque l'estàndar és públic.
• Dins del rputing inclou el Type of Service (tipus de servei).
• Inclou poder distribuir la càrrega entre diferents routers del mateix cost (els que estan a la mateixa
distancia).
• És jeràrquic i per tant diferencia arees dins la xarxa.
• Te autentificació: els routers comproben els veïns que tenen.
• Te en conte la màscara de xarxa.
• Els missatges s'envien periodicament.
• També te un temporitzador com el RIP.
• Defineix un router per defecte, per quan ve alguna adreça que no te enregistrada a la taula
d'encaminament.
• Defineix un backup designated router, d'aquesta forma si un router no contesta, tornem a l'anterior, i
el router ja sap quin es.
• Te missatges d'inici quan es posa en marxa per construir la base de dades de la topologia de la xarxa.
• És un protocol Link−State Routing, és a dir, es basa en l'estat de la connexió.
• Cada router aplica l'algorisme Dijkstra (Shortest Path First ! SPF)
La tècnica flooding s'utilitza per enviar des d'un cert router de la xarxa informació a la resta de routers de la
xarxa. El router que origina el flodding envia la informació a cada un dels seus veïns. La resta de routers
reenvien aquesta informació a tots els seus veïns (exceptuant al veï que li ha enviat aquesta informació). Si un
router rep una mateixa informació de forma repetida, no la reenvia.
IPv6
El motiu que ha conduït a l'adopció d'una nova versió ha sigut la limitació imposta pel camp d'adreces de 32
bits en IPv4
Les principals diferencies amb Ipv4 són:
• Les adreces són de 128 bits.
• Les opcions s'envien en capçaleres que es col.loquen entre la capçalera IP i les capçaleres dels
22
protocols de transport.
• Capacitat d'assignació dinàmica d'adreces.
• Concepte de flux (flow), el que permet tenir un servei intermedi entre orientat a la connexió i no
orientat a la connexió (suport a connexions en temps real).
• Incorpora mecanismes de seguretat.
Capçalera IPv6
La capçalera te una longitud fixa de 40 octets, que consta dels camps següents:
• Versió (4 bits): número de la versió del protocol Internet, el valor és 6.
• Prioritat (4 bits): valor de prioritat.
• Etiqueta de fluxe (24 bits): pot ser utiiltzat per un computador per etiquetar aquells paquets per als que
es requereix un tractament especial en els dispositius d'encaminament dins la xarxa.
• Longitut de la carrega útil (16 bits): longitut del reste del pquet Ipv6 excluida la capçalera en octets.
• Capçalera següent (8 bits): identifica el tipus de capçalera que segueix inmediatament a la capçalera
IPv6.
• Límit de salts (8 bits): el número restant de salts permessos per aquest paquet.
• Adreça origen (128 bits): adreça del productor del paquet.
• Adreça destí (128 bits): adreça de destí desitjat del paquet.
TEMA 3.− NIVELL TRANSPORT
El servei general proporcionat per un protocol de transport eés el transport extrem−a−extrem de dades de
forma que s'aisli a l'usuari del servei de transport dels detalls dels sistemes de comunicació que serveixen de
base. És util considerar les següents categories i propietats de serveis per descriure el servei de transport.
· Tipus de servei: hi han dos tipus de servei, orientat a la connexió i no orientat a la connexió o servei
datagrama.
· Qualitat del servei: nivells d'errors i peèrdua acceptables, retard mig i màxim desitjat, rendiment mig i mínim
desitjat,. i nivells de prioritat
· Transferència de dades.
· Interfaz d'usuari: els serveis d'una entitat de transport podrían ser invocats per crides a procediments, pas de
les dades i els paràmetres a un proces mitjançant un mailbox o us d'acces directe a memòria (DMA) entre un
computador usuari i un processador terminal que conté l'entitat de transport.
· Supervisió de la connexió: quan es suministra un servei orientat de a la connexió, l'entitat de transport es
responsable d'establir i donar fi a la connexió.
· Transport ràpid.
· Informe d'estat: un informa permet a l'usuari del nivell de transport obtenir o coneixer informació relativa a
la condició o als atributs de l'entitat de transport o connexions de transport.
· Seguretat.
Protocol datagrama d'usuari (UDP)
User Datagram Protocol.
23
UDP proporcoiona un servei no orientat a la connexió per als procediments e la capa d'aplicació. Així, UDP
és bàsicament un servei no segur. En contrapartida es redueix l'informació suplementaria dell protocol el que
pot ser adient en molts cassos.
UDP no aporta fiabilitat a la transmissió. Cada datagrama UDP s'encapsula en un datagrama IP
UDP es situa al damunt de IP. Ja que no es orientat a la connexió, UDP te poques funcions que fer.
Essenvcialment, incorpora un adreçament a port a les capacitats de IP. Això es veu millorat examinant la
capçalera UDP.
0 16
Port origen
Longitut
31
Port destí
Checksum
8 octets
• Port origen i destí: indica l'apliació que envia o ha de rebre aquest paquet. S'indica el Service Access
Point (SAP) utilitzat per l'aplicació. El port origen és opcional ja qu eUDP és un servei de transport no
fiable, normalment es possa per informar.
• Longitut:conté la longitut del segment UDP sencer, incloent−hi capçalera i dades. La longitud
s'expressa en octets.
• Checksum: o suma de comprobació és el mateix algorisme utilitzat per TCP e IP. Aquesta suma de
comprobació s'aplica al segment UDP sencer més un pseudo−capçalera incorporada a la capçalera
UDP quan és calcula la suma i és la mateixa que l'utilitzada per TCP. Aquest camp en UDP és
opcional. El format de la pseudo−capçalera és el següent:
El fet d'incloure en el checksum la pseudo−capçalera fa que el protocol sigui un mica més fiable.
UDP transmet datagrames entre processos i aplicacions.
Alguns números de ports ja estàn assignats, creant els Well−Known port numbers i a partir del 1024 ja es
poden utilitzar, ja que els primers 1024 estàn reservats.
Protocol de control de transmissió (TCP)
Transmission Control Protocol.
El conjunt de protocols TCP/IP inclou dos protocols en la cap de transport: el protocol de control de
transmisisó (TCP), que és un protocol orientat a la connexió, i el protocol datagrama d'usuari (UDP), que es
no orientat a la connexió com hem dit abans.
TCP és un protocol extrem a extrem. Utilitzant TCP assegurem quela informació arriba de forma correcta (és
a dir, la informació incorrecta es reenviada) i en l'ordre correcte.
A més fa un control de flux per finestra de tamany variable que permet al consumidor no ser inundat per la
informació del productor. També protegeix a la xarxa de congestió. Per aconseguir això necessitem utilitzar
un protocol orientat a la connexió.
Serveis TCP
Dona un servei de transport fiable (un octet que s'envia es granteix que arribarà a la seva destinació). En
recepció, TCP, intenta rebre els mateixos octets i en el mateix ordre com s'ha enviat.
24
TCP està dissenyat per proporcionar una comuniació segura entre processos (usuaris TCP) a través d'una gran
varietat de xarxes segures e insegures així com a través d'un conjunt de xarxes interconectades.
Funcionalment, és equivalent al protocol de transport ISO Calsse 4. A diferencia del model OSI, TCP està
orientat al flux. Això es, els usuaris de TCP intercanvien un flux de dades. Les dades es situen en memòries
temporals i son transmesses pel protocol TCP en segments. TCP proporcionar seguretat i etiquetat de
precedencia. A més, TCP suministra dues funcions útils per etiquetar dades: carregar i urgent:
• Carregar flux de dades. Normalment, TCP decideix quan s'han acumulat suficients dades per formar
un segment per a laseva transmissió. L'usuari TCP pot requerir que TCP transmiti totes les dades
pendents als que inclou un etiqueta amb un indiador de carrega. En l'extrem receptor, TCP entregarà
les dades a l'usuari en la mateixa forma.
• Indicació de dades urgents. Aquesta possibilitat proporciona un mitjà per informar a l'usuari TCP
destí que en flux ded dades entrants existeixen dades significatives o urgents. Es responsabilitat
d'usuari destí realitzar l'acció apropiada.
El resum de les característiques de TCP són:
• TCP està pensat per enviar fluxos d'ocetst (stream oriented).
• TCP permet una connexió per circuits virtuals i per tant orientat a la connexió.
• TCP ha de diferenciar els diferents fluxos que hi pugui haver entre diferents màquines per això utilitza
els port per identificar les aplicacions. D'aquesta forma n aplicacions comparteixen el mateix TCP.
• L'aplicació posa octets en els buffers per transmetre i el TCP va agafant octets d'aquest buffer i fa la
transferencia al següent nivell. També l'aplicació destí agafa els bytes d'un buffer.
• El flux d'octets es transparent al protocol TCP, és a dir, al TCP no l'importa si el que es transmet són
fitxers, base de dades, etc. A això se li diu flux no estructurat o Unstructured Stream.
• TCP és full−duplex.
• TCP és un protocol de finestra (Sliding Window Protocol) per permetre el conrol de flux. La finestra
de transmissió te mida variable i s'adapta a les característiques de la xarxa.
La connexió TCP està identificada per:
• l'adreça IP font.
• port de l'aplicació font.
• l'adreça IP destí
• i port de l'aplicació de destí.
És a dir, cada dos paràmetres formen un endpoint que és la parella adreça IP i número de port de l'aplicació.
Amb aquest tipus d'identificació es poden tenir ports iguals per diferents aplicacions. També això permet que
només hi hagi un destí que gestiona n origens, com podria ser un servidor web, al qual accedeixen n
aplicacions. En una mateixa màquina no es poen assignar dos ports iguals a la mateixa aplicació.
Format de la capçalera TCP
TCP utilitza un únic tipus d'unitat de dades de protocol, anomenat TCP. Ja que la capçalera ha de servir per
implementar tots els mecanismes del protocol, aquesta es més aviat gran, amb una longitud mínima de 20
octets.
bit 0
4
10
Port Origen
Numero de seqüència (d'octets)
Numero de confirmació (d'octets)
16 31
Port destí
20
octets
25
Desplaçament
Reservat URG ACK PSH RST SYN FIN Finestra
de les dades
Checksum
Port urgent
Opcions + Padding
• Port orige (16 bits): punt d'acces del servei origen.
• Port destíu (16 bits): punt d'acces del servei destí.
• Numero de seqüència (32 bits): número de seqüència del primer octet en aquest segment excepte si
l'indicador SYN està present. Si l'indicador SYN està present, és el número de seqüència inicial (ISN,
initial sequence number) i en aquest cas el primer octet de dades és el ISN+1.
• Número de confirmació (32 bits): ACK, una confirmació incorporada (piggy backing). Conté el
número de seqüència del següent octet que l'entitat TCP espera rebre.
• Longitud de la capçalera (4 bits): numero de paraules de 32 bits en la capçalera.
• reservats (6 bits): bits reservat per un ús futur.
• Indicadors (6bits):
· URG: el camp punter urgent és vàlid. S'utilitza per possar dades urgents al paquet. Així el destí si detecta
aquest bit activat agafa primer les dades urgents.
· ACK: el camp de confirmació és vàlid.
· PSH (push request): funció de carrega. Serveix al receptor per forçar, passar les dades del buffer a l'aplicació
(tot el que hihagi al buffer). També se li diu Out of Bound data, per forçar que l'aplicació agafi el que hi ha al
buffer.
· RST: la connexió es possa a cero, és a dir, és fa un reset, degut a algun error del protocol.
· SYN: sinconitza els números de seqüència.
· FIN: l'emissor no te més dades. (End of Stream)
• Finestra (16 bits):assignació de credits de control de flux, en octets. Indica el numero d'octets que pot
rebre (indicaria l'espai lliure al buffer de recepció). Conté el numero d'octets de ddades començant
amb el que s'indica en el camp de confirmació i que el que envia està dispossat a aceptar.
• Checksum (16 bits): el complement a 1 de la suma módul 216−1 de totes les paraules de 16 bits en el
segment més la pseudo−capçalera que hem descrit abans.
• Punter Urgent (16 bits): senyala l'octet que segueix a les dades urgents. Això permet al receptor
conèixer quantes dades urgents arriban.
• Opcions (variable): si està present, només es defineix una opció, que especifica el tamany màxim del
segment que serà accpetat.
• Negociació del Maximum Segment Size (MSS, només inclou les dades), longitut màxima del segment TCP
de dades. Això s'acorda entre les dues estacions al establir la connexió. És important que els datagrames IP
no es fragmentin, per optimitzar la connexió. En TCP la mida del segment hauria de ser iguala la MTU del
datagrama IP, d'aquesta forma el segment TCP no es fragmentarà. Si el TCP és més gran que el MTU i un
datagrama IP es perd llavors s'haurà de transmetre tot el segment TCP de nou, per tant es vol que un TCP
capigui dins del MTU. MTU de 576 octets i la MSS de 536 octets.
• Window Scale: el numero de seqüència es octet a octet i si es transmeten massa octets es donarà la volta al
numero de seqüència. Per evitar això es monta un factor d'escala que es negocia al principi de la connexió,
que el que fa es augmentar la finestra ( el màxim d'aquest valor es 8 conseguint un numero de seqüència
fins a 232·28).
• Selective ACK (SACK): activa la retransmissió selectiva.
26
Estrategia de retransmissió
(fig 10.13 de les transparencies)
Existeixen dos events que requereixen la retransmissió d'un segment. Primer, el segment pot ser danyat en elc
amí però en canvi arriba al seu destí. Segon és que el segment no arribi al destí, en aquest cas, l'entitat de
transport emissora no sap que la transmissió del segment es va realitzar sense éxit.
El recpetor ha de confirmar cada recpeció d'un segment amb éxit, s'utilitza un mecanisme de confirmació
acumulativa. L'emissor ha d'interpretar que ACK 4 significa que el segment 3 i els anteriors s'han rebut amb
éxit.
Si un segment no arriba al destí no s'enviarà l'ACK i es te que produir la retransmissió. Per poder tractar
aquesta situació ha d'haver un temporitzador associat amb cada segment que s'envia. Si el temporitzador
expira abans que es confirmi, l'emissor ha de retransmitir−lo.
El temporitzador s'ha de fixar a un valor una mica major que el retard d'anada i tornada (enviar un segment i
rebre un ACK). Per supossat, aquest retard és variable inclus per una carrega de la xarxa constant. I el que es
pitjor, l'estadistica del retard variarà amb condicions de xarxes variables.
Es podria utilitzar un temporitzador amb un valor fix, basant−se en el coneixement del comportament típic de
la xarxa.
L'altra estratégia és utilitzar un esquema adaptatiu, que es basa en les transmissions fetes anteriorment. És a
dir, la temporitzacació s'adapta a la xarxa.
RTT: Roun Trup Time
RTT és variable.
Es pren una mostra dels temps d'anada i tornada (RTT sample) i despres és fa el següent càlcul:
RTT = · Old_RTT + (1−) RTT_sample
0<<1
Tout= · RTT
> 1 i típicament =2
Si un segment s'ha de retransmetre ignora la mostra. Això s'implementa amb l'algorisme de Karn el qual te les
següent característiques:
• Ignora les mostres de retransmissions.
• Manté el RTT i el Time Out.
• Aplica el backoff per les retransmissions
Tou' = · Tout on típicament =2
EL TCP del 1989 indica que el time out es calcula de la següent forma:
diff = RTT_sample − Old_RTT
27
smoothed_RTT = Old_RTT + · diff
desviació(dev) = Old_dev + (|diff| − Old_diff)
Tout = smoothed_RTT + · dev
0<<1 0<<1 on típicament =
;=
i =3o4
Detecció de duplicats
Si un segment es perd i despres es retransmet, no es produira confusió. En canvi, si es perd un ACK, un o més
segments seràn retransmessos i si arriban correctament, es tindran duplicats del segments rebut previament.
Així el recpetor ha de ser capaç de reconeixer duplicats. El fet que cada segment porti un número de seqüència
ajuda però, de qualsevol forma, la detecció de duplicats no és fàcil. Existeixen dos cassos:
· Es rep un duplicat abans del tancament de la connexió.
· Es rep un duplicat despres de que s'hagi tancat la connexió.
Es necessiten dues tàctiques per tractar el cas de que un duplicat es rebi abans de tancar la connexió.
· El receptor ha d'assumir que la seva confirmació es va perdre i per tant ha de confirmar el duplicat.
Conseqüentment, l'emissor no ha de confundir−se si rep multiples ACK d'un mateix segment.
· L'espai de numeros deseqüència ha de ser lo suficientment gran per a no esgotar−se en menys temps que la
vida màxima possible d'un segment.
(Tenim un exemple a les transparencies fig 17.9)
Control de flux
(Veure transparencies, fig17.5, 10.3)
Mentre que el control de flux és un mecanisme senzill en la capa d'enllaç, en la capa de transport es bastant
complexe per dues raons:
• El control de flux en la capa de transport supossa la interacció d'uusaris de TS, entitats de transport i
el servei de xarxa.
• El retard de transmissió entre entitats de transport es generalment gran comparat amb el temps e
transmissió real, i el que es pitjor variable.
Un usuari del TCP ha d'esperar−se per enviar les dades fins que te permis de l'usuari B (control de flux de
l'entitat paritaria), i te permis de la seva propia entitat de transport (control de flux de la interfaz).
Per al control del flux es pot fer 4 coses:
• No fer res.
• Rebutjar l'aceptació de més segments del servei de xarxa.
28
• Utilitzar un protocol fix de ventana deslizante.
• Utilitza un esquema de credits.
La tercera estrategia es similar al protocol de la capa d'enllaç de dades. Els ingredients claus són:
• L'us de numeros de seqüeència en les unitats de dadees.
• L'us d'una finstra de tamany fixe.
• L'us de confirmacions per desplaçar la finestra.
L'emissor augmenta el límit inferior de la finestra quan envia segments i augmenta el nivell superior quan rep
els ACK dels segments que ha enviats.
La cuarta alternativa, un esquema de crèdits, proporciona al receptor un major grau de control sobre el flux de
dades. L'esquema de crèdits deslliga les confirmacions del control de flux. Un segment pot ser confirmat
sense obtenir un crèdit nou. Inicialment, a através d'un proces d'establiment de la connexió, el números de
seqüència d'emissió i recpeció estan sincronitzats. El transmissor avança l'inici de la seva finestra cada vegada
que transmet, i avança el fi de la finestra cada vegada que obté un crèdit.
Control de congestió
(veure transparencies, fig 10.11)
La xarxa avisa que hi ha congestió i s'espera la cooperació del terminal.
Quan un router no pot despatxar un paquet IP l'el.limina i envia un ICMP al origen indicant−li no s'ha pogut
arribar al destí. El missatge ICMP és el Source Quench Message.
Quan el DTE rep aquest missatge, el TCP redueix la finestra de transmissió. La finestra de transmissió,
permessa al DTE és:
allowed WINDOW = MIN (advertisedWindow, congestionWindow)
Hi han diferents formes de controlar la congestió:
• Multiplicative Decrease Congestion Avoidance: controla la congestió amb decremets multiplicatius
de la finestra de congestión. Cada vegada que rebem un ICMP d'error es divideix per 2 el valor
anterior de la finestra:
CongestionWindow = CongestionWindow / 2
així fins que arribem al valor de 1 (que és minim), indicant que nomes es pot enviar 1 octet. Al reduir la
CongestionWindow també s'executa un algorisme de backoff el qual multiplica per 2 el timeout anterior (Tou'
= 2·Tout)
• Slow Start (additive) recovery: mecanisme per l'inici de la connexió i a la recuperació de congestió.
El mecanisme consisteix en que es va augmentant la finestra poc a poc. A l'inici és comença amb una
finestra de 1, i eel que fa es incrementar la CongestionWindow es 1 cada cop que rep un ACK. Quan
la CongestionWindow arriba a la meitat de la finestra màxima també s'incrementa en 1 però ara quan
el receptor ha confirmat la meitat de la CongestionWindow del transmissor.
Establiment de la CONNEXIÓ
29
(veure transparencies, fig 17.9, 17.10, 17.11, 17.13)
L'establiment de la connexió cumpleix tres objectius principals:
• Permet a cada extrem assegurar−se de que l'altre existeix.
• Permet la negociació de paràmetres opcionals (tamany del segment, tamany màxim de la finestra,
qualitat de servei).
• Possa en marxa la reserva de recursos de l'entitat de transport.
Com altres mecanismes de protocol, l'establiment de la connexió ha de tenir en compte la no seguretat del
servei de xarxa. L'establiment de la connexió en TCP requereix l'intercanvi de SYN del dos terminals, un
procediment anomenta a vegades diàleg (handsheke) en els dos sentits.
Supossem que un terminal A emet un SYN a un altre terminal B. A espera un SYN de retorn, confirmant la
connexió. Poden ocorrer dues coses malament:
• el SYN de A es pot perdre
• o la resposta de B es perd.
En aquest dos cassos es pot tractar mitjançant l'ús d'un temporitzador de retransmissió de SYN. Despres que A
emeti un SY, ho tornarà a emitir quan el temporitzador expiri. Això pot ocasionar l'aparició de SYNs
duplicats. Si el SYN de A es perd no hi haurà duplicats. Si la resposta de B es perd, llavors B podria rebre dos
SYNs de A.
Existeixen altres problemes que s'han de tractar. Un segment de dades retrasat (figura 17.9 de les
transparencies) o una confirmació perduda (figura 17.10 de les transparencies) pot donar lloc a la duplicitat de
segments de dades. Aquests segments retrasats o duplicats poden interferir amb l'establiment de connexió.
Suposem que amb cada nova connexió, cada entitat del protocol de transport inicia la numeració dels seus
segments de dades amb el numero de seqüència 0. Una copia duplicada del segement 2 d'una connexió antiga
arriba durant el temps en que la nova connexió esta establerta, i es entregada a l'entitat B abans que el segment
de dades legítim numero 2, llavors aceptaria el segment 2 vell i no el que realment hauria d'aceptar, el qual
rebutja.
Una forma d'abordar aquest problema es començar cada nova seqüència amb un numero de seqüència
diferent, el.legit lluny de l'últim numero de seqüència de la connexió més recent. Per a aquest proposit,
lapetició de connexió és de la forma SYN i, on i és el número de seqüència del primer segment de dades que
serà enviat en aquesta connexió.
Ara considerem que un SYN i duplicat aobreviu fins pasat el tancament de la connexió (figura 17.11 de les
transparencies). UN SYN i vell pot arribar a B despres de que la connexió hagi terminat. B supossa que
aquesta és una petició nova i respon amb SYN j. Mentrestant A ha decidit obrir un nova connexió amb B i
envia SYN k. B descarta aquest últim com un duplicat. Ara, els dos costats han transmes i rebut un segment
SYN, i per tant pensen que existeix una connexió vàlida. En canvi, A inicia la transferència de dades amb un
segment numerat amb k. B rebutja el segment per estar fora de seqüència.
La solució d'aquest problema es que cada costat confirmi explícitament a SYN i al número de seqüència de
l'altre. El procediment es conegut com diàleg en tres sentits (Three Way Handshake).
La figura 17.13 ilustra les operacions típiques del diàleg en tres sentits. L'entitat de transport A inicia la
connexió. El SYN de A inclou el número de seqüència d'enviament, i. EL SYM de resposta confirma el
número i inclou el número de seqüència per l'altre extrem. A confirma el SYN/ACK en el seu primer segment
30
de dades. (aquest és el cas de la connexió que es fa correctament).
A continuació es mostra la situació en la que un SYN X vell arriba a B despres de tancar la connexió
rellevant.. B supossa que es es una petició nova, i respon amb SYN j, ACK X. Quan A rep aquest missatge, es
dona compte que el no ha sol.licitat una nova connexió i per tant envia un RST, ACK j. Hem de notar que la
porció ACK j del missatge RST és essencial per a que un RST duplicat vell no canceli un establiment de
connexió legítim.
L'últim exemple mostra un cas en que SYN/ACK vell arriba en mig de l'establiment d'una nova connexió.
Degut a l'ús de numeros de seqüència en les confirmacions, aquest event no causa cap perjudici.
A les transparencies tenim el diagrama d'estats del TCP.
Els significat de cada estat és el següent:
· CLOSED: no hi ha connexió activa o pendent.
· LISTEN: el servidor està esperant a alguna petició.
· SYN RCVD: una petició de connexió ha arrivat i esperem el ACK.
· SYN SENT: l'aplicació ha començat a obrir una connexió.
· ESTABLISHED: estat de transferencia de dades normal.
· FIN WAIT 1: l'apliació ha indicat que ell ha finalitzat.
· FIN WAIT 2: l'altre costat està d'acord en finalitzar la connexió.
· TIMED WAIT: espera a tots els paquets vells. Espera durant 2 vegades el temps de vida màxim del segment
(2*TTL) i toto el que arriba s'el.limina.
· CLOSING: tots dos costats ha triat de tancar la connexió al mateix temps.
· CLOSE WAIT: l'altre costat ha inicialitzat el tancament de la connexió.
· LAST ACK: espera a tos els paquest vells per el.liminar−los.
Rendiment del protocol
L'aplicació normalment agafa byte a byte. Si el buffer de recepció està ple, i l'aplicació llegeix un byte, llavors
el receptor indica que te un finestra de 1. Llavors li tornaràn a enviar un byte i així es tornarà a omplir el
buffer.
Això pot continuar així tot els temps indefinidament, llavors el rendiment cau en picat (efecte Silly window
syndrome). Ja que s'envia 1 sol octet al qual se li afegeix la capçalera, enviant així n octets cada cop, d'on
només s'aprofita un byte de dades.
• Receptor consumeix informació octet a octet.
• Transmissor genera informació octet a octet.
Les solucions poden ser:
31
• Receptor: el receptor no envia la nova informació de finestra fins que no es donen algunes condicions.
Window=0
anuncia Window"0 si el 50% del buffer està buit o si hi ha MSS (mida maxima segment) està lliure al buffer
• Transmissor: én una aplicació interactiva s'ha d'enviar el segment abans d'arribar al MSS (telnet) i si es fa
gbyte a byte hauriem d'enviar 4 segments per cada tecla que prenem (cada bytes que enviem). El problema
el soluciona l'algoritme Nagle.
NAGLE algorithm:
· Transmissor envia 1 octet.
· Guarda els següents octets al buffer fins MSS o rep ACK de l'octet enviat o l'aplicació vol enviar la
informació.
· Tot lo del buffer s'envia en el següent segment.
Quan es treballa amb entorn gràfics interactius, llavors l'algoritme s'ha d'anul.lar, que s'ha de veure tot el que
es fa al moment, i no quan s'ha omplert un buffer.
TEMA 3.− INTERFICIE AMB APLICACIONS
Usuari
Kernel
S.O.
Aplicacions
TCP
UDP
IP
Paradigma Client/Servidor
Client: envia comandes, i espera respostes. Es qui acaba la comunicació.
Servidor: execució permanent i espera comandes.
El primer S.O. que incorpora protocols de comunicació és el BSD Unix, que afegeix I/O de protocols de
xarxa. En aquest S.O. el servidor fa una espera pasiva i elc lient fa una espera activa.
Sockets
El socket és una abstracció per permetre la comunicació mitjançant xarxes. Així s'obren fitxers i sockets de la
mateixa manera, en canvi, el descriptor del socket és difreent al del fitxer.
Funcions sockets
id = socket (pf, type, protocol)
Crea l'estructura de dades del socket.
• pf: familia de protocols.
• PF_INET: familia d'internet (TCP/IP).
• PF_PUP: xerox.
32
• PF_APPLETALK: apple
• type: especifica el tipus de comunicació. Hi ha tres tipus:
• SOCK_STREAM: servei fiable, reliable stream delivery service (TCP).
• SOCK_DGRAM: servei sense connexió, connectionless datagram delivery service (UDP).
• SOCK_RAW: envia sense cap protocol (raw type).
• protocol: protocol que es vol utilitzar.
bind(socket, localaddr, addrlen)
Associació d'una adreça de xarxa a aquest socket.
• socket: identificador del socket.
• localaddr: apuntador a l'estructura (sockaddr) que representa l'adreça del socket (16 octets).
• addrlen: indica el nombre d'octets de l'adreça del socket.
sockaddr: 2 octets indica la familia de les adreces i els 14 octets restants és l'adreça. SI l'adreça és IP la
familia és la 2, els dos següents bytes indiquen el port, els 4 octets següents l'adreça IP local i la resta es possa
a 0.
2
@ IP
0
0
port
connect (socket, destaddr, addrlen)
Fa la connexió amb l'adreça IP de destí. Això es fa si s'utilita un servei fiable.
getpeername(socket, detaddr, addrlen)
Ens diu quina és l'adreça IP de destinació, és a dir, quina és la màquina de l'altre extrem
getsockopt(socket, level, optionid, optionval, length)
Ens dona les opciona actives del socket.
setsockopt(socket, level, optionid, optionval, length)
Canvia algun valor de les opcions del socket
Enviar dades
• Servei amb connexió
• write(socket, buffer, length).
• writev(socket, io_vector, vector_length): buffer segmentat
• send(socket, message, length, flags): igual que write, però els flags permeten fer un control sobre la
transmissió.
33
• Servei sense connexió
• sendto(socket, message, length, flags, destaddr, addrlen)
• sendmsg(socket, message_struct, flags)
Rebre Dades
• Servei amb connexió
• read(socket, buffer, length)
• readv(socket, io_vector, vector_length)
• receive(socket, buffer, length, flags)
• Servei sense connexió
• reeivefrom(socket, message, length, flags, destaddr, addrlen)
• receivemsg(socket, message_struct, flags)
Funcions servidor
• Socket
• Bind
• Hem de fer una espera fins que arriben connexions de clients:
listen(socket, qlength)
qlength: nombre màxim de connexions que pot acceptar.
Quan arriba una connexió pot servir−la (si es seqüèncial) i si es concurrent arranca un subproces amb un nou
socket amb l'adreça del client.
• newsock=accept(socket, addr, addrlen): aquest es queda bloquejat fins que arriba una nova petició.
Funcions Client
• Socket
• Bind
• Connect
TEMA 4.− SERVIDOR DE NOMS
Domain Name Server (DNS)
DNS tradueix dominis i subdominis a adreces IP.
Els noms segueixen una estructura jerarquica. (hi ha una autoritat que assigna i gestiona els dominis)
En Espanya l'autoritat que gestiona els dominis és REDIRIS, en l'actualitat hi han mes autoritats. Per tant els
dominis __.es seràn gestionats per REDIRIS, el dominis ___.upc.esseràn gestionats per la UPC i serà aquesta
qui gestiona els seus subdominis i així jerarquicament. L'últim domini normalment és el nom de la màquina.
Els dominis dels paisos si que hi ha correspondencia entre l'adreça i el lloc físic de la màquina, en canvi en els
34
altres dominis no hi ha aquesta correspondencia.
Per tant l'estructura física de la xarxa no correspon amb la jerarquia dels noms. Per tant cada organització te
un servidor que gestiona els noms a nivell global
Servidor DNS
Cada màquina te un servidor DNS per defecte. El protocol DNS pot anar tant per TCP com per UDP.
Si un terminal no sap l'adreça IP d'un nom, aquest consulta al seu servidor de noms per a que li digui l'adreça
IP associada a aquest nom. Per tant el servidor rep una consulta amb la que dues funcions:
• Comproba si correspon al domini del DNS i si és així respon.
• Si no correspon al domini, consulta una memoria cache on estan les adreces de les maquines que
recentment s'han consultat, si o troba l'adreça llavors el servidor passa la consulta al servidor DNS del
nivell superior i així fins al servidor de DNS de la màquina.
La resposta del servidor consta de nom, adreça IP i el servidor DNS original de la màquina.
Cada terminal te una taula fixa on manualment es poden donar d'alta les màquines, i te una memoria caché
que se'n recorda de les últimes màquines a les quals hem accedit.
Les entrades del servidor DNS també tenen un temps de vida, que transcorregut aquest temps, les entrades es
van esborrant.
ANNEXO
IP Multicast
Existeixen tres tipus de comunicacions:
• Unicast: comunicació punt a punt (1 a 1)
• Broadcast: un transmet a tots a la vegada (1 a tots), també es coneix com pun−multipunt.
• Multicast: un transmet a un conjunt de punts determinats (1 a un conjunt).
Aquesta comunicació pot estar soprtada per hardware (seria el cas de les Ethernet on la comuniacació unicast
s'identitcia per 00:.....; la multicast per 01:.......; i la broadcast per FF:FF:FF:FF:FF:FF) o de per software (que
seria el cas de IP).
En IP la comunicació broadcast s'identifica per que l'adreça de destinació són tots 1.
La comunicació multicast s'utiltza per a la distribució d'informació (com pot ser, la distribució de video i
audio)
Per la multicast, les adreces que s'utiltzen són les adreces de classe D (1110xxx.XX.XX.XX):
• 224.0.0.0 ! 239.255.255.255
• 224.0.0.0 ! reservada
• 224.0.0.1 ! all hosts group, serie una especie de broadcast.
El grup multicast és aquest conjunt de destinacions que formen part del grup. L'adreça IP indica un conjunt o
sessió i no un sol terminal.
35
Aquest grup multicast és dinàmic, és a dir, el lnombre de memebres de la sessió va variant.
Tots els connectats a la mateixa sessió tenen la mateixa adreça IP.
El protocol que gestiona el multicast és el IGMP (Internet Group Management Protocol). És semblant al
ICMP, perque els mssatges IGMP van dins dels datagrames IP.
IGMP ha d'enunciar que hiha una nova sessió de multicast i IGMP ha de fer que l'enunci arribi als que estan
connectats a aquesta sessió.
Quan un terminal és vol connectar a una sessió, aquest envia la petició a l'adreça multicast, i per tant, el router
ha de saber quins clients hi ha per cada sessió diferent.
El servidor de la sessió sempre envia la informació a la mateixa adreça multicast per cada sessió. Del servidor
només surt un flux de dades i són els routers els que fan la copia de la informació per cada client de la sessió.
Quan els clients d'un router s'han desconnectat tots, llavors el router envia a l'anterior router, un missatge
indicant que ja no te clients i per tant es desconnecta la sessió per a aquest router.
Periodicament els routers consulten als hosts si encara estàn connectats a la sessió, per si algun host s'ha
desconnectat però no ha enviat el missatge de desconnexió (per exemple el host s'ha penjat).
Tot el multicast es coneix com MBone (Multicast Backbone), que seria com una xarxa superposada a Internet.
En aquest Mbone només participen aquells que admeten adreces multicast.
En multicast el TTL s'utiltza per limitar l'abast de les sessions.
Per atravessar una zona no multicast s'utiltza la técnica del tunneling. Si el que hi ha entremig de dos routers
multicast no és multicast, llavors es fa un tunel que consisteix en encapsular un datagrama multicast en un
datagrama IP.
Mes sobre IPv6
IPv6 va apareixer per:
• noves tecnologies de transmissió: wireless, mobils, etc.
• noves aplicacions que requereixen un minim de qualitat e servei (serien aplicacions multimedia amb
video i audio.
• noves politiques que requereixen més seguretat o control.
• el nombre d'adreces disponibles ja no era suficient (nomes 32 bits) en IPv4. Això es va solucionar
momentaneament amb el CIDR (subnetting i supernetting).
Caracteristiques IPv6:
• Adreces de 128 bits (16 octets), per tant la capçalera s'ha de modificar amb els camps descrits en el
tema 2.
• Capçalera és fixa, més el camp d'opcions, que també es de dimensió fixa.
• Possibiltat de reservar recursos.
• S'intenta el.liminar la fragmentació (MTU path discovery, busca quina és la MTU minima amb la
destinació per tal d'evitar la fragmentació)
Si cal fragmentar el que es fa és encapsular els fragments en datagrames, als quals se li possa un capçalera
36
amb el camp HF que és la capçalera de fragmentació.
La representació de les adrces és la següent:
68E6 : 8664 : FFFF : 00A1 : FCBA : 0F41 : E1AC : 0000
és a dir són 8 números hexadecimals de 4 digits.
F1AC : 0 : 0 : 0 : 0 : 0 : FCBA : 0E41 " FIAC : : FCBA : 0E41
Les adreces IPv6 poden ser:
• Unicast.
• Cluster: identifica un conjunt de màquines que comparteixen un mateix prefixe.
• Multicast.
Les adreces són jerarquiques i flexibles, en el sentit de que, el 8 bits primers ja indiquen el tipus d'adreça.
Per compatibiltat amb IPv4, aquest camp es possa a 0, la respresentació de les adrces IPv4 en capçaleres IPv6
és la sgüent:
0000 : : 147.83.34.7
Possant tot a 0 el cheksum que resulta és el mateix que en adreces IPv4.
STD − 24
TCP/IP
OSI
A
P
S
T
A
T
I
F
R
E
F
Hw
Sw
S.O.
Ususari
Comparativa entre TCP/IP i OSI
4−T
3−X
2−ED
1−F
37
3−X
2−ED
1−F
3−X
2−ED
1−F
4−T
3−X
2−ED
1−F
4
3
2
1
4
3
2
1
1
1
(N) −Service User
(N) −Service User
4
3
2
1
4
3
2
1
(N) −Service Entity
(N) −Service Entity
(N) Service Provider
38
(N) protocol
(N−1) Service Provider
(N−1) SAP
(N) SAP
(N) SAP
(N) significa un nivell del model de referncia
Esquema de les primitves
RESPONSE
CONFIRM
INDICATION
REQUEST
Service Provider
Service User
Service User
TCP
SNICP
Xarxa
SNDCP
SNACP
Enllaç
DTE
DTE
IS
Subxarxa A
CL
Subxarxa B
CL
SNICP
SNDCP
SNACP
39
SNICP SNICP
SNDCP SNDCP
SNACP SNACP
SNICP
SNDCP
SNACP
SNICP
SNICP
WAN X.25
Dispositiu d'encaminament
Dispositiu d'encaminament
ES − B
ES − A
LAN−1
LAN−2
Fisic
Fisic
Fisic
Fisic
Fisic
Fisic
MAC
MAC
MAC
MAC
LLC
LLC
LLC
40
LLC
IP
IP
IP
IP
X.25−3
X.25−3
X.25−2
X.25−2
TCP
TCP
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
t12
t13
t14
t15
41
t16
8
bits
Length id
8 bits
Part fixa de la
Versió
8 bits
capçalera PDU
PDU Lifetime
8 bits
SP MS ER TYPE 8 bits
PDU Segment length 16 bits
Checksum
16 bits
Destination adress
8
length
bits
@ destí
Variable
Part
Source Adress length 8 bits
Part
vaeriable
adreces
@ font
Variable
de la
Part
capçalera
Data Unit id
16 bits
segmentació
Segment offset
16 bits
Total length
16 bits
Option
Variable
Protocol id
Header
8 bits
Versió
Length
Tipus de servei
8 bits
Total length
16 bits
Identification
16 bits
0 DF MF
16 bits
capçalera
Offset
TTL
8 bits
Protocol
8 bits
Cheksum
16 bits
@ font
32 bits
@ destí
32 bits
Opcions
Variable
padding
Variable
dades
Variable
IPA
MACA
IPA
¿?
0
8
16
24 32
42
Hw type
HLEN
PLEN
Sender HA
Sender HA
Sender IP
Target HA
Target IP
Protocol Type
Operation
Sender IP
Target HA
10.0.0.0
R1
R2
R3
20.0.0.0
30.0.0.0
40.0.0.0
10.0.0.1
20.0.0.1
20.0.0.2
30.0.0.1
30.0.0.2
40.0.0.1
Taula del R2:
20.0.0.0
30.0.0.0
10.0.0.0
40.0.0.0
Directe
directe
20.0.0.1
30.0.0.2
Router per
Default
defecte
R1
R2
R3
R4
R5
43
R6
R7
R8
Protocol de dispositiu d'encaminament interior (IGP)
Protocol de dispositiu d'encaminament exterior (EGP)
K
M
L
I
Q
J
xarxa 1
xarxa 2
N1
R1
R2
R3
d=1 a N1
d=2 a N1
d=3 a N1
R1
R2
R3
R4
R5
R6
44
RIP (5,4)
EGP/BGP
!(5,3)
!(5,2)
!(5,1)
!(5,1)
!(5,3)
!(5,4)
N1
N2
N3
N4
N5
N6
2
1
32 bits
Adreça font IP
Adreça destí IP
Zero
Protocol
Longitut de
segment
Capçalera
Pseudo−capçalera
Segment TCP o
UDP
Dades d'usuari
Client
Servidor
comanda (well_known_port)
resposta, port_client
domini.subdomini.subdomini
45
domini de més alt nivell
.com
.org
.net
.edu
.es
.
46
Descargar