Protocolos de red: descripción general

1.2 Estratificación

Los protocolos de red generalmente se desarrollan en diferentes capas, y cada capa es responsable de diferentes funciones de comunicación. Un conjunto de protocolos, como TCP/IP, es una combinación de múltiples protocolos en diferentes niveles. TCP/IP generalmente se considera un sistema de protocolo de cuatro capas, como se muestra en la Figura 1-1.
Insertar descripción de la imagen aquí
Cada capa es responsable de diferentes funciones:
1. La capa de enlace, a veces llamada capa de enlace de datos o capa de interfaz de red, generalmente incluye el controlador del dispositivo en el sistema operativo y la tarjeta de interfaz de red correspondiente en la computadora. Juntos manejan los detalles de la interfaz física con el cable (o cualquier otro medio de transmisión).
2. La capa de red, a veces denominada capa de Internet, maneja las actividades de los paquetes en la red, como el enrutamiento de paquetes. En el conjunto de protocolos TCP/IP, los protocolos de capa de red incluyen el protocolo IP (Protocolo de Internet), el protocolo ICMP (Protocolo de mensajes de control de Internet) y el protocolo IGMP (Protocolo de administración de grupos de Internet).
3. La capa de transporte proporciona principalmente comunicación de un extremo a otro para aplicaciones en dos hosts. En el conjunto de protocolos TCP/IP, existen dos protocolos de transmisión diferentes: TCP (Protocolo de control de transmisión) y UDP (Protocolo de datagramas de usuario). TCP proporciona una comunicación de datos altamente confiable entre dos hosts. El trabajo que realiza incluye dividir los datos que le entrega la aplicación en pequeñas partes apropiadas y pasarlas a la capa de red subyacente, acusar recibo de los paquetes recibidos, configurar el tiempo de espera para enviar el paquete de confirmación final, etc. Dado que la capa de transporte proporciona una comunicación de extremo a extremo de alta confiabilidad, la capa de aplicación puede ignorar todos estos detalles. UDP, por otro lado, proporciona un servicio muy simple a la capa de aplicación. Solo envía paquetes llamados datagramas de un host a otro, pero no garantiza que el datagrama llegue al otro extremo. Cualquier confiabilidad requerida debe ser proporcionada por la capa de aplicación. Cada uno de estos dos protocolos de capa de transporte tiene diferentes usos en diferentes aplicaciones, como veremos más adelante.
4. La capa de aplicación es responsable de manejar detalles específicos de la aplicación. Casi todas las diferentes implementaciones de TCP/IP proporcionan las siguientes aplicaciones comunes:
• Inicio de sesión remoto Telnet.
• Protocolo de transferencia de archivos FTP.
• Protocolo simple de transferencia de correo SMTP.
• Protocolo simple de gestión de red SNMP.
Hay muchas otras aplicaciones, algunas de las cuales se describirán en capítulos posteriores. Supongamos que hay dos hosts en una red de área local (LAN), como Ethernet, y ambos ejecutan el protocolo FTP. La Figura 1-2 enumera todos los protocolos involucrados en este proceso.
Insertar descripción de la imagen aquí
Aquí, enumeramos un programa de cliente FTP y otro programa de servidor FTP. La mayoría de las aplicaciones de red están diseñadas en un modelo cliente-servidor. El servidor proporciona algún tipo de servicio al cliente, en este caso acceso a archivos en la máquina host donde se encuentra el servidor. En la aplicación de inicio de sesión remoto Telnet, el servicio proporcionado a los clientes es iniciar sesión en el servidor host. En la misma capa, ambas partes tienen uno o más protocolos de comunicación correspondientes. Por ejemplo, un determinado protocolo permite que la capa TCP se comunique, mientras que otro protocolo permite que las dos capas IP se comuniquen. En el lado derecho de la Figura 1-2, observamos que la aplicación suele ser un proceso de usuario, mientras que las tres capas inferiores generalmente se ejecutan en el kernel (del sistema operativo). Aunque esto no es necesario, normalmente se maneja de esta manera en sistemas operativos UNIX, por ejemplo. En la Figura 1-2, hay otra diferencia clave entre la capa superior y las tres capas inferiores. La capa de aplicación se ocupa de los detalles de la aplicación más que de la transmisión de datos a través de la red. Las tres capas inferiores no saben nada sobre la aplicación, pero manejan todos los detalles de la comunicación.

En la Figura 1-2 se enumeran cuatro protocolos en diferentes niveles. FTP es un protocolo de capa de aplicación, TCP es un protocolo de capa de transporte, IP es un protocolo de capa de red y el protocolo Ethernet se utiliza en la capa de enlace. El conjunto de protocolos TCP/IP es un conjunto de protocolos compuesto por un grupo de protocolos diferentes. Aunque este conjunto de protocolos a menudo se denomina TCP/IP, TCP e IP son sólo dos de los protocolos (otro nombre para este conjunto de protocolos es Conjunto de protocolos de Internet).

