Lectures/NP/2011

From MCLab
Jump to: navigation, search

네트워크프로그래밍및실습

Contents


TCP/IP 프로토콜 내부의 동작과정을 이해하고, 이를 활용하기 위한 Socket API를 익혀 Application protocol 또는 networked application을 효율적이며 체계적으로 개발하는 능력을 습득한다. TCP socket, UDP socket의 API 를 배우고, TCP와 UDP 프로토콜 특성을 이해하여 이를 감안해서 분산 응용을 개발하는 방법과 프로그래밍을 익힌다. Name and address translation, broadcasting and multicasting, advance I/O 방법을 배우고 익히며, I/O multiplexing, concurrent process, multi-thread에 의한 구현 방법을 익히고 장단점을 비교 분석한다.

배운 지식을 활용하여 새로운 네트워크 서비스를 창안하고, 설계해 보고, 작품을 발표, 시연한다.

주당: 강의 2시간, 실습/설계 2시간

Lecture Material

  • 이론
  1. Socket API
  2. TCP Client-Server Examples - Stevens의 UNP를 중심으로
  3. More on Socket API
  4. UDP Sockets
  5. Broadcast and Multicast
  6. Effective TCP/IP Programming - Snader, ETCP 중심으로
  • 실습
  1. 실습 유틸: File:Xshell30.zip, File:SourceInsight.zip
  2. Introduction & Configuration, File:Unpv13e.tar.gz
  3. Concurrent Programming
  4. I/O Multiplexing & Thread Programming
  5. Performance Exp. of Network Programs
  6. Event Driven Design & Implementation
  7. Windows Network Programming #1
  8. Windows Network Programming #2
  9. Windows Network Programming #3 , File:FTP pre.zip File:FTP.zip
  10. Multiple Timer based NP
  • Source Codes
  1. File:Etcp.zip

Assignments

  • Assignment 1: Simple HTTP Client (3/28까지)
  • Assignment 2: High-Performance HTTP Client (4/5까지)
  • 설계프로젝트 1: FTP client 설계 및 구현 (중간보고서 제출: 4/12까지, 최종보고회 4/28)
  • 설계프로젝트 2: FTP Client with GUI and FTP Server
    • 설계프로젝트 1에서 만든 FTP Client를 Windows에서 GUI를 추가하여 구현하라.
    • FTP Server는 UNIX 또는 Andoroid에서 runnig되는 두가지 버전 중 하나를 선택하되,
      • UNIX version은 동시에 여러개의 FTP client를 접속할 수 있어야 하고,
      • Android version은 하나의 FTP client만 지원해도 좋다. WiFi 망에서 Private IP로 설정될 수 있기 때문에, Server는 자신의 IP address와 port number를 먼저 display하고, Client 사용자가 이를 보고 server에 connection해야 할 것임
    • 2명이 팀을 구성하여 수행. 단 1팀은 3명을 허용
    • FTP Client with GUI: 6/2(목) demonstration, 최종발표일: 6/9(목)
  • 설계프로젝트 3: ARQ Protocol over unreliable UDP Sockets - modified
    • 2명이 팀을 구성하여 수행. 단 1팀은 3명을 허용
    • 설계서: 6/9(목)까지 제출 및 발표, 최종발표일: 6/21(화) 10:00 301호
  • 기말고사는 설계프로젝트 2, 3으로 대체함

Required Textbooks

  • 주교재 : Handout 배포

References

  1. Jon C. Snader, Effective TCP/IP Programming - 44 Tips to Improve Your Network Programs, Addison-Wesley, 2000.
  2. W.Richard Stevens, Bill Fenner, and Andrew M. Rudoff, UNIX Network Programming - The Sockets Networking API, Vol. 1, 3rd Ed., Addison Wesley, 2004
  3. 윤성우, TCP/IP 소켓 프로그래밍, 개정판, Orange Media.
  4. npnppratice

Evaluation

시험(50%), 실습(10%), 과제물(20%), 설계 Project(20%)

Teaching Assistant

  • 조교 : 안홍범
    • e-mail : mythopoeic@hufs.ac.kr
    • Tel : 031) 330-4511
    • 정보산업공과대 425호