본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

리눅스 커널 네트워킹 커널 코드로 배우는 리눅스 네트워킹의 구현과 이론

위키북스 유닉스&리눅스 시리즈 2
라미 로젠 , 이대엽 (엮음) 지음 | 강광훈 옮김 | 위키북스 | 2016년 09월 12일 출간
클로버 리뷰쓰기

이 책의 다른 상품 정보

  • 정가 : 42,000원
    판매가 : 37,800 [10%↓ 4,200원 할인]
  • 혜택 :
    [기본적립] 2100원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 도서상태 : 절판

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791158390471(1158390475)
쪽수 716쪽
크기 190 * 241 * 39 mm /1329g 판형알림
이 책의 원서/번역서 Linux Kernel Networking: Implementation and Theory / Rami Rosen

책소개

이 책이 속한 분야

『리눅스 커널 네트워킹』은 최신의 리눅스 네트워킹 서브 시스템을 다루는 책이다. 리눅스 네트워킹 서브 시스템이 기초적이고, 안정적이지만 수많은 프로토콜과 기술이 녹아들어 있는 네트워킹 서브 시스템 코드를 분석한다는 것은 쉽지 않다. 그동안 리눅스 커널 코어나 드라이버에 관련한 책은 많이 있었지만, 리눅스 네트워킹 서브시스템의 구현에 대한 자세한 세부사항을 알려주는 책은 거의 없었다. 이 책은 리눅스 네트워킹 서브 시스템의 전반적인 흐름을 파악할 수 있게 하며, 요즘 같이 리눅스 커널 버전이 하루가 다르게 올라가는 세상에서 최신 버전으로 리눅스 네트워킹을 이해하는 데 많은 도움이 될 것이다.

목차

▣ 01장: 들어가며
리눅스 네트워크 스택
네트워크 장치
네트워크 장치의 NAPI(New API)
패킷의 수신과 송신
소켓 버퍼
리눅스 커널 네트워킹 개발 모델
정리

▣ 02장: 넷링크 소켓
넷링크 계열
넷링크 소켓 라이브러리
sockaddr_nl 구조체
TCP/IP 네트워킹 제어를 위한 사용자 공간 패키지
커널 넷링크 소켓
넷링크 메시지 헤더
NETLINK_ROUTE 메시지
라우팅 테이블에서의 라우팅 항목의 추가와 삭제
일반 넷링크 프로토콜
일반 넷링크 메시지 생성과 전송
소켓 감시 인터페이스
정리
빠른 참조

▣ 03장: 인터넷 제어 메시지 프로토콜(ICMP)
ICMPv4
ICMPv4 초기화
ICMPv4 헤더
ICMPv4 메시지 수신
ICMPv4 메시지 전송: “목적지에 연결할 수 없음”
- 코드 2: ICMP_PROT_UNREACH(프로토콜에 연결할 수 없음)
- 코드 3: ICMP_PORT_UNREACH (“포트에 연결할 수 없음”)
- 코드 4: ICMP_FRAG_NEEDED
- 코드 5: ICMP_SR_FAILED
ICMPv6
ICMPv6 초기화
ICMPv6 헤더
ICMPv6 메시지 수신
ICMPv6 메시지 전송
- 예제: “홉 제한 시간 초과” ICMPv6 메시지 전송
- 예제: “단편화 재조립 시간 초과” ICMPv6 메시지 전송
- 예제: “목적지에 연결할 수 없음”/“포트에 연결할 수 없음” ICMPv6 메시지 전송
- 예제: “단편화 필요” ICMPv6 메시지 전송
- 예제: “매개변수 문제” ICMPv6 메시지 전송
ICMP 소켓(“핑 소켓”)
정리
빠른 참조
- 함수
- 표
procfs 항목
- sysctl_icmp_echo_ignore_all
- sysctl_icmp_echo_ignore_broadcasts
- sysctl_icmp_ignore_bogus_error_responses
- sysctl_icmp_ratelimit
- sysctl_icmp_ratemask
- sysctl_icmp_errors_use_inbound_ifaddr
iptables를 이용해 “목적지에 연결할 수 없음” 메시지 생성하기

