Networking (Business Data Communication) 2019

This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics to be covered include layered network architecture, physical layer, and data link protocols, network and transport protocols, routing protocols, and applications. Examples will be drawn from the Internet TCP/IP protocol suite. The course also includes two programming assignments, in which students gain hands-on experience with basic network programming and development of simple network applications.

Class Info

  • Instructor: Shun-Wen Hsiao, NCCU MIS Dept., hsiaom at nccu.edu.tw
  • Lecture (306007001): Tuesday 234 (09:10 ~ 12:00) @ Classroom #260311
  • Lecture (306007011): Wednesday 234 (09:10 ~ 12:00) @ Classroom #260105
  • Prerequisite
    • Students who enroll this class must have prior programming experience for two years.
    • This course is designed for MIS students and double major students.
  • TA: 107356035, 107356037
  • Office Hours: By appointment only.
  • Textbook: "Computer Networking: A Top-Down Approach" by James F. Kurose and Keith W. Ross.
  • Forum: https://groups.google.com/forum/#!forum/nccu-networking
  • Lab video: https://www.youtube.com/channel/UCq8s_Qjx8yn2xwYXcTrefkw
  • Homework submission system: http://hsiaom.nccu.edu.tw:8888/index/ (See detail in homework section below)
  • Note: This course is taught in English.

Announcements (Fall 2019)

  • Due to the limited seats and TA workload, we cannot afford too many students in both classes. However, it is possible for students to switch between 306007001 and 306007011. Overall, we can only accept around 86 students. The priority would be junior/senior MIS students, MIS graduate students, and MIS double major students.
  • On the average, we will have weekly homework (including textbook homework, lab assignment, and term assignment). It is difficult to manage multiple heavy-load courses so please seriously considering not taking this course.
  • 9/17-18: Two homework announced -- HW#01S and HW#01Q. Please hand-in your homework before 9/24-25 9:20am via homework submission system.
  • 9/24-25: HW#02S announced. Upload your answers before 23:59 10/2-3.
  • 10/1-2: HW#03S announced. Upload your answers before 23:59 10/7 (Monday) and 10/8 (Tuesday).
  • 10/8-9: HW#04S and HW#02Q announced. Upload your answers before 23:59 10/14 (Monday) and 10/15 (Tuesday).
  • 10/15-16: HW#05S announced. Upload your answers before 23:59 10/21-22.
  • 10/28: HW#03Q announced. Upload your answers before 11:59 in 11/4, and the answer will be announced right after 12:00 in 11/4.
  • 10/28: Here is an example of midterm.
  • 11/3: Midterm does NOT include the following slides.
    • Chapter 01: 46, 47, 48, 57, 58, 64~77.
    • Chapter 02: 17, 33, 70, 77~106.
    • Chapter 03: 81, 82, 84~108
  • 11/11: Please see the tutorial video 'Berkeley Socket Programming' after the class in 11/12-13.
  • 11/26: HW#04Q announced. It is a programming homewrok. Upload your codes before 23:59 12/12 (Thursday). Please read the instructions carefully.
  • 12/03: Here is the document for Python installation guide in macOS and some troubleshooting.
  • 12/17: Two programming projects are announced. PJ01 (due at 23:59 in 26 Dec 2019) and PJ02 (due at 23:59 5 in Jan 2020). Please take a look at the TFTP lab.
  • 12/23: Please check the homework submission system. Homework and projects are online.
  • 12/26: All the homework and projects have been set in the homework submission system.
  • 1/2: Final Exam does NOT include the following slides. Please review midterm material by slides 6-78~6-95.
    • Chapter 04: 25, 67~76.
    • Chapter 05: 37~40, 43~76, 80~86.
    • Chapter 06: 34, 38~39, 71~86.
    • Chapter07: 17~18, 48~75.
    • Network Security: 18, 81~113.

