{%hackmd bxsQAKRrSe-0K7dbTGPINQ %} ## Network Programming ### @CS.NCTU #### Lecture 0: Syllabus #### Instructor: Kate Ching-Ju Lin (林靖茹) <!-- Put the link to this slide here so people can follow --> https://hackmd.io/@wbjfRtFvQ96uXiHjQ0AvgA/ryMroKwyF --- ### Network Programming * Instructors: * 林靖茹, EC-538 * Email: katelin@nycu.edu.tw * WWW: https://people.cs.nctu.edu.tw/~katelin/ * Materials and online course * Microsoft Teams: [NetProg](https://reurl.cc/xEg0ZE) (Code: 23d5gvq, for NYTU only) * Fill the [form](https://forms.gle/68ao1Y8FtSTBe76B7) if you cannot join the team ![](https://i.imgur.com/yhtZvg9.png) * Projects * Bitbucket * E3 --- ### TA Group * 高誌佑 (lcd010308@gmail.com) * 郭奎廷 (kuo0404@gmail.com) * 許博鈞 (hpc.cs08g@nctu.edu.tw) * 林蕎婷 (kyojeong.cs10@nycu.edu.tw) * Office hour: Monday 10:00 a.m. ~ 12:00 p.m. * Online discussion using Microsoft Teams * The meeting link will be scheduled before the office hour * You should send an email to all the TAs to make an appointment <p align="center"> <img src="https://i.imgur.com/2j5YbCm.png" height="200"> <img src="https://i.imgur.com/1Ih0IbP.jpg" height="200"> <img src="https://i.imgur.com/Z0t2l1D.jpg" height="200"> <img src="https://i.imgur.com/GmZtjNU.jpg" height="200"> </p> --- ### Microsoft Teams * Slides: **++general channel++ > slides** * Only the TAs and I can post in the general channel, which is used for announcement * ++TA channel++ is created for you to ask questions (may only respond once every week) * The video will be recorded ans automatically stored in **++general channel++ > files > recording** * You don't need to recode the video from your side * If you have any questions about the lectures or labs, please go to the specific channels to leave your messages * For example, you can post in the ++Lectures channel++ to ask questions about the lectures and ask the questions about lab0 in the ++Lab0 channel++ --- ### Assignments * Homework x 1 (HW) * Projects x 4 (P1-P4) * You are required to use Git-type version control, announced by TAs * Two weeks per project * Demo dates should have no conflicts with class dates * If the due dates are marked as the date of this class, it means one day ahead * Final Exam * Mostly from lectures --- ### Grading * HW(5%) * P1 (15%) * P2 (25%) * P3 (20%) * P4 (15%) * Exam (20%) > The percentage may vary slightly --- ### Outline * W1: Syllabus + Introduction * W2-3: Unix Programming [S] * W4: Network Primer [S] * <span class="orange"> P1: Simple shell (W4) </span> * W5: Berkeley Socket [S] * W6-8: Socket Programming Paradigms [C] * Iterative Servers * Concurrent Servers * Single-Process Concurrent Servers * Multi-services Servers * Server issues * Concurrent Clients * <span class="orange"> P2: Chat room servers (W7) </span> --- ### Outline * W9: Internet and Distributed Information Systems [H] * HTTP, CGI * FastCGI * Winsock and AsyncSock * Thread vs. Select * AIO, C10K problem, Boost * Cookie, Web Programming, PHP, I18N * <span class="orange"> P3: HTTP servers, CGI (W10) </span> --- ### Outline * W10-11: Firewalls [H] * W12: P2P * W13: NAT and UDP Hole Punching, BT * <span class="orange"> P4: SOCKS server (W13) </span> * W14: Remote Procedure Call (RPC) * Sun RPC, DCE RPC * RMI, Corba * Web services * <span class="orange"> Final exam (W16) </span> --- ### Projects 1. Simple Shell * Handle process execution, I/O redirection, and pipe 2. Chat room * Design servers for multi-user communication using socket 3. HTTP server * Implement HTTP protocol and Common Gateway Interface with asynchronous I/O 4. Proxy server * Implement a proxy server with SOCKS protocol * Discuss in the channels of Microsoft Teams (each lab a channel) --- ### Textbooks * [S] Unix Network Programming, W. R. Stevens * [C] Internetworking with TCP/IP Vol III (BSD Socket Version), Comer and Stevens * [F] Building Internet Firewalls, Chapman and Zwicky * Source code in the textbooks: in the web site of this course ![](https://i.imgur.com/Pkk1p9K.png) ![](https://i.imgur.com/z1v5sru.png) ![](https://i.imgur.com/UvhRY8Y.png) --- ### References * [R] TCP/IP Administration, Craig Hunt * [Q] [UnixFAQ](http://langevin.univ-tln.fr/cours/UPS/extra/unixfaq.html) * [U] [Unix Tutorial](https://www.tutorialspoint.com/unix/index.htm) * [H] Handouts
{"metaMigratedAt":"2023-06-16T06:00:09.421Z","metaMigratedFrom":"YAML","title":"L0_Syllabus","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"spotlight\":{\"enabled\":false},\"transition\":\"fade\",\"display\":\"block\",\"slideNumber\":true,\"overview\":true}","contributors":"[{\"id\":\"c1b8df46-d16f-43de-ae5e-21e343402f80\",\"add\":6704,\"del\":1989}]"}
    1648 views
   Owned this note