장바구니 담기 close

장바구니에 상품을 담았습니다.

리눅스네트워크의이해

리눅스네트워크의이해

  • 크리스찬 벤베누띠 지음 | 공용준, 김세영, 박현지, 정지오 옮김
  • |
  • 에이콘출판
  • |
  • 2016-06-30 출간
  • |
  • 1136페이지
  • |
  • 188 X 250 mm
  • |
  • ISBN 9788960778719
★★★★★ 평점(10/10) | 리뷰(1)
판매가

50,000원

즉시할인가

45,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
45,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

목차

I부. 소개
1장. 도입
__기본 용어
__공통 코딩 패턴
__사용자 공간 도구
__소스코드 훑어보기
__기능이 패치로 제공될 때

2장. 주요 데이터 스트럭처
__소켓 버퍼 스트럭처: sk_buff Structure
__net_device 스트럭처

3장. 사용자 공간과 커널 간 인터페이스
__개요
__procfs와 sysctl
__ioctl
__넷링크
__설정 변경의 직렬화

II부. 시스템 초기화
4장. 알림 체인
__알림 체인의 목적
__개요
__체인 정의
__체인에 등록
__체인에 이벤트 알림
__네트워크 서브시스템의 알림 체인
__/proc 파일 시스템을 통한 튜닝
__4장에서 다룬 함수와 변수
__4장에서 다룬 파일과 디렉터리

5장. 네트워크 장치 초기화
__시스템 초기화 개요
__장치 등록과 초기화
__NIC 초기화의 기본 목적
__장치와 커널 간 통신
__초기화 옵션
__모듈 옵션
__장치 처리 계층 초기화: net_dev_init
__사용자 공간 헬퍼
__가상 장치
__/proc 파일 시스템을 사용한 튜닝
__5장에서 다룬 함수와 변수
__5장에서 다룬 파일과 디렉터리

6장. PCI 계층과 네트워크 인터페이스 카드
__6장에서 설명하는 데이터 스트럭처
__PCI NIC 디바이스 드라이버 등록
__전원 관리와 Wake-on-LAN
__PCI NIC 드라이버 등록의 예
__큰 그림
__/proc 파일 시스템을 통한 튜닝
__6장에서 다룬 함수와 변수
__6장에서 다룬 파일과 디렉터리

7장. 컴포넌트 초기화를 위한 커널 인프라스트럭처
__부팅 시 커널 옵션
__모듈 초기화 코드
__최적화된 매크로 기반 태깅
__부팅 시 초기화 루틴
__메모리 최적화
__/proc 파일 시스템을 통한 튜닝
__7장에서 다룬 함수와 변수
__7장에서 다룬 파일과 디렉터리

8장. 장치 등록과 초기화
__장치 등록 순간
__장치 해지 순간
__net_device 스트럭처의 할당
__NIC 등록과 해지 개요
__장치 초기화
__net_device 스트럭처의 구조
__장치 상태
__장치 등록과 해제
__장치 등록
__장치 등록 해제
__네트워크 장치의 활성화와 비활성화
__장치 큐잉 정책 상태 갱신
__사용자 공간에서 장치 관련 정보의 설정
__가상 장치
__락킹
__/proc 파일 시스템을 통한 튜닝
__8장에서 다룬 함수와 변수
__8장에서 다룬 파일과 디렉터리

III부. 전송과 수신
9장. 인터럽트와 네트워크 드라이버
__결정과 트래픽 방향
__프레임 수신 시 드라이버 알림
__인터럽트 핸들러
__softnet_data 스트럭처

10장. 프레임 수신
__기타 기능과 상호작용
__장치의 활성화와 비활성화
__큐
__커널의 프레임 리셉션 알림: NAPI와 netif_rx
__디바이스 드라이버와 커널의 구인터페이스: netif_rx의 첫 부분
__혼잡 관리
__NET_RX_SOFTIRQ의 처리: net_rx_action

11장. 프레임 전송
__전송의 활성화와 비활성화

