Welcome to CNT 5505 / CNT 4504 Data and Computer
24 Slides104.42 KB
Welcome to CNT 5505 / CNT 4504 Data and Computer Communications Zhenhai Duan 1
Instructor Zhenhai Duan ([email protected]) Office: Love 162 Office hours: – 1:30PM – 2:30PM, TTh – Or by appointments – Email [email protected] Class website – Use canvas – http://canvas.fsu.edu 2
Teaching Assistant TBA 3
What is this class about? General purpose computer networks – Not specialized networks (e.g., telephone or cable TV) Fundamental principles – Not survey of existing protocol standards Focus on network software architecture – Only discuss some relevant network hardware Designing and building network systems – – Not queuing theory CIS5930 Modeling and Performance Analysis After taking this class, you should be able to – – – Describe the overall Internet architecture Describe the design issues in each layer of the architecture Describe, analyze, apply, and code the key techniques and protocols in each layer 4
Course Prerequisites Official – CNT 5505: COP 4610 (Operating Systems) – CNT 4504: COP 4530 (Data Structures II) Unofficial notes – A student can pass this course without much required background knowledge if he or she is motivated enough – A rudimentary understanding of computer architecture, and operating systems would be helpful – Basic probability theory may be needed to understand some performance analysis C/C programming is required – Unix programming – Socket programming 5
Course Materials Required textbook – “Computer Networks,'' by Andrew S. Tanenbaum, Prentice Hall, 6th edition, 2021 Recommended reference textbooks – “Computer Networking: A Top-Down Approach,'' by Jim Kurose and Keith Ross, Addison-Wesley. – “Computer Networks and Internets,'' by Douglas E. Comer, Prentice Hall. – “Advanced Programming in the Unix Environment,” by W. Richard Stevens, Addison-Wesley – “Unix Network Programming, the Socket Networking API,” Volume 1, 3rd Edition, by W. Richard Stevens, et al. Addison-Wesley Lecture notes, other assigned readings Materials on the Internet 6
Workload and Grading Policies 4 homework assignments: 20% (5% each) 2 course project: 30% – 5% for the first project, – 25% for the second project 1 midterm exam: 20% 1 final exam: 30% Link to the final letter grade 7
Important dates Check blackboard on important dates – Subject to change – Changes will be announced in the canvas For course assignments – Submit through the online submission page – Midnight on the due dates – Demo time will be announced later 8
Accounts Computer Science account ( yourid @cs.fsu.edu) – For doing projects – https://system.cs.fsu.edu/new/newuser/ FSU account ( yourid @fsu.edu) – – – – For receiving class announcements For submitting assignments For getting your grades http://its.fsu.edu/Students Access to canvas – For class materials, discussion board, grades etc. – Through your FSU account – http://canvas.fsu.edu 9
Policies and Guidelines No late homework/projects – – – – Please work on homework assignments/projects early and hand in on time 10% penalty no late than 24 hours 20% penalty no late than 48 hours Zero for homework more than 2 days late. No make-up exam, no Incomplete – unless proof of emergency Scholastic behaviors – Encouraged to study in groups but do your work independently – Acknowledge reference/credits if receive help – Academic Honor Code enforced Moss will be used to detect plagiarism – You may end up “F” for dishonesty – It is not worth it. Please read detailed course policies on the course website. 10
Honors Code Violations The student will receive a score of zero on the concerned assignment. The final letter grade will be lowered by one level (for example, A will become A-). Do not copy from anywhere. Do not give your solution/code to others, at any time. 11
Questions and Concerns? 12
Computer Communication: A motivation example What happens behind the scene when I click on the following link (on machine diablo.cs.fsu.edu) http://www.google.com? Don’t be overwhelmed by the example; we will study all aspects involved in this semester 13
Layered Internet Protocol Architecture Application Application layer – HTTP, SMTP, FTP Transport Transport layer Network Network layer Data Link Data link layer Physical layer Physical – TCP, UDP – IP – Ethernet 14
Step 1: on local host Browser figures out what to do with the URL: http://www.google.com/ – Three components in URL Where: www.google.com What: (retrieving default file under root path / -- index.html) How: through HTTP protocol – Talk to http daemon on www.google.com to get file index.html through HTTP protocol 15
Step 2: translating domain name to IP address Each machine on the Internet identified by one or more IP address Browser translating domain name (www.google.com) to corresponding IP address using domain name server (DNS) – DNS in CS department: 128.186.120.51 How does browser know IP address of DNS server? – Hard-coded (/etc/resolv.conf) – DHCP auto-configured system. 16
Step 2: Getting IP address (Con’t) Call its UDP protocol entity to talk to 128.186.120.51 port 53 UDP protocol calls IP to send a datagram to 128.186.120.51. Turns out that 128.186.120.51 and 128.186.120.2 (diablo) are on the same Ethernet domain, can send directly via the Ethernet. Needs to find out the Ethernet address of 128.186.120.51. uses ARP protocol, sends an ARP packet over the network What is the physical address of 128.186.120.51? result: B4:96:91:3D:69:28 IP asks Ethernet to send an Ethernet frame to B4:96:91:3D:69:28. Ethernet on 128.186.120.51 receives an Ethernet frame, turns out to be an IP packet, pass it to the IP module. IP module finds out it is a UDP packet and passes it to UDP module. UDP realizes that a process is listening to port 53, notifies the process. Port number for different applications: /etc/services Showing ARP cache: /sbin/arp 17
Step 2: Getting IP address (Cont’d) Browser calls UDP protocol entity to send a message to 128.186.120.51/53 The UDP message to the DNS server is “What is the IP address of www.google.com?” The DNS server sends a message back: 192.178.50.68 – – Actually situation is complicated than this www.google.com is associated with multiple IP addresses Commands mapping name and IP: host, nslookup, dig 18
Step 3: establishing HTTP connection Calls TCP entity to set up a connection to192.178.50.68 /80 TCP protocol calls IP to send a datagram to 192.178.50.68 – turns out that www.google.com and diablo are not directly connected. – need to forward to the first-hop router (128.186.120.1) – find the Ethernet address of first-hop router using ARP – forward packet to first-hop router – (second router, third router) . – www.google.com receives a packet. Showing routing table: netstat –r, or /sbin/route Showing “complete” path: traceroute 19
Step 4: Web page request and retrieval Use TCP to send strings (following the HTTP protocol): “get / HTTP/1.1\nHost: diablo.cs.fsu.edu\n\ n” – TCP entity calls IP to send a datagram – . – www.google.com responses with the content of index.html 20
Step 5: web page rendering Browser displays the content of the web page This example was greatly simplified – – – – We did not discuss routing in detail We did not discuss rate-control We did not discuss error-control 21
The above example greatly simplified DNS UDP IP Ethernet Browser (http client) http server TCP/UDP TCP IP IP Ethernet Ethernet 22
What problems we need to resolve? Naming, addressing routing Speed mismatch between sender/receiver error control resolve contention fragmentation/reassembly multiplexing/demultiplexing . 23
Reading Socket programming – Online tutorials and Sections 6.1.3 and 6.1.4) Sections 1.1-1.5, 2.4 24