HOME > Detail View

Detail View

(패킷이 보이는 네트워크 프로토콜과 실무형 예제로 익히는) 네트워크 프로그래밍 (Loan 10 times)

Material type
단행본
Personal Author
최지훈
Title Statement
(패킷이 보이는 네트워크 프로토콜과 실무형 예제로 익히는) 네트워크 프로그래밍 / 최지훈 지음
Publication, Distribution, etc
부천 :   프리렉,   2014  
Physical Medium
560 p. : 삽화 ; 26 cm
ISBN
9788965400820
General Note
네트워크 프로토콜의 이해와 소켓 API 활용 ; TCP/IPO Socket programming  
색인수록  
000 00000cam c2200205 c 4500
001 000045826938
005 20150309114839
007 ta
008 150309s2014 ggka 001c kor
020 ▼a 9788965400820 ▼g 13000
035 ▼a (KERIS)BIB000013611823
040 ▼a 241018 ▼c 241018 ▼d 211009
082 0 4 ▼a 004.62 ▼2 23
085 ▼a 004.62 ▼2 DDCK
090 ▼a 004.62 ▼b 2014
100 1 ▼a 최지훈
245 2 0 ▼a (패킷이 보이는 네트워크 프로토콜과 실무형 예제로 익히는) 네트워크 프로그래밍 / ▼d 최지훈 지음
260 ▼a 부천 : ▼b 프리렉, ▼c 2014
300 ▼a 560 p. : ▼b 삽화 ; ▼c 26 cm
500 ▼a 네트워크 프로토콜의 이해와 소켓 API 활용 ; TCP/IPO Socket programming
500 ▼a 색인수록
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2014 Accession No. 121232364 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

소켓 프로그래밍에 대한 높은 이해를 끌어내고자 소켓 API와 배경인 컴퓨터 네트워크, TCP/IP 프로토콜에 대한 설명과 예제를 포함하고 있다. OSI 2계층 이더넷 프로토콜부터 OSI 7계층 DHCP, HTTP까지 다양한 계층에 걸친 프로토콜을 소켓 프로그래밍의 관점에서 다루고 있다.

또한, 네트워크 프로토콜의 동작에 대한 독자의 이해도를 높이기 위해 필요한 경우 실제 네트워크로 전송되는 패킷을 캡처하여 자세히 보여준다. 소켓 프로그램은 대단히 실무적인 분야이며 이를 활용한 기술의 적용분야는 점점 늘어나는 추세이다.

따라서 개념서를 통한 예제 활용보다는 좀 더 실제적인 예제가 필요하며 네트워크를 이해하고 네트워크 프로토콜의 큰 그림을 그리고 이해하는 사람은 소켓 API만 사용할 줄 아는 사람보다 실제 개발에서 유리한 위치에 있을 수 있을 것이다.

네트워크 프로토콜을 먼저 이해하고 진행하는 소켓 프로그래밍

이 책은 소켓 프로그래밍에 대한 높은 이해를 끌어내고자 소켓 API와 배경인 컴퓨터 네트워크, TCP/IP 프로토콜에 대한 설명과 예제를 포함하고 있다. OSI 2계층 이더넷 프로토콜부터 OSI 7계층 DHCP, HTTP까지 다양한 계층에 걸친 프로토콜을 소켓 프로그래밍의 관점에서 다루고 있다. 또한, 네트워크 프로토콜의 동작에 대한 독자의 이해도를 높이기 위해 필요한 경우 실제 네트워크로 전송되는 패킷을 캡처하여 자세히 보여준다.

소켓 프로그램은 대단히 실무적인 분야이며 이를 활용한 기술의 적용분야는 점점 늘어나는 추세이다. 따라서 개념서를 통한 예제 활용보다는 좀 더 실제적인 예제가 필요하며 네트워크를 이해하고 네트워크 프로토콜의 큰 그림을 그리고 이해하는 사람은 소켓 API만 사용할 줄 아는 사람보다 실제 개발에서 유리한 위치에 있을 수 있을 것이다. 이 책을 통해 소켓 API를 이해하고 소켓 프로그램이 동작하는 배경인 컴퓨터 네트워크와 네트워크 프로토콜을 이해하는 데 조금의 도움이 되길 바란다.