12장. 인터럽트에 대한 이해와 참고 사항
__통계
__/proc와 sysfs 시스템을 통한 튜닝
__III부에서 다룬 함수와 변수
__III부에서 다룬 파일과 디렉터리

13장. 프로토콜 핸들러
__네트워크 스택 개요
__적절한 프로토콜 핸들러의 실행
__프로토콜 핸들러 구조
__프로토콜 핸들러 등록
__이더넷과 IEEE 802.3 프레임
__/proc 파일 시스템을 통한 튜닝
__13장에서 다룬 함수와 변수
__13장에서 다룬 파일과 디렉터리

IV부. 브리징
14장. 브리징: 개념
__리피터, 브리지, 라우터
__브리지와 스위치
__호스트
__브리지로 LAN 병합
__다른 LAN 기술을 브리징
__주소 학습
__다중 브리지

15장. 브리징: 스패닝 트리 프로토콜
__기본 용어
__계층적으로 스위치된 L2 토폴로지의 예
__스패닝 트리 프로토콜의 기본 구성 요소
__브리지와 포트 ID
__브리지 프로토콜 데이터 유닛(BPDU)
__활성화된 토폴로지의 정의
__타이머
__토폴로지 변경
__BPDU 캡슐화
__설정 BPDU의 전송
__인입 프레임 처리
__수렴 시간
__새로운 스패닝 트리 프로토콜에 대한 개괄

16장. 브리징: 리눅스에서 구현
__브리지 장치의 개념
__주요한 데이터 스트럭처
__브리징 코드의 초기화
__브리지 장치와 브리지 포트 생성
__새로운 브리지 장치 생성
__브리지 장치의 설정 루틴
__브리지 삭제
__브리지에 포트 추가
__브리지 장치 활성화와 비활성화
__브리지 포트 활성화와 비활성화
__브리지 포트의 상태 변경
__큰 그림
__포워딩 데이터베이스
__인입 트래픽 처리
__브리지 장치에 전송
__스패닝 트리 프로토콜(STP)
__netdevice 알림 체인

17장. 브리징: 기타 주제
__사용자 공간 설정 도구
__/proc 파일 시스템을 통한 튜닝
__/sys 파일 시스템을 통한 튜닝
__통계
__IV부에서 다룬 데이터 스트럭처
__IV부에서 다룬 함수와 변수
__IV부에서 다룬 파일과 디렉터리

V부. 인터넷 프로토콜 버전 4(IPv4)
18장. IPv4: 개념
__IP 프로토콜: 개요
__IP 헤더
__IP 옵션
__패킷 단편화/단편화 제거
__체크섬

19장. IPv4: 리눅스 기초와 특징
__주요 IPv4 스트럭처
__일반 패킷 처리
__IP 옵션

20장. IPv4: 포워딩과 로컬 전달
__포워딩
__로컬 전송

21장. IPv4: 전송
__전송을 위한 주요 함수
__인접 서브시스템으로의 인터페이스

22장. IPv4: 단편화 처리
__IP 단편화
__IP 단편화 제거

23장. IPv4: 기타 주제
__수명이 긴 IP 피어 정보
__IP 헤더의 ID 필드 선택
__IP 통계
__IP 설정
__IP 오버 IP
__IPv4: 무엇이 문제인가?
__/proc 파일 시스템을 통한 튜닝
__V부에서 다룬 데이터 스트럭처
__V부에서 다룬 함수와 변수
__V부에서 다룬 파일과 디렉터리

24장. 4계층 프로토콜과 원시 IP 다루기
__가용 L4 프로토콜
__L4 프로토콜 등록
__L3에서 L4로 전송: ip_local_deliver_finish
__IPv4 대 IPv6
__/proc 파일 시스템을 통한 튜닝
__24장에서 다룬 함수와 변수

25장. ICMPv4
__ICMP 헤더
__ICMP 페이로드
__ICMP 타입
__ICMP 프로토콜을 이용한 애플리케이션
__큰 그림
__프로토콜 초기화
__25장에서 다룬 데이터 스트럭처
__ICMP 메시지 전송
__ICMP 메시지 수신
__ICMP 통계
__전송 계층으로 오류 통지 전달
__/proc 파일 시스템을 통한 튜닝
__25장에서 다룬 함수와 변수
__25장에서 다룬 파일과 디렉터리

