TCP/IP 인터넷 기반의 네트워크 프로그래밍 기술은 전통적인 클라이언트-서버 응용 프로그램의 개발 뿐만 아니라 다양한 임베디드 시스템 프로그램 개발에서도 그 중요성이 날로 높아지고 있다. 따라서 대학을 비롯한 관련 교육 기관에서 TCP/IP 네트워크 프로그래밍 교육에 대한 관심이 고조되고 있고, 적절한 교재에 대한 요구가 높아지고 있다. 현재 국내.외적으로 TCP/IP 네트워크 프로그래밍에 관한 훌륭한 교재들이 많이 출판되어 있으나 고급 교재로 사용되기 위해 필수적으로 요구되는 이론적인 깊이와 실습의 다양성을 모두 갖춘 교재를 찾기는 쉽지 않다.
박승철
서울대 컴퓨터공학과 박사
한국기술교육대 교수
Chapter 01. TCP/IP 망 구조와 프로토콜
1.1 OSI 7 계층 구조
1.2 TCP/IP 계층구조
1.3 TCP/IP 프로토콜 체계
1.4 인터넷 주소
1.5 IP(Internet Protocol)
1.6 ICMP
1.7 멀티캐스팅과 IGMP
1.8 TCP
1.9 UDP
1.10 DNS
연습문제
Chapter 02. LINUX 시스템 프로그래밍 기초
2.1 LINUX 개요 2.2 Vi 편집기
2.3 gcc 컴파일러
2.4 make
2.5 LINUX 프로그래밍 실습
2.6 LINUX 파일 입출력
실습문제
Chapter 03. TCP/IP 소켓 API
3.1 TCP/IP 소켓 API 개요
3.2 소켓 API구조
3.3 소켓 자료 구조
3.4 소켓 제어 함수
3.5 소켓 주소 처리 함수
3.6 소켓 프로그래밍 기초 실습
연습문제
실습문제
Chapter 04. TCP/IP 소켓 프로그래밍 기초
4.1 TCP 소켓 프로그래밍
4.2 UDP 소켓 프로그래밍
연습문제
실습문제
Chapter 05. 동시 처리 서버(Concurrent Server) 프로그래밍
5.1 동시 처리 서버 모델
5.2 프로세스 제어
5.3 동시 처리 서버 프로그래밍
5.4 좀비 프로세스(Zombie Process) 처리
5.5 시그널 처리
5.6 쓰레드 프로그래밍(Thread Programming)
연습문제
실습문제
Chapter 06. TCP/IP 고급 소켓 프로그래밍
6.1 입출력 다중화(Input/Output Multiplexing)
6.2 고급 입출력
6.3 데몬 서버 프로그래밍
6.4 생(Raw) 소켓 프로그래밍
6.5 데이터 링크 접근 : 패킷 캡처링
연습문제
실습문제
이 책은 대학과 IT 전문 교육 기관에서 TCP/IP 네트워크 프로그래밍에 대한 깊이 있는 이론을 다루고 다양한 실습의 교육이 이루어지도록 저술되었다. 이 책은 다음과 같은 내용을 포함하고 있으며, 각 장의 마지막에 충분한 연습 문제와 실습 문제를 제공하여 각 장에서 설명한 이론과 실습을 복습할 수 있게 한다.
제1장 - TCP/IP 망 구조와 프로토콜
TCP/IP 네트워크 프로그래밍을 이해하기 위해 반드시 알아야 할 기본적인 프로토콜에 대해 설명한다. TCP/IP 네트워크에 대한 예비 지식이 충분하지 않은 독자도 네트워크 프로그래밍에 필요한 프로토콜 지식을 충분히 습득할 수 있고, 네트워크 프로그래밍 학습 과정에서 관련 프로토코를 참조할 수 있다.
제2장 - LINUX 시스템 프로그래밍
리눅스 환경에 익숙하지 않은 독자가 네트워크 프로그래밍을 위해 기본적으로 이해해야 하는 리눅스 명령어, 편집기, 컴파일러, make 등에 대해 설명한다. 그리고 TCP/IP 네트워크 프로그래밍 인터페이스의 근간이 되는 리눅스 파일 시스템 입출력에 대해서도 설명한다.
제3장 - TCP/IP 소켓 API
TCP/IP 네트워크 프로그래밍 인터페이스를 구성하는 소켓 자료 구조와 소켓 자료 구조 기반의 제어 함수들에 대해 설명한다. TCP/IP 프로토콜과 연관된 API와 예제를 통해 TCP/IP 프로토콜의 실제적인 모습을 이해할 수 있다.
제4장 - TCP/IP 소켓 프로그래밍 기초
다양한 예제를 기반으로 TCP 소켓 API와 UDP 소켓 API를 사용하여 기본적인 클라이언트-서버 네트워크 프로그래밍의 작성 방법을 설명한다.
제5장 - 동시 처리 서버(Concurrent Server Programming)
다중 프로세스 기반의 동시 처리 서버(concurrent server) 프로그램 작성 방법을 구체적으로 설명한다. 프로세스 제어, 좀비 프로세스 처리, 시그널 처리 등에 대한 충분한 설명과 다양한 예제를 제공하여 고급 동시 처리 서버 프로그램 작성을 가능하게 한다. 다중 쓰레드 기반의 동시 처리 서버 프로그램 개발에 대한 설명도 포함한다.
제6장 - TCP/IP 고급 소켓 프로그래밍
입출력 다중화, 고급 입출력, 데몬 서버 프로그래밍, 생(raw) 소켓 프로그래밍, 패킷 캡처링 등 고급 TCP/IP 네트워크 프로그래밍 기법을 설명한다.