이 책의 구성
1부. 소켓 프로그래밍 기본
1부에서는 독자들이 소켓 API에 익숙해지는 것을 목표로 한다. 1장에서는 소켓의 정의를 소개하고 입출력 관점에서 소켓의 개념에 대해 접근한다. 또한, 소켓 동작 방식에 대한 이해를 돕고자 컴퓨터 네트워크의 핵심인 TCP/IP 프로토콜들을 소개한다. 2장에서는 소켓 API에 대한 소개를 통해 소켓 관련 함수들에 대해 배운다. 3장과 4장에서는 대표적인 전송계층 프로토콜인 TCP와 UDP를 이용하는 소켓 프로그램을 소개하고 소켓 프로그램의 구조에 대한 독자들의 이해도를 높이는 것을 목표로 한다.

2부. 소켓 프로그래밍 고급
2부에서는 동시에 여러 클라이언트의 요청을 처리할 수 있는 다중 접속 서버 모델을 소개하고 이와 더불어 1부에서 다루진 못한 소켓의 확장 기능들을 소개하는 것을 목표로 한다. 5~6장에서는 멀티프로세스, 8장에서는 멀티 스레드, 9장에서는 멀티 플렉싱, 12장에서는 리눅스 epoll, 13장에서는 윈도우에서의 다중 접속 서버 모델을 다룬다. 또한, 소켓의 확장 기능을 다루고자 7장에서는 소켓 입출력, 10장에서는 소켓 옵션, 11장에서는 RAW 소켓, 14장에서는 IPv6를 위한 소켓 프로그래밍을 소개한다.

3부. 소켓 프로그래밍 응용
15, 16장에서는 구체적인 예제 프로그램을 소개하여 1부 2부에서 다룬 기술을 실제 적용하는 연습을 하는 것을 목표로 한다. 15장에서는 네트워크 어댑터 레벨까지 제어할 수 있는 Packet Socket을 소개하고 ARP 스캐너 프로그램 작성을 통해 실 사용되는 프로토콜의 동작을 익히고 제어하는 연습을 한다. 16장에서는 DHCP 서버와 웹 서버 예제를 통해 응용계층 프로토콜 구현에 대해 알아볼 기회를 제공한다.


Information Provided By: : Aladin

Author Introduction

최지훈(지은이)

고려대학교 컴퓨터학과 학사 고려대학교 컴퓨터학과 석사 고려대학교 컴퓨터·전파통신공학과 박사 고려대학교 정보통신기술연구소 연구교수 한국정보통신기술협회 선임연구원

Information Provided By: : Aladin

Table of Contents

1부 소켓 프로그래밍 기본 

1장 소켓 프로그래밍 입문 
_ 1.1 소켓이란 
_ 1.2 소켓과 입출력 
_ 1.3 통신 프로토콜 
_ _ 1.3.1 인터넷 프로토콜(인터넷 계층 or 네트워크 계층)
_ _ 1.3.2 전송 계층 프로토콜
_ _ 1.3.3 네트워크 인터페이스 계층(데이터링크 계층)
_ _ 1.3.4 패킷 캡슐화
_ _ 1.3.5 소켓 프로그래밍 입장에서 본 통신 프로토콜
_ 1.4 클라이언트 서버 모델 

2장 소켓 API 
_ 2.1 네트워크 주소 
_ _ 2.1.1 IP 주소의 클래스
_ _ 2.1.2 CIDR: Classless Inter-Domain Routing
_ _ 2.1.3 개인 IPv4 주소 공간과 Loopback 인터페이스 주소
_ _ 2.1.4 포트 번호
_ _ 2.1.5 호스트 이름(Host Name)
_ 2.2 소켓 주소 
_ 2.3 바이트 순서 
_ 2.4 주소 변환 
_ _ 2.4.1 IP 주소 변환
_ _ 2.4.2 호스트 이름과 IP 주소
_ 2.5 간단한 소켓 프로그램 
_ _ 2.5.1 서버 프로그램
_ _ 2.5.2 클라이언트 프로그램
_ _ 2.5.3 서버/클라이언트 프로그램의 실행 결과
_ 2.6 에러처리 