▣ 04장: IPv4
IPv4 헤더
IPv4 초기화
IPv4 패킷 수신
IPv4 멀티캐스트 패킷 수신
IP 옵션
타임스탬프 옵션
경로 저장 옵션
IP 옵션과 단편화
IP 옵션 만들기
IPv4 패킷 전송
단편화
빠른 경로
느린 경로
역단편화
포워딩
정리
빠른 참조
- 함수
- 매크로

▣ 05장: IPv4 라우팅 서브시스템
포워딩과 FIB
라우팅 서브시스템의 탐색 수행
FIB 테이블
FIB 정보
캐싱
다음 홉(fib_nh)
- FIB 다음 홉 예외
정책 라우팅
FIB 별칭(fib_alias)
ICMPv4 재지정 메시지
ICMPv4 재지정 메시지 생성
ICMPv4 재지정 메시지 수신
IPv4 라우팅 캐시
- Rx 경로
- Tx 경로
정리
빠른 참조
- 함수
- 매크로
- 표
- 경로 플래그

▣ 06장: 고급 라우팅
멀티캐스트 라우팅
IGMP 프로토콜
멀티캐스트 라우팅 테이블
멀티캐스트 포워딩 캐시(MFC)
멀티캐스트 라우터
Vif 장치
IPv4 멀티캐스트 Rx 경로
ip_mr_forward() 함수
ipmr_queue_xmit() 함수
ipmr_forward_finish() 함수
멀티캐스트 통신의 TTL
정책 라우팅
정책 라우팅 관리
정책 라우팅 구현
다중경로 라우팅
정리
빠른 참조
- 함수
- 매크로
- procfs 멀티캐스트 항목
- 표

▣ 07장: 리눅스 이웃 서브시스템
이웃 서브시스템의 핵심 요소
이웃 생성과 해제
사용자 공간과 이웃 서브시스템 간의 상호작용
네트워크 이벤트 처리
ARP 프로토콜(IPv4)
ARP: 의뢰 요청 전송
ARP: 의뢰 요청 수신과 응답
NDISC 프로토콜 (IPv6)
중복 주소 탐지(DAD)
NDISC: 의뢰 요청 전송
NDISC: 이웃 의뢰와 알림 수신
정리
빠른 참조
- 함수
- 매크로
- neigh_statistics 구조체
- 표

▣ 08장: IPv6
간단한 IPv6 소개
IPv6 주소
특수한 주소
멀티캐스트 주소
IPv6 헤더
확장 헤더
IPv6 초기화
자동설정
IPv6 패킷 수신
로컬 전달
포워딩
IPv6 멀티캐스트 패킷 수신
멀티캐스트 리스너 탐색(MLD)
멀티캐스트 그룹 참가와 탈퇴
MLDv2 멀티캐스트 리스너 보고
멀티캐스트 출발지 필터링(MSF)
- 출발지 필터링을 이용한 멀티캐스트 그룹 참가와 탈퇴
- 예제: 출발지 필터링을 위한 MCAST_MSFILTER 사용
IPv6 패킷 전송
IPv6 라우팅
정리
빠른 참조
- 함수
- 매크로
- 표
- 특수한 주소
- IPv6 라우팅 테이블 관리

▣ 09장: 넷필터
넷필터 프레임워크
넷필터 훅
넷필터 훅의 등록
연결 추적
연결 추적 초기화
연결 추적 항목
연결 추적 도우미와 예상
IPTables
로컬 호스트로 전달
패킷 포워딩
네트워크 주소 변환(NAT)
NAT 초기화
NAT 훅 콜백과 연결 추적 훅 콜백
NAT 훅 콜백
연결 추적 확장
정리
빠른 참조
- 함수
- 매크로
- 표
- 도구와 라이브러리