El propósito de la capa de interfaz de red y de la capa de aplicación es obvio: la primera maneja los detalles sobre el medio de comunicación (Ethernet, Token Ring, etc.), mientras que la segunda maneja una aplicación de usuario específica (FTP, Telnet, etc.). Sin embargo, en la superficie, la diferencia entre la capa de red y la capa de transporte es menos clara. ¿Por qué dividirlos en dos niveles diferentes? Para entender esto, debemos ampliar nuestra visión de una única red a un conjunto de redes.

En la década de 1980, una de las razones del crecimiento de Internet fue que todos se dieron cuenta de que una "isla" compuesta por una sola computadora aislada no tenía mucho sentido, por lo que estos sistemas aislados se agruparon para formar una red. Con este desarrollo, en la década de 1990, gradualmente nos dimos cuenta de que esta nueva y más grande "isla" compuesta por una única red tampoco tenía mucho sentido. Como resultado, las personas conectaron varias redes para formar una red de redes, o llamada Internet. Una Internet es un grupo de redes interconectadas a través del mismo conjunto de protocolos.

La forma más sencilla de construir Internet es conectar dos o más redes a través de un enrutador. Es una caja de hardware especial que se utiliza para la interconexión de redes. El beneficio de los enrutadores es proporcionar conexiones para diferentes tipos de redes físicas: Ethernet, Token Ring, enlaces punto a punto, FDDI (Interfaz de datos distribuidos por fibra), etc.

这些盒子也称作IP路由器(IP Router),但我们这里使用路由器(Router)这个术语。
从历史上说,这些盒子称作网关(gateway),在很多TCP/IP文献中都使用这个术语。
现在网关这个术语只用来表示应用层网关:
一个连接两种不同协议族的进程(例如,TCP/IP和IBM的SNA),它为某个特定的应用程序服务(常常是电子邮件或文件传输)。

La Figura 1-3 es una red que consta de dos redes: Ethernet y Token Ring, conectadas entre sí a través de un enrutador. Aunque dos hosts se comunican a través del enrutador, cualquier host de la red Ethernet puede comunicarse con cualquier host de la red Token Ring. En la Figura 1-3, podemos dividir el sistema final (los dos hosts en ambos lados) y el sistema intermedio (el enrutador en el medio). La capa de aplicación y la capa de transporte utilizan protocolos de un extremo a otro. En el diagrama, sólo los sistemas finales requieren estas dos capas de protocolos. Sin embargo, la capa de red proporciona un protocolo salto a salto, que utilizan tanto los sistemas finales como todos los sistemas intermedios.
Insertar descripción de la imagen aquí

En el conjunto de protocolos TCP/IP, la capa de red IP proporciona un servicio poco confiable. En otras palabras, simplemente envía el paquete desde el nodo de origen al nodo de destino lo más rápido posible, pero no ofrece ninguna garantía de confiabilidad. TCP, por otro lado, proporciona una capa de transporte confiable además de la capa IP no confiable. Para proporcionar este servicio confiable, TCP utiliza mecanismos como la retransmisión por tiempo de espera y el envío y recepción de paquetes de confirmación de un extremo a otro. Se puede ver que la capa de transporte y la capa de red son responsables de funciones diferentes.

Por definición, un enrutador tiene dos o más capas de interfaz de red (porque conecta dos o más redes). Cualquier sistema con múltiples interfaces se llama multihomed en inglés. Un host también puede tener múltiples interfaces, pero generalmente no se le llama enrutador a menos que su función sea simplemente transmitir paquetes de una interfaz a otra. Asimismo, un enrutador no se refiere necesariamente a la caja de hardware especial que se utiliza para reenviar paquetes en Internet. La mayoría de las implementaciones de TCP/IP también permiten que un host de interfaz múltiple actúe como enrutador, pero el host debe estar configurado especialmente para esto. En este caso, podemos llamar al sistema host (cuando ejecuta una aplicación como FTP o Telnet) o enrutador (cuando reenvía paquetes de una red a otra). Se utilizan diferentes términos en diferentes situaciones.

Uno de los propósitos de Internet es ocultar todos los detalles físicos de las aplicaciones. Aunque esto no es inmediatamente obvio en la Internet de dos redes de la Figura 1-3, a la capa de aplicación no le importa (y no le importa) que un host esté en una red Ethernet y otro host esté en una red Token Ring. interconectados a través de enrutadores. A medida que se agregan diferentes tipos de redes físicas, puede haber 20 enrutadores, pero la capa de aplicación sigue siendo la misma. La ocultación de detalles físicos hace que Internet sea muy poderosa y útil.

