Diferencia entre revisiones de «Capa de trasporte»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 183: Línea 183:
 
* '''Checksum'''. Campo opcional de 16 bits que porta a suma de comprobación de erros da mensaxe
 
* '''Checksum'''. Campo opcional de 16 bits que porta a suma de comprobación de erros da mensaxe
 
* '''Datos'''. Información que envía a aplicación
 
* '''Datos'''. Información que envía a aplicación
 +
 +
 +
A cabeceira UDP é extremadamente '''simple''', contendo apenas os números de porto, lonxitude da mensaxe e o checksum. A cabeceira dos datagramas UDP colócase a seguir á cabeceira IP.
 +
 +
{| border="1" cellpadding="0" cellspacing="0" align="center" width="300" style="float:center; margin-left:1em; margin-bottom:1em;"
 +
!colspan="2" bgcolor="#DDDDDD"|Porto orixe
 +
!colspan="2" bgcolor="#DDDDDD"|Porto destino
 +
|-
 +
!colspan="2" bgcolor="#DDDDDD"|Lonxitude da mensaxe
 +
!colspan="2" bgcolor="#DDDDDD"|Checksum
 +
|}
 +
<br />RFC0768-UDP (User Datagram Protocol): [ftp://ftp.rfc-editor.org/in-notes/rfc768.txt]
  
 
= Referencias =
 
= Referencias =
 
* [https://gl.wikipedia.org/wiki/TCP TCP na Wikipedia]
 
* [https://gl.wikipedia.org/wiki/TCP TCP na Wikipedia]
 
* Redes locales. Editorial Paraninfo
 
* Redes locales. Editorial Paraninfo

Revisión del 01:38 12 dic 2020

Introducción

Este nivel (layer 4) está encargado da transferencia libre de erros dos datos entre o emisor e o receptor, aínda que non estén directamente conectados; e de mantener o fluxo da rede.

Hay dous tipos de servizo na capa de transporte: orientado e non orientado á conexión.

No servizo orientado á conexión consta de tres partes:

  1. establecimiento
  2. transferencia de datos
  3. liberación

No servizo non orientado á conexión tratanse os paquetes de xeito individual.

Porén, dous son os protocolos máis utilizados desta capa: TCP e UDP, que confrontan fiabilidade fronte a rendemento.

E estas son as súas diferencias:

TCP UDP
É un protocolo confiable Non é confiable
Orientado a conexión Non establece unha conexión inicial
Leva xestión das retransmisións e control de fluxo Non xestiona retransmisións
Secuencia numéricamente os segmentos (paquetes de datos enviados/recibidos) Non xestiona un secuenciamento de segmentos
Admite segmentos de acuse de recibo Non incorpora acuse de recibo

Direccionamento. Portos

A capa de trasnporte engade a noción de porto para distinguir entre moitos destinos dentro dunha máquina para coñecer qué aplicación recollerá a mensaxe; así pois cada aplicación estará a espera dunha mensaxe nun porto determinado (escoitando un porto).

Os portos utilízanse tanto para recepción coma para o envío de mensaxes. Os portos están numerados e as aplicacións estándaar utilizan sempre o mesmo porto.

O uso de portos permite que unha máquina poida conectarse simultáneamente a diversas máquinas, xa que aínda que todos os paquetes terán o mesmo enderezo, contarán con distintos portos.

Os números de portos están formados por 2 bytes, polo que existen 65.536 posibles portos diferentes para cada máquina:

  • O 0 é un porto reservado
  • Do 1 o 1023 reciben o nome de portos ben coñecidos
    • ICMP 8
    • FTP 20 para transmisión de datos e 21 para control
    • SSH 22
    • Telnet 23
    • SMTP 25
    • HTTP 80
    • HTTPS 443
  • Do 1024 ó 49151 son os portos denominados rexistrados que poden usados por calquera aplicación
  • Do 49152 o 65535 son os portos denominados efímeros; son dinámicos, de uso temporal utilizados polo sistema operativo cando unha aplicación ten que conectarse a un servidor e necesita un porto por onde sair.

TCP

O Protocolo de control de transmisión crea “conexións” a través das cales pode enviarse un fluxo de datos. O protocolo garantiza que os datos serán entregados no seu destino sen erros e no mesmo orde no que se transmitiron.; proporciona tamen un mecanismo para distinguir distintas aplicacións dentro dunha mesma máquina a través do concepto de porto.

É por tanto fiable porque se garantiza que os datos enviados chegan correctamente o seu destino e é orientado a conexión porque establece unha conexión previa a transmisión dos datos entre orixe e destino que será pechada cando finalice a transmisión.

A unidade de datos (PDU) do protocolo TCP chámase segmento e viaxa no campo de datos dun paquete IP. IMAXE

Para acadar ese servizo fiable facendo uso do protocolo IP (que non o é) utilizase un sistema de recoñecemento de mensaxes que consiste en que para cada mensaxe recibido devolvese unha confirmación (acknowledgemente ou ACK) para que o emisor saibe que chegou correctamente; se pasado un tempo non o recibe, o emisor reenvía a mensaxe.

O protocolo utilizado chámase protocolo de fiestra deslizante. As mensaxes e as confirmacións van umeradas e o emisor pode enviar máis dunha mensaxe antes de ter reecibidas todas as confirmacións anteriores.

Os puntos de acceso o servizo na capa de transporte en TCP/IP chamanse scokets ou conectores TCP/IP e son útiles na programación de aplicacións de rede.

Formato do segmento TCP

Cabezallo dunha trama TCP
+ Bits 0 - 3 4 - 9 10 - 15 16 - 31
0 Porto na orixe Porto no destino
32 Número de secuencia
64 Número de confirmación (ACK)
96 Offset Reservados Flags Fiestra
Window
128 Checksum Punteiro de urxencia
160 Opcións (opcional)
Padding (ata 32)
224  
Datos
 
Detalle do campo Flags
+ 10 11 12 13 14 15
96 UrgPtr ACK Push RST SYN FIN

Coma se amosa na figura, o formato do segmento TCP conta cos seguintes campos:

  • Porto TCP Orixe. 16 bits que identifican o porto da máquina orixe
  • Porto TCP Destino. 16 bits que identifican o porto da máquina destino
  • Número de secuencia. 32 bits que indican o número de secuencia do primeiro byte que transporta o campo de datos do segmento
  • Número de acuse de recibo. 32 bits que indican o número de secuencia do seguinte byte que se agarda recibir. Con este campo indícaselle o outro extremo da conexión que os bytes anteriores foron recibidos correctamente.
  • HLEN. 4 bits que indican a lonxitude da cabecera medida en múltiplos de 32 bits (4 bytes). O valor mínimo deste campo é 5 (20 bytes), que corresponde a un segemento sen datos; o máximo é de 15 palabras (60 bytes). Utilízase para determinar onde comeza o campo de datos
  • Reservado. 6 bits reservados para un posible uso futuro. O seu valor é de 0.
  • Bits de código, flags ou indicadores. 6 bits de control de TCP que se utilizan para determinar o propósito e contido do segmento. De esquerda a deerita, se hai un un un está activado
    • URG. Urgent. Indica que o campo Puntero de urxencia conten información válida.
    • ACK. Acknowledgement. Indica que o campo Número de acuse de recibo conten información válida, e dices, o segmento actual leva un ACK.
    • PSH. Push. Indica que a aplicación solicitou unha operación push, e dicir, que os datos dese segmento e os que foron almacenados anteriormente no buffer do receptor deben ser transferidos á aplicación receptora o antes posible.
    • RST. Reset. Reinicia a conexión actual.
    • SYN. Synchronize. Sincronización dos números de secuencia. Utilízase ó crear unha conexión para indcarlle ó outro extremo cal vai ser o primeiro número de secuencia co que vai comezar a transmitir.
    • FIN. Indicalle o outro extremo que a aplicación xa non ten máis datos para enviar. Utilízase para solicitar o peche da conexión actual.
  • Fiestra. 16 bits que indican o número de octetos de datos, a contar a partir do número indicado no campo Número de acuse de recibo, que o emisor deste segmento está disposto a aceptar. É un sistema de control de fluxo.
  • Checksum. 24 bits que portan a suma de comprobación de erros, que serve para comprobar se hai erros tanto no cabezallo coma nos datos do segmento actual
  • Puntero de urxencia. Este campo de 16 bits é valido cando o indicador URG está activo; é a cantidade de bytes desde o número de secuencia que indica o lugar onde acaban os datos urxentes.
  • Opcións. De lonxitude variable pero múltiplo de 8 bits, permite engadir características non cubertas polo cabezallo fixo
  • Recheo. Composto por ceros, utilízase para asegurarse de que o cabezallo acaba cun tamaño múltiplo de 32 bits.
  • Datos. Información que envía a aplicación.

Establecemento da conexión

Establecemento dunha conexión TCP

Un extremo (o servidor) fai unha apertura pasiva e outro (o cliente) fai unha apaertura activa.

  • A máquina que quere iniciar a conexión fai unha apertura activa enviando o outro extremo un segmento co bit SYN activado; informa ademais do primeiro número de secuencia que utilizará para enviar a suas mensaxes
  • A máqina receptora recibeo e devolve a correspondente confirmación. Se desexa abrir a conexión, activa o bit SYN do segmento e informa do seu primeiro número de secuencia. E deixa aberta a conexión polo seu extremo.
  • A primeira máquina recibe o segmento e envía a súa confirmación. A partir dese momento pode enviar datos o outro extremo. Abre a conexión polo seu extremo
  • A máquina receptora recibe a confirmación e entende que o outro extremo xa ten aberta a súa conexión. A partir dese intre pode enviar ela tamen datos. A conexión queda aberta nos dous sentidos.

Transmisión de datos

Durante a fase de transferencia o TCP está equipado con varios mecanismos que aseguran a fiabilidade e robustez: números de secuencia que garanten a entrega ordenada, código detector de erros (checksum) para detección de fallos en segmentos específicos, confirmación de recepción e temporizadores que permiten o axuste e contorno de eventuais atrasos e perdas de segmentos.

Peche da conexión

Peche dunha conexión TCP
  • A máquina que xa non ten máis datos que transferir, envía un segmento co bit FIN activado e pecha o sentido do envío
  • A máquina receptora recibe o segmento co bit FIN activado e devolve a correspondente confirmación; pero non pecha inmediatamente o outro sentido da conexión. Informa a aplicación da petición de peche, e prodúcese un lapso de tempo ata que a aplicación decide pechar o outro sentido da conexión.
  • A primeira máquina recibe o segmento ACK
  • Cando a máquina receptora toma a decisión de pachar o outro sentido da comunicación, envía un segmento co bit FIN activado e pecha a conexión
  • A primeira máquina recibe o segmento FIN e envía o correspondente ACK; aínda que teña pecha o seu sentido da conexión segue devolvendo as confirmacións
  • A máquina receptora recibe o segmento ACK

UDP

O protocolo de datagramas de usuario permite o envío de datagramas a través da rede sen establecer previamente unha conexión tampouco ten confirmación ni control de fluxo, polo que os paquetes poden adiantarse uns a outros; e igualmente non se sabe se chegan correctamente, xa que non hay confirmación de entrega ou recepción.

Polo tanto non é fiable porque as mensaxes UDP poden chegar danadas, duplicadas ou non chegar; e non é orientado a conexión porque non esteblece conexión previa co outro extremo.

O seu uso principal é para protocolos como DHCP, BOOTP, DNS e outros nos que o intercambio de paquetes para a conexión/desconexión sería maior que o contido, así como para a transmisión de audio e vídeo en tiempo real, oonde é deseable un menor retardo aínda que se perda parte da información.

A unidade de datos (PDU) do protocolo UDP chámase datagrama e viaxa no campo de datos do paquete IP.

Formato do segmento UDP

Os campos do segmento UDP son os seguintes:

  • Porto UDP orixe. 16 bits que identifican o porto da máquina orixe
  • Porto UDP destino. 16 bits que identifican o porto da máquina destino
  • Lonxitude da mensaxe UDP. 16 bits que indican a lonxitude en bytes da mensaxe UDP incluindo cabecera. A lonxitude mínima e de 8 bytes.
  • Checksum. Campo opcional de 16 bits que porta a suma de comprobación de erros da mensaxe
  • Datos. Información que envía a aplicación


A cabeceira UDP é extremadamente simple, contendo apenas os números de porto, lonxitude da mensaxe e o checksum. A cabeceira dos datagramas UDP colócase a seguir á cabeceira IP.

Porto orixe Porto destino
Lonxitude da mensaxe Checksum


RFC0768-UDP (User Datagram Protocol): [1]

Referencias