▣ 10장: IPsec
개요
IKE(인터넷 키 교환)
IPsec와 암호화
XFRM 프레임워크
XFRM 초기화
XFRM 정책
XFRM 상태(보안 연관)
ESP 구현(IPv4)
IPv4 ESP 초기화
IPsec 패킷 수신(전송 모드)
IPsec 패킷 전송(전송 모드)
XFRM 탐색
IPsec에서의 NAT 이동
NAT-T 동작 모드
정리
빠른 참조
- 함수
- 표

▣ 11장: 4계층 프로토콜
소켓
소켓 생성
UDP(사용자 데이터그램 프로토콜)
UDP 초기화
UDP를 이용한 패킷 전송
네트워크 계층(L3)에서 UDP로 패킷 수신
TCP(전송 제어 프로토콜)
TCP 헤더
TCP 초기화
TCP 타이머
TCP 소켓 초기화
TCP 연결 설정
네트워크 계층(L3)에서 TCP로 패킷 수신
TCP를 이용한 패킷 송신
SCTP(스트림 제어 전송 프로토콜)
SCTP 패킷과 청크
SCTP 공통 헤더
SCTP 청크 헤더
SCTP 청크
SCTP 연관
SCTP 연관 설정
SCTP로 패킷 수신
SCTP를 이용한 패킷 송신
SCTP 하트비트(HEARTBEAT)
SCTP 멀티스트리밍
SCTP 멀티호밍
DCCP(데이터그램 혼잡 제어 프로토콜)
DCCP 헤더
DCCP 초기화
DCCP 소켓 초기화
네트워크 계층(L3)에서 DCCP로 패킷 수신
DCCP를 이용한 패킷 송신
DCCP와 NAT
정리
빠른 참조
- 함수
- 매크로
- 표

▣ 12장: 리눅스의 무선
MAC80211 서브시스템
802.11 MAC 헤더
프레임 제어
다른 802.11 MAC 헤더 멤버
네트워크 토폴로지
기반구조 BSS
IBSS 또는 애드 혹 모드
절전 모드
절전 기능 진입
절전 기능에서 나가기
멀티캐스트/브로드캐스트 버퍼 처리
관리 계층(MLME)
검사
인증
연관
재연관
Mac80211 구현
Rx 경로
Tx 경로
단편화
Mac80211 debugfs
무선 모드
높은 처리량(ieee802.11n)
패킷 집합
- 블록 확인응답 요청(BAR)
- 블록 확인응답
메시 네트워킹(802.11s)
HWMP 프로토콜
메시 네트워크 설정
리눅스 무선 개발 과정
정리
빠른 참조
- 함수
- 표

▣ 13장: 인피니밴드
RDMA와 인피니밴드 개요
RDMA 스택 구성
RDMA 기술의 장점
인피니밴드의 하드웨어 구성 요소
인피니밴드의 주소
인피니밴드 기능
인피니밴드 패킷
관리 개체
RDMA 자원
RDMA 장치
보호 도메인(PD)
주소 처리(AH)
메모리 영역(MR; Memory Region)
빠른 메모리 영역(FMR; Fast Memory Region) 풀
메모리 윈도우(MW; Memory Window)
완료 큐(CQ; Completion Queue)
신뢰적 확장 연결(XRC) 도메인
공유 수신 큐(SRQ)
큐 쌍(QP)
- QP 전송 타입
- QP 상태 기계
작업 요청 처리
RDMA 아키텍처에서 지원되는 연산
- 작업 완료 상태
멀티캐스트 그룹
사용자 공간과 커널 수준 RDMA API의 차이점
정리
빠른 참조
- 함수

