"Explicación detallada de TCP/IP, Volumen 1: Protocolo" es una guía completa y detallada del protocolo TCP/IP. Se describen los protocolos individuales que pertenecen a cada capa y cómo operan en diferentes sistemas operativos. El autor utilizó el programa tcpdump del Laboratorio Lawrence Berkeley para capturar diferentes paquetes transmitidos entre diferentes sistemas operativos e implementaciones de TCP/IP. Estudiar la salida de tcpdump puede ayudar a comprender cómo funcionan los diferentes protocolos. Este libro es adecuado como libro de texto para estudiantes de informática que aprenden sobre redes y como libro de referencia para profesores. También adecuado para técnicos que estudian redes.
Índice de contenidos Prefacio del traductor Capítulo 1 Descripción general 1
1.1 Introducción 1
1.2 Estratificación 1
1.3 Capas TCP/IP 4
1.4 Direcciones de Internet 5
1.5 Sistema de nombres de dominio 6
1.6 Embalaje 6
1,7 puntos con 8
1.8 Modelo Cliente-Servidor 8
1.9 Puerto número 9
1.10 Proceso de estandarización 10
1.11 RFC 10
1.12 Servicio simple estándar 11
1.13Internet 12
1.14 Implementación 12
1.15 Interfaz de programación de aplicaciones 12
1.16 Red de prueba 13
1.17 Resumen 13
Capítulo 2 Capa de enlace 15
2.1 Introducción 15
2.2 Encapsulación Ethernet e IEEE 802 15
2.3 Embalaje de cola 17
2.4 SLIP: Línea Serial IP 17
2.5 SLIP comprimido 18
2.6 PPP: Protocolo punto a punto 18
2.7 Interfaz de bucle invertido 20
2.8 Unidad de transmisión máxima MTU 21
2.9 Ruta MTU 21
2.10 Cálculo del rendimiento de la línea serie 21
2.11 Resumen 22
Capítulo 3 IP: Protocolo de Internet 24
3.1 Introducción 24
3.2 encabezado IP 24
3.3 Enrutamiento IP 27
3.4 Direccionamiento de subred 30
3.5 Máscara de subred 32
3.6 Direcciones IP para situaciones especiales 33
3.7 Ejemplo de una subred 33
3.8 comando ifconfig 35
3.9 comando netstat 36
3.10 El futuro de la IP 36
3.11 Resumen 37
Capítulo 4 ARP: Protocolo de resolución de direcciones 38
4.1 Introducción 38
4.2 Un ejemplo 38
4.3 Caché ARP 40
4.4 Formato de agrupación ARP 40
4.5 Ejemplo de ARP 41
4.5.1 Ejemplo general 41
4.5.2 Solicitud ARP para host inexistente 42
4.5.3 Configuración del tiempo de espera de la caché ARP 43
4.6 Proxy ARP 43
4.7 ARP 45 gratuito
4.8 comando arp 45
4.9 Resumen 46
Capítulo 5 RARP: Protocolo de resolución de dirección inversa 47
5.1 Introducción 47
5.2 Formato de agrupación RARP 47
5.3 Ejemplo de RARP 47
5.4 Diseño del servidor RARP 48
5.4.1 Servidor RARP como proceso de usuario 49
5.4.2 Múltiples servidores RARP por red 49
5.5 Resumen 49
Capítulo 6 ICMP: Protocolo de mensajes de control de Internet 50
6.1 Introducción 50
6.2 Tipos de mensajes ICMP 50
6.3 Solicitud y respuesta de máscara de dirección ICMP 52
6.4 Solicitud y respuesta de marca de tiempo ICMP 53
6.4.1 Ejemplo 54
6.4.2 Otro enfoque 55
6.5 Error de puerto ICMP inalcanzable 56
6.6 4.4 Procesamiento BSD de mensajes ICMP 59
6.7 Resumen 60
Capítulo 7 Programa Ping 61
7.1 Introducción 61
7.2 Programa de ping 61
7.2.1 Salida LAN 62
7.2.2 Salida WAN 63
7.2.3 Enlace SLIP de línea 64
7.2.4 Enlace SLIP de acceso telefónico 65
7.3 Opciones de enrutamiento de registros IP 65
7.3.1 Ejemplos comunes 66
7.3.2 Salida de excepción 68
7.4 Opciones de marca de tiempo IP 69
7.5 Resumen 70
Capítulo 8 Programa Traceroute 71
8.1 Introducción 71
8.2 Funcionamiento del programa Traceroute 71
8.3 Salida LAN 72
8.4 Salida WAN 75
8.5 Opciones de enrutamiento de origen IP 76
8.5.1 Traceroute para ruta de origen relajada
Ejemplo de programa 78
8.5.2 Traceroute para enrutamiento estricto del sitio de origen
Ejemplo de programa 79
8.5.3 Programa traceroute de enrutamiento del sitio de origen suelto
Ruta 80 ida y vuelta
8.6 Resumen 81
Capítulo 9 Enrutamiento IP 83
9.1 Introducción 83
9.2 Principios de enrutamiento 84
9.2.1 Tabla de enrutamiento simple 84
9.2.2 Inicializar la tabla de enrutamiento 86
9.2.3 Tablas de enrutamiento más complejas 87
9.2.4 Sin ruta al destino 87
9.3 Errores de red y host ICMP inalcanzables 88
9.4 Reenviar o no reenviar 89
9.5 Error de redireccionamiento ICMP 89
9.5.1 Un ejemplo 90
9.5.2 Más detalles 91
9.6 Mensaje de descubrimiento de enrutador ICMP 92
9.6.1 Operación del enrutador 93
9.6.2 Operación del host 93
9.6.3 Implementación 93
9.7 Resumen 94
Capítulo 10 Protocolo de enrutamiento dinámico 95
10.1 Introducción 95
10.2 Enrutamiento dinámico 95
10.3 Demonio de enrutamiento Unix 96
10.4 RIP: Protocolo de información de enrutamiento 96
10.4.1 Formato del mensaje 96
10.4.2 Funcionamiento normal 97
10.4.3 Métricas 98
10.4.4 Pregunta 98
10.4.5 Ejemplo 98
10.4.6 Otro ejemplo 100
10.5 RIP versión 2 102
10.6 OSPF: Abrir primero la ruta más corta 102
10.7 BGP: Protocolo de puerta de enlace fronteriza 103
10.8 CIDR: enrutamiento entre dominios sin tipo 104
10.9 Resumen 105
Capítulo 11 UDP: Protocolo de datagramas de usuario 107
11.1 Introducción 107
11.2 Encabezado UDP 107
11.3 Suma de comprobación UDP 108
11.3.1 salida tcpdump 109
11.3.2 Algunos resultados estadísticos 109
11.4 Un ejemplo sencillo 110
11.5 Fragmentación de la propiedad intelectual 111
11.6 Error inalcanzable de ICMP (requiere fragmentación) 113
11.7 Utilice Traceroute para determinar la ruta MTU 114
11.8 Descubrimiento de MTU de ruta mediante UDP 116
11.9 Interacción entre UDP y ARP 118
11.10 Longitud máxima del datagrama UDP 119
11.11 Error de supresión de estación fuente ICMP 120
11.12 Diseño del servidor UDP 122
11.12.1 Dirección IP del cliente y número de puerto 122
11.12.2 Dirección IP de destino 122
11.12.3 Cola de entrada UDP 122
11.12.4 Restringir direcciones IP locales 124
11.12.5 Restricción de direcciones IP remotas 125
11.12.6 Múltiples receptores por puerto 125
11.13 Resumen 126
Capítulo 12 Radiodifusión y multidifusión 128
12.1 Introducción 128
12.2 Radiodifusión 129
12.2.1 Transmisión restringida 129
12.2.2 Transmisiones a la red 129
12.2.3 Difusiones a subredes 129
12.2.4 Difusión a todas las subredes 130
12.3 Ejemplo de radiodifusión 130
12.4 Multidifusión 132
12.4.1 Dirección de grupo de multidifusión 133
12.4.2 Conversión de dirección de grupo de multidifusión a dirección Ethernet 133
12.4.3 Multidifusión en redes FDDI y Token Ring 134
12.5 Resumen 134
Capítulo 13 IGMP: Protocolo de gestión de grupos de Internet 136
13.1 Introducción 136
13.2 Mensajes IGMP 136
13.3 Protocolo IGMP 136
13.3.1 Unirse a un grupo de multidifusión 136
13.3.2 Informes y consultas IGMP 137
13.3.3 Detalles de implementación 137
13.3.4 Campo de tiempo de vida 138
13.3.5 Todos los grupos anfitriones 138
13.4 Un ejemplo 138
13.5 Resumen 141
Capítulo 14 DNS: Sistema de nombres de dominio 142
14.1 Introducción 142
14.2 Conceptos básicos de DNS 142
14.3 Formato de mensaje DNS 144
14.3.1 Partes problemáticas en mensajes de consulta DNS 146
14.3.2 Parte del registro de recursos en el mensaje de respuesta DNS 147
14.4 Un ejemplo sencillo 147
14.5 Consulta de puntero 150
14.5.1 Ejemplo 151
14.5.2 Comprobación del nombre de host 151
14.6 Registros de recursos 152
14.7 Almacenamiento en caché 153
14.8 UDP o TCP 156
14.9 Otro ejemplo 156
14.10 Resumen 157
Capítulo 15 TFTP: Protocolo simple de transferencia de archivos 159
15.1 Introducción 159
15.2 Acuerdo 159
15.3 Un ejemplo 160
15.4 Seguridad 161
15.5 Resumen 162
Capítulo 16 BOOTP: Protocolo Bootstrap 163
16.1 Introducción 163
16.2 Formato de paquete BOOTP 163
16.3 Un ejemplo 164
16.4 Diseño del servidor BOOTP 165
16.5 Enrutador transversal BOOTP 167
16.6 Información específica del proveedor 167
16.7 Resumen 168
Capítulo 17 TCP: Protocolo de control de transmisión 170
17.1 Introducción 170
17.2 Servicios TCP 170
17.3 Encabezado TCP 171
17.4 Resumen 173
Capítulo 18 Establecimiento y terminación de la conexión TCP 174
18.1 Introducción 174
18.2 Establecimiento y terminación de la conexión 174
18.2.1 salida tcpdump 174
18.2.2 Series temporales 175
18.2.3 Establecer un acuerdo de conexión 175
18.2.4 Protocolo de terminación de conexión 177
18.2.5 Salida tcpdump normal 177
18.3 Tiempo de espera para el establecimiento de conexión 178
18.3.1 Primer período de tiempo de espera 178
18.3.2 Campo de tipo de servicio 179
18.4 Longitud máxima del segmento 179
18.5 TCP medio cerrado 180
18.6 Diagrama de transición de estado de TCP 182
18.6.1 Estado de espera de 2MSL 183
18.6.2 El concepto de tiempo de tranquilidad 186
18.6.3 Estado FIN_WAIT_2 186
18.7 Restablecer segmento 186
18.7.1 Solicitud de conexión a un puerto inexistente 187
18.7.2 Terminación anormal de una conexión 187
18.7.3 Detección de conexiones medio abiertas 188
18.8 Abrir simultáneamente 189
18.9 Cierre simultáneo 191
18.10 Opciones de TCP 191
18.11 Diseño del servidor TCP 192
18.11.1 Número de puerto del servidor TCP 193
18.11.2 Direcciones IP locales calificadas 194
18.11.3 Dirección IP remota restringida 195
18.11.4 Cola de solicitud de conexión entrante 195
18.12 Resumen 197
Capítulo 19 Flujo de datos interactivo TCP 200
19.1 Introducción 200
19.2 Entrada interactiva 200
19.3 Acuse de recibo pese a retrasos 201
19.4 Algoritmo de Nagle 203
19.4.1 Desactivar el algoritmo de Nagle 204
19.4.2 Un ejemplo 205
19.5 Notificación del tamaño de la ventana 207
19.6 Resumen 208
Capítulo 20 Flujo de datos fragmentados TCP 209
20.1 Introducción 209
20.2 Flujo de datos normal 209
20.3 Ventanas correderas 212
20.4 Tamaño de ventana 214
20.5 EMPUJE logotipo 215
20.6 Arranque lento 216
20.7 Rendimiento de datos fragmentados 218
20.7.1 Producto de retardo de ancho de banda 220
20.7.2 Congestión 220
20.8 Modo de emergencia 221
20.9 Resumen 224
Capítulo 21 Tiempo de espera de TCP y retransmisión 226
21.1 Introducción 226
21.2 Ejemplo simple de tiempo de espera y retransmisión 226
21.3 Medición del tiempo de ida y vuelta 227
21.4 Ejemplo de RTT de tiempo de ida y vuelta 229
21.4.1 Medición del tiempo de ida y vuelta RTT 229
21.4.2 Cálculo del estimador RTT 231
21.4.3 Inicio lento 233
21.5 Ejemplo de congestión 233
21.6 Algoritmo para evitar la congestión 235
21.7 Algoritmo de retransmisión rápida y recuperación rápida 236
21.8 Ejemplo de congestión (continuación) 237
21.9 Métricas por ruta 240
21.10 Errores ICMP 240
21.11 Reagrupación 243
21.12 Resumen 243
Capítulo 22 Temporizador de persistencia de TCP 245
22.1 Introducción 245
22.2 Un ejemplo 245
22.3 Síndrome de la ventana confusa 246
22.4 Resumen 250
Capítulo 23 Temporizador de mantenimiento de conexión TCP 251
23.1 Introducción 251
23.2 Descripción 252
23.3 Ejemplo de mantener vivo 253
23.3.1 Choque en el otro lado 253
23.3.2 El otro extremo falla y se reinicia 254
23.3.3 El otro extremo es inalcanzable 254
23.4 Resumen 255
Capítulo 24 El futuro y el rendimiento de TCP 256
24.1 Introducción 256
24.2 Descubrimiento de MTU de ruta 256
24.2.1 Un ejemplo 257
24.2.2 Agrupación grande o agrupación pequeña 258
24.3 Tubería larga y gruesa 259
24.4 Opciones de expansión de ventana 262
24.5 Opciones de marca de tiempo 263
24.6 PAWS: Número de serie para evitar envolturas 265
24.7 T/TCP: Extensiones TCP para transacciones 265
24.8 Rendimiento de TCP 267
24.9 Resumen 268
Capítulo 25 SNMP: Protocolo simple de administración de red 270
25.1 Introducción 270
25.2 Acuerdo 270
25.3 Estructura de la información de gestión 272
25.4 Identificadores de objetos 274
25.5 Introducción a la base de información de gestión 274
25.6 Identificación de instancia 276
25.6.1 Variables simples 276
25.6.2 Tabla 276
25.6.3 Clasificación del diccionario 277
25.7 Algunos ejemplos sencillos 277
25.7.1 Variables simples 278
25.7.2 operación obtener siguiente 278
25.7.3 Acceso a la tabla 279
25.8 Base de información gerencial (continuación) 279
25.8.1 grupo de sistemas 279
25.8.2 grupo de interfaz 280
25.8.3 en el grupo 281
25.8.4 grupo IP 282
25.8.5 grupo icmp 285
25.8.6 grupo tcp 285
25.9 Algunos otros ejemplos 288
25.9.1 Interfaz MTU 288
25.9.2 Tabla de enrutamiento 288
25.10 trampa 290
25.11 ASN.1 y BER 291
25.12 SNMPv2 292
25.13 Resumen 292
Capítulo 26 Telnet y Rlogin: inicio de sesión remoto 293
26.1 Introducción 293
26.2 Protocolo de inicio de sesión 294
26.2.1 Inicio del proceso de solicitud 295
26.2.2 Control de flujo 295
26.2.3 Tecla de interrupción del cliente 296
26.2.4 Cambiar el tamaño de la ventana 296
26.2.5 Comandos de servidor a cliente 296
26.2.6 Comandos de cliente a servidor 297
26.2.7 Caracteres de escape del cliente 298
26.3 Ejemplo de inicio de sesión 298
26.3.1 Protocolo inicial cliente-servidor 298
26.3.2 Clave de interrupción del cliente 299
26.4 Protocolo Telnet 302
26.4.1 NVT ASCII 302
26.4.2 Comando Telnet 302
26.4.3 Negociación de opciones 303
26.4.4 Negociación de subopciones 304
26.4.5 Half-duplex, un carácter a la vez, una vez
Modo una fila o fila 304
26.4.6 Señales de sincronización 306
26.4.7 Caracteres de escape del cliente 306
26.5 Ejemplo de Telnet 306
26.5.1 Modo de un solo carácter 306
26.5.2 Modo fila 310
26.5.3 Una fila a la vez (modo cuasi fila) 312
26.5.4 Modo de línea: Tecla de interrupción del cliente 313
26.6 Resumen 314
Capítulo 27 FTP: Protocolo de transferencia de archivos 316
27.1 Introducción 316
27.2 Protocolo FTP 316
27.2.1 Representación de datos 316
27.2.2 Comandos FTP 318
27.2.3 Respuestas FTP 319
27.2.4 Gestión de conexión 320
27.3 Ejemplo de FTP 321
27.3.1 Gestión de conexión: puertos de datos temporales 321
27.3.2 Gestión de conexión: puerto de datos predeterminado 323
27.3.3 Transferencia de archivos de texto: NVT ASCII
Representación o representación de imagen 325
27.3.4 Cancelación anormal de una transferencia de archivos:
Señal de sincronización Telnet 326
27.3.5 FTP anónimo 329
27.3.6 FTP anónimo desde una dirección IP desconocida 330
27.4 Resumen 331
Capítulo 28 SMTP: Protocolo simple de transferencia de correo 332
28.1 Introducción 332
28.2 Protocolo SMTP 332
28.2.1 Ejemplo sencillo 332
28.2.2 Comandos SMTP 334
28.2.3 Sobre, encabezado y cuerpo 335
28.2.4 Agentes de retransmisión 335
28.2.5 NVT ASCII 337
28.2.6 Intervalo de reintento 337
28.3 Ejemplo SMTP 337
28.3.1 Registros MX: host no conectado directamente a
Internet 337
28.3.2 Registros MX: falla del host 339
28.3.3 Comandos VRFY y EXPN 340
28.4 El futuro de SMTP 340
28.4.1 Cambios de sobre: SMTP extendido 341
28.4.2 Cambios de encabezado: caracteres no ASCII 342
28.4.3 Cambios de texto: Correo general de Internet
Ampliación 343
28.5 Resumen 346
Capítulo 29 Sistemas de archivos de red 347
29.1 Introducción 347
29.2 Llamada al procedimiento remoto de Sun 347
29.3 XDR: Representación de datos externos 349
29.4 Mapeador de puertos 349
29.5 Protocolo NFS 351
29.5.1 Identificadores de archivos 353
29.5.2 Protocolo de instalación 353
29.5.3 Proceso NFS 354
29.5.4 UDP o TCP 355
29.5.5 NFS sobre TCP 355
29,6 instancias NFS 356
29.6.1 Ejemplo simple: leer un archivo 356
29.6.2 Ejemplo simple: crear un directorio 357
29.6.3 Apátrida 358
29.6.4 Ejemplo: caída del servidor 358
29.6.5 Procesos idempotentes 360
29.7 Versión 3 de NFS 360
29.8 Resumen 361
Capítulo 30 Otras aplicaciones TCP/IP 363
30.1 Introducción 363
30.2 Protocolo de dedo 363
30.3 Protocolo Whois 364
30.4 Archie, WAIS, Gopher, Verónica
y WWW 366
30.4.1 Archie 366
30.4.2 WAIS 366
30.4.3 Tuza 366
30.4.4 Verónica 366
30.4.5 Web mundial WWW 367
30.5 X Sistema de Ventana 367
30.5.1 Programa Xscope 368
30.5.2 LBX: ancho de banda bajo X 370
30.6 Resumen 370
Apéndice A programa tcpdump 371
Apéndice B Reloj de computadora 376
Apéndice C programa de calcetines 378
Soluciones a algunos ejercicios del Apéndice D 381
Apéndice E Opciones de configuración 395
Apéndice F Código fuente 406 disponible gratuitamente
Referencias 409
Abreviaturas 420