목차
제1장 네트워크 프로그래밍을 위한 기본 개념 = 1
1.1 네트워크와 인터넷 = 2
1.2 네트워크 모델 = 5
1.3 IP 계층 = 7
1.4 전송 계층 = 11
1.5 응용 프로세스 계층 = 15
제2장 소켓 프로그래밍 소개 = 19
2.1 TCP를 이용한 에코 서비스 = 19
2.1.1 TCP 에코 서버 프로그램 = 20
2.1.2 TCP 에코 클라이언트 프로그램 = 23
2.1.3 프로그램 실행하기 = 26
2.2 UDP를 이용한 에코 서비스 = 28
2.2.1 UDP 에코 서버 프로그램 = 29
2.2.2 UDP 에코 클라이언트 프로그램 = 32
2.3 소켓함수 호출절차 = 35
2.3.1 TCP 서비스의 함수 호출 절차 = 35
2.3.2 UDP 서비스의 함수 호출 절차 = 36
2.4 실습문제 = 38
제3장 소켓 API 소개 = 39
3.1 소켓의 주소 = 40
3.1.1 소켓 어드레스 구조체 = 41
3.1.2 바이트 순서 변환 함수 = 44
3.1.3 주소에 관련된 함수들 = 47
3.2 주요 소켓 API 함수 = 49
3.2.1 socket() 함수 = 49
3.2.2 bind() 함수 = 52
3.2.3 listen() 함수 = 53
3.2.4 accept() 함수 = 54
3.2.5 connect() 함수 = 55
3.2.6 send() 함수 = 56
3.2.7 recv() 함수 = 57
3.2.8 sendto() 함수 = 58
3.2.9 recvfrom() 함수 = 59
3.2.10 close() 함수 = 60
3.3 기타 유용한 함수 = 62
3.3.1 DNS 서비스 함수 = 62
3.3.2 포트 번호 관련 함수 = 64
3.3.3 소켓 정보 관련 함수 = 65
3.3.4 소켓 정보 처리 예제 = 66
3.4 실습문제 = 69
제4장 프로세스를 이용한 다중 작업 서버 = 70
4.1 리눅스 프로세스 = 72
4.1.1 프로세스란? = 72
4.1.2 프로세스 생성 = 75
4.1.3 프로세스 종료 = 78
4.2 리눅스 시그널 = 82
4.2.1 시그널의 개념 = 82
4.2.2 시그널처리 함수 = 83
4.2.3 핸들러를 이용한 시그널 처리 = 85
4.2.4 시그널 핸들러를 이용한 좀비 프로세스 처리 = 87
4.3 프로세스를 이용한 다중 작업 서버 = 89
4.3.1 다중 작업을 수행하는 TCP 에코 서버 = 90
4.3.2 메시지를 반복해서 보내는 TCP 에코 클라이언트 = 95
4.4 실습문제 = 99
제5장 쓰레드를 이용한 다중 작업 서버 = 100
5.1 리눅스 쓰레드 = 100
5.1.1 쓰레드의 개념 = 100
5.1.2 쓰레드를 이용한 다중 작업 = 103
5.2 POSIX 쓰레드 API = 106
5.2.1 쓰레드의 생성 = 106
5.2.2 쓰레드의 종료 = 107
5.2.3 쓰레드의 제거 = 108
5.2.4 쓰레드의 분리 = 108
5.2.5 쓰레드의 종료 값 전달 방법 = 109
5.3 쓰레드를 이용한 다중 작업 서버 = 111
5.4 쓰레드 동기화 = 115
5.4.1 데이터 공유에 따른 동기화 문제 = 115
5.4.2 뮤텍스를 이용한 쓰레드 동기화 = 118
5.4.3 뮤텍스 함수 = 120
5.5 실습문제 = 123
제6장 I/O 다중화를 이용한 다중 작업 서버 = 124
6.1 I/O 다중화 = 125
6.1.1 블로킹 I/O 모델 = 125
6.1.2 I/O 다중화 = 127
6.2 select() 함수를 이용한 I/O 다중화 = 128
6.2.1 select() 함수 = 128
6.2.2 I/O 다중화를 이용한 에코 서버 = 132
6.3 epoll() 함수를 이용한 I/O 다중화 = 138
6.3.1 epoll()함수 = 138
6.3.2 epoll() 함수를 이용한 에코 서버 = 141
6.4 연습문제 = 147
제7장 소켓 옵션 이용하기 = 148
7.1 소켓 옵션 = 149
7.1.1 소켓의 옵션에 관련된 함수 = 149
7.1.2 소켓 옵션 변경 = 150
7.2 UDP 소켓을 이용한 멀티캐스트 = 152
7.2.1 메시지 수신자의 범위 = 152
7.2.2 멀티캐스트 메시지 서버 = 153
7.2.3 멀티캐스트 리시버 = 156
7.3 UDP 소켓을 이용한 브로드캐스트 = 159
7.3.1 브로드캐스트 메시지 서버 = 159
7.3.2 브로드캐스트 리시버 = 162
7.4 연습문제 = 165
제8장 하위 계층 이용하기 = 166
8.1 하위 계층 접근방법 = 167
8.2 프로토콜 헤더 = 169
8.2.1 Ethernet 프레임 = 170
8.2.2 IP 패킷 = 171
8.2.3 UDP 유저 데이터그램 = 174
8.2.4 TCP 세그멘트 = 175
8.3 SOCK_PAEKET 소켓 타입 = 177
8.4 SOCK_RAW 소켓 타입 = 186
8.5 실습문제 = 191
제9장 쓰레드를 이용한 웹 서버 = 192
9.1 HTTP 프로토콜 = 193
9.1.1 웹 기본 동작 = 193
9.1.2 HTTP 메시지 형식 = 194
9.2 쓰레드를 이용한 웹 서버 = 199
9.3 실습문제 = 209