Protocolos TCP e UDP
De Wiki do Pazo da Mercé
| Liña 1: | Liña 1: | ||
| - | Na arquitectura TCP/IP, inclúense dous protocolos de transporte: '''TCP''' (''Transmission Control Protocol'') e '''UDP''' (''User Datagram Protocol''). | + | Na arquitectura TCP/IP, inclúense dous protocolos de transporte: '''[http://es.wikipedia.org/wiki/Transmission_Control_Protocol TCP]''' (''Transmission Control Protocol'') e '''[http://es.wikipedia.org/wiki/User_Datagram_Protocol UDP]''' (''User Datagram Protocol''). |
A diferencia fundamental é que TCP é un protocolo orientado a conexión e fiable, mentres que UDP é non orientado a conexión e non fiable. Vexamos que significa isto: | A diferencia fundamental é que TCP é un protocolo orientado a conexión e fiable, mentres que UDP é non orientado a conexión e non fiable. Vexamos que significa isto: | ||
| Liña 23: | Liña 23: | ||
* Cando só se quere enviar un paquete illado de orixe a destino, e non é critica a recepción do mesmo. | * Cando só se quere enviar un paquete illado de orixe a destino, e non é critica a recepción do mesmo. | ||
| - | Hai que ter en conta que o protocolo UDP ten a vantaxe de ser máis simple e polo tanto máis rápido que TCP, xa que o establecemento e peche da conexión e un proceso custoso que consume tempo e recursos na transmisión. | + | Hai que ter en conta que o protocolo UDP ten a vantaxe de ser máis simple e polo tanto máis rápido que TCP, xa que o establecemento e peche da conexión e un proceso custoso que consume tempo e recursos na transmisión. A continuación móstranse as cabeceiras dos dous protocolos, e pódese observar o menor número de campos en UDP: |
| - | + | '''Cabeceira de TCP''' | |
| - | + | {|- border="1" | |
| + | ! colspan="1"|+ | ||
| + | ! colspan="4"|Bits 0 - 3 | ||
| + | ! colspan="4"|4 - 7 | ||
| + | ! colspan="8"|8 - 15 | ||
| + | ! colspan="16"|16 - 31 | ||
| + | |- align="center" | ||
| + | ! colspan="1"|0 | ||
| + | | colspan="16"|Puerto Origen | ||
| + | | colspan="16"|Puerto Destino | ||
| + | |- align="center" | ||
| + | ! colspan="1"|32 | ||
| + | | colspan="32"|Número de Secuencia | ||
| + | |- align="center" | ||
| + | ! colspan="1"|64 | ||
| + | | colspan="32"|Número de Acuse de Recibo (ACK) | ||
| + | |- align="center" | ||
| + | ! colspan="1"|96 | ||
| + | | colspan="4"|longitud cabecera TCP | ||
| + | | colspan="4"|Reservado | ||
| + | | colspan="8"|Flags | ||
| + | | colspan="16"|Ventana | ||
| + | |- align="center" | ||
| + | ! colspan="1"|128 | ||
| + | | colspan="16"|Suma de Verificación (Checksum) | ||
| + | | colspan="16"|Puntero Urgente | ||
| + | |- align="center" | ||
| + | ! colspan="1"|160 | ||
| + | | colspan="32"|Opciones + Relleno (opcional) | ||
| + | |- align="center" | ||
| + | |- align="center" | ||
| + | ! colspan="1"|224 | ||
| + | | colspan="32"| <br />Datos<br /> | ||
| + | |} | ||
| - | {| border="1" | + | '''Cabeceira de UDP''' |
| - | + | ||
| - | + | {| border="1" | |
| - | + | ! + | |
| - | |- | + | ! colspan="16" width="150px"|Bits 0 - 15 |
| - | | | + | ! colspan="16" width="150px"|16 - 31 |
| - | + | |- align="center" | |
| - | + | ! 0 | |
| - | + | | colspan="16" bgcolor="#FFDDDD"|Puerto origen | |
| - | + | | colspan="16"|Puerto destino | |
| - | + | |- align="center" | |
| - | + | ! 32 | |
| - | |- | + | | colspan="16"|Longitud del Mensaje |
| - | + | | colspan="16" bgcolor="#FFDDDD"|Suma de verificación | |
| - | | | + | |- align="center" |
| - | | | + | ! 64 |
| - | | | + | | colspan="32"| <br />Datos<br /> |
| - | + | ||
| - | + | ||
| - | | | + | |
| - | |- | + | |
| - | + | ||
| - | | | + | |
| - | | | + | |
| - | | | + | |
| - | | | + | |
| - | + | ||
| - | + | ||
| - | |- | + | |
| - | + | ||
| - | | | + | |
| - | | | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|} | |} | ||
| + | |||
| + | Tanto en TCP como en UDP, establécense 16 bits para os números de portos, co cal se poden direccionar ata 65.536 portos. Destes portos, os que van ata o 1023 están reservados (ver [http://es.wikipedia.org/wiki/Anexo:Lista_de_n%C3%BAmeros_de_puerto lista]) pola [http://es.wikipedia.org/wiki/IANA IANA] para aplicacións e servizos de rede estándares, mentres que os maiores a 1024 son libres e os pode utilizar calquera programa de usuario. | ||
Ao par formado por unha dirección IP e un número de porto (separados por dous puntos) se lle chama '''conector''' ou '''socket'''. Por exemplo, 10.4.1.1:80 se corresponde co porto 80 do equipo con dirección IP 10.4.1.1. | Ao par formado por unha dirección IP e un número de porto (separados por dous puntos) se lle chama '''conector''' ou '''socket'''. Por exemplo, 10.4.1.1:80 se corresponde co porto 80 do equipo con dirección IP 10.4.1.1. | ||
Revisión actual ás 22:23, 14 xaneiro 2009
Na arquitectura TCP/IP, inclúense dous protocolos de transporte: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).
A diferencia fundamental é que TCP é un protocolo orientado a conexión e fiable, mentres que UDP é non orientado a conexión e non fiable. Vexamos que significa isto:
1.Orientado a conexión e non orientado a conexión:
- Un protocolo orientado a conexión establece unha conexión cada vez que vai a realizar unha comunicación entre un emisor e un receptor. Desta forma o emisor e o receptor póñense de acordo antes de iniciar a comunicación e establecen unha numeración que lles permite identificar a cada paquete e comprobar se algún paquete non é recibido ou se recibe en distinta orde ao emitido. Cando rematan a comunicación, o emisor e receptor deben pechar a conexión.
- Pola contra, un protocolo non orientado a conexión non establece ningunha conexión antes dunha comunicación, senón que os equipos comunican directamente cando o precisan. A cambio, non se garante que se poidan perder paquetes ou que cheguen desordenados ó nivel de aplicación.
2.Fiable e non fiable:
- Un protocolo fiable garante que os paquetes se reciben libres de erros na orden na que foron emitidos.
- Un protocolo non fiable non garante que os paquetes poidan ter erros.
Por tanto, TCP é un protocolo robusto e fiable, mentres que UDP é moito máis sinxelo, pero non realiza ningún control de erros. Isto nos pode facer pensar que non ten sentido ter un protocolo como UDP, ou que non é utilizado, pero isto non é así; existen varias razóns para usar UDP:
- Naqueles casos nos que o protocolo de rede xa garante unha transmisión libre de erros.
- En comunicacións en tempo real, nas que se poden tolerar unha certa taxa de erros na transmisión (por exemplo, en transmisión de son ou vídeo).
- Cando só se quere enviar un paquete illado de orixe a destino, e non é critica a recepción do mesmo.
Hai que ter en conta que o protocolo UDP ten a vantaxe de ser máis simple e polo tanto máis rápido que TCP, xa que o establecemento e peche da conexión e un proceso custoso que consume tempo e recursos na transmisión. A continuación móstranse as cabeceiras dos dous protocolos, e pódese observar o menor número de campos en UDP:
Cabeceira de TCP
| + | Bits 0 - 3 | 4 - 7 | 8 - 15 | 16 - 31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Puerto Origen | Puerto Destino | ||||||||||||||||||||||||||||||
| 32 | Número de Secuencia | |||||||||||||||||||||||||||||||
| 64 | Número de Acuse de Recibo (ACK) | |||||||||||||||||||||||||||||||
| 96 | longitud cabecera TCP | Reservado | Flags | Ventana | ||||||||||||||||||||||||||||
| 128 | Suma de Verificación (Checksum) | Puntero Urgente | ||||||||||||||||||||||||||||||
| 160 | Opciones + Relleno (opcional) | |||||||||||||||||||||||||||||||
| 224 | Datos | |||||||||||||||||||||||||||||||
Cabeceira de UDP
| + | Bits 0 - 15 | 16 - 31 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Puerto origen | Puerto destino | ||||||||||||||||||||||||||||||
| 32 | Longitud del Mensaje | Suma de verificación | ||||||||||||||||||||||||||||||
| 64 | Datos | |||||||||||||||||||||||||||||||
Tanto en TCP como en UDP, establécense 16 bits para os números de portos, co cal se poden direccionar ata 65.536 portos. Destes portos, os que van ata o 1023 están reservados (ver lista) pola IANA para aplicacións e servizos de rede estándares, mentres que os maiores a 1024 son libres e os pode utilizar calquera programa de usuario.
Ao par formado por unha dirección IP e un número de porto (separados por dous puntos) se lle chama conector ou socket. Por exemplo, 10.4.1.1:80 se corresponde co porto 80 do equipo con dirección IP 10.4.1.1.