VI부. 인접 서브시스템
26장. 인접 서브시스템: 개념
__인접 호스트란?
__인접 프로토콜이 필요한 이유
__공유 매체
__리눅스 구현
__인접 프로토콜 프록싱
__인접 상태와 네트워크 접근 불가 탐색(NUD)

27장. 인접 서브시스템: 인프라스트럭처
__주요 데이터 스트럭처
__L3 프로토콜과 인접 프로토콜의 공통 인터페이스
__인접 인프라스트럭처의 일반적인 작업
__neighbour 스트럭처의 참조 카운트
__neighbour 항목 생성
__이웃 제거
__프록시로 동작
__L2 헤더 캐싱
__프로토콜 초기화와 제거
__서브시스템 간 상호작용
__인접 프로토콜과 L3 전송 함수의 상호작용
__큐잉

28장. 인접 서브시스템: 주소 결정 프로토콜(ARP)
__ARP 패킷 포맷
__ARP 트랜잭션의 예
__Gratuitous ARP
__다중 인터페이스에서의 응답
__설정 가능한 ARP 옵션
__ARP 프로토콜 초기화
__neighbour 스트럭처의 초기화
__ARP 패킷의 송신과 수신
__인입 ARP 패킷 처리
__프록시 ARP
__예제
__외부 이벤트
__ARPD
__역주소 결정 프로토콜(RARP)
__ND(IPv6)에서 ARP(IPv4)보다 개선된 점

29장. 인접 서브시스템: 기타 주제
__이웃의 시스템 관리
__/proc 파일 시스템을 통한 튜닝
__VI부에서 다룬 데이터 스트럭처
__VI부에서 다룬 파일과 디렉터리

VII부. 라우팅
30장. 라우팅: 개념
__라우터와 라우트, 라우팅 테이블
__라우팅의 필수 요소
__라우팅 테이블
__룩업
__패킷 수신과 패킷 전송

31장. 라우팅: 고급
__정책 라우팅의 개념
__다중 경로 라우팅의 개념
__다른 커널 서브시스템과의 상호작용
__라우팅 프로토콜 데몬
__Verbose 모니터링
__ICMP_REDIRECT 메시지
__공유 미디어
__역방향 필터링

32장. 라우팅: 리눅스 구현
__커널 옵션
__주요 데이터 스트럭처
__라우트와 주소 범위
__1차, 2차 IP 주소
__제네릭 헬퍼 루틴과 매크로
__전역 락
__라우팅 서브시스템 초기화
__외부 이벤트
__다른 서브시스템과의 상호작용

33장. 라우팅: 라우팅 캐시
__라우팅 캐시 초기화
__해시 테이블 구성
__다중 경로 캐싱
__DST와 호출 프로토콜 간의 인터페이스
__라우팅 캐시 플러싱
__가비지 컬렉션
__인출 ICMP REDIRECT 속도 제한

34장. 라우팅: 라우팅 테이블
__라우팅 해시 테이블 구성
__라우팅 테이블 초기화
__라우트 추가, 삭제
__정책 라우팅과 정책 라우팅의 영향을 받는 라우팅 테이블 정의

35장. 라우팅: 룩업
__상위 레벨 관점의 룩업 함수
__헬퍼 루틴
__테이블 룩업: fn_hash_lookup
__fib_lookup 함수
__수신과 전송을 위한 함수 설정
__입력/출력 라우팅 루틴의 일반적인 구조
__입력 라우팅
__출력 라우팅
__다음 홉 선택상의 다중 경로의 영향
__정책 라우팅
__출발지 라우팅
__분류자 기반의 정책 라우팅과 라우팅 테이블

