네트워크 프로그래밍

1.수업목표 및 개요

본 과정에서는 인터넷의 요소기술인 TCP/IP 프로토콜에 관하여 다룬다. 특히 인터넷에 관련된 IP Addressing, Subnet, Routing프로토콜 (ARP, ICMP, IGMP, RIP, OSPF, BGP)의 프로토콜을 익힌다. 그리고 동적 IP 할당을 위한 DHCP와 도메인 네임을 관리하는 DNS와 IPv6등에 관한 사항을 학습함으로써 인터넷통신에 대한 기본적인 지식의 습득을 목표로 한다. 또한 실습을 통하여 애플리케이션을 위해 인터넷 프로토콜을 구현하는 방법을 익힌다.

2.시험 및 평가기준

- 출석: 10%
- 발표 : 15%
- 중간 고사 : 25%
- 기말고사 : 30%
- 기타 : 20%

3.교재

서명 : "TCP/IP Protocol Suite" 3rd Edition
저자명 : Behrouz A. Forouzan
출판사 : McGrawHill Korea
출판년도 : 2005

4.강의 자료

week

이론

실습

1st week

-과목소개-
IP addressing:Classful Addressing
  Chapter4

vi editor연습,
네트워크 프로그래밍의 이해   Lecture_Note_1stWeek-1   Lecture_Note_1stWeek-2

2nd week

IP addressing:Classful Addressing
  Chapter5

소켓의 생성과 프로토콜의 설정   Lecture_Note_2ndWeek

3rd week

Delivery, Forwarding, and Routing of IP Packets
  Chapter6

인터넷 주소변환 프로그래밍   Lecture_Note_3rdWeek

4th week

ARP and RARP
  Chapter7

TCP Client/Server 프로그래밍   Lecture_Note_4thWeek

5th week

Internet Protocol(IP)
  Chapter8

Unix Process 프로그래밍   Lecture_Note_5thWeek

6th week

Internet Control Message Protocol (ICMP)
  Chapter9

다중처리 기술 프로그래밍   Lecture_Note_6thWeek

7th week

User Datagram Protocol (UDP)
  Chapter11

소켓의 옵션을 이용한 프로그래밍   Lecture_Note_7thWeek

8th week

Midterm Exam

9th week

Transmission control protocol (TCP)
  Chapter12_part1   Chapter12_part1,part2

Term 프로젝트제안 대상 :
  - 소켓응용 프로그래밍
  - 라우팅테이블 작성 응용프로그래밍
  - ARP모듈 구성 응용프로그래밍
  - IP 패키지 구성응용프로그래밍
  - ICMP패키지 구성 응용프로그래밍
  - UDP패키지구성 응용프로그래밍
  - DHCP 클라이언트 및 서버 응용프로그래밍

10th week

Unicast Routing Protocol
(RIP, OSPF, and BGP)
  Chapter14

프로세스간 통신 프로그래밍   Lecture_Note_10thWeek

11th week

Multicasting and Multicast Routing protocols
  Chapter15

고급 입출력 함수를 이용한 프로그래밍   Lecture_Note_11thWeek

12th week

BOOTP and DHCP /
Domain Name System (DNS)
  Chapter16   Chapter17

멀티태스킹 기반의 서버 구현

13th week

IPv6
  Chapter27

IPv6 프로세스간 통신,
IO 멀티플렉싱 프로그래밍

14th week

ICMPv6및 IPv4/IPv6변환기술
  Chapter 27 (Cont)

고급 소켓 입출력,
멀티쓰레드 기반의 서버구현

15th week

TCP/IP 시스템 프로그래밍

트래픽 파라미터 변환 실험

16th week

Term Project Presentation / Final Exam

5.과제

각 장의 연습문제
프로그래밍 문제 (Term Preject)

6.비고

컴퓨터네트워크개론을 수강한 학생만이 수강 신청가능함 실습 및 Term Project수행을 위해 프로그래밍이 가능한 학생만이 수강가능함. 즉 고급객체지향 프로그래밍(신 교과과정의 객체지향프로그래밍)에서 학점을 취득한 학생이 수강할 것을 권장합니다.