Documentos de Académico
Documentos de Profesional
Documentos de Cultura
_____________________________________________________________________________________
Biblioteconoma y Documentacin
43
Aplicacin
Descripcin
Discard
Descarta todos los datos recibidos (para pruebas)
Chargen
Intercambia cadenas de caracteres (para pruebas)
FTP-Data
Transferencia de datos FTP
FTP
Dilogo en transferencia FTP
TELNET
Acceso remoto
SMTP
Correo electrnico
POP3
Servidor de correo
TNP
News
Figura 4.2.1: Algunos ejemplos de puertos de TCP.
Por ltimo diremos que el ordenador cliente podra, de forma simultanea a las
sesiones Telnet abiertas, enviar datagramas UDP al ordenador B; aqu, aunque no se
establece una conexin (pues se trata de un servicio CLNS) hay un puerto de origen y
uno de destino; los datagramas podran tener como puerto de origen el 1024 y de
destino el 23; esto no causara ninguna ambigedad, ya que el campo protocolo del
datagrama IP diferenciara ambos tipos de paquetes, y los entregara al servicio
correspondiente en el nivel de transporte del receptor.
4.3 El protocolo TCP.
El intercambio de segmentos en TCP se desarrolla de acuerdo con un protocolo
de ventana deslizante del tipo que hemos visto, con un nmero de secuencia de 32 bits.
El nmero de secuencia cuenta los bytes transmitidos, por lo que la secuencia se reinicia
cada 4 GB transmitidos (equivalentes a 4,3 minutos en una lnea ATM de 155 Mbps,
suponiendo que toda la capacidad til de la lnea se utilizara para una esa conexin
TCP).
TCP utiliza ACK piggybacked, por lo que en el campo de cabecera de cada
segmento hay previstos dos campos de 32 bits, uno para el nmero de secuencia y otro
para el nmero de ACK. El campo nmero de secuencia indica el nme ro del primer
byte transmitido dentro de ese segmento. El campo ACK indica el nmero del primer
byte que se espera recibir en el siguiente segmento (o sea, el siguiente byte que se
espera recibir, siguiendo el estilo del campo 'next' en HDLC). En la prctica el ACK
piggybacked no se aprovecha casi nunca ya que la mayora de las aplicaciones estn
diseadas de forma que la informacin se enva de forma asimtrica; normalmente es
necesario que el TCP receptor enve peridicamente segmentos vacos con el nico fin
de informar al emisor que los datos han sido recibidos.
El mecanismo normal de funcionamiento de TCP es retroceso n, aunque tambin
puede utilizarse repeticin selectiva si las dos entidades participantes lo soportan.
El tamao de ventana es variable y depende como ya hemos visto del espacio de
buffers disponible en el receptor. En la cabecera normal de TCP el campo previsto es de
16 bits, dando as un tamao de ventana mximo de 64KBytes.
La cabecera de un segmento TCP tiene la siguiente estructura:
0
10
16
31
long c
Reservado
Cdigo
Suma de comprobacin
Tamao de ventana
Puntero de datos urgentes
Puerto origen y puerto destino identifican los puertos que se van a utilizar en
cada ordenador para comunicar con las aplicaciones que intercambian datos.
Nmero de secuencia indica el nmero de secuencia que corresponde en la
conexin al primer byte que se enva en el campo datos.
Nmero de ACK indica el nmero de secuencia del prximo segmento que se
espera recibir del otro lado.
Longitud de cabecera TCP especifica la longitud en palabras de 32 bits, excluido
el campo datos (el campo opciones hace que dicha longitud pueda variar).
A continuacin hay 6 bits no utilizados, seguidos por seis indicadores o cdigos
de un bit cada uno:
URG (urgent): sirve para indicar que el segmento contiene datos urgentes; en ese
caso el campo puntero de datos urgentes contiene la direccin donde terminan
stos.
ACK (acknowledgement): indica que en este segmento el campo Nmero de
ACK contiene el nmero del prximo byte que se espera recibir. En la prctica
el bit ACK esta a 1 siempre, excepto en el primer segmento enviado por el host
que inicia la conexin.
PSH (push): indica que el segmento contiene datos PUSHed, es decir, que deben
ser enviados rpidamente a la aplicacin correspondiente, sin esperar a acumular
varios segmentos.
RST (reset): se usa para indicar que se ha detectado un error de cualquier tipo;
por ejemplo una terminacin unilateral de una conexin o que se ha recibido un
segmento con un valor inadecuado del nmero de secuencia o nmero de ACK.
SYN (synchronize): est puesto slo en el primer mensaje enviado por cada lado
en el inicio de la conexin.
FIN (finish): indica que no se tienen ms datos que enviar y que se quiere cerrar
la conexin. Para que una conexin se cierre de manera normal cada host ha de
enviar un segmento con el bit FIN puesto.
Tamao de ventana indica la cantidad de bytes que se est dispuesto a aceptar
del otro lado en cada momento. Se supone que se garantiza una cantidad suficiente de
espacio en buffers. Mediante este parmetro el receptor establece un control de flujo
sobre el caudal de datos que puede enviar el emisor.
Checksum sirve para detectar errores en el segmento recibido; estos podran ser
debidos a errores de transmisin no detectados, a fallos en los equipos (por ejemplo en
los routers) o a problemas en el software (por ejemplo reensamblado incorrecto de
fragmentos). Recordemos que el datagrama IP contena un checksum, pero aquel solo
comprenda la informacin de cabecera (y adems ese checksum desaparece en IPv6).
El algoritmo utilizado en TCP es el mismo que el de IP: sumar todos los campos de 16
_____________________________________________________________________________________
Biblioteconoma y Documentacin
46
lo indica poniendo a 1 el indicador PUSH; este indicador se utiliza por ejemplo cuando
en una sesin Telnet el usuario pulsa la tecla return, o cuando en una trasferencia FTP
se enva el ltimo segmento; en estos casos si no se utilizara PUSH se correra el riesgo
de que TCP se quedara esperando ms datos de la aplicacin para as construir un
segmento mayor y usar la red de manera mas eficiente.
El otro mecanismo de envo rpido de datos se denomina datos urgentes, y como
su nombre indica es an ms expeditivo. Por ejemplo en una sesin telnet se utiliza este
procedimiento para enviar los caracteres DEL, CTRL-C, o cuando se pulsa la tecla
BREAK o ATTN. En estos casos no solo se desea enviar cuanto antes los caracteres
recin tecleados, sino que se quiere que estos pasen por delante de cualesquiera otros
que hubiera pendientes de enviar a la aplicacin y se le entreguen a sta sin esperar a
que los solicite (por ejemplo para abortar una ejecucin en marcha cuando sta no
espera leer datos). Cuando un segmento contiene datos urgentes se indica esta condicin
mediante un bit indicador (flag) especial.
4.4 El protocolo UDP.
A veces se prefiere que el nivel de transporte preste un servicio ms sencillo, no
orientado a conexin y no fiable (por no fiable queremos decir que no confirma o no
acusa recibo de las TPDUs enviadas). Existen muchas razones que pueden motivar esta
preferencia, por ejemplo:
_____________________________________________________________________________________
Biblioteconoma y Documentacin
48
Aplicacin
Echo
Discard
Daytime
Quote
Chargen
Nameserver
Bootps
Descripcin
Devuelve el datagrama al emisor
Descarta el datagrama
Devuelve la hora del dia
Devuelve una frase del dia
Generador de caracteres
Servidor de nombres de dominio
Puerto servidor utilizado para enviar informacin
configuracin
Bootpc
Puerto cliente utilizado para recibir informacin
configuracin
TFTP
Trivial File Transfer Protocol
SunRPC
Sun Remote Procedure Call
NTP
Network Time Protocol
SNMP
Usado para recibir consultas de gestin de la red
SNMP-trap Usado para recibir avisos de problemas en la red
Figura 4.4.1: Algunos ejemplos de puertos UDP.
de
de
16
31
Longitud de mensaje
Suma de comprobacin
Datos (opcional)
_____________________________________________________________________________________
Biblioteconoma y Documentacin
50