36장. 라우팅: 기타 주제
__사용자 공간 설정 도구
__통계
__/proc 파일 시스템을 통한 튜닝
__포워딩 활성화와 비활성화
__VII부에서 다룬 데이터 스트럭처
__VII부에서 다룬 함수와 변수
__VII부에서 다룬 파일과 경로

도서소개

★ 이 책에서 다루는 내용 ★

■ 네트워킹에서의 주요 문제
■ 인접인프라스트럭처와 프로토콜(ARP)
■ 네트워크인터페이스카드(NIC)장치 드라이버
■ 브리징
■ 시스템 초기화
■ 라우팅
■ 계층 2(연결 계층) 작업과 구현
■ ICMP
■ 계층 3(IPv4)작업과 구현

★ 이 책의 대상 독자 ★

이 책은 네트워킹에 대한 지식을 갖고 있는 사람과 인터넷 엔진(즉, IP 등)이 어떻게 운영체제의 첫 번째 계층 상단에서 동작하는지 궁금한 사람들에게 유익할 것이다. 하지만 각 주제에 대한 이론적인 소개도 해뒀으므로, 입문자들도 금방 따라갈 수 있을 것이다. 어려운 주제들은 충분한 예제들을 통해 이해하기 쉽게 했다.
리눅스는 기본 IP만 지원하지 않고, 꽤 많은 고급 기능을 제공한다. 이 기능들이SMP(Symmetric Multiprocessing)와 커널 선점 방식 같은 커널의 특징들과 함께 충분히 제 역할을 발휘하기 위해서는 섬세하게 다뤄져야 한다. 리눅스 커널의 네트워킹 코드가 독자들이 학습하고 지식을 쌓기 위한 좋은 장이 될 것이다.
또한 독자가 내 의도를 이해하고 배우는 데 흥미를 가진다면 이 책으로부터 만족스러울 만큼 충분한 내용들을 얻을 수 있을 것이다.

★ 이 책의 구성 ★

네트워킹 코드에서 다룰 주제에 따라 1개의 장(chapter)만으로 충분한 것도 있지만, 7개의 장까지 할애한 주제도 있다. 여러 장을 차지할 만큼 복합적이거나 규모가 큰 주제의 경우, 먼저 해당 주제에 대한 이론적인 부분과 개요를 시작 부분에서 다룬다. 모든 참고 사항과 보조 항목들은 해당 부의 마지막 장 ‘기타’ 절에 있다. 얼마나 큰 주제 항목이든 장이 구성되는 틀은 동일하다.
각 주제별로 구현에 대한 설명은 다음과 같은 항목들을 포함한다.

ㆍ 큰 그림: 해당 커널 컴포넌트가 네트워크 스택의 어디에 해당하는지 보여준다.
ㆍ 주요 데이터 스트럭처와 그림에 대한 간략한 설명: 이들이 서로 어떻게 연관돼 있는지 설명해준다.
ㆍ 컴포넌트와 인터페이스 관계인 다른 커널 기능에 대한 설명: 예를 들어 알림 체인이나 데이터 스트럭처는 상호 참조적이다. 네트워킹 코드를 뛰어넘는 수많은 훅(hook)들을 고려했을 때 방화벽은 이러한 커널 특징의 예 중 하나다.
ㆍ 플로차트의 확장 가능한 사용법, 코드 이해를 도울 그림, 규모가 크고 복잡한 함수에 대한요약된 로직

참고 내용들은 모두 다음과 같은 항목들을 포함하고 있다.

ㆍ 가장 중요한 데이터 스트럭처에 대한 필드별 상세 설명
ㆍ 빠르게 참고해볼 수 있는 모든 함수와 매크로, 데이터 스트럭처에 대한 간략한 설명이 담긴 표
ㆍ 해당 장에서 다룬 커널 소스 구조에 위치해 있는 파일 목록
ㆍ 해당 장의 주제가 된 내용과 커널을 설정하기 위해 사용되는 가장 일반적인 사용자 공간도구들 간의 인터페이스에 대한 설명
ㆍ /proc에 생성되는 파일에 대한 설명