Otra forma de conectarse a una red es utilizar un puente. Los puentes interconectan redes en la capa de enlace, mientras que los enrutadores interconectan redes en la capa de red. Los puentes permiten agrupar múltiples redes de área local (LAN) para que aparezcan ante la capa superior como una sola LAN. TCP/IP prefiere enrutadores en lugar de puentes para conectar redes, por lo que nos centraremos en los enrutadores. El capítulo 12 de [Perlman 1992] compara enrutadores y puentes.

1.3 Capas TCP/IP

En el conjunto de protocolos TCP/IP, existen muchos protocolos. La Figura 1-4 muestra otros protocolos discutidos en este libro.
Insertar descripción de la imagen aquí
TCP y UDP son los dos protocolos de capa de transporte más famosos y ambos utilizan IP como protocolo de capa de red. Aunque TCP utiliza servicios IP no confiables, proporciona un servicio de capa de transporte confiable. Los capítulos 17 a 22 de este libro discutirán en detalle los detalles del funcionamiento interno de TCP. Luego, presentaremos algunas aplicaciones TCP, como Telnet y Rlogin en el Capítulo 26, FTP en el Capítulo 27 y SMTP en el Capítulo 28. Estas aplicaciones suelen ser procesos de usuario.

UDP envía y recibe datagramas para aplicaciones. Un datagrama se refiere a una unidad de información transmitida del remitente al receptor (por ejemplo, una cierta cantidad de bytes de información especificada por el remitente). Pero a diferencia de TCP, UDP no es confiable y no puede garantizar que el datagrama pueda llegar al destino final de manera segura y sin errores. Este libro analiza UDP en el Capítulo 11 y luego presenta las aplicaciones que usan UDP en el Capítulo 14 (DNS: Sistema de nombres de dominio), el Capítulo 15 (TFTP: Protocolo trivial de transferencia de archivos) y el Capítulo 16 (BOOTP: Protocolo Bootstrap). SNMP también utiliza el protocolo UDP, pero como tiene que tratar con muchos otros protocolos, este libro guarda su discusión para el Capítulo 25.

IP es el protocolo principal en la capa de red y lo utilizan tanto TCP como UDP. Cada conjunto de datos de TCP y UDP viaja a través de Internet a través de la capa IP en el sistema final y cada enrutador intermedio. En la Figura 1-4, mostramos una aplicación que accede directamente a IP. Esto es poco común, pero posible (algunos protocolos de enrutamiento más antiguos se implementaron de esta manera. Es posible que los protocolos de capa de transporte más nuevos también utilicen este enfoque). El Capítulo 3 analiza principalmente el protocolo IP, pero para que el contenido sea más específico, algunos detalles se dejarán para discusión en capítulos posteriores. Los capítulos 9 y 10 analizan cómo se realiza el enrutamiento IP.

ICMP es un protocolo subsidiario del protocolo IP. La capa IP lo utiliza para intercambiar mensajes de error y otra información importante con otros hosts o enrutadores. El Capítulo 6 analiza los detalles relevantes de ICMP. Aunque IP utiliza principalmente ICMP, es posible que las aplicaciones accedan a él. Analizaremos dos herramientas de diagnóstico populares, Ping y Traceroute (Capítulos 7 y 8), las cuales utilizan ICMP.

IGMP es el protocolo de gestión de grupos de Internet. Se utiliza para multidifundir un datagrama UDP a múltiples hosts. Describimos las características generales de la transmisión (envío de un datagrama UDP a todos los hosts en una red determinada) y la multidifusión en el Capítulo 12, y luego describimos el protocolo IGMP en sí en el Capítulo 13.

ARP (Protocolo de resolución de direcciones) y RARP (Protocolo de resolución de direcciones inversas) son protocolos especiales utilizados por algunas interfaces de red (como Ethernet y Token Ring) para traducir las direcciones utilizadas por la capa IP y la capa de interfaz de red. Analizamos e presentamos estos dos protocolos en el Capítulo 4 y el Capítulo 5 respectivamente.

1.4 dirección de Internet

