90 likes | 185 Views
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
E N D
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.
DNS Netscape (http client) http server • The example was simplified. TCP TCP/UDP UDP IP IP IP Ethernet 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 • …...