TCP/IP Illustrated, Volume 1, Second Edition (재출간판) [TCP/IP 네트워크 프로토콜의 이해]
- 원서명TCP/IP Illustrated, Volume 1 : The Protocols, 2nd Edition (ISBN 9780321336316)
- 지은이케빈 폴(Kevin R. Fall), 리차드 스티븐스(W. Richard Stevens)
- 옮긴이김중규, 이광수, 이재광, 홍충선
- 감수자이정문
- ISBN : 9791161755632
- 60,000원
- 2021년 08월 31일 펴냄
- 하드커버 | 1,188쪽 | 188*240mm
- 시리즈 : 네트워크 프로그래밍
책 소개
요약
오늘날의 TCP/IP 프로토콜 모음에 대한 완벽 가이드다. 최신의 혁신적 수정 사항을 완전하게 반영했으며, 리눅스, 윈도우, 맥 OS 환경 등의 실제 예제를 통해 각 프로토콜이 어떻게 동작하는지 보여준다. 이 책은 TCP/IP의 동작 원리, 일반적인 조건에서의 동작 내용, 다양한 애플리케이션이나 네트워크상에서 TCP/IP가 어떻게 적용되는지 이해하기 위한 최적의 안내서다. TCP/IP의 핵심 목표와 구조적인 개념을 소개하고, TCP/IP가 다양한 네트워크를 어떻게 안정적으로 연결하고 여러 서비스를 어떻게 동시에 지원할 수 있는지를 보여준다.
소개
“이 책에서는 설명하는 지식은 인터넷 작업의 고도화와 안전성 제고를 목표로 하거나 지속적으로 발생하는 문제에 대한 해결책을 강구하고자 하는 엔지니어들에게 큰 도움이 될 것이다.”
- 빈트 서프(Vint Cerf)/ 인터넷의 선구자
『TCP/IP Illustrated, Volume 1, Second Edition』은 오늘날의 TCP/IP 프로토콜 모음에 대한 상세하고도 생생한 안내서다. 최신의 혁신적 수정 사항을 완전하게 반영했으며, 최신 리눅스, 윈도우, 맥 OS 환경 등의 예제를 통해 각 프로토콜이 어떻게 동작하는지 보여준다. 이는 TCP/IP의 동작 원리, 일반적인 조건에서의 동작 내용, 다양한 애플리케이션이나 네트워크상에서 TCP/IP가 어떻게 적용되는지를 이해하기 위한 최선의 방법이다.
2판의 저자인 케빈 폴(Kevin R. Fall)은 작고한 리차드 스티븐스(Richard Stevens)가 저술한 초판을 바탕으로 TCP/IP 프로토콜 연구의 선도자로서의 최첨단 경험들을 추가했으며, 최신 프로토콜과 모범 사례를 반영해 책의 내용을 대폭 수정했다. 케빈은 먼저 TCP/IP의 핵심 목표와 구조적 개념을 소개하고, TCP/IP가 다양한 네트워크들을 어떻게 안정적으로 연결할 수 있는지, 또 여러 서비스를 어떻게 동시에 지원할 수 있는지 보여준다. 그런 다음 IPv4 네트워크와 IPv6 네트워크에서의 인터넷 주소 체계를 찬찬히 설명한다. 그 후 이더넷이나 와이파이 등의 링크 계층 프로토콜에서부터 네트워크 계층, 트랜스포트 계층, 응용 계층에 이르기까지 TCP/IP의 구조와 기능들을 하위 계층에서 상위 계층으로 옮겨가며 설명한다.
ARP, DHCP, NAT, 방화벽, ICMPv4/ICMPv6, 브로드캐스팅, 멀티캐스팅, UDP, DNS 등을 비롯한 수많은 프로토콜을 자세하게 소개한다. 그리고 TCP와 신뢰성 있는 전송에 관련된 연결 관리, 타임아웃, 재전송, 대화형 데이터 흐름, 혼잡 제어 등도 자세히 다룬다. 끝으로 보안과 암호학의 기본적인 개념을 소개하고, 보안성과 프라이버시 보호를 위한 EAP, IPsec, TLS, DNSSEC, DKIM 등과 같은 최근의 주요 프로토콜들도 설명한다.
TCP/IP에 대한 지식 수준에 관계없이 이 책은 전체 TCP/IP 프로토콜들에 대한 직관적 이해를 제고시켜줄 것이며, 이를 통해 더 나은 애플리케이션을 작성할 수 있고, 좀 더 효율적이면서도 신뢰할 수 있는 네트워크를 운영할 수도 있을 것이다.
이 책의 대상 독자
이 책을 이해하는 데 네트워킹 개념에 대한 사전 지식은 필요하지 않지만, 사전 지식이 있는 고급 독자라면 세부 사항이나 참고 자료 등을 더 잘 활용할 수 있을 것이다. 추가적인 내용을 찾아보고 싶은 독자들을 위해 각 장의 끝에 풍부한 참고 자료를 제시했다.
2판에서의 내용상 변화
인터넷상의 모든 계층에서 사용되는 거의 모든 프로토콜들을 다루는 대신 2판에서는 현재 널리 사용되고 있거나 가까운 장래에 널리 사용될 것으로 예상되는 비 보안 프로토콜들을 자세히 소개하는데, 여기에는 이더넷(802.3), Wi-Fi(802.11), PPP, ARP, IPv4, IPv6, UDP, TCP, DHCP, DNS 등이 포함된다. 시스템 관리자나 일반 사용자 모두 이러한 프로토콜을 접하기 쉬울 것이다.
2판에서 보안은 두 가지 형태로 다루고 있다. 먼저 해당사항이 있는 각 장에서 한 절을 할애해 그 장에서 다루는 프로토콜에 관련된 공격과 대응책을 기술한다. 이러한 기술에서 공격을 구성하기 위한 방법을 구체적으로 제시하고 있지는 않지만, 대신 프로토콜의 구현이 (때로는 규격 자체가) 충분히 안정돼 있지 않을 때 발생할 수 있는 문제점 유형들에 대한 실무적 해설을 제시한다. 오늘날의 인터넷에서 불완전한 규격이나 안이한 구현으로 인해 비교적 단순한 공격으로도 주요 업무 시스템들이 침해될 수 있다.
보안에 관한 두 번째의 중요한 논의는 18장에서 이뤄지는데, 여기에서는 보안과 암호학을 자세히 살펴보고, IPsec, TLS, DNSSEC, DKIM 등의 프로토콜도 소개한다. 무결성이나 안전한 운영의 확보를 요하는 모든 서비스나 애플리케이션의 구현에서 이상의 프로토콜들이 중요하다는 것은 오늘날 널리 알려져 있다. 인터넷의 상업적 중요성이 증가함에 따라 보안에 대한 필요성도 이에 비례해 증가하고 있다.
2판의 구성에서 두 번째로 고려한 점은 별로 사용되지 않는 프로토콜들에 관한 내용은 축소하고 1판의 출간 이래 상당한 수정이 이뤄진 프로토콜들에 대한 수정 사항들을 반영하는 것이다. RARP, BOOTP, NFS, SMTP, SNMP 등을 다루는 장들은 없앴으며, SLIP 프로토콜에 대한 설명은 DHCP와 PPP(PPPoE 포함)에 대한 설명을 확장하는 것으로 대체했다. IP 포워딩 기능은 5장의 IPv4와 IPv6 프로토콜에 관한 전반적인 내용에서 설명한다. (RIP, OSPF, BGP 등의) 동적 라우팅 프로토콜에 관한 설명은 없앴는데, 이는 OSPF와 BGP만으로도 책 한 권 분량은 되기 때문이다. ICMP에서 시작해 IP, TCP, UDP 등에 이르기까지 IPv4와 IPv6 동작 차이가 클 경우 이러한 차이점을 다뤘다. IPv6에 대한 별도의 장을 두는 대신 해당 사항이 있을 경우 각각의 핵심 프로토콜에서 IPv6의 영향에 대해 기술했다.
새로운 내용들을 다루는 몇 개의 장이 추가됐다. 1장에서는 네트워킹 관련 이슈와 아키텍처에 대한 일반 개요에서 시작해 인터넷 관련 내용을 소개한다. 인터넷 주소체계 아키텍처는 2장에서 다룬다. 6장은 호스트 구성과 시스템을 네트워크에 연결하는 방법 등을 다루는 내용으로 새로 추가했다. 7장에서는 방화벽과 NAT(Network Address Translation, 네트워크 주소 변환)를 다루는데, 여기에는 라우팅 가능한 영역과 라우팅 불가능한 영역 사이에서 주소 공간을 분할하기 위해 NAT가 어떻게 사용되는지도 다뤘다. 1판에서 사용된 도구들 외에 (그래픽 사용자 인터페이스를 갖춘 무료 네트워크 트래픽 모니터 애플리케이션인) 와이어샤크가 추가됐다.
1판에 쏟아진 찬사
“이 책은 TCP/IP 개발자와 사용자를 위한 바이블이나 다름없다. 이 책을 펴든 지 몇 분 만에 나 자신과 동료들이 고민해왔던 시나리오들을 찾을 수 있었다. 스티븐스는 이 책에서 기존의 네트워크 계통 도사라는 사람들이 모호하게 감춰왔던 수많은 비밀을 명쾌하게 밝혀준다. 이 책은 다년간 TCP/IP 구현에 종사하면서 지금까지 보아온 책들 중에서 가장 훌륭한 책이다.”
- 로버트 시암파(Robert A. Ciampa), 3COM의 Synernetics 부문 네트워크 엔지니어
“스티븐스의 모든 책이 읽기 쉬우면서도 기술적으로 훌륭한 내용을 담고 있지만, 이 책이야말로 단연 최고다. 그 동안 많은 책이 TCP/IP 프로토콜들을 기술했지만, 스티븐스는 다른 경쟁 서적과는 비교할 수 없는 깊이와 현실 세계의 세부 사항을 제공한다. 이 책은 독자로 하여금 TCP/IP 내부를 들여다볼 수 있도록 도와주며, 프로토콜이 어떻게 동작하는지를 보여준다.”
- 스티븐 베이커(Steven Baker), 「UNIX Review」의 네트워킹 칼럼니스트
“개발자, 네트워크 관리자, 또는 TCP/IP 기술에 대한 이해를 필요로 하는 누구에게나 훌륭한 참고서다. TCP/IP 관련 주제들을 포괄적으로 다루며, 초심자를 위한 충분한 배경 지식과 해설을 제공하면서도 전문가들도 만족시킬 정도의 세부 사항을 제공한다.”
- 밥 윌리엄즈(Bob Williams), 넷매니지사의 마케팅 부문 부사장
“이 책의 차별성은 스티븐스가 프로토콜에 대해 설명하는 것뿐만 아니라 직접 프로토콜을 보여주고자 한다는 점이다. 스티븐스는 명쾌한 설명, 각 장 말미의 연습문제, 프로토콜 헤더 및 데이터에 관한 상세한 다이어그램, 실제 네트워크 트래픽 예제 등의 다양한 도구를 이용해 프로토콜들을 가르쳐준다.”
- 월터 진츠(Walter Zintz), 유닉스월드
“이론만 소개하는 책들과는 비교도 할 수 없다. 스티븐스는 다중 호스트 기반의 구성을 취해 TCP/IP 예제를 위한 설명에 그림들을 사용한다. 이 책은 이론을 보완하는 현실적 사례들에 기초한다. 이는 TCP/IP에 관한 기존의 책들과 구별되는 특징이며, 사례를 이용한 설명은 이 책의 내용을 이해하는 데 도움이 되고 많은 정보를 제공한다.”
- 피터 하버록(Peter M. Haverlock), IBM TCP/IP Development 컨설턴트
“이 책에는 훌륭한 그림들이 들어있으며, 깔끔한 문체를 사용해 읽기 쉽게 작성됐다. 한마디로 복잡한 주제를 이해하기 쉽게 만들어준 책이다. 모든 사람에게 필독서로 추천한다.”
- 엘리자베스 진칸(Elizabeth Zinkann), 시스템 관리자
“스티븐스는 훌륭한 교재이자 참고 서적을 저술했다. 이 책은 훌륭한 구성과 깔끔한 서술을 갖췄으며, IP, TCP, 기타 지원 프로토콜과 응용 등의 논리와 운영에 관한 세부 사항을 수많은 훌륭한 그림과 함께 기술한다.”
- 스콧 브래드너(Scott Bradner), 하버드 대학 OIT/NSD 컨설턴트
추천의 글
TCP/IP 아키텍처와 프로토콜들의 범위와 한계를 이해한다면 이는 미래의 혁신을 사고하는 데 있어서 견실한 기초로 작용할 것이다.
이 책을 읽으면서 작은 수의 네트워크와 응용 환경에 적용됐던 비교적 단순한 개념에서 얼마나 복잡하게 진화했는지를 생각해본다면 놀라울 것이다. 이 책의 각 장을 통해 TCP/IP가 새로운 운용 조건이나 도전 과제, 시스템 규모의 급속한 성장 등으로 인해 발생한 수많은 요구 사항을 수용하기 위해 얼마나 복잡해졌는지 알 수 있을 것이다.
이 책의 독특한 점은 TCP/IP 역사에 대해 진지하고 자세히 서술했다는 점이다. 이러한 서술을 통해 네트워킹 문제들에 대한 해결책이 어떻게 진화해왔는지에 대한 배경과 발전 사항을 살펴볼 수 있다. 이 책은 또한 해결되지 않은 문제 영역들을 밝히는 일과 서술의 정확성을 제고하기 위한 노력을 아끼지 않고 있다. 인터넷 작업의 정밀성과 안전성을 제고하고 만성적인 문제에 대한 해결책을 탐색하는 일에 열의를 갖고 있는 엔지니어라면 이 책에서 얻는 지식이 큰 도움이 될 것이다. 이 책의 저자들은 최신 인터넷 기술들을 면밀하게 서술한 점에 대해 칭송받을 만한 자격이 있다.
- 빈트 서프(Vint Cerf), 2011년 6월 우드허스트에서
목차
목차
- 1장. 소개
- 1.1 아키텍처에 관한 원칙
- 1.2 설계와 구현
- 1.3 TCP/IP 아키텍처와 프로토콜 모음
- 1.4 인터넷, 인트라넷, 엑스트라넷
- 1.5 애플리케이션의 설계
- 1.6 표준화 절차
- 1.7 구현과 소프트웨어 배포
- 1.8 인터넷 아키텍처에 관련된 공격
- 1.9 정리
- 1.10 참고 자료
- 2장. 인터넷 주소 구조
- 2.1 개요
- 2.2 IP 주소의 표현
- 2.3 IP 주소의 기본 구조
- 2.4 CIDR과 병합
- 2.5 특수 용도의 주소
- 2.6 할당
- 2.7 유니캐스트 주소 배정
- 2.8 IP 주소 관련 공격
- 2.9 정리
- 2.10 참고 자료
- 3장. 링크 계층
- 3.1 개요
- 3.2 이더넷과 IEEE 802 LAN/MAN 표준
- 3.3 전이중, 절전, 자동 협상, 802.1X 흐름 제어
- 3.4 브리지와 스위치
- 3.5 무선 LAN: IEEE 802.11(Wi-Fi)
- 3.6 PPP
- 3.7 루프백
- 3.8 MTU와 경로 MTU
- 3.9 터널링의 기초
- 3.10 링크 계층에 대한 공격
- 3.11 정리
- 3.12 참고 자료
- 4장. ARP: 주소 결정 프로토콜
- 4.1 개요
- 4.2 예제
- 4.3 ARP 캐시
- 4.4 ARP 프레임 형식
- 4.5 ARP 예제
- 4.6 ARP 캐시 타임아웃
- 4.7 프락시 ARP
- 4.8 무상 ARP와 주소 충돌 탐지(ACD)
- 4.9 arp 명령
- 4.10 임베디드 장치의 IPv4 주소 설정에 ARP 사용
- 4.11 ARP 관련 공격
- 4.12 정리
- 4.13 참고 자료
- 5장. 인터넷 프로토콜
- 5.1 개요
- 5.2 IPv4 헤더와 IPv6 헤더
- 5.4 IP 포워딩
- 5.5 모바일 IP
- 5.6 IP 데이터그램에 대한 호스트의 처리
- 5.7 IP 관련 공격
- 5.8 정리
- 5.9 참고 자료
- 6장. 시스템 구성: DHCP와 자동 구성
- 6.1 개요
- 6.2 동적 호스트 설정 프로토콜
- 6.3 무상태 주소 자동 설정
- 6.4 DHCP와 DNS의 상호작용
- 6.5 이더넷상에서 동작하는 PPP(PPPoE)
- 6.6 시스템 설정과 관련된 공격
- 6.7 정리
- 6.8 참고 자료
- 7장. 방화벽과 네트워크 주소 변환
- 7.1 개요
- 7.2 방화벽
- 7.3 네트워크 주소 변환(NAT)
- 7.4 NAT 횡단
- 7.5 패킷 필터링 방화벽과 NAT 설정
- 7.6 IPv4/IPv6 공존과 전환을 위한 NAT
- 7.7 방화벽 및 NAT와 관련된 공격
- 7.8 정리
- 7.9 참고 자료
- 8장. ICMPv4와 ICMPv6: 인터넷 제어 메시지 프로토콜
- 8.1 개요
- 8.2 ICMP 메시지
- 8.3 ICMP 오류 메시지
- 8.4 ICMP 조회/정보성 메시지
- 8.5 IPv6 이웃 발견
- 8.6 ICMPv4와 ICMPv6의 변환
- 8.7 ICMP와 관련된 공격
- 8.8 정리
- 8.9 참고 자료
- 9장. 브로드캐스팅과 로컬 멀티캐스팅
- 9.1 개요
- 9.2 브로드캐스팅
- 9.3 멀티캐스팅
- 9.4 IGMP와
- 9.5 IGMP 및 MLD와 관련된 공격
- 9.6 정리
- 9.7 참고 자료
- 10장. 사용자 데이터그램 프로토콜과 IP 단편화
- 10.1 개요
- 10.2 UDP 헤더
- 10.3 UDP 검사합
- 10.4 예제
- 10.5 UDP와 IPv6
- 10.6 경량 UDP
- 10.7 IP 단편화
- 10.8 UDP를 이용한 PMTUD
- 10.9 IP 단편화와 ARP/ND 사이의 상호작용
- 10.10 UDP 데이터그램의 최대 크기
- 10.11 UDP 서버 설계
- 10.12 UDP/IPv4와 UDP/IPv6 데이터그램의 변환
- 10.13 인터넷에서 UDP
- 10.14 UDP 및 IP 단편화와 관련된 공격
- 10.15 정리
- 10.16 참고 자료
- 11장. 이름 변환과 도메인 네임 시스템
- 11.1 개요
- 11.2 DNS 네임스페이스
- 11.3 네임 서버와 영역
- 11.4 캐싱
- 11.5 DNS 프로토콜
- 11.6 정렬 목록, 라운드로빈, 분할 DNS
- 11.7 개방형 DNS 서버와 DynDNS
- 11.8 투명성과 확장성
- 11.9 IPv4에서 IPv6로 DNS 변환(DNS64)
- 11.10 LLMNR과 mDNS
- 11.11 LDAP
- 11.12 DNS에 대한 공격
- 11.13 정리
- 11.14 참고 자료
- 12장. TCP: 전송 제어 프로토콜
- 12.1 개요
- 12.2 TCP 소개
- 12.3 TCP 헤더와 캡슐화
- 12.4 정리
- 12.5 참고 자료
- 13장. TCP 연결 관리
- 13.1 개요
- 13.2 TCP 연결 성립과 종료
- 13.3 TCP 옵션
- 13.4 TCP의 경로 MTU 발견
- 13.5 TCP 상태 천이
- 13.6 재설정 세그먼트
- 13.7 CP 서버 동작
- 13.8 TCP 연결 관리와 관련된 공격
- 13.9 정리
- 13.10 참고 자료
- 14장. TCP 타임아웃과 재전송
- 14.1 개요
- 14.2 간단한 타임아웃과 재전송 예제
- 14.3 재전송 타임아웃의 설정
- 14.4 타이머 기반 재전송
- 14.6 선택적 확인 응답을 사용하는 재전송
- 14.7 유사 타임아웃과 재전송
- 14.8 패킷 재순서화와 중복
- 14.9 목적지 지표
- 14.10 재패킷화
- 14.11 TCP 패킷 재전송과 관련된 공격
- 14.12 정리
- 14.13 참고 자료
- 15장. TCP 데이터 흐름과 윈도우 관리
- 15.1 개요
- 15.2 대화형 통신
- 15.3 지연된 확인 응답
- 15.4 네이글 알고리즘
- 15.5 흐름 제어와 윈도우 관리
- 15.6 긴급 메커니즘
- 15.7 윈도우 관리와 관련된 공격
- 15.8 정리
- 15.9 참고 자료
- 16장. TCP 혼잡 제어
- 16.1 개요
- 16.2 고전적인 알고리즘
- 16.3 표준 알고리즘들의 발전
- 16.4 유사 RTO 처리 - 아이펠 응답 알고리즘
- 16.5 확장 예제
- 16.6 혼잡 상태 공유
- 16.7 TCP 친화성
- 16.8 고속 환경에서의 TCP
- 16.9 지연 기반의 혼잡 제어
- 16.10 버퍼 블로트
- 16.11 능동적 큐 관리와 ECN
- 16.12 TCP 혼잡 제어와 관련된 공격
- 16.13 정리
- 16.14 참고 자료
- 17장. TCP 유지
- 17.1 개요
- 17.2 설명
- 17.3 TCP 유지와 관련된 공격
- 17.4 정리
- 17.5 참고 자료
- 18장. 보안: EAP, IPSec, TLS, DNSSEC, DKIM
- 18.1 개요
- 18.2 정보 보안의 기본 원리
- 18.3 네트워크 통신에서의 위협
- 18.4 기초적인 암호화와 보안 메커니즘
- 18.5 인증서, 인증기관(CA), PKI
- 18.6 TCP/IP 보안 프로토콜과 계층 구조
- 18.7 네트워크 접근 제어: 802.1X, 802.1AE, EAP, PANA
- 18.8 3계층 IP 보안(IPSec)
- 18.9 전송 계층 보안(TLS와 DTLS)
- 18.10 DNS 보안(DNSSEC)
- 18.11 DomainKeys Identified Mail(DKIM)
- 18.12 보안 프로토콜에서의 공격
- 18.13 정리
- 18.14 참고 자료
- 19장. 약어 사전
도서 오류 신고
정오표
정오표
[ p.139: 1행 ]
64비트로서
->
64바이트로서
[ p.140: 아래에서 4행 ]
12배로 정해진다.
->
12바이트 전송에 필요한 시간으로 정해진다.
[ p.407: 아래에서 5행 ]
주소 페이링이
->
주소 페어링이