Cada interfaz de Internet debe tener una dirección de Internet única (también llamada dirección IP). La dirección IP tiene una longitud de 32 bits. Las direcciones de Internet no utilizan un espacio de direcciones plano, como 1, 2, 3, etc. Las direcciones IP tienen una estructura determinada y los cinco tipos diferentes de formatos de direcciones de Internet se muestran en la Figura 1-5.
Insertar descripción de la imagen aquí
Estas direcciones de 32 bits suelen escribirse como cuatro números decimales, donde cada número entero corresponde a un byte. Este método de representación se denomina "notación decimal con puntos". Por ejemplo, el sistema del autor es una dirección Clase B, que se representa como: 140.252.13.33. La forma más sencilla de distinguir entre varios tipos de direcciones es mirando su primer número entero decimal. La Figura 1-6 enumera los rangos inicial y final de varias direcciones, en las que el primer entero decimal se muestra en negrita. Cabe señalar nuevamente que un host multiinterfaz tiene múltiples direcciones IP, una para cada interfaz.
Insertar descripción de la imagen aquí
Dado que cada interfaz de Internet debe tener una dirección IP única, una agencia de gestión debe asignar direcciones IP a las redes conectadas a Internet. Esta organización de gestión es el Centro de información de la red de Internet (Centro de información de la red de Internet), llamado InterNIC. InterNIC sólo asigna números de red. La asignación de números de host es responsabilidad del administrador del sistema.

Internet注册服务(IP地址和DNS域名)过去由NIC来负责,其网络地址是nic.ddn.mil。1993年4月1日,InterNIC成立。现在,NIC只负责处理国防数据网的注册请求,
所有其他的Internet用户注册请求均由InterNIC负责处理,其网址是:rs.internic.net。
事实上InterNIC由三部分组成:注册服务(rs.internic.net),目录和数据库服务(ds.internic.net),以及信息服务(is.internic.net)。
有关InterNIC的其他信息参见习题1.8。

Hay tres tipos de direcciones IP: direcciones de unidifusión (destino a un único host), direcciones de difusión (destino a todos los hosts de una red determinada) y direcciones de multidifusión (destino a todos los hosts del mismo grupo). Los capítulos 12 y 13 analizan la transmisión y la multidifusión respectivamente con más detalle. En la Sección 3.4, presentaremos con más detalle el concepto de subredes después de introducir el enrutamiento IP. La Figura 3-9 muestra varias direcciones IP especiales: el número de host y el número de red son todos 0 o todos 1.

1.5 Sistema de nombres de dominio

Aunque la interfaz de red del host se puede identificar a través de la dirección IP y luego se puede acceder al host, el nombre del host es el más popular. En el mundo TCP/IP, el Sistema de nombres de dominio (DNS) es una base de datos distribuida que proporciona información de mapeo entre direcciones IP y nombres de host. Analizamos el DNS en detalle en el Capítulo 14. Ahora, debemos entender que cualquier aplicación puede llamar a una función de biblioteca estándar para ver la dirección IP de un host con un nombre determinado. De manera similar, el sistema también proporciona una función inversa: dada la dirección IP de un host, verifique su nombre de host correspondiente.

La mayoría de las aplicaciones que toman un nombre de host como parámetro también pueden tomar una dirección IP como parámetro. Por ejemplo, en el Capítulo 4, cuando usamos Telnet para iniciar sesión de forma remota, podemos especificar un nombre de host o una dirección IP.

1.6 Embalaje

Cuando una aplicación utiliza TCP para enviar datos, los datos se introducen en la pila de protocolos y luego pasan a través de cada capa hasta que se envían a la red como un flujo de bits. Cada capa agrega información de encabezado (y a veces información de cola) a los datos recibidos. El proceso se muestra en la Figura 1-7. La unidad de datos transmitida de TCP a IP se denomina segmento TCP o simplemente segmento TCP. La unidad de datos transmitida por IP a la capa de interfaz de red se denomina datagrama IP. El flujo de bits transmitido a través de Ethernet se denomina trama. Los números marcados debajo del encabezado de la trama y del final de la trama en la Figura 1-7 son la longitud en bytes del encabezado de trama Ethernet típico. En los siguientes capítulos discutiremos en detalle el significado específico de estos encabezados de marco.

Las características físicas de la trama de datos Ethernet son que su longitud debe estar entre 46 y 1500 bytes. Encontraremos el marco de datos de longitud mínima en la Sección 4.5 y el marco de datos de longitud máxima en la Sección 2.8.

所有的Internet标准和大多数有关TCP/IP的书都使用octet这个术语来表示字节。
使用这个过分雕琢的术语是有历史原因的,因为TCP/IP的很多工作都是在DEC-10系统上进行的,但是它并不使用8bit的字节。
由于现在几乎所有的计算机系统都采用8bit的字节,因此我们在本书中使用字节(byte)这个术语。
更准确地说,图1-7中IP和网络接口层之间传送的数据单元应该是分组(packet)。
分组既可以是一个IP数据报,也可以是IP数据报的一个片(fragment)。我们将在11.5节讨论IP数据报分片的详细情况。

