"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, data link protocols, network layer design, 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 (you MUST have coding experience) in which students gain hands-on experience with basic network programming and the development of simple network applications.
Instructor: Shun-Wen Hsiao, NCCU MIS Dept., hsiaom at nccu.edu.tw
Lecture (306007001): Tuesday 234 (09:10 ~ 12:00) @ Classroom #260311 (商館260311)
Lecture (306007011): Wednesday 234 (09:10 ~ 12:00) @ Classroom #140208 (資訊140208)
Prerequisite
This course is designed for MIS students and double major students. Students who enroll in this class must have prior programming experience for two semesters. We will NOT cover any programming details. Homework, assignments, and projects need a certain level of programming skills.
TA: 111356021, 111356026, 111356045 at g.nccu.edu.tw
Office Hours: By appointment only.
Textbook: "Computer Networking: A Top-Down Approach" by James F. Kurose and Keith W. Ross
Class live streaming, video on demand, lab video: https://youtube.com/channel/UCIIOuh-0H1Wrq75ozOVBaHA
Forum: https://groups.google.com/forum/#!forum/nccu-networking
Google Classroom (for homework submission): you MUST use your g.nccu.edu.tw account.
Tue: wmd5rph
Wed: ahpxhqj
-/-: Due to the limited seats and TA workload, we cannot afford too many students in both classes. However, students may switch between 306007001 and 306007011. The priority would be junior/senior MIS students, MIS graduate students, and MIS double major students.
-/-: 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.
-/-: The LAST DAY of signing the enrollment document will be 20-27 Sept. MIS students (including double major and minor) are guaranteed to get the signature.
09/14:
The syllabus video is here (Mandarin). English students should contact (by email) Prof. Hsiao in advance.
09/20:
The WiFi signal in both classrooms is not good, so live streaming (on Tuesday and Wednesday mornings) may not work properly. If live streaming is broken, offline recording files will be uploaded in the afternoon to make sure you will not miss any lectures.
The playlist of English videos "[NET][EN] Computer Networks" is here. They are either English-speaking videos (marked as "VoD ver. EN") or Mandarin-speaking ones with English subtitles (marked as "EN Sub"). Owing to the additional video processing time, the English videos will be ready every Wednesday night.
09/27
Homework HW#01 is announced on 27/28 September 2022.
Submit this homework on 4/5 October 2022 (AoE, Anywhere on Earth) to Google Classroom. Since it’s the 1st time we use Google Classroom, the system will still open for submission after 4/5 Oct. and there has no due time, in case of any problem.
10/11
Homework HW#02 is announced.
10/24
Homework HW#03 is announced.
11/15
Assignment AS#01 is announced. Submit this assignment before 29/23 Nov 2022 (AoE, Anywhere on Earth) to Google Classroom.
11/23
Homework HW#05 is announced.
11/29
Assignment AS#02 is announced. Submit this assignment before 21/22 Nov 2022 to Google Classroom.
12/09
Homework HW#06 is announced.
12/13
HW#7, due 1/4-5 (10% of final points)
12/25
The class on 12/27 (Tue) and 12/28 (Wed) will start at 10 am and end at 12 pm. We will have a 2-hour class this week. You may come to the classroom or watch the live-stream video on YouTube.
1/3
HW#8 announced. Please submit it before 23:59 on 9 Jan.
The main objective includes but not limited to
Review the ideas of networking design
Understand the layered network architecture and the underlying technique
Understand and implement the basic network-based program
Be able to develop/evaluate a network structure for home and enterprise
The desired outcomes for students include
They know the design of the current 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 can monitor the network packet and analyze them.
They can identify network security problems and solve them.
09/13-14: Syllabus; (1) Computer Networks and Internet
09/20-21: (1) Computer Network and Internet
09/27-28: (1) Computer Network and Internet
HW#1
10/04-05: (2) Application Layer
10/11-12: (2) Application Layer
HW#2
10/18-19: (3) Transport Layer
10/25-26: (3) Transport Layer
HW#3
11/01-02: (3) Transport Layer
HW#4
11/08-9: Midterm.
11/15-16: (4) Network Layer - Data
Term Assignment AS#01
Socket Programming: "Berkeley socket programming". Please see the video and try one of the Python and Java examples.
11/22-23: (4) Network Layer - Data
HW#5
11/29-30: (5) The Network Layer - Control
12/06-07: (6) The Link Layer
HW#6
12/13-14: (6) LAN + (7-1) Wireless Network
HW#7, due 1/3-4 (10% of final points)
12/20-21: No lecture. TA Lab (face-to-face) in the classroom. Please attend this lab. Lab material is in Google Classroom.
Term Assignment #3
Lab: Wireshark: SNTP.
AS#03: SNTP Server/Client. Due 1/4-5.
12/27-28: (7-1) Wireless Network
01/03-04: (7-2) Mobile Networks
HW#8, due at 23:50 1/9.
Some interesting videos.
PaperClip - 海底光纜如何連接全球互聯網 (5:28)
PaperClip - 為什麼你家的Wi-Fi 這麼慢 (05:10)
PaperClip - 你的手機是怎麼上網的 (04:57)
01/10-11: Final.
Network Commands
L2: ipconfig /all or ifconfig /all, arp -a
L3: route print, traceroute (Linux/Mac) or tracert (Windows), ping
L4: netstat
L7: nslookup, telnet, ftp
Socket Programming
Berkeley socket programming: Please google "Berkeley socket programming" for a better understanding of the codes or wiki "Berkeley sockets". Here is a tutorial video 'Berkeley Socket Programming'.
A simple TCP (server/client) socket programming in Python. (You may want to see the official Python document.)
Troubleshooting for macOS.
A simple TCP echo (server/client) socket programming in Java. (You may want to see the official Java Tutorials.)
Here are PCAP files capturing the interaction between a TCP server and a client.
HTTP server/client
Multi-thread HTTP server/client
TFTP server/client
HTTP: A simple HTTP request and response (http.cap); a simple HTTP request with a one packet gzip Content-Encoded response (http_gzip.cap).
SMTP (smtp.pcap), POP3, IMAP: A short IMAP session (imap.cap)
DNS: Try to capture your DNS records.
FTP: a complicated file transfer protocol (ftp.pcap)
TFTP: read request (tftp_rrq.pcap), write request (tftp_wrq.pcap).
See also this video: 'Trivial File Transfer Protocol' and this video "Endianness".
See also the TFTP server example code and the TFTP client example code in Python (and Java TFTP Server).
SNTP
TBA
ICMP: Try to capture ping messages.
DHCP: Try to capture your DHCP messages. (> ipconfig /renew)
ARP: arp.pcap a successful arp request and a failure one.
802.11 radio packet: 80211.pcapng.
Some more samples of packets (here)
Homework (45%): 9 homework.
Term Assignment (3%+6%+6%): socket programming
Midterm and Final (40%)
Here is an example of the midterm.
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
You must submit your homework via Google Classroom before the due date/time. Late submission is NOT allowed unless reasonable excuses are emailed to the TA/lecture when homework is announced.
You MUST have a g.nccu.edu.tw account to access the Google Classroom. Each student has an individual account in the system. Giving your password to your classmate is considered cheating. Showing your homework to others is considered cheating.