3장 TCP 소켓 
_ 3.1 TCP 기본 
_ _ 3.1.1 TCP 헤더
_ _ 3.1.2 TCP의 상태
_ _ 3.1.3 TCP 흐름 제어
_ 3.2 서버 프로그램 
_ _ 3.2.1 클라이언트의 접속 요청 처리
_ _ 3.2.2 입출력 진행
_ 3.3 클라이언트 프로그램 
_ _ 3.3.1 연결 요청
_ _ 3.3.2 연결 종료
_ 3.4 Iterative 서버 모델 
_ _ 3.4.1 리눅스 기반 Iterative 서버 예제
_ _ 3.4.2 윈도우즈 기반 Iterative 서버 예제

4장 UDP 소켓 프로그래밍 
_ 4.1 UDP 일반 
_ _ 4.1.1 UDP의 특징
_ _ 4.1.2 UDP 헤더
_ _ 4.1.3 UDP 소켓
_ 4.2 UDP 서버 클라이언트 모델 
_ _ 4.2.1 소켓 생성
_ _ 4.2.2 데이터 전송
_ _ 4.2.3 데이터 수신
_ 4.3 UDP 소켓 관련 사항 
_ _ 4.3.1 클라이언트의 주소 지정
_ _ 4.3.2 다수의 클라이언트 처리
_ _ 4.3.3 connect 함수의 역할
_ 4.4 리눅스 응용 프로그램 예제 
_ _ 4.4.1 UDP 클라이언트 프로그램
_ _ 4.4.2 예제프로그램 실행
_ 4.5 윈도우즈 응용 프로그램 예제 
_ _ 4.5.1 서버 프로그램
_ _ 4.5.2 클라이언트 프로그램
_ _ 4.5.3 예제 프로그램 실행

2부 다중 접속 서버 모델 

5장 멀티 프로세스 
_ 5.1 단일 프로세스 서버 프로그램의 한계 
_ 5.2 부모 프로세스와 자식 프로세스 
_ _ 5.2.1 fork 시스템 호출
_ _ 5.2.2 자식 프로세스의 종료
_ _ 5.2.3 fork 예제
_ 5.3 멀티 프로세스 서버 프로그램 예제 
_ 5.4 멀티 프로세스 클라이언트 프로그램 예제 
_ _ 5.4.1 UDP 채팅 서버 프로그램 제작
_ _ 5.4.2 UDP 채팅 클라이언트 프로그램 제작

6장 프로세스 사이의 통신 
_ 6.1 시그널 
_ _ 6.1.1. 시그널의 종류
_ _ 6.1.2 signal 함수
_ _ 6.1.3 sigaction 함수
_ _ 6.1.4 좀비(Defunct) 프로세스
_ _ 6.1.5 좀비 프로세스 생성 방지
_ _ 6.1.6 시그널 발생
_ 6.2 파이프 
_ 6.3 공유 메모리 
_ 6.4 세마포어 
_ _ 6.4.1 크리티컬 섹션에 대한 접근 방법
_ _ 6.4.2 세마포어의 사용
_ _ 6.4.3 세마포어와 공유 메모리
_ 6.5 메시지 큐 
_ 6.6 IPC와 소켓 프로그래밍 

7장 입출력과 소켓 
_ 7.1 입출력 전반 
_ _ 7.1.1 파일 디스크립터, 파일 테이블, 파일
_ _ 7.1.2 파일 디스크립터 테이블과 열린 파일 테이블의 엔트리(Entry)
_ _ 7.1.3 close 함수에 대한 재 논의
_ 7.2 소켓 전용 입출력 함수 
_ _ 7.2.1 Urgent 데이터
_ 7.3 표준 입출력 함수 
_ _ 7.3.1 스트림
_ _ 7.3.2 표준 입출력 버퍼 관리
_ _ 7.3.3 표준 입출력 함수를 이용한 소켓 프로그래밍
_ _ 7.3.4 입출력 분리와 Half Close