Insertar descripción de la imagen aquí
Los datos UDP son básicamente los mismos que los datos TCP. La única diferencia es que la unidad de información transmitida por UDP a IP se llama datagrama UDP (datagrama UDP) y el encabezado UDP tiene 8 bytes de longitud. Recuerde la Figura 1-4 en la Sección 1.3. Dado que TCP, UDP, ICMP e IGMP transmiten datos a IP, IP debe agregar algún tipo de identificador al encabezado IP generado para indicar a qué capa pertenecen los datos. Para ello, IP almacena un valor de 8 bits en el encabezado, llamado campo de protocolo. 1 representa el protocolo ICMP, 2 representa el protocolo IGMP, 6 representa el protocolo TCP y 17 representa el protocolo UDP.

De manera similar, muchas aplicaciones pueden usar TCP o UDP para transferir datos. El protocolo de la capa de transporte almacena un identificador de aplicación en el encabezado al generar el mensaje. Tanto TCP como UDP utilizan un número de puerto de 16 bits para representar diferentes aplicaciones. TCP y UDP almacenan el número de puerto de origen y el número de puerto de destino en el encabezado del mensaje, respectivamente. La interfaz de red envía y recibe datos IP, ARP y RARP respectivamente, por lo que se debe agregar alguna forma de identificación al encabezado de la trama Ethernet para indicar el protocolo de capa de red que generó los datos. Por este motivo, el encabezado de la trama Ethernet también tiene un campo de tipo de trama de 16 bits.

1,7 puntos

Cuando el host de destino recibe una trama de datos Ethernet, los datos comienzan a subir de abajo hacia arriba en la pila de protocolos y, al mismo tiempo, se eliminan los encabezados de mensajes agregados por cada capa de protocolos. Cada capa de cuadros de protocolo debe verificar el identificador de protocolo en el encabezado del mensaje para determinar el protocolo de capa superior para recibir datos. Este proceso se llama demultiplexación y la Figura 1-8 muestra cómo sucede.
Insertar descripción de la imagen aquí

为协议ICMP和IGMP定位一直是一件很棘手的事情。在图1-4中,把它们与IP放在同一层上,那是因为事实上它们是IP的附属协议。
但是在这里,我们又把它们放在IP层的上面,这是因为ICMP和IGMP报文都被封装在IP数据报中。
对于ARP和RARP,我们也遇到类似的难题。
在这里把它们放在以太网设备驱动程序的上方,这是因为它们和IP数据报一样,都有各自的以太网数据帧类型。
但在图2-4中,我们又把ARP作为以太网设备驱动程序的一部分,放在IP层的下面,其原因在逻辑上是合理的。
这些分层协议盒并不都是完美的。

Al describir más a fondo los detalles de TCP, veremos que el protocolo se descomprime por número de puerto de destino, dirección IP de origen y número de puerto de origen.

1.8 Modelo Cliente-Servidor

La mayoría de las aplicaciones de red se escriben asumiendo que un extremo es el cliente y el otro es el servidor, con el objetivo de que el servidor proporcione algún servicio específico al cliente. Este tipo de servicio se puede dividir en dos tipos: recurrente o concurrente. Los servidores repetitivos interactúan mediante los siguientes pasos:
I1.Esperar a que llegue una solicitud de cliente.
I2.Procesar las solicitudes de los clientes.
I3 Enviar respuesta al cliente que envió la solicitud.
I4.Regrese al paso I1.
El principal problema con los servidores duplicados ocurre en el estado I2. En este momento, no puede prestar servicios a otros clientes. En consecuencia, el servidor concurrente realiza los siguientes pasos:
C1.Esperar la llegada de una solicitud de cliente.
C2. Inicie un nuevo servidor para manejar la solicitud de este cliente. Durante este período, se puede generar un nuevo proceso, tarea o hilo y depende del soporte del sistema operativo subyacente. La forma en que se realiza este paso depende del sistema operativo. El nuevo servidor generado maneja todas las solicitudes de los clientes. Una vez completado el procesamiento, finalice el nuevo servidor.
C3.Vuelva al paso C1. La ventaja de un servidor concurrente es que utiliza el método de generar otros servidores para manejar las solicitudes de los clientes. Es decir, cada cliente tiene su propio servidor correspondiente. Si el sistema operativo permite la multitarea, entonces se puede atender a varios clientes simultáneamente. La razón para clasificar servidores en lugar de clientes es que generalmente no es posible para un cliente saber si está hablando con un servidor repetido o con un servidor concurrente. En términos generales, los servidores TCP son concurrentes y los servidores UDP están duplicados, pero existen algunas excepciones. Analizaremos en detalle el impacto de UDP en sus servidores en la Sección 11.12 y el impacto de TCP en sus servidores en la Sección 18.11.

