Networking (Business Data Communication) 2020

"Business Data Communication" is a required course designed only for senior students who major in Management Information Systems. ONLY MIS students (including double major) are allowed to enroll in this course. For students from other departments, IMBA students, and exchange students, please unenroll from this class.

This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, protocols, and applications. Topics to be covered include layered network architecture, physical layer, and data link protocols, network and transport protocols, routing protocols, and network applications. Examples will be drawn from the Internet TCP/IP protocol suite. The course also includes several 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; QR-code.

  • Lecture (306007011): Wednesday 234 (09:10 ~ 12:00) @ Classroom #260102 學思樓 104 室 (#040104) QR-code.

  • 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: 曾志中 (109356019), 朱柏瑜 (109356020)

  • Office Hours: By appointment only.

  • Textbook: "Computer Networking: A Top-Down Approach" by James F. Kurose and Keith W. Ross. (7th)

  • Forum: https://groups.google.com/forum/#!forum/nccu-networking

  • Lab video & Class delay-live streaming video: https://youtube.com/channel/UCIIOuh-0H1Wrq75ozOVBaHA

  • 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 2020)

  • 09/01: 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.

  • 09/01: On 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.

  • 09/14: Due to the COVID-19, students MUST scan the QR code every week. Here is the QR-code for the Tuesday class, and the QR-code for the Wednesday class.

  • 09/17: Classroom changed for Wednesday's class. Please go to 學思樓 104 室 (#040104).

  • 09/28: [HW01S] announced. Submit this homework before 9:10 am on 06/07 October 2020 via the homework submission system. If any questions, please contact TAs.

  • 09/29: [HW02E] announced. Submit this homework before 13/14 Oct. 23:59. No late submission is allowed.

  • 10/15: [HW03S] Homework #03S announced. Submit this homework before 23:59 on 22 October 2020 via the homework submission system. Sorry for that late announcement, the due date has been extended to Thursday.

  • 10/19: [HW04E] announced. Submit this homework before 26/27 Oct. 23:59.

  • 10/28: [HW05E] announced. Sorry for the late announcement, the due date is 5 Nov at 23:59 for both classes. The answer will be announced right after due time since our midterm will be held soon.

    • 11/1: Due to an unknown power outage, the homework submission system is offline. It will be online tonight.

  • 11/3: [HW06S] announced. Since the midterm is coming, the due time for both classes is Sunday night. We will announce the answer right after the due time.

  • 11/19: [TA01C/TA01D] announced. The due date is 7 Dec at 23:59 for both classes.

  • 12/2: [HW07S] is announced. Submit this homework before 14/15 Dec. 23:59. Note that [HW08S] will be announced later, and the due date of HW08S is also 14/15 Dec.

  • 12/9: [TA02C] announced. The due date is 28 Dec at 23:59 for both classes.

  • 12/24: [TA02C]. Please upload your code to the homework system. If possible please upload .py file rather than ipynb. You can easily convert your .ipynb to .py by jupyter notebook. Also, you only need to upload your code with proper comments. No document or Wireshark screenshot is needed.

  • 1/5: Homework announced. Please check the homework submission system.

  • 1/5: Students of Wednesday class should still attend the class in 1/6 in 學思樓 104 室 (#040104).

  • 1/9: Final Exam

    • ch3 page 3-84 ~ 3-108

    • ch4 page 4-1~4-22, 4-24~4-59, 4-61~4-65

    • ch5 page 5-1~5-30, 5-32, 5-34, 5-37, 5-47~5-50

    • ch6 page 6-1~6-35, 6-38~6-69, 6-70~6-79

    • ch7-1 page 7-1~7-32

    • ch7-2 page 7-1~7-7, 7-9~30, 7-32~7-33

    • ch8 page 8-4, 8-9, 8-11, 8-18, 8-44~8-47, 8-49, 8-53, 8-54, 8-128, 8-129

  • 1/14: Final Score

    • Announce final score at the homework system at 9pm in 1/21

    • Face-to-face discussion about your final score with TAs 10am-1pm in 1/22

    • Announce adjusted final score (which will be a little bit higher than the score shown in the homework system) by email by 1/25

    • The adjusted final score will be submitted to the university by 1/25 as well.

Course Objectives & Learning Outcomes

The main objective includes but not limited to

  • 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


The desired outcomes for students include

  • They know the design used in the computer network

  • They see what hardware or software should be used in a complex computer network.

  • They can analyze the performance of a protocol theoretically and experimentally and recognize the trade-offs between different protocol designs.

  • They can write socket programs with network libraries.

  • They have experience working with network devices (by using their 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.

  • They can monitor the network packet and analyze them.

  • They can identify network security problem and solve them.

Schedule (Fall 2020)

  1. 09/15-16: Syllabus; (1) Computer Networks and Internet

  2. 09/22-23: (1) Computer Network and Internet

  3. 09/29-30: (2) Application Layer

  4. 10/06-07: (2) Application Layer

  5. 10/13-14: (2) Application Layer, L7 Wireshark

  6. 10/20-21: (3) Transport Layer

  7. 10/27-28: (3) Transport Layer

  8. 11/03-04: (3) Transport Layer, L4 Wireshark

  9. 11/10-11: Midterm.

  10. 11/17-18: (4) The Network Layer

    • Please read the Lab #2. We will NOT go over them in the class.

  11. 11/24-25: (4) The Network Layer

  12. 12/01-02: (5) The Network Layer

  13. 12/08-09: (6) The Link Layer, L3/L2 Wireshark

  14. 12/15-16: (7-1) Wireless Network

  15. 12/22-23: (7-2) Mobile Networks

  16. 12/29-30: (8) Security

  17. 01/05-01/06: AWS and Cybersecurity.

    • 1/5: We will invite Ms. Yi-Ling Lai to introduce AWS i our class. Please go to Yi-Xian Building (5F) directly on 1/5. If possible, you may want to bring your own laptop.

    • 1/6: Please still attend the class in 學思樓 104 室 (#040104). We will cover some cybersecurity topics.

  18. 01/12-13: Final.

Lab (Fall 2020)

  1. Network Commands

    1. L2: ipconfig /all or ifconfig /all, arp -a

    2. L3: route print, traceroute (Linux/Mac) or tracert (Windows), 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%): 6~8homework.

  • Term Assignment (12%): socket programming

    • A stateless protocol: HTTP server and client.

    • A stateful protocol: FTP client.

  • 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 (unless upload format is pre-designated); 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.