"TCP/IP 세부 설명, 1권: 프로토콜"은 TCP/IP 프로토콜에 대한 완전하고 자세한 안내서입니다. 각 계층에 속하는 개별 프로토콜과 해당 프로토콜이 다양한 운영 체제에서 어떻게 작동하는지 설명합니다. 저자는 Lawrence Berkeley Laboratory의 tcpdump 프로그램을 사용하여 다양한 운영 체제와 TCP/IP 구현 간에 전송되는 다양한 패킷을 캡처했습니다. tcpdump 출력을 연구하면 다양한 프로토콜의 작동 방식을 이해하는 데 도움이 될 수 있습니다. 이 책은 네트워크를 배우는 컴퓨터 전공 학생들의 교과서이자 교사들을 위한 참고서로 적합하다. 네트워크를 연구하는 기술자에게도 적합합니다.
목차 번역자의 서문 1장 개요 1
1.1 소개 1
1.2 계층화 1
1.3 TCP/IP 계층화 4
1.4 인터넷 주소 5
1.5 도메인 이름 시스템 6
1.6 포장 6
8점으로 1.7점
1.8 클라이언트-서버 모델 8
1.9 포트 번호 9
1.10 표준화 과정 10
1.11 RFC 10
1.12 표준 단순서비스 11
1.13 인터넷 12
1.14 구현 12
1.15 응용 프로그래밍 인터페이스 12
1.16 테스트 네트워크 13
1.17 요약 13
2장 링크 계층 15
2.1 소개 15
2.2 이더넷과 IEEE 802 캡슐화 15
2.3 테일 포장 17
2.4 SLIP: 직렬 회선 IP 17
2.5 압축된 SLIP 18
2.6 PPP: 지점간 프로토콜 18
2.7 루프백 인터페이스 20
2.8 최대 전송 단위 MTU 21
2.9 경로 MTU 21
2.10 직렬 회선 처리량 계산 21
2.11 요약 22
3장 IP: 인터넷 프로토콜 24
3.1 소개 24
3.2 IP 헤더 24
3.3 IP 라우팅 27
3.4 서브넷 주소 지정 30
3.5 서브넷 마스크 32
3.6 특별한 상황을 위한 IP 주소 33
3.7 서브넷의 예 33
3.8 ifconfig 명령 35
3.9 netstat 명령 36
3.10 IP 36의 미래
3.11 요약 37
4장 ARP: 주소 확인 프로토콜 38
4.1 소개 38
4.2 예시 38
4.3 ARP 캐시 40
4.4 ARP 그룹화 형식 40
4.5 ARP 예제 41
4.5.1 일반적인 예 41
4.5.2 존재하지 않는 호스트 42에 대한 ARP 요청
4.5.3 ARP 캐시 시간 초과 설정 43
4.6 ARP 프록시 43
4.7 무료 ARP 45
4.8 arp 명령 45
4.9 요약 46
5장 RARP: 역방향 주소 확인 프로토콜 47
5.1 소개 47
5.2 RARP 그룹화 형식 47
5.3 RARP 예제 47
5.4 RARP 서버 설계 48
5.4.1 사용자 프로세스로서의 RARP 서버 49
5.4.2 네트워크당 여러 RARP 서버 49
5.5 요약 49
6장 ICMP: 인터넷 제어 메시지 프로토콜 50
6.1 소개 50
6.2 ICMP 메시지 유형 50
6.3 ICMP 주소 마스크 요청 및 응답 52
6.4 ICMP 타임스탬프 요청 및 응답 53
6.4.1 예 54
6.4.2 또 다른 접근법 55
6.5 ICMP 포트에 연결할 수 없음 오류 56
6.6 4.4ICMP 메시지의 BSD 처리 59
6.7 요약 60
7장 핑 프로그램 61
7.1 소개 61
7.2 핑 프로그램 61
7.2.1 LAN 출력 62
7.2.2 WAN 출력 63
7.2.3 라인 SLIP 링크 64
7.2.4 전화 접속 SLIP 링크 65
7.3 IP 레코드 라우팅 옵션 65
7.3.1 일반적인 예 66
7.3.2 예외 출력 68
7.4 IP 타임스탬프 옵션 69
7.5 요약 70
Chapter 8 Traceroute 프로그램 71
8.1 소개 71
8.2 Traceroute 프로그램의 동작 71
8.3 LAN 출력 72
8.4 WAN 출력 75
8.5 IP 원본 라우팅 옵션 76
8.5.1 완화된 원점 라우팅을 위한 Traceroute
프로그램 예 78
8.5.2 엄격한 원본 사이트 라우팅을 위한 Traceroute
프로그램 예 79
8.5.3 느슨한 소스 사이트 라우팅 추적 경로 프로그램
왕복 80번 노선
8.6 요약 81
9장 IP 라우팅 83
9.1 소개 83
9.2 라우팅 원칙 84
9.2.1 단순 라우팅 테이블 84
9.2.2 라우팅 테이블 초기화 86
9.2.3 더 복잡한 라우팅 테이블 87
9.2.4 목적지까지의 경로 없음 87
9.3 ICMP 호스트 및 네트워크에 연결할 수 없는 오류 88
9.4 전달 여부 89
9.5 ICMP 리디렉션 오류 89
9.5.1 예시 90
9.5.2 자세한 내용 91
9.6 ICMP 라우터 발견 메시지 92
9.6.1 라우터 동작 93
9.6.2 호스트 동작 93
9.6.3 구현 93
9.7 요약 94
10장 동적 라우팅 프로토콜 95
10.1 소개 95
10.2 동적 라우팅 95
10.3 유닉스 라우팅 데몬 96
10.4 RIP: 라우팅 정보 프로토콜 96
10.4.1 메시지 형식 96
10.4.2 정상운전 97
10.4.3 메트릭 98
10.4.4 질문 98
10.4.5 예제 98
10.4.6 또 다른 예 100
10.5 RIP 버전 2 102
10.6 OSPF: 최단 경로 우선 열기 102
10.7 BGP: 경계 게이트웨이 프로토콜 103
10.8 CIDR: 유형 없는 도메인 간 라우팅 104
10.9 요약 105
11장 UDP: 사용자 데이터그램 프로토콜 107
11.1 소개 107
11.2 UDP 헤더 107
11.3 UDP 체크섬 108
11.3.1 tcpdump 출력 109
11.3.2 일부 통계 결과 109
11.4 간단한 예 110
11.5 IP 단편화 111
11.6 ICMP에 연결할 수 없는 오류(조각화가 필요함) 113
11.7 Traceroute를 사용하여 경로 MTU 결정 114
11.8 UDP를 사용한 경로 MTU 검색 116
11.9 UDP와 ARP 간의 상호작용 118
11.10 최대 UDP 데이터그램 길이 119
11.11 ICMP 소스 스테이션 억제 오류 120
11.12 UDP 서버 설계 122
11.12.1 고객 IP 주소 및 포트 번호 122
11.12.2 대상 IP 주소 122
11.12.3 UDP 입력 큐 122
11.12.4 로컬 IP 주소 제한 124
11.12.5 원격 IP 주소 제한 125
11.12.6 포트당 다중 수신기 125
11.13 요약 126
12장 브로드캐스팅과 멀티캐스팅 128
12.1 소개 128
12.2 방송 129
12.2.1 제한된 방송 129
12.2.2 네트워크에 브로드캐스트 129
12.2.3 서브넷으로 브로드캐스트 129
12.2.4 모든 서브넷에 브로드캐스트 130
12.3 방송 예 130
12.4 멀티캐스트 132
12.4.1 멀티캐스트 그룹 주소 133
12.4.2 멀티캐스트 그룹 주소를 이더넷 주소로 변환 133
12.4.3 FDDI와 토큰링 네트워크의 멀티캐스트 134
12.5 요약 134
13장 IGMP: 인터넷 그룹 관리 프로토콜 136
13.1 소개 136
13.2 IGMP 메시지 136
13.3 IGMP 프로토콜 136
13.3.1 멀티캐스트 그룹 가입 136
13.3.2 IGMP 보고서 및 쿼리 137
13.3.3 구현 세부 사항 137
13.3.4 TTL(Time-to-Live) 필드 138
13.3.5 모든 호스트 그룹 138
13.4 예시 138
13.5 요약 141
14장 DNS: 도메인 이름 시스템 142
14.1 소개 142
14.2 DNS 기본 사항 142
14.3 DNS 메시지 형식 144
14.3.1 DNS 쿼리 메시지의 문제 부분 146
14.3.2 DNS 응답 메시지의 리소스 레코드 부분 147
14.4 간단한 예 147
14.5 포인터 쿼리 150
14.5.1 예제 151
14.5.2 호스트 이름 확인 151
14.6 리소스 레코드 152
14.7 캐싱 153
14.8 UDP 또는 TCP 156
14.9 또 다른 예 156
14.10 요약 157
15장 TFTP: 단순 파일 전송 프로토콜 159
15.1 소개 159
15.2 계약 159
15.3 예시 160
15.4 보안 161
15.5 요약 162
16장 BOOTP: 부트스트랩 프로토콜 163
16.1 소개 163
16.2 BOOTP 패킷 형식 163
16.3 예시 164
16.4 BOOTP 서버 설계 165
16.5 BOOTP 순회 라우터 167
16.6 공급업체별 정보 167
16.7 요약 168
17장 TCP: 전송 제어 프로토콜 170
17.1 소개 170
17.2 TCP 서비스 170
17.3 TCP 헤더 171
17.4 요약 173
Chapter 18 TCP 연결 설정 및 종료 174
18.1 소개 174
18.2 연결 설정 및 종료 174
18.2.1 tcpdump 출력 174
18.2.2 시계열 175
18.2.3 연결 동의 수립 175
18.2.4 연결 종료 프로토콜 177
18.2.5 일반 tcpdump 출력 177
18.3 연결 설정 시간 초과 178
18.3.1 첫 번째 타임아웃 기간 178
18.3.2 서비스 유형 필드 179
18.4 최대 세그먼트 길이 179
18.5 TCP 반폐쇄 180
18.6 TCP 상태 전이 다이어그램 182
18.6.1 2MSL 대기 상태 183
18.6.2 조용한 시간의 개념 186
18.6.3 FIN_WAIT_2 상태 186
18.7 세그먼트 재설정 186
18.7.1 존재하지 않는 포트에 대한 연결 요청 187
18.7.2 연결의 비정상 종료 187
18.7.3 반개방 연결 감지 188
18.8 동시에 열기 189
18.9 동시 폐쇄 191
18.10 TCP 옵션 191
18.11 TCP 서버의 설계 192
18.11.1 TCP 서버 포트번호 193
18.11.2 적격 로컬 IP 주소 194
18.11.3 제한된 원격 IP 주소 195
18.11.4 들어오는 연결 요청 큐 195
18.12 요약 197
19장 TCP 대화형 데이터 흐름 200
19.1 소개 200
19.2 대화형 입력 200
19.3 지연을 견디는 승인 201
19.4 Nagle 알고리즘 203
19.4.1 Nagle 알고리즘 끄기 204
19.4.2 예시 205
19.5 창 크기 알림 207
19.6 요약 208
20장 TCP 청크 데이터 스트림 209
20.1 소개 209
20.2 정상적인 데이터 흐름 209
20.3 슬라이딩 윈도우 212
20.4 창 크기 214
20.5 PUSH 로고 215
20.6 느린 시작 216
20.7 청크 데이터 처리량 218
20.7.1 대역폭 지연 곱 220
20.7.2 혼잡 220
20.8 비상 모드 221
20.9 요약 224
21장 TCP 시간 초과 및 재전송 226
21.1 소개 226
21.2 타임아웃과 재전송의 간단한 예 226
21.3 왕복 시간 측정 227
21.4 왕복 시간 RTT 예 229
21.4.1 왕복 시간 RTT 측정 229
21.4.2 RTT 추정기 계산 231
21.4.3 느린 시작 233
21.5 혼잡 사례 233
21.6 혼잡회피 알고리즘 235
21.7 빠른 재전송과 빠른 복구 알고리즘 236
21.8 혼잡 예(계속) 237
21.9 경로당 지표 240
21.10 ICMP 오류 240
21.11 재편성 243
21.12 요약 243
22장 TCP 지속 타이머 245
22.1 소개 245
22.2 예시 245
22.3 혼란스러운 창 증후군 246
22.4 요약 250
23장 TCP 연결 유지 타이머 251
23.1 소개 251
23.2 설명 252
23.3 연결 유지 예제 253
23.3.1 반대편 충돌 253
23.3.2 반대쪽 끝이 충돌하고 다시 시작됨 254
23.3.3 반대쪽 끝에 도달할 수 없습니다. 254
23.4 요약 255
24장 TCP의 미래와 성능 256
24.1 소개 256
24.2 경로 MTU 검색 256
24.2.1 예제 257
24.2.2 대규모 그룹화 또는 소규모 그룹화 258
24.3 긴 지방 파이프라인 259
24.4 창 확장 옵션 262
24.5 타임스탬프 옵션 263
24.6 PAWS: 랩어라운드를 방지하기 위한 일련번호 265
24.7 T/TCP: 트랜잭션을 위한 TCP 확장 265
24.8 TCP 성능 267
24.9 요약 268
25장 SNMP: 단순 네트워크 관리 프로토콜 270
25.1 소개 270
25.2 합의 270
25.3 경영정보 구조 272
25.4 객체 식별자 274
25.5 경영정보베이스 소개 274
25.6 인스턴스 식별 276
25.6.1 단순변수 276
25.6.2 표 276
25.6.3 사전 정렬 277
25.7 몇 가지 간단한 예 277
25.7.1 단순변수 278
25.7.2 get-next 연산 278
25.7.3 테이블 접근 279
25.8 경영정보베이스(계속) 279
25.8.1 시스템 그룹 279
25.8.2 인터페이스 그룹 280
그룹 281의 25.8.3
25.8.4 IP 그룹 282
25.8.5 ICMP 그룹 285
25.8.6 TCP 그룹 285
25.9 다른 예 288
25.9.1 인터페이스 MTU 288
25.9.2 라우팅 테이블 288
25.10 트랩 290
25.11 ASN.1 및 BER 291
25.12 SNMPv2 292
25.13 요약 292
26장 Telnet과 Rlogin: 원격 로그인 293
26.1 소개 293
26.2 Rlogin 프로토콜 294
26.2.1 신청 프로세스 시작 295
26.2.2 흐름 제어 295
26.2.3 클라이언트 인터럽트 키 296
26.2.4 창 크기 변경 296
26.2.5 서버-클라이언트 명령 296
26.2.6 클라이언트-서버 명령 297
26.2.7 클라이언트 이스케이프 문자 298
26.3 Rlogin 예제 298
26.3.1 초기 클라이언트-서버 프로토콜 298
26.3.2 고객 인터럽트 키 299
26.4 텔넷 프로토콜 302
26.4.1 NVT ASCII 302
26.4.2 텔넷 명령 302
26.4.3 옵션 협상 303
26.4.4 하위 옵션 협상 304
26.4.5 반이중, 한 번에 한 문자, 한 번
1행 또는 행 모드 304
26.4.6 동기화 신호 306
26.4.7 클라이언트 이스케이프 문자 306
26.5 텔넷 예제 306
26.5.1 단일 문자 모드 306
26.5.2 행 모드 310
26.5.3 한 번에 한 행(준행 모드) 312
26.5.4 회선 모드: 클라이언트 인터럽트 키 313
26.6 요약 314
27장 FTP: 파일 전송 프로토콜 316
27.1 소개 316
27.2 FTP 프로토콜 316
27.2.1 데이터 표현 316
27.2.2 FTP 명령 318
27.2.3 FTP 응답 319
27.2.4 연결 관리 320
27.3 FTP 예제 321
27.3.1 연결 관리: 임시 데이터 포트 321
27.3.2 연결 관리: 기본 데이터 포트 323
27.3.3 텍스트 파일 전송: NVT ASCII
표현 또는 이미지 표현 325
27.3.4 파일 전송의 비정상적인 중단:
Telnet 동기화 신호 326
27.3.5 익명 FTP 329
27.3.6 알 수 없는 IP 주소의 익명 FTP 330
27.4 요약 331
28장 SMTP: 단순 메일 전송 프로토콜 332
28.1 소개 332
28.2 SMTP 프로토콜 332
28.2.1 간단한 예 332
28.2.2 SMTP 명령 334
28.2.3 봉투, 헤더, 본문 335
28.2.4 릴레이 에이전트 335
28.2.5 NVT ASCII 337
28.2.6 재시도 간격 337
28.3 SMTP 예 337
28.3.1 MX 레코드: 호스트가 직접 연결되지 않음
인터넷 337
28.3.2 MX 레코드: 호스트 실패 339
28.3.3 VRFY 및 EXPN 명령 340
28.4 SMTP 340의 미래
28.4.1 봉투 변경: 확장 SMTP 341
28.4.2 헤더 변경: 비ASCII 문자 342
28.4.3 텍스트 변경: 일반 인터넷 메일
확장 343
28.5 요약 346
29장 네트워크 파일 시스템 347
29.1 소개 347
29.2 Sun 원격 프로시저 호출 347
29.3 XDR: 외부 데이터 표현 349
29.4 포트매퍼 349
29.5 NFS 프로토콜 351
29.5.1 파일 핸들 353
29.5.2 설치 프로토콜 353
29.5.3 NFS 프로세스 354
29.5.4 UDP 또는 TCP 355
29.5.5 TCP 355를 통한 NFS
29.6 NFS 인스턴스 356
29.6.1 간단한 예: 파일 읽기 356
29.6.2 간단한 예: 디렉토리 생성 357
29.6.3 무상태 358
29.6.4 예: 서버 충돌 358
29.6.5 멱등성 프로세스 360
29.7 NFS 360 버전 3
29.8 요약 361
30장 기타 TCP/IP 애플리케이션 363
30.1 소개 363
30.2 핑거 프로토콜 363
30.3 후이즈 프로토콜 364
30.4 아치, WAIS, 고퍼, 베로니카
그리고 WWW366
30.4.1 아치 366
30.4.2 WAIS 366
30.4.3 고퍼 366
30.4.4 베로니카 366
30.4.5 월드와이드웹 WWW 367
30.5 X 윈도우 시스템 367
30.5.1 Xscope 프로그램 368
30.5.2 LBX: 낮은 대역폭 X 370
30.6 요약 370
부록 A tcpdump 프로그램 371
부록 B 컴퓨터 시계 376
부록 C 양말 프로그램 378
부록 D 381의 일부 연습에 대한 솔루션
부록 E 구성 옵션 395
부록 F 무료로 사용 가능한 소스 코드 406
참고문헌 409
약어 420