Computer Communication: An example • What happens when I click on http://www.cs.fsu.edu/~xyuan/cen5515? • Step 1: Netscape figures out what to do with the URL “http://www.cs.fsu.edu/~xyuan/cen5515” – Three components in the URL: • • • • Where? www.cs.fsu.edu What? /~xyuan/cen5515 How? Through the HTTP protocol. Talk to the http daemon using the HTTP protocol on www.cs.fsu.edu to get file /~xyuan/cen5515. – Netscape finds out what is the network address of www.cs.fsu.edu. • finding out the network address of “www.cs.fsu.edu” – netscape goes to a domain name server (DNS) to find out the IP address of “www.cs.fsu.edu” host = gethostbyname(“www.cs.fsu.edu”); – DNS server in our department: 128.186.121.178 – How does netscape know the address of the DNS server? • Hard-coded at system (network) configuration. E.g. /etc/resolv.conf in Linux systems. • Step 1: Get the IP address from the DNS server. – Call its UDP protocol entity to talk to 128.186.120.178 port 53 • UDP protocol calls IP to send a datagram to 128.186.120.178. – Turns out that 128.186.120.178 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.178. – uses ARP protocol, sends an ARP packet over the network What is the address of 128.186.121.10? result: 08:00:20:FC:EF:6D. – IP asks Ethernet to send an Ethernet frame to 08:00:20:FC:EF:6D. – Ethernet on 128.186.120.178 receives an Ethernet frame, turns out to be an IP packet, pass it to the IP module. – IP module finds out that it is a UDP packet and passes it to the UDP module. – UDP realizes that a process is listening to port 53, notifies the process. • Step 1: How to get the IP address from the DNS server (continue)? – Netscape calls the UDP protocol entity to send a message to 128.186.121.10/53 • The UDP message to the DNS server is “What is the IP address of www.cs.fsu.edu?” • The DNS server sends a message back: 128.186.120.244 • Step 2: Set up a TCP connection to the remote (128.186.120.244) http daemon. – Calls TCP entity to set up a connection to 128.186.120.244/80 • TCP protocol calls IP to send a datagram to 128.186.120.244 – turns out that 128.186.120.244 (www.cs.fsu.edu) and this machine are directly connected. – Find the Ethernet address of 128.186.120.244 using arp – …... – www.cs.fsu.edu receives a packet. • Step 3: Talk to the http daemon on www.cs.fsu.edu using the http protocol. – Use TCP to send strings (following the HTTP protocol): “get /~xyuan/cen5515 HTTP/1.1\nHost: diablo.cs.fsu.edu\n\n” • TCP entity calls IP to send a datagram • ….. – www.cs.fsu.edu responses with the content of /~xyuan/cen5515 • Step 4: Netscape displays the file in the window. • The example was simplified. DNS UDP IP Ethernet Netscape (http client) http server TCP/UDP TCP IP IP Ethernet Ethernet • What are the problems we need to solve? – – – – – – – – Naming, addressing fragmentation/reassembly multiplexing/demultiplexing routing resolve contention Speed mismatch between sender/receiver error control …...