리눅스 커널의 네트워킹 코드는 이동 표적일 뿐만 아니라 패스트 러너(fast runner)다. 이 책에서 모든 네트워킹 기능을 다루지는 않는다. 이 책을 읽는 중에도 신규 기능들은 추가되고 있을 것이다. 개인 사용자 혹은 단체, 대학 프로젝트에서의 요청으로 많은 신규 기능이 생겨나지만, 이 기능들이 전반적인 사용자에게 유용한 것이라고 판단됐을 때 공식 커널에 등록된다. 이러한 기능들에 대한 자세한 구현 내용을 다루면서 기능이 포괄적으로 구현됐을 때 어떠한 양상을 보일지에 대한 아이디어도 제공하고자 노력했다. 이는 코드를 수정하거나 어떻게 신규 기능을 구현할지 배울 때 매우 유용할 것이다. 예를 들어 어떠한 기능이든지 간에 다음 항목들을 고려해봐야 한다.

ㆍ 어떻게 데이터 스트럭처와 락 기능을 설계할 것인가?
ㆍ 사용자 공간 환경설정 도구가 필요한가? 필요하다면 기존 시스템이나 ioctl 명렁어, /proc 파일, 넷링크 소켓을 호출해 커널과 상호작용하는가?
ㆍ 신규 알림 체인이 필요하진 않은가? 그리고 기존 체인에 등록해야 하지는 않는가?
ㆍ 방화벽과는 어떠한 관계가 있는가?
ㆍ 캐시나 가비지 컬렉션 메커니즘, 통계 등에 대한 요구는 없는가?

이 책에서 다루는 주제들은 다음과 같다.

■ 사용자 공간과 커널 간의 인터페이스
3장에서는 커널 내에서 대응되는 대상들과 상호작용하기 위해 사용되는 환경설정 도구와 통신하기 위한 메커니즘에 대한 간략한 개요가 나온다. 자세히 다루지는 않을 예정이지만, 커널 코드의 해당 부분에 대해 이해하는 데 도움이 될 것이다.
■ 시스템 초기화
II부에서는 네트워킹 코드의 주요 컴포넌트를 초기화하는 방법을 설명하고, 어떻게 네트워크 장치가 등록되고 초기화되는지 다룬다.
■ 디바이스 드라이버와 프로토콜 핸들러 간의 인터페이스
III부는 어떻게 인입(들어오는 혹은 수신하는) 패킷이 디바이스 드라이버에 의해 상위 계층 프로토콜로 전달되는지, 그리고 그 반대 방향 또한 어떻게 전달되는 것인지에 대해 상세히 설명한다.
■ 브리징(bridging)
IV부에서는 투명 브리징(transparent bridging)과 스패닝 트리 프로토콜(spanning tree protocol), L3에 라우팅하는 상대인 L2에 대해 설명한다.
■ IPv4(인터넷 프로토콜 버전 4)
V부에서는 IPv4 계층에서 패킷들의 수신과 전달, 로컬 전송이 어떻게 이뤄지는 것인지 설명한다.
■ IPv4와 전송 계층(L4) 프로토콜 간의 인터페이스
20장은 로컬 호스트로 전달되도록 요청된 IPv4 패킷이 어떻게 전송 계층(L4) 프로토콜로 전달되는지에 대해 다룬다(TCP, UDP 등).
■ ICMP(Internet Control Message Protocol)
25장은 ICMP의 구현에 대해 설명한다(이 책에서 다루는 유일한 전송 계층(L4) 프로토콜이다).
■ 인접 프로토콜
인접 프로토콜들은 주어진 자신의 IP 주소들을 고려해 로컬 네트워크 주소를 찾는다. VI부는 다양한 프로토콜의 일반적인 구조와 IPv4가 사용하는 ARP 인접 프로토콜에 대한 세부 내용을 다룬다.
■ 라우팅
이 책에서 가장 많은 부분인 VII부에서는 라우팅 캐시와 테이블에 대해 다룬다. 정책 라우팅, 다중 경로와 같은 고급 기능들에 대해서도 다룬다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.