8장 멀티스레딩을 활용한 다중 접속 서버 
_ 8.1 스레드 
_ _ 8.1.1 스레드의 생성
_ _ 8.1.2 스레드 사이의 통신
_ 8.2 스레드와 소켓 프로그래밍 
_ _ 8.2.1 스레드를 이용한 서버 프로그램
_ 8.3 윈도우즈에서의 멀티스레딩 
_ _ 8.3.1 스레드의 생성
_ _ 8.3.2 스레드의 종료 처리
_ _ 8.3.3 동기화 방법
_ _ 8.3.4 윈도우즈 환경에서 멀티스레딩을 활용한 서버 프로그램

9장 멀티플렉싱 기법 
_ 9.1 멀티플렉싱 
_ 9.2 select 함수의 활용 
_ 9.3 WSAEventSelect 함수의 활용 

10장 소켓 옵션 
_ 10.1 소켓의 옵션 
_ _ 10.1.1 SO_REUSEADDR
_ _ 10.1.2 SO_SNDBUF와 SO_RCVBUF
_ 10.2 소켓 이외의 계층 
_ _ 10.2.1 TCP_NODELAY
_ _ 10.2.2 IP_TOS

11장 RAW Socket 
_ 11.1 통신 프로토콜과 소켓 
_ 11.2 RAW Socket 
_ _ 11.2.1 IP_HDRINCL 옵션
_ _ 11.2.2 IP 헤더 Checksum
_ _ 11.2.3 TCP Checksum
_ 11.3 RAW 소켓에서의 패킷 수신 

12장 epoll 
_ 12.1 epoll 소개 
_ _ 12.1.1 epoll 객체 생성
_ _ 12.1.2 epoll 객체의 제어
_ _ 12.1.3 모니터링
_ 12.2 epoll의 활용 
_ 12.3 Epoll Edge Triggered 모드의 활용 
_ 12.4 epoll의 장단점 

13장 Windows 고급 네트워크 프로그래밍 
_ 13.1 윈속(Winsock) 일반 
_ 13.2 동기 입출력/비동기 입출력 
_ _ 13.2.1 비동기 입출력 모드를 사용하는 소켓 생성
_ _ 13.2.2 OVERLAPPED 구조체
_ _ 13.2.3 이벤트 처리
_ _ 13.2.4 Overlapped I/O 결과
_ _ 13.2.5 Overlapped I/O를 위한 WSASend 함수와 WSARecv 함수
_ 13.3 Overlapped I/O(이벤트 처리) 
_ 13.4 Overlapped I/O(완료 루틴) 
_ 13.5 IOCP 

14장 IPv6 
_ 14.1 IPv6 
_ _ 14.1.1 IPv6 주소
_ _ 14.1.2 IPv6 통신
_ 14.2 IPv6 관련 함수 
_ _ 14.2.1 IPv6 주소의 표현
_ _ 14.2.2 IPv6 소켓을 위한 주소 처리
_ 14.3 IPv6 소켓 프로그래밍 
_ 14.4 도메인 네임 서비스 관련 함수 
_ 14.5 IPv4와 IPv6 모두를 지원하는 소켓 프로그래밍 

3부 소켓 프로그래밍 응용 

15장 Packet Socket 
_ 15.1 PACKET SOCKET 
_ _ 15.1.1 이더넷(Ethernet) 프로토콜
_ _ 15.1.2 네트워크 어뎁터 정보
_ _ 15.1.3 네트워크 계층 주소
_ _ 15.1.4 패킷 전송/수신 예제
_ 15.2 PACKET SOCKET 응용 
_ _ 15.2.1 ARP(Address Resolution Protocol)
_ _ 15.2.2 ARP 스캔 프로그램

16장 응용 프로그램 
_ 16.1 DHCP 서버 프로그램 
_ _ 16.1.1 DHCP 메시지 포멧
_ _ 16.1.2 DHCP 메시지 교환
_ _ 16.1.3 DHCP 서버 프로그램
_ 16.2 간단한 웹 서버 프로그램 
_ _ 16.2.1 웹 서버
_ _ 16.2.2 HTTP
_ _ 16.2.3 웹 서버 프로그램

New Arrivals Books in Related Fields

김자미 (2021)