"Explicação detalhada do TCP/IP, Volume 1: Protocolo" é um guia completo e detalhado do protocolo TCP/IP. São descritos os protocolos individuais pertencentes a cada camada e como eles operam em diferentes sistemas operacionais. O autor usou o programa tcpdump do Laboratório Lawrence Berkeley para capturar diferentes pacotes transmitidos entre diferentes sistemas operacionais e implementações de TCP/IP. Estudar a saída do tcpdump pode ajudar a entender como funcionam diferentes protocolos. Este livro é adequado como um livro didático para estudantes de informática que estão aprendendo sobre redes e um livro de referência para professores. Também adequado para técnicos que estudam redes.
Índice Prefácio do Tradutor Capítulo 1 Visão Geral 1
1.1 Introdução 1
1.2 Estratificação 1
1.3 Camadas TCP/IP 4
1.4 Endereços da Internet 5
1.5 Sistema de Nomes de Domínio 6
1.6 Embalagem 6
1,7 pontos com 8
1.8 Modelo Cliente-Servidor 8
1.9 Porta número 9
1.10 Processo de padronização 10
1.11 RFC 10
1.12 Serviço Simples Padrão 11
1.13 Internet 12
1.14 Implementação 12
1.15 Interface de Programação de Aplicativo 12
1.16 Rede de teste 13
1.17 Resumo 13
Capítulo 2 Camada de Link 15
2.1 Introdução 15
2.2 Ethernet e encapsulamento IEEE 802 15
2.3 Embalagem final 17
2.4 SLIP: Linha Serial IP 17
2.5 SLIP Comprimido 18
2.6 PPP: Protocolo Ponto a Ponto 18
2.7 Interface de loopback 20
2.8 Unidade máxima de transmissão MTU 21
2.9 Caminho MTU 21
2.10 Cálculo da taxa de transferência da linha serial 21
2.11 Resumo 22
Capítulo 3 IP: Protocolo de Internet 24
3.1 Introdução 24
3.2 Cabeçalho IP 24
3.3 Roteamento IP 27
3.4 Endereçamento de sub-rede 30
3.5 Máscara de sub-rede 32
3.6 Endereços IP para situações especiais 33
3.7 Exemplo de sub-rede 33
3.8 comando ifconfig 35
3.9 comando netstat 36
3.10 O futuro do IP 36
3.11 Resumo 37
Capítulo 4 ARP: Protocolo de Resolução de Endereço 38
4.1 Introdução 38
4.2 Um exemplo 38
4.3 Cache ARP 40
4.4 Formato de agrupamento ARP 40
4.5 Exemplo ARP 41
4.5.1 Exemplo geral 41
4.5.2 Solicitação ARP para host inexistente 42
4.5.3 Configuração de tempo limite do cache ARP 43
4.6Proxy ARP 43
4.7 ARP 45 grátis
4.8 comando arp 45
4.9 Resumo 46
Capítulo 5 RARP: Protocolo de resolução de endereço reverso 47
5.1 Introdução 47
5.2 Formato de agrupamento RARP 47
5.3 Exemplo RARP 47
5.4 Projeto do servidor RARP 48
5.4.1 Servidor RARP como processo de usuário 49
5.4.2 Vários servidores RARP por rede 49
5.5 Resumo 49
Capítulo 6 ICMP: Protocolo de Mensagens de Controle da Internet 50
6.1 Introdução 50
6.2 Tipos de mensagens ICMP 50
6.3 Solicitação e resposta de máscara de endereço ICMP 52
6.4 Solicitação e resposta de carimbo de data/hora ICMP 53
6.4.1 Exemplo 54
6.4.2 Outra abordagem 55
6.5 Erro de porta ICMP inacessível 56
6.6 4.4 Processamento BSD de mensagens ICMP 59
6.7 Resumo 60
Capítulo 7 Programa Ping 61
7.1 Introdução 61
7.2 Programa Ping 61
7.2.1 Saída LAN 62
7.2.2 Saída WAN 63
7.2.3 Linha SLIP link 64
7.2.4 Link SLIP discado 65
7.3 Opções de roteamento de registros IP 65
7.3.1 Exemplos comuns 66
7.3.2 Saída de exceção 68
7.4 Opções de carimbo de data/hora IP 69
7.5 Resumo 70
Capítulo 8 Programa Traceroute 71
8.1 Introdução 71
8.2 Operação do programa Traceroute 71
8.3 Saída LAN 72
8.4 Saída WAN 75
8.5 Opções de roteamento de origem IP 76
8.5.1 Traceroute para roteamento de origem relaxado
Exemplo de Programa 78
8.5.2 Traceroute para roteamento estrito do site de origem
Exemplo de Programa 79
8.5.3 Programa de rastreamento de roteamento de site de origem solto
Rota de ida e volta 80
8.6 Resumo 81
Capítulo 9 Roteamento IP 83
9.1 Introdução 83
9.2 Princípios de roteamento 84
9.2.1 Tabela de roteamento simples 84
9.2.2 Inicializar tabela de roteamento 86
9.2.3 Tabelas de roteamento mais complexas 87
9.2.4 Nenhuma rota para o destino 87
9.3 Host ICMP e erros de rede inacessíveis 88
9.4 Encaminhar ou não encaminhar 89
9.5 Erro de redirecionamento ICMP 89
9.5.1 Um exemplo 90
9.5.2 Mais detalhes 91
9.6 Mensagem de descoberta do roteador ICMP 92
9.6.1 Operação do roteador 93
9.6.2 Operação do host 93
9.6.3 Implementação 93
9.7 Resumo 94
Capítulo 10 Protocolo de Roteamento Dinâmico 95
10.1 Introdução 95
10.2 Roteamento Dinâmico 95
10.3 Daemon de roteamento Unix 96
10.4 RIP: Protocolo de Informações de Roteamento 96
10.4.1 Formato da mensagem 96
10.4.2 Operação normal 97
10.4.3 Métricas 98
10.4.4 Pergunta 98
10.4.5 Exemplo 98
10.4.6 Outro exemplo 100
10.5 RIP versão 2 102
10.6 OSPF: Abra o caminho mais curto primeiro 102
10.7 BGP: Protocolo de Gateway de Fronteira 103
10.8 CIDR: roteamento entre domínios sem tipo 104
10.9 Resumo 105
Capítulo 11 UDP: Protocolo de Datagrama do Usuário 107
11.1 Introdução 107
11.2 Cabeçalho UDP 107
11.3 Soma de verificação UDP 108
11.3.1 saída tcpdump 109
11.3.2 Alguns resultados estatísticos 109
11.4 Um exemplo simples 110
11.5 Fragmentação de IP 111
11.6 Erro ICMP inacessível (requer fragmentação) 113
11.7 Use Traceroute para determinar o caminho MTU 114
11.8 Descoberta de MTU de caminho usando UDP 116
11.9 Interação entre UDP e ARP 118
11.10 Comprimento máximo do datagrama UDP 119
11.11 Erro de supressão da estação de origem ICMP 120
11.12 Projeto do servidor UDP 122
11.12.1 Endereço IP do cliente e número da porta 122
11.12.2 Endereço IP de destino 122
11.12.3 Fila de entrada UDP 122
11.12.4 Restringindo endereços IP locais 124
11.12.5 Restringindo endereços IP remotos 125
11.12.6 Múltiplos receptores por porta 125
11.13 Resumo 126
Capítulo 12 Transmissão e Multicast 128
12.1 Introdução 128
12.2 Transmissão 129
12.2.1 Transmissão restrita 129
12.2.2 Transmissões para a rede 129
12.2.3 Transmissões para sub-redes 129
12.2.4 Transmissão para todas as sub-redes 130
12.3 Exemplo de transmissão 130
12.4 Multitransmissão 132
12.4.1 Endereço de grupo multicast 133
12.4.2 Conversão de endereço de grupo multicast para endereço Ethernet 133
12.4.3 Multicast em Redes FDDI e Token Ring 134
12.5 Resumo 134
Capítulo 13 IGMP: Protocolo de gerenciamento de grupo da Internet 136
13.1 Introdução 136
13.2 Mensagens IGMP 136
13.3 Protocolo IGMP 136
13.3.1 Aderindo a um grupo multicast 136
13.3.2 Relatórios e consultas IGMP 137
13.3.3 Detalhes de implementação 137
13.3.4 Campo tempo de vida 138
13.3.5 Todos os grupos de hosts 138
13.4 Um exemplo 138
13.5 Resumo 141
Capítulo 14 DNS: Sistema de Nomes de Domínio 142
14.1 Introdução 142
14.2 Noções básicas de DNS 142
14.3 Formato de mensagem DNS 144
14.3.1 Partes problemáticas em mensagens de consulta DNS 146
14.3.2 Parte do registro de recurso na mensagem de resposta DNS 147
14.4 Um exemplo simples 147
14.5 Consulta de ponteiro 150
14.5.1 Exemplo 151
14.5.2 Verificação de nome de host 151
14.6 Registros de Recursos 152
14.7 Cache 153
14.8 UDP ou TCP 156
14.9 Outro exemplo 156
14.10 Resumo 157
Capítulo 15 TFTP: Protocolo Simples de Transferência de Arquivos 159
15.1 Introdução 159
15.2 Contrato 159
15.3 Um exemplo 160
15.4 Segurança 161
15.5 Resumo 162
Capítulo 16 BOOTP: Protocolo Bootstrap 163
16.1 Introdução 163
16.2 Formato de pacote BOOTP 163
16.3 Um exemplo 164
16.4 Projeto do servidor BOOTP 165
16.5 Roteador Traversal BOOTP 167
16.6 Informações específicas do fornecedor 167
16.7 Resumo 168
Capítulo 17 TCP: Protocolo de Controle de Transmissão 170
17.1 Introdução 170
17.2 Serviços TCP 170
17.3 Cabeçalho TCP 171
17.4 Resumo 173
Capítulo 18 Estabelecimento e Encerramento da Conexão TCP 174
18.1 Introdução 174
18.2 Estabelecimento e terminação de conexão 174
18.2.1 saída tcpdump 174
18.2.2 Série temporal 175
18.2.3 Estabelecendo um acordo de conexão 175
18.2.4 Protocolo de terminação de conexão 177
18.2.5 Saída tcpdump normal 177
18.3 Tempo limite para estabelecimento de conexão 178
18.3.1 Primeiro período de tempo limite 178
18.3.2 Campo tipo de serviço 179
18.4 Comprimento máximo do segmento 179
18,5 TCP meio próximo 180
18.6 Diagrama de transição de estado TCP 182
18.6.1 Estado de espera 2MSL 183
18.6.2 O conceito de tempo de silêncio 186
18.6.3 FIN_WAIT_2 status 186
18.7 Redefinir segmento 186
18.7.1 Solicitação de conexão a uma porta 187 inexistente
18.7.2 Terminação anormal de uma conexão 187
18.7.3 Detectando conexões semiabertas 188
18.8 Abrir simultaneamente 189
18.9 Fechamento simultâneo 191
18.10 Opções TCP 191
18.11 Projeto do servidor TCP 192
18.11.1 Número da porta do servidor TCP 193
18.11.2 Endereços IP locais qualificados 194
18.11.3 Endereço IP remoto restrito 195
18.11.4 Fila de solicitação de conexão de entrada 195
18.12 Resumo 197
Capítulo 19 Fluxo de dados interativo TCP 200
19.1 Introdução 200
19.2 Entrada interativa 200
19.3 Reconhecimento apesar de atrasos 201
19.4 Algoritmo de Nagle 203
19.4.1 Desligue o algoritmo Nagle 204
19.4.2 Um exemplo 205
19.5 Notificação de tamanho de janela 207
19.6 Resumo 208
Capítulo 20 Fluxo de dados fragmentado TCP 209
20.1 Introdução 209
20.2 Fluxo de dados normal 209
20.3 Janelas deslizantes 212
20.4 Tamanho da janela 214
20.5 Logotipo PUSH 215
20.6 Partida lenta 216
20.7 Taxa de transferência de dados fragmentados 218
20.7.1 Produto de atraso de largura de banda 220
20.7.2 Congestionamento 220
20.8 Modo de emergência 221
20.9 Resumo 224
Capítulo 21 Tempo limite e retransmissão do TCP 226
21.1 Introdução 226
21.2 Exemplo simples de timeout e retransmissão 226
21.3 Medição do tempo de ida e volta 227
21.4 Tempo de ida e volta RTT exemplo 229
21.4.1 Medição do tempo de ida e volta RTT 229
21.4.2 Cálculo do estimador RTT 231
21.4.3 Partida lenta 233
21.5 Exemplo de Congestionamento 233
21.6 Algoritmo para evitar congestionamento 235
21.7 Algoritmo de retransmissão rápida e recuperação rápida 236
21.8 Exemplo de Congestionamento (continuação) 237
21,9 Métricas por rota 240
21.10 Erros ICMP 240
21.11 Reagrupamento 243
21.12 Resumo 243
Capítulo 22 Temporizador de persistência TCP 245
22.1 Introdução 245
22.2 Um exemplo 245
22.3 Síndrome da Janela Confusa 246
22.4 Resumo 250
Capítulo 23 Temporizador de atividade TCP 251
23.1 Introdução 251
23.2 Descrição 252
23.3 Exemplo de manutenção de atividade 253
23.3.1 Colisão do outro lado 253
23.3.2 A outra extremidade trava e reinicia 254
23.3.3 A outra extremidade está inacessível 254
23.4 Resumo 255
Capítulo 24 O Futuro e Desempenho do TCP 256
24.1 Introdução 256
24.2 Descoberta de MTU de caminho 256
24.2.1 Um exemplo 257
24.2.2 Agrupamento grande ou agrupamento pequeno 258
24.3 Pipeline longo e gordo 259
24.4 Opções de expansão de janela 262
24,5 Opções de carimbo de data/hora 263
24.6 PAWS: Número de série para evitar wraparound 265
24.7 T/TCP: Extensões TCP para transações 265
24.8 Desempenho TCP 267
24.9 Resumo 268
Capítulo 25 SNMP: Protocolo Simples de Gerenciamento de Rede 270
25.1 Introdução 270
25.2 Acordo 270
25.3 Estrutura de informações gerenciais 272
25.4 Identificadores de objeto 274
25.5 Introdução à Base de Informações Gerenciais 274
25.6 Identificação de Instância 276
25.6.1 Variáveis simples 276
25.6.2 Tabela 276
25.6.3 Classificação de dicionário 277
25.7 Alguns exemplos simples 277
25.7.1 Variáveis simples 278
25.7.2 operação get-next 278
25.7.3 Acesso à tabela 279
25.8 Base de Informações Gerenciais (continuação) 279
25.8.1 grupo de sistema 279
25.8.2 grupo de interface 280
25.8.3 no grupo 281
25.8.4 grupo ip 282
25.8.5 grupo icmp 285
25.8.6 grupo tcp 285
25.9 Alguns outros exemplos 288
25.9.1 Interface MTU 288
25.9.2 Tabela de roteamento 288
25.10 armadilha 290
25.11 ASN.1 e BER 291
25.12SNMPv2 292
25.13 Resumo 292
Capítulo 26 Telnet e Rlogin: login remoto 293
26.1 Introdução 293
26.2 Protocolo Rlogin 294
26.2.1 Iniciando o processo de inscrição 295
26.2.2 Controle de fluxo 295
26.2.3 Chave de interrupção do cliente 296
26.2.4 Alterando o tamanho da janela 296
26.2.5 Comandos de servidor para cliente 296
26.2.6 Comandos cliente-servidor 297
26.2.7 Caracteres de escape do cliente 298
26.3 Exemplo de Rlogin 298
26.3.1 Protocolo cliente-servidor inicial 298
26.3.2 Chave de interrupção do cliente 299
26.4 Protocolo Telnet 302
26.4.1 NVT ASCII 302
26.4.2 Comando Telnet 302
26.4.3 Negociação de Opção 303
26.4.4 Negociação de subopção 304
26.4.5 Half-duplex, um caractere por vez, uma vez
Uma linha ou modo de linha 304
26.4.6 Sinais de sincronização 306
26.4.7 Caracteres de escape do cliente 306
26.5 Telnet exemplo 306
26.5.1 Modo de caractere único 306
26.5.2 Modo de linha 310
26.5.3 Uma linha de cada vez (modo quase linha) 312
26.5.4 Modo Linha: Chave de Interrupção do Cliente 313
26.6 Resumo 314
Capítulo 27 FTP: Protocolo de Transferência de Arquivos 316
27.1 Introdução 316
27.2 Protocolo FTP 316
27.2.1 Representação de dados 316
27.2.2 Comandos FTP 318
27.2.3 Respostas FTP 319
27.2.4 Gerenciamento de Conexão 320
27.3 Exemplo de FTP 321
27.3.1 Gerenciamento de Conexão: Portas de Dados Temporárias 321
27.3.2 Gerenciamento de conexão: Porta de dados padrão 323
27.3.3 Transferência de arquivo de texto: NVT ASCII
Representação ou representação de imagem 325
27.3.4 Anulação anormal de uma transferência de arquivo:
Sinal de sincronização Telnet 326
27.3.5 FTP Anônimo 329
27.3.6 FTP anônimo de um endereço IP desconhecido 330
27.4 Resumo 331
Capítulo 28 SMTP: Protocolo Simples de Transferência de Correio 332
28.1 Introdução 332
28.2 Protocolo SMTP 332
28.2.1 Exemplo simples 332
28.2.2 Comandos SMTP 334
28.2.3 Envelope, cabeçalho e corpo 335
28.2.4 Agentes de Retransmissão 335
28.2.5 NVT ASCII 337
28.2.6 Intervalo de novas tentativas 337
28.3 Exemplo SMTP 337
28.3.1 Registros MX: host não conectado diretamente ao
Internet 337
28.3.2 Registros MX: falha no host 339
28.3.3 Comandos VRFY e EXPN 340
28.4 O futuro do SMTP 340
28.4.1 Alterações de envelope: SMTP estendido 341
28.4.2 Mudanças de cabeçalho: caracteres não ASCII 342
28.4.3 Alterações de texto: Correio Geral da Internet
Expansão 343
28.5 Resumo 346
Capítulo 29 Sistemas de Arquivos de Rede 347
29.1 Introdução 347
29.2 Chamada de Procedimento Remoto Sun 347
29.3 XDR: Representação de Dados Externos 349
29.4 Portmapper 349
29.5 Protocolo NFS 351
29.5.1 Alças de arquivo 353
29.5.2 Protocolo de instalação 353
29.5.3 Processo NFS 354
29.5.4 UDP ou TCP 355
29.5.5 NFS sobre TCP 355
29.6 Instâncias NFS 356
29.6.1 Exemplo simples: lendo um arquivo 356
29.6.2 Exemplo simples: criando um diretório 357
29.6.3 Apátridas 358
29.6.4 Exemplo: falha do servidor 358
29.6.5 Processos idempotentes 360
29.7 Versão 3 do NFS 360
29.8 Resumo 361
Capítulo 30 Outras Aplicações TCP/IP 363
30.1 Introdução 363
30.2 Protocolo de Dedo 363
30.3 Protocolo Whois 364
30.4 Archie, WAIS, Gopher, Veronica
e WWW 366
30.4.1 Arquivo 366
30.4.2 WAIS 366
30.4.3 Esquilo 366
30.4.4 Verônica 366
30.4.5 Rede mundial de computadores WWW 367
30,5 X Sistema de Janela 367
30.5.1 Programa Xscope 368
30.5.2 LBX: Baixa largura de banda X 370
30.6 Resumo 370
Apêndice A programa tcpdump 371
Apêndice B Relógio de Computador 376
Programa de meia Apêndice C 378
Soluções para alguns exercícios do Apêndice D 381
Apêndice E Opções de Configuração 395
Apêndice F Código-fonte 406 disponível gratuitamente
Referências 409
Abreviações 420