▣ 14장: 고급 주제
네트워크 네임스페이스
네임스페이스 구현
UTS 네임스페이스 구현
네트워크 네임스페이스 구현
- 네트워크 네임스페이스 객체(struct net)
- 네트워크 네임스페이스 구현: 다른 자료구조
네트워크 네임스페이스 관리
- 다른 네트워크 네임스페이스로 네트워크 인터페이스 옮기기
- 두 네트워크 네임스페이스 사이의 통신
cgroup
cgroup 구현
cgroup 장치 컨트롤러: 간단한 예제
cgroup 메모리 컨트롤러: 간단한 예제
cls_cgroup 분류자
cgroup 서브시스템 마운트
바쁜 폴링 소켓
전역적으로 활성화하기
소켓마다 활성화하기
조율과 구성
성능
리눅스 블루투스 서브시스템
HCI 계층
- HCI 장치
- HCI와 하위 계층(링크 컨트롤러)
- HCI와 상위 계층(L2CAP/SCO)
HCI 연결
L2CAP
BNEP
- 블루투스 패킷 수신: 다이어그램
L2CAP 확장 기능
블루투스 도구
IEEE 802.15.4와 6LoWPAN
이웃 탐색 최적화
리눅스 커널 6LoWPAN
- 6LoWPAN 초기화
근거리 무선 통신(NFC)
NFC 태그
NFC 장치
통신 모드와 동작 모드
호스트-컨트롤러 인터페이스
리눅스 NFC 지원
- NFC 소켓
- NFC 넷링크 API
- NFC 초기화
- 드라이버 API
사용자 공간 아키텍처
안드로이드 NFC
알림 연쇄
PCI 서브시스템
웨이크 온 랜(WOL; Wake-On-LAN)
티밍 네트워크 장치
PPPoE 프로토콜
PPPoE 헤더
PPPoE 초기화
- PPPoX 소켓
PPPoE를 이용한 패킷 송수신
안드로이드
안드로이드 네트워킹
안드로이드 내부: 참고 자료
정리
빠른 참조
- 함수
- 매크로

▣ 부록A: 리눅스 API
sk_buff 구조체
skb_shared_info 구조체
net_device 구조체
RDMA(원격 DMA)
RDMA 장치
- ib_register_client() 함수
- ib_client 구조체
- ib_unregister_client() 함수
- ib_get_client_data() 함수
- ib_set_client_data()
- INIT_IB_EVENT_HANDLER 매크로
- ib_register_event_handler() 함수
- ib_event_handler 구조체
- ib_event 구조체
- ib_unregister_event_handler() 함수
- ib_query_device() 함수
- ib_query_port() 함수
- rdma_port_get_link_layer() 함수
- ib_query_gid() 함수
- ib_query_pkey() 함수
- ib_modify_device() 함수
- ib_modify_port() 함수
- ib_find_gid() 함수
- ib_find_pkey() 함수
- rdma_node_get_transport() 함수
- rdma_node_get_transport() 함수
- ib_mtu_to_int() 함수
- ib_width_enum_to_int() 함수
- ib_rate_to_mult() 함수
- ib_rate_to_mbps() 함수
보호 도메인(PD; Protection Domain)
- ib_alloc_pd() 함수
- ib_dealloc_pd() 함수
확장된 신뢰성 있는 연결(XRC)
- ib_alloc_xrcd() 함수
- ib_dealloc_xrcd_cq() 함수
공유 수신 큐(SRQ)
- ib_create_srq() 함수
- ib_modify_srq() 함수
- ib_query_srq() 함수
- ib_destroy_srq() 함수
- ib_post_srq_recv() 함수
주소 처리(AH)
- ib_create_ah() 함수
- ib_init_ah_from_wc() 함수
- ib_create_ah_from_wc() 함수
- ib_modify_ah() 함수
- ib_query_ah() 함수
- ib_destroy_ah() 함수
멀티캐스트 그룹
- ib_attach_mcast() 함수
- ib_detach_mcast() 함수
완료 큐(CQ; Completion Queue)
- ib_create_cq() 함수
- ib_resize_cq() 함수
- ib_modify_cq() 함수
- ib_peek_cq() 함수
- ib_req_notify_cq() 함수
- ib_req_ncomp_notif() 함수
- ib_poll_cq() 함수
- ib_destroy_cq() 함수
큐 쌍(QP; Queue Pair)
- ib_create_qp() 함수
- ib_modify_qp() 함수
- ib_query_qp() 함수
- ib_open_qp() 함수
- ib_close_qp() 함수
- ib_post_recv() 함수
- ib_post_send() 함수
메모리 윈도우(MW)
- ib_alloc_mw() 함수
- ib_bind_mw() 함수
- ib_dealloc_mw() 함수
메모리 영역(MR)
- ib_get_dma_mr() 함수
- ib_dma_mapping_error() 함수
- ib_dma_map_single() 함수
- ib_dma_unmap_single() 함수
- ib_dma_map_single_attrs() 함수
- ib_dma_unmap_single_attrs() 함수
- ib_dma_map_page() 함수
- ib_dma_unmap_page() 함수
- ib_dma_map_sg() 함수
- ib_dma_unmap_sg()
- ib_dma_map_sg_attr() 함수
- ib_dma_unmap_sg() 함수
- ib_sg_dma_address() 함수
- ib_sg_dma_len() 함수
- ib_dma_sync_single_for_cpu() 함수
- ib_dma_sync_single_for_device() 함수
- ib_dma_alloc_coherent() 함수
- ib_dma_free_coherent() 함수
- ib_reg_phys_mr() 함수
- ib_rereg_phys_mr() 함수
- ib_query_mr() 함수
- ib_mr_attr 구조체
- ib_dereg_mr() 함수

