Informática Técnica de Gestión
Redes de ordenadores
TCP
Grupo de sistemas y comunicaciones
[email protected]
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
1
Informática Técnica de Gestión
33. Nivel de transporte: TCP y UDP
El nivel 2 permite en control de errores y de flujo entre máquinas directamente
accesibles.
Cuando se producen comunicaciones entre redes, no estando los ordenadores
directamente conectados unos a otros, el control de errores (IP sólo comprueba su
cabecera) y de flujo desaparecen. Los datagramas pueden llegar por rutas distintas y
en consecuencia desordenados, llegar duplicados, perderse en colas saturadas...
El nivel 4 se encarga de un control de errores y de flujo extremo a extremo,
recuperandose de los problemas que se producen en un nivel de red no fiable como
IP: datagramas perdidos, duplicados, desordenados...
En todo caso el nivel 4 puede ser un mero transmisor de los datos recibidos por la
red, y dejar que sean las propias aplicaciones quienes realicen el control de errores que
necesiten.
Los ordenadores albergan en general diversas aplicaciones concurrentemente, por
lo que el nivel de transporte también extiende el direccionamiento incorporando el
concepto de puerto, de manera que una dirección IP se puede multiplexar permitiendo
que varias aplicaciones de un mismo ordenador puedan simultáneamente estar
comunicandose con otras aplicaciones en otros ordenadores
.Los puertos permiten a varias aplicaciones acceder simultáneamente a las
comunicaciones. Hay servicios fijos, cuyos números de puerto están estandarizados,
y el resto de los puertos se asignan dinámicamente por el sistema operativo según son
solicitados.
Una conexión supone un enlace bidireccional entre dos puertos de la misma o
diferente máquina. Cada par (dirección IP, número de puerto) define una conexión, de
manera que un mismo puerto permite a una aplicación mantener distintas conexiones
con otras máquinas y puertos.
N
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
2
33.1 Puertos y aplicaciones
Informática Técnica de Gestión
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
3
Informática Técnica de Gestión
33.2 Puertos vs sockets
Los programas se crean y se destruyen continuamente en los ordenadores. Es
imposible establecer un mecanismo rígido que asigne direcciones fijas a los procesos.
Se necesita que el sistema operativo multiplexe las entradas IP para repartirlas entre
las aplicaciones, a las que debe asignar descriptores con los que manejar sus puntos
finales de comunicación.
Cuando se recibe un datagrama se analiza si el valor del campo protocolo de la
cabecera es TCP o UDP. Luego se mira el número de puerto y se entrega el contenido
a la aplicación que esté conectada a ese puerto. Los puertos multiplexan a nivel de
transporte. Una dirección final es por tanto una dirección de máquina mas un puerto.
En UNIX hay un demonio (inetd) que escucha por una serie de puertos definidos
(/etc/inetd.conf). Cuando llega un mensaje para el puerto en cuestión, lanza la
aplicación relacionada con el mismo y le pasa el mensaje.
Los sockets son el estándar de facto para el acceso a los protocolos Internet, pero
no son parte de TCP/IP. Los sockets son puntos de acceso a las comunicaciones. Se
manejan como descriptores de ficheros y el S.O. los asigna como puntos terminales de
comunicaciones bidireccionales. Se desarrollaron en BSD Unix, pero como mecanismo
independiente del sistema operativo. Existen otros APIs para acceder a TCP/IP: TLI
(transport layer interface) de AT&T y su superconjunto XTI de X/Open.
Los sockets son puntos de acceso a las comunicaciones (no protocolos). Definen
un servicio de sesión-transporte. Un socket es un extremo de una comunicación
bidireccional entre dos aplicaciones (de la misma u otra máquina). Admiten
comunicación fiable y no fiable. Hay unas librerías de funciones para programar
directamente sobre los sockets, y existen multitud de ejemplos sobre cómo construir
clientes y servidores con este sencillo interfaz.
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
4
Informática Técnica de Gestión
33.3 Asignación de puertos
Los puertos se identifican por números de 16 bits. Los de TCP y los de UDP se
manejan por separado (el datagrama IP ya distingue el tipo de protocolo de nivle 4 que
encapsula). Se asignan con el siguiente criterio:
1. Well Known Ports
Los números de puerto 1 a 255 están reservados, y tienen una asignación
universal (/etc/services)
2. Dynamic binding
El resto de los números los gestiona el software de red (integrado en el S.O), y los
asigna dinámicamente según son solicitados por las aplicaciones (no se da un mismo
puerto a dos aplicaciones, e incluso si una nueva instanciación de una aplicación pide
un número fijo de puerto, este sólo se le asigna tras un plazo de reutilizción). Además
puede haber un programa (inetd) que escucha por todos los puertos de los servicios
definidos y lanza los procesos servidores adecuados)
N
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
5
#
N
e
t
w
o
r
k
s
e
r
v
i
c
e
s
,
I
n
t
e
r
n
e
t
s
t
y
l
e
#
t
c
p
m
u
x
1
/
t
c
p
e
c
h
o
7
/
t
c
p
(
l
a
m
i
s
m
a
f
u
n
c
i
o
n
a
l
i
d
a
d
t
i
e
n
e
e
l
m
i
s
m
o
n
ú
m
e
r
o
e
n
t
c
p
e
c
h
o
7
/
u
d
p
q
u
e
e
n
u
d
p
,
p
e
r
o
é
s
t
o
n
o
e
s
o
b
l
i
g
a
t
o
r
i
o
)
d
i
s
c
a
r
d
9
/
t
c
p
s
i
n
k
n
u
l
l
d
i
s
c
a
r
d
9
/
u
d
p
s
i
n
k
n
u
l
l
d
a
y
t
i
m
e
1
3
/
t
c
p
d
a
y
t
i
m
e
1
3
/
u
d
p
n
e
t
s
t
a
t
1
5
/
t
c
p
f
t
p
-
d
a
t
a
2
0
/
t
c
p
f
t
p
2
1
/
t
c
p
t
e
l
n
e
t
2
3
/
t
c
p
s
m
t
p
2
5
/
t
c
p
m
a
i
l
t
i
m
e
3
7
/
t
c
p
t
i
m
s
e
r
v
e
r
t
i
m
e
3
7
/
u
d
p
t
i
m
s
e
r
v
e
r
n
a
m
e
4
2
/
u
d
p
n
a
m
e
s
e
r
v
e
r
w
h
o
i
s
4
3
/
t
c
p
n
i
c
n
a
m
e
#
u
s
u
a
l
l
y
t
o
s
r
i
-
n
i
c
h
o
s
t
n
a
m
e
s
1
0
1
/
t
c
p
h
o
s
t
n
a
m
e
#
u
s
u
a
l
l
y
t
o
s
r
i
-
n
i
c
s
u
n
r
p
c
1
1
1
/
u
d
p
r
p
c
b
i
n
d
s
u
n
r
p
c
1
1
1
/
t
c
p
r
p
c
b
i
n
d
s
n
m
p
1
6
1
/
u
d
p
#
S
i
m
p
l
e
N
e
t
w
o
r
k
M
g
m
t
P
r
o
t
o
c
o
l
(
S
N
M
P
)
33.4 Enlace de puertos y aplicaciones
Informática Técnica de Gestión
Una apertura pasiva es la que se produce cuando una aplicación informa al
sistema operativo de que está dispuesta a aceptar una comunicación entrante. Se
produce una asignación de puerto para ella, y queda en espera.
Una apertura activa genera una serie de mensajes por la red, a fin de conseguir una
respuesta del otro extremo mediante un protocolo de conexión.
N
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
6
Informática Técnica de Gestión
33.5 UDP
El servicio no fiable tiene unas características idénticas a las de IP, pero
añadiendo los números de puerto.
Las direcciones se representan:
(128.110.56.9,111) (ver ftp)
No es orientado a conexión: los mensajes se pueden perder, duplicarse o llegar
desordenados.
No es fiable (lo cual no significa que camufle datos erróneos): El servicio cuenta
con que las respuestas necesitan comprobación extra (responsabilidad de la
aplicación).
Es más ligero que TCP (en una LAN, donde hay pocos fallos y se aplica el CRC,
supone más velocidad), pero el programador tiene que implementar sus propios
mecanismos de comprobación de errores.
Datos
niveles superiores
4
3
Cabecera UDP
Datos del datagrama IP
Datos
Datos de la trama Ethernet
N
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
7
33.6 Localización de servidores: portmapper
Informática Técnica de Gestión
Cuando el servicio dura menos tiempo que la creación de un proceso servidor para
atenderlo, el sistema de puertos prefijados no es adecuado. Existe un modelo basado
en un puerto conocido en el que preguntar en qué puerto hay un servidor disponible,
de manera que el cliente antes de usar por primera vez el servicio, pregunte por un
puerto de uno de los servidores disponibles.
N
R
e
d
e
s
d
e
o
r
d
e
n
a
d
o
r
e
s
,
1
9
9
8
-
1
9
9
9
P
á
g
i
n
a
8
Informática Técnica de Gestión
33.7 Formato del paquete
0
3 1
UDP Source Port
UDP Destination Port
UDP Message Length
UDP Checksum
Datos
El puerto origen es opcional (si no se especifica dónde se esperan las respuestas,
debe ponerse a cero).
La longitud del mensaje se especifica en octetos, incluyendo la cabecera UDP (8
es el valor mínimo)
El checksum es opcional (si no lo usas no tienes más garantía que el CRC de nivel
2). 0 significa que no se calcula. Si tras calcularlo el resultado es 0, se representa con
todos los bits a 1 (también es 0).
Para calcularlo, se dividen la cabecera, una pseudocabecera y los datos en trozos
de 16 bits (se rellena con ceros si falta al final), de los que se calcula su complemento
a uno y los suma. Utiliza una pseudocabecera además de la de UDP:
IP source
IP destination
0
protocol
length
De esta manera se salta el modelo por niveles para comprobar que ha llegado al
si
Comentarios de: Redes de ordenadores - TCP (0)
No hay comentarios