Wide Area Networks The Internet and the World Wide Web Eric Cozzi eric (at) cozzi (dot) us Agenda History of the Internet Transmission Control Protocol / Internet Protocol Modern Day Internet Questions History of the Internet • In the 1960’s there was great concern that a nuclear strike would render all traditional communications useless. • As a result, the US Department of Defense funded the ARPAnet in the development of a decentralized, resilient, and self-configuring communications network. First ARPANet Connections The first ARPANET links were between UCLA and the Stanford Research Institute in November 1969. A month later links to the University of Utah and the UC Santa Barbara were added. Len Kleinrock standing next to the first Inter Message Processor (IMP) at UCLA Creation of the NSFNet • Recognizing the potential of the ARPANet, the National Science Foundation funded the non-military NSFNet. • The NSFNet initially interconnected six universities: Boulder, Champaign, Ithaca, Pittsburg, Princeton, and San Diego. A gateway to the ARPANet was provided by Carnegie Mellon University. Commercialization of the Internet • While both the ARPANet and NSFNet were funded by the United States government, both networks were for the sole purpose of supporting research. • In the 1980’s, the “Internet” started to be commercialized by Telephone Providers and privately owned Internet Service Providers. Exponential Growth of the Internet After widespread commercialization of the Internet in the 1980’s, Internet use grew and continues to grow at an exponential rate. Agenda History of the Internet Transmission Control Protocol / Internet Protocol Modern Day Internet Questions TCP/IP TCP/IP defines a set of rules to enable computers to communicate over a network, specifying how data should be packaged, addressed, shipped, routed and delivered to the right destination. The specification defines protocols for different types of communication between computers and provides a framework for more detailed standards. Application Layer Transport Layer Network Layer Data Link Layer Application Layer Network communication starts and ends at the Application Layer. The application layer interfaces directly to and performs common application services for the application processes in order to send and receive data. The application layer also issues & receives requests to/from the transport layer. Data IP Data Frame Data Application Layer TCP Data Data Transport Layer TCP Data Network Layer IP Data CRC Data Link Layer Transport Layer The transport layer validates the application layer request, segments the data, encapsulates it with a transport layer header containing the correct port numbers and sequence count. The packet is then and passes down to the network layer. The transport layer also has the tricky task of dealing with transfer problems. In the event of a TX/RX failure, the transport layer (in the case of TCP) will send and request duplicate packets in order to maintain application layer data integrity. Data IP Data Frame Data Application Layer TCP Data Data Transport Layer TCP Data Network Layer IP Data CRC Data Link Layer TCP Header Handling Errors and Flow Control Here you can see the error handling that is performed by TCP. Whenever a packet is correctly received by the receiver, an ACK is sent to the sender acknowledging the packet. If the sender does not hear an acknowledgement within a certain timeout, the sender will automatically resend any unacknowledged packets. This is known as a Sliding Window Flow Control Protocol. Network Layer The network layer translates the source and destination IP addresses into physical MAC addresses. A MAC address is a quasi-unique identifier that acts like a name for a particular network adapter. The resolution of an IP address into a MAC address is performed through an ARP (Address Resolution Protocol) lookup. Data IP Data Frame Data Application Layer TCP Data Data Transport Layer TCP Data Network Layer IP Data CRC Data Link Layer IP Header Data Link Layer The data link provides data transfer across the physical network link. That transfer may or may provide reliable communications as many data link protocols do not provide a means to test the correctness of a received frame. In these cases, higher-level protocols (such as TCP at the Transport Layer) must provide flow control, error checking, and acknowledgments and retransmission. Data Application Layer TCP Data Transport Layer Data IP Data Frame Data TCP Data IP Data Network Layer CRC Data Link Layer Ethernet Header & Footer Packet Routing over the Internet • For a packet to get to its intended recipient, it needs to find a route through the network. • The most common way for this to happen is hop by hop. The originating machine will deliver the packet to the best next-hop toward the ultimate destination. The packet will continue to move “1 hop” closer to its destination until either the hop count dies or the packet reaches its intended destination. Source 1st Hop … Nth Hop Destination Routing Protocols • There are a number of different routing protocols that are employed to correctly route a packet through the Internet. Some of the most common include – – – – Static Routes Routing Information Protocol (RIP) Spanning Tree Border Gateway Protocol (BGP) DNS - The Big Phone Book in the Sky • When trying to connect to a remote machine, often all we know is the machine’s name and not its IP address. • The Domain Name Service (DNS) can be thought of like a giant phone book in the sky, that automatically maintains a mapping between Domain Names and IP Addresses. • The DNS system maintains a hierarchy of redundant DNS servers starting with the Root Name Servers. When looking up a domain name, a DNS host resolves the name against this hierarchy until the ultimate host IP is found. The OSI Model • The OSI Model is an idealized networking model that can be closely correlated to the TCP/IP model. • The OSI Model defines 7 layers, where the TCP/IP model defines 4 (or 5 depending). • Roughly the first three layers of the OSI model map to the Application layer of the TCP/IP model. Further, the last two layers of the OSI model roughly map to the Data Link layer of the TCP/IP model. • Each layer in between directly maps with its couterpart. Comparison of the TCP/IP and OSI Models TCP/IP Model OSI Model Application Layer Application Layer Presentation Layer Session Layer Transport Layer Transport Layer Network Layer Network Layer Data Link Layer Data Link Layer Physical Layer Agenda History of the Internet Transmission Control Protocol / Internet Protocol Modern Day Internet Questions The World Wide Web • The World Wide Web (WWW) was developed by Sir Timothy Berners-Lee while working at the CERN laboratories. • While at CERN, Berners-Lee proposed a method of using a HyperText Transmission Protocol (HTTP), along with HyperText Markup Language (HTML) to facilitate the sharing of ideas among researchers. • To view an HTML page, a browser application would reformat and display the HTML encoded page in a way appropriate for the user’s display. In this way, hypertext documents are not tied to any particular capability or functionality. HTML • HTML consists of a series of formatting commands, known as HTML tags, which can be embedded into the text content of a page. • These tags are used to describe properties of the page including how the page should be formatted and presented. • Some Example Tags include: – – – – <B> … </B> - embolden font <I> … </I> - Italicize font <A HREF=“URL”>…</A> - Define a hyperlink\ <IMG SRC=“URL”> - Insert an image Hello World in HTML <html> <head> <title>HTML Hello World</title> </head> <body> <H1>Heading of Hello World!</H1> This is where we say <p>Hello World</p> </body> </html> Server and Browser side Enhancements • Since the inception of the WWW, new technologies and language extensions have been developed that have enhanced both the server and browser sides of the web experience. • Some of these include: – Server Side Scripting: • PHP, Java, ASP, CGI, Perl, – Client Side Scripting: • JavaScript, Flash, AJAX HyperText Transfer Protocol (HTTP) • HTTP is a client-server protocol intended for use when retrieving documents from the World Wide Web. • Some examples of HTTP commands include: – – – – PROXY <URL> HEAD <URL> HTTP/1.0 GET <URL> HTTP/1.0 POST <URL> HTTP/1.0 Uniform Resource Locators (URLs) • A Uniform Resource Locators (URLs) are used to ‘address’ web pages on the World Wide Web. These can be thought of like a file path to a file on your hard drive. • A URL can be split into a minimum of three different parts: – Protocol: Most commenly, HTTP – Machine Name: The DNS name or IP address of the server machine where the HTTP page ‘lives’ – File Path: The relative file path to the file on the server machine. Example: http://www.cs.sjsu.edu/~lee/index.html WWW Search Engines • Without the modern day search engines, like Yahoo and Google, the World Wide Web would long ago have become unmanageable. • Search Engines work by ‘crawling’ the Internet to find, sort, rank and index pages. This results in an extremely large database which essentially holds the entire Internet. • When performing a user search, the search engine uses this local database to locate presumptive matches before presenting them to the user. Agenda History of the Internet Transmission Control Protocol / Internet Protocol Modern Day Internet Questions