1.9 Número de puerto

Como se señaló anteriormente, TCP y UDP utilizan números de puerto de 16 bits para identificar aplicaciones. Entonces, ¿cómo se eligen estos números de puerto? Los servidores generalmente se identifican mediante números de puerto conocidos. Por ejemplo, para cada implementación TCP/IP, el número de puerto TCP para cada servidor FTP es 21, para cada servidor Telnet el número de puerto TCP es 23 y para cada servidor TFTP (Protocolo trivial de transferencia de archivos) el número de puerto UDP es 69. Los servicios proporcionados por cualquier implementación TCP/IP utilizan números de puerto conocidos entre 1 y 1023. Estos números de puerto conocidos son administrados por la Autoridad de Números Asignados de Internet (IANA).

到1992年为止,知名端口号介于1~255之间。
256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务—也就是说,提供一些只有Unix系统才有的、而其他操作系统可能不提供的服务。
现在IANA管理1~1023之间所有的端口号。
Internet扩展服务与Unix特定服务之间的一个差别就是Telnet和Rlogin。
它们二者都允许通过计算机网络登录到其他主机上。
Telnet是采用端口号为23的TCP/IP标准且几乎可以在所有操作系统上进行实现。
相反,Rlogin最开始时只是为Unix系统设计的(尽管许多非Unix系统现在也提供该服务),因此在80年代初,它的有名端口号为513。

Por lo general, al cliente no le importa el número de puerto que utiliza, siempre que el número de puerto sea único en la máquina. El número de puerto del cliente también se denomina número de puerto temporal (es decir, existe por un corto período de tiempo). Esto se debe a que generalmente solo existe cuando el usuario ejecuta el programa cliente, mientras que el servicio del servidor se ejecuta mientras el host está encendido. La mayoría de las implementaciones de TCP/IP asignan números de puerto entre 1024 y 5000 a puertos efímeros. Los números de puerto superiores a 5000 están reservados para otros servidores (servicios que no se utilizan habitualmente en Internet). Podemos ver muchos ejemplos de este tipo de asignación de números de puerto a puertos efímeros más adelante.

Solaris 2.2是一个很有名的例外。通常TCP和UDP的缺省临时端口号从32768开始。

En la Sección E.4, describimos en detalle cómo los administradores del sistema pueden modificar las opciones de configuración para cambiar estos valores predeterminados. El archivo /etc/services en la mayoría de los sistemas Unix contiene números de puerto conocidos. Para encontrar el número de puerto del servidor Telnet y el sistema de nombres de dominio, puede ejecutar la siguiente declaración:
Insertar descripción de la imagen aquí
Los sistemas Unix tienen el concepto de números de puerto reservados. Sólo un proceso con privilegios de superusuario puede asignarse un número de puerto reservado. Estos números de puerto van del 1 al 1023, y algunas aplicaciones (como el famoso Rlogin, Sección 26.2) los utilizan como parte de la autenticación entre el cliente y el servidor.

1.10 Proceso de estandarización

¿Quién controla realmente el conjunto de protocolos TCP/IP y quién define nuevos estándares y otras cosas similares? De hecho, existen cuatro grupos responsables de la tecnología de Internet.
1. La Internet Society (ISOC, Internet Society) es una organización profesional que promueve, apoya y promueve el crecimiento y desarrollo continuo de Internet y considera que Internet es la infraestructura para las comunicaciones de investigación globales.
2. La Junta de Arquitectura de Internet (IAB, Internet Architecture Board) es una organización de supervisión y coordinación técnica. Está compuesto por 15 voluntarios internacionales de diferentes profesiones, y su función es encargarse de la edición final y revisión técnica de los estándares de Internet. IAB está afiliada a ISOC.
3. El Internet Engineering Task Force (IETF, Internet Engineering Task Force) es una organización orientada a estándares recientes y se divide en 9 áreas (aplicación, enrutamiento y direccionamiento, seguridad, etc.). El IETF desarrolla especificaciones que se convierten en estándares de Internet. Para ayudar al presidente del IETF, se creó el Grupo Directivo de Ingeniería de Internet (IESG).
4. El Grupo de Trabajo de Investigación de Internet (IRIF, Grupo de Trabajo de Investigación de Internet) realiza principalmente investigaciones sobre proyectos a largo plazo. Tanto el IRTF como el IETF están afiliados a la IAB. [Crocker 1993] proporciona información más detallada sobre el proceso de estandarización dentro de Internet y también describe su historia temprana.

1.11 RFC