▣ 부록B: 네트워크 관리
arp
arping
arptables
arpwatch
ApacheBench (ab)
brctl
conntrack-tools
crtools
ebtables
ether-wake
ethtool
깃(git)
hciconfig
hcidump
hcitool
ifconfig
ifenslave
iperf
iperf 사용
iproute2
iptables와 iptables6
ipvsadm
iw
iwconfig
libreswan 프로젝트
l2ping
lowpan-tools
lshw
lscpu
lspci
mrouted
nc
ngrep
netperf
netsniff-ng
netstat
nmap(네트워크 변환기)
openswan
OpenVPN
packeth
ping
pimd
poptop
ppp
pktgen
radvd
route
RP-PPPoE
sar
smcroute
snort
suricata
strongSwan
sysctl
taskset
tcpdump
top
tracepath
traceroute
tshark
tunctl
udevadm
unshare
vconfig
wpa_supplicant
wireshark
XORP

▣ 부록C: 용어해설

책 속으로

1장에서는 리눅스 커널과 리눅스 네트워크 스택의 전반적인 개요를 확인할 수 있다. 1장의 다른 주제로는 네트워크 장치, 소켓 버퍼, Rx와 Tx 경로 구현이 있다. 1장은 리눅스 커널 네트워킹 개발 모델로 마무리한다.

2장에서는 넷링크 소켓에 관해 배운다. 넷링크 소켓은 사용자 영역과 커널의 양방향 통신을 위한 메커니즘을 제공하고, 네트워킹 서브시스템뿐만 아니라 다른 서브시스템에서도 사용된다. 일반 넷링크 소켓에 관해서도 2장에서 배울 수 있는데, 일반 넷링크 소켓은 고급 넷링크 소켓으로 여겨질 수 있으며, 12장과 커널 네트... 더보기

출판사 서평

『리눅스 커널 네트워킹』은 현재 리눅스 네트워킹 구현과 내부 이론의 깊이 있는 여정을 안내할 것이다. 리눅스 커널 네트워킹은 그 자체가 복잡한 주제이라서 이 책에서는 네트워킹과 직접적으로 관련되지 않은 주제로 여러분을 부담스럽게 하지 않을 것이다. 이 책은 여러분이 찾는 것과 직접적으로 연관되지 않는 성가신 코드로 지나치게 부담스럽게 하지도 않는다. 여러분이 필요한 내용만 보게 될 것이고, 각 장에서는 당면 주제를 깊이 있게 설명하고 각 장의 끝에서는 빠르게 본문 내용을 참조할 수 있다.

『리눅스 커널 네트워킹』은 네트워킹이 ... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품