Course Objectives & Learning Outcomes

  • To review the ideas of networking design.
  • To understand the layered network architecture.
  • To understand and implement the basic network-based program.
  • To be able to evaluate the design of a protocol and try to improve it.
  • To be able to develop a network structure suitable for home and enterprise.
  • To understand the Cloud and its application.


  • They have the knowledge of the most commonly design used in computer network
  • They understand what hardware or software should be used in a complex computer network.
  • They can analyze the performance of a protocol, both theoretically and experimentally, and recognize the trade-offs between different protocol design.
  • They can write socket programs with network libraries.
  • They have experience working with network devices (by using the own PC or laptop).
  • They can manage a complex enterprise network.
  • They have the knowledge to purchase and evaluate Cloud-based machine for deploying network apps.
  • Thy can monitor the network packet and analyze them.
  • They can identify network security problem and solve them,

Schedule (Fall 2019)

  1. 09/10-11: Syllabus; (1) Computer Network and Internet
  2. 09/17-18: (1) Computer Network and Internet
  3. 09/24-25: (2) Application Layer
  4. 10/01-02: (2) Application Layer
  5. 10/08-09: (2) Application Layer, L7 Wireshark
  6. 10/15-16: (3) Transport Layer
  7. 10/22-23: (3) Transport Layer
  8. 10/29-30: (3) Transport Layer, L4 Wireshark
  9. 11/05-06: Midterm.
  10. 11/12-13: (4) The Network Layer - Data Plane.
    • Announce Term Assignment. Watch Berkeley Socket Programming.
    • Please also google "Berkeley socket programming" for a better understanding of the codes or wiki "Berkeley sockets".
    • See the Lab 2-1. You may use Python or Java to write your assignment.
  11. 11/19-20: (5) The Network Layer - Control Plane
  12. 11/26-27: (6) The Network Layer
  13. 12/03-04: (6) The Link Layer, L2/L3 Wireshark
  14. 12/10-11: (7) Wireless and Mobile Networks
    • Note the slides are the original presentation file provided by the textbook. This lecture will be partially given by Dr. C.-W. Lee.
  15. 12/17-18: Reserved.
  16. 12/24-25: (8) Network Security
    • Here is the slide provided by the textbook for your reference.
  17. 12/31-01/01: No class.
  18. 01/07-08: Final.

Lab (Fall 2019)

  1. Network Commands
    1. L2: ipconfig /all or ifconfig /all, arp -a
    2. L3: route print, tracert, ping
    3. L4: netstat
    4. L7: nslookup, telnet, ftp
  2. Socket Programming
    1. Please google "Berkeley socket programming" for a better understanding of the codes or wiki "Berkeley sockets". Here is a tutorial video 'Berkeley Socket Programming'.
    2. HTTP server/client
    3. Multi-thread HTTP server/client
    4. TFTP server/client
  3. Wireshark

Grading Policy

  • Homework (48%): 8~10 homework.
  • Term Assignment (12%): socket programming
  • Midterm and Final (40%)


100%: Grade, GPA

  • 100~90: A+, 4.3
  • 89~85: A, 4.0
  • 84~80: A-, 3.7
  • 79~77: B+, 3.3
  • 76~73: B. 3.0
  • 72~70: B-, 2.7
  • 69~67: C+, 2.3
  • 66~63: C, 2.0
  • 62~60: C-, 1.7
  • 59~57: D+, 1.3
  • 56~53: D, 1.0
  • 52~50: D-, 0.7
  • 49~0: F, 0.0

Homework

  • You must submit your homework via the homework submission system (http://hsiaom.nccu.edu.tw:8888/index/ ) before due date/time. Late submission is NOT allowed unless reasonable excuses are emailed to the TA/lecture when homework is announced.
  • ONLY Portable Document Format (PDF) is allowed in the system; homework in any other format (which may increase TA's load) will be pending (possibly forever).
  • ID and password will be given in the class. Each student has an individual account in the system. Giving your password to your classmate is considered as cheating.