Todos los estándares formales en Internet se publican en documentos RFC (Solicitud de comentarios). Además, una gran cantidad de RFC no son estándares formales y se publican únicamente con fines informativos. Los RFC tienen una extensión de entre 1 y 200 páginas. Cada elemento se identifica mediante un número, como RFC 1122. Cuanto mayor sea el número, más reciente será el contenido del RFC. Todos los RFC están disponibles gratuitamente en Internet mediante correo electrónico o FTP. Si envía el siguiente correo electrónico, recibirá una lista de formas de obtener RFC: El
Insertar descripción de la imagen aquí
índice RFC más reciente es siempre el punto de partida para buscar información. Este índice enumera cuándo se reemplazó o actualizó parcialmente un RFC. Los siguientes son algunos documentos RFC importantes:
1. Números asignados RFC (Números asignados RFC) enumera los números y constantes utilizados en todos los protocolos de Internet. Al momento de esta publicación, el último número RFC es 1340 [Reynolds y Postel 1992]. Todos los números de puertos de Internet famosos se enumeran aquí. Cuando se actualiza este RFC (generalmente al menos una vez al año), el listado del índice indica cuándo se reemplazó el RFC 1340.
2. Estándar de protocolo formal de Internet, actualmente RFC 1600 [Postel 1994]. Este RFC describe el estado actual de estandarización de varios protocolos de Internet. Cada protocolo se encuentra en uno de varios estados de estandarización: estándar, borrador de estándar, estándar propuesto, estándar experimental, estándar informativo y estándar histórico. Además, cada protocolo tiene un nivel de requisitos, requerido, recomendado, opcional, de uso restringido o no recomendado. Al igual que el RFC asignado, este RFC se actualiza periódicamente. No dude en consultar la última versión.
3. Requisitos del anfitrión RFC, 1122 y 1123 [Braden 1989a, 1989b]. RFC 1122 apunta a la capa de enlace, capa de red y capa de transporte; RFC 1123 apunta a la capa de aplicación. Estos dos RFC proporcionan numerosas correcciones y explicaciones a importantes documentos RFC anteriores. Suelen ser un punto de entrada si desea ver los detalles más detallados del protocolo. Enumeran las características del protocolo que "deben", "deberían", "pueden", "no deberían" o "no deben" y los detalles de su implementación. La literatura [Borman 1993b] proporciona información útil sobre estos dos RFC. RFC 1127 [Braden 1989c] proporciona un resumen informal de las discusiones y conclusiones del grupo de trabajo durante el desarrollo del RFC de requisitos de host.
4. Requisitos del enrutador RFC, la versión oficial actual es RFC 1009 [Braden y Postel 1987], pero una nueva versión está casi completa [Almquist 1993]. Es similar al RFC de requisitos del host, pero solo describe los requisitos del enrutador por separado.

1.12 Servicio simple estándar

Hay algunos servicios simples estándar que proporcionan casi todas las implementaciones. En este libro usaremos algunos de estos programas de servicio y el programa cliente generalmente elige Telnet. La Figura 1-9 describe estos servicios. Como puede verse en la figura, cuando se utiliza TCP y UDP para proporcionar el mismo servicio, generalmente se selecciona el mismo número de puerto.
Insertar descripción de la imagen aquí

如果仔细检查这些标准的简单服务以及其他标准的TCP/IP服务(如Telnet、FTP、SMTP等)的端口号时,我们发现它们都是奇数。
这是有历史原因的,因为这些端口号都是从NCP端口号派生出来的(NCP,即网络控制协议,是ARPANET的运输层协议,是TCP的前身)。
NCP是单工的,不是全双工的,因此每个应用程序需要两个连接,需预留一对奇数和偶数端口号。
当TCP和UDP成为标准的运输层协议时,每个应用程序只需要一个端口号,因此就使用了NCP中的奇数。

1.13Internet

En la Figura 1-3, ilustramos una Internet que consta de dos redes: Ethernet y Token Ring. En las Secciones 1.4 y 1.9, analizamos la Internet mundial (Internet) y la necesidad de una asignación centralizada de direcciones IP (InterNIC), y también analizamos los números de puertos conocidos (IANA). El hecho de que la primera letra de la palabra Internet esté en mayúscula determina si tiene significados diferentes. Internet significa conectar varias redes entre sí mediante un conjunto de protocolos común. Internet se refiere al conjunto de todos los hosts del mundo (más de 1 millón) que se comunican entre sí a través de TCP/IP. Internet es Internet, pero Internet no es lo mismo que Internet.

1.14 Implementación

La implementación del software TCP/IP estándar de facto proviene del Grupo de Investigación de Sistemas Informáticos de la Universidad de California, Berkeley. Históricamente, el software se lanzaba con la versión de red del sistema BSD 4.x (Berkeley Software Distribution). Su código fuente es la base para muchas otras implementaciones. La Figura 1-10 enumera las fechas de lanzamiento de varias versiones de BSD y señala características importantes de TCP/IP. Para la versión de red BSD que aparece a la izquierda, todo su código fuente de red está disponible públicamente: incluido el protocolo en sí y muchas aplicaciones y herramientas (como Telnet y FTP).
Insertar descripción de la imagen aquí
En este libro, utilizaremos "sistemas derivados de Berkeley" para referirnos a sistemas como SunOS 4.x, SVR4 y AIX 3.2 que se desarrollan en base al código fuente de Berkeley. Estos sistemas tienen mucho en común y, a menudo, contienen los mismos errores. Gran parte de la investigación original en Internet todavía se aplica en el sistema de Berkeley: nuevos algoritmos de control de congestión (Sección 21.7), multidifusión (Sección 12.4), modificaciones de "tuberías largas y gruesas" (Sección 24.3) y otras investigaciones similares.

1.15 Interfaz de programación de aplicaciones

Las aplicaciones que utilizan el protocolo TCP/IP suelen utilizar dos interfaces de programación de aplicaciones (API): socket y TLI (Transport Layer Interface: Interfaz de capa de transporte). El primero a veces se denomina "enchufe Berkeley", lo que indica que fue desarrollado a partir de la versión Berkeley. Este último fue desarrollado originalmente por AT&T y a veces se le llama XTI (X/Open Transport Layer Interface) en reconocimiento al trabajo realizado por X/Open, un fabricante internacional de computadoras que define sus propios estándares. XTI es en realidad un superconjunto de TLI. Este libro no es un libro de programación, pero ocasionalmente se hacen referencias para ilustrar las características de TCP/IP, ya sea que la mayoría de las API (sockets) las proporcionen o no. Todos los detalles de programación relacionados con sockets y TLI se proporcionan en [Stevens 1990].

1.16 Red de prueba

La Figura 1-11 es la red de prueba en la que se ejecutan todos los ejemplos de este libro. Para facilitar la lectura durante la lectura, esta figura también se reproduce en el inserto antes de la portada de este libro.
Insertar descripción de la imagen aquíEn este diagrama (subred del autor), la mayoría de los ejemplos se ejecutan en los siguientes cuatro sistemas. Todas las direcciones IP de la figura pertenecen a direcciones de clase B y el número de red es 140.252. Todos los nombres de host pertenecen al dominio .tuc.noao.edu (noao significa Observatorios Nacionales de Astronomía Óptica, tuc significa Tu cson). Por ejemplo, el sistema en la parte inferior derecha tiene un nombre completo: svr4.tuc.noao.edu y su dirección IP es: 140.252.13.34. El nombre encima de cada cuadro es el sistema operativo que ejecuta el host. Este grupo de sistemas, hosts y enrutadores de la red ejecutan diferentes implementaciones de TCP/IP.

Cabe señalar que el dominio noao.edu tiene muchas más redes y hosts que los de la Figura 1-11. Aquí se enumeran sólo los sistemas que se utilizarán en este libro. En la Sección 3.4, describiremos la forma de subredes utilizadas en esta red. La sección 4.6 presentará los detalles relevantes del SLIP de acceso telefónico entre sun y netb. La sección 2.4 discutirá SLIP en detalle.

1.17 Resumen

Este capítulo proporciona una descripción general rápida del conjunto de protocolos TCP/IP, presentando muchos de los términos y protocolos que se analizarán en detalle en capítulos posteriores. El conjunto de protocolos TCP/IP se divide en cuatro capas: capa de enlace, capa de red, capa de transporte y capa de aplicación. Cada capa tiene diferentes responsabilidades. En TCP/IP, la distinción entre la capa de red y la capa de transporte es la más crítica: la capa de red (IP) proporciona servicios punto a punto, mientras que la capa de transporte (TCP y UDP) proporciona servicios de extremo a extremo. . Internet es una red de redes. Los componentes básicos comunes de Internet son los enrutadores, que conectan redes entre sí en la capa IP. Internet con la primera letra mayúscula se refiere a Internet a gran escala distribuida en todo el mundo, que incluye más de 10.000 redes y más de 1 millón de hosts. En Internet, cada interfaz se identifica mediante una dirección IP, aunque los usuarios están acostumbrados a utilizar nombres de host en lugar de direcciones IP. El Sistema de nombres de dominio proporciona un mapeo dinámico entre nombres de host y direcciones IP. Los números de puerto se utilizan para identificar aplicaciones que se comunican entre sí. El servidor utiliza un número de puerto conocido, mientras que el cliente utiliza un número de puerto establecido temporalmente.

Supongo que te gusta

Origin blog.csdn.net/x13262608581/article/details/133443961
Recomendado
Clasificación