|CMPU 375, Fall 2005||Lecture 1|
This lecture is an overview of what we will cover in the course. We'll start by presenting a general picture of the internet, starting from an end system and then looking deeper into the interior of the network. We'll discuss the notion of layered services, which is a general model for how the responsibility for different kinds of communication is divided among the software and hardware components making up the internet.
A network is composed of autonomous computers, or nodes, connected by network links. By "autonomous", we mean that the network nodes are not directly controlled by another computer. A network link is some kind of communication channel allowing two nodes to send information to each other. The topology of a network can be any arbitrary graph, as long as at least one path exists between every pair of nodes. If nodes that are not directly connected want to communicate, they need to send information via intermediate nodes. An intermediate node with multiple network links that relays information between links is called a router, and the general problem of figuring out where to send data so that it eventually reaches its destination is called routing.
Internetworking is a term for combining multiple computer networks into a single network. The term internet can mean any connected set of networks, but usually it refers to the global internet.
In a circuit-switched network, if two nodes want to communicate, they reserve communications resources on all nodes and links over which their messages will flow. This allows the connection to have a guaranteed amount of information-carrying capacity. However, if the reserved capacity of the connection is not completely utilized (because of periods of inactivity in the connection), then network resources are wasted.
In contrast, in a packet-switched network, no communication capacity is reserved inside the network. Instead, hosts that want to communicate send small chunks of information, or packets, labeled with the address of the destination node. The network's job is to forward the packet over appropriate network links until it reaches its destination. Because network capacity is finite, there are sometimes situations where a packet cannot be forwarded because a router or network link along the communication path is too busy: in this case, the packet will be dropped Thus, packet-switched networks generally offer unreliable communication. However, in general, packet-switched networks make much better utilization of network resources, and the problems caused by dropped packets can be overcome (as we will see later on).
In this course, we will mainly be studying packet switched networks. The global internet is a packet switched network.
Here is an example of a typical office network:
User workstations and a file server are connected by ethernet links to an ethernet switch. Through the switch, they can communicate with each other directly as part of a LAN, "Local Area Network". An 802.11 (or Wifi) base station is also connected to the switch, allowing laptops with wireless adapters to connect to the ethernet LAN.
The workstations, laptops, and servers on this office network are end systems. An end system is a system that hosts network applications. Network applications often take the form of clients and servers: for example, your web browser is a client that requests web pages from a web server on another system: both your computer and the computer running the web server are end systems. In contrast, a router is not an end system. Its job is to reside in the interior of the network and forward communication between its network links.
The ethernet LAN is connected to a router. In this example, router's job is to connect the LAN to the rest of the internet. It does so over a link to another network, either a campus network or Internet Service Provider.
Say you are logged into one of the workstations in the CS department, and you view a web page at www.xyz.com. Your request to view the web page sent to the web server, and the contents of the web page sent back to you, both travel through a number of different networks.
The internet is organized hierarchically. The CS department runs its own network, which is then connected to the Vassar campus network. Other departments on campus may have their own networks, connected to the campus network in the same way. The campus network is connected to a regional Internet Service Provider: in our case, Hudson Valley Datanet. The regional ISP also serves other businesses and organizations, and gets its connectivity to the rest of the internet from a Tier 1 Internet Service Provider. Tier 1 ISPs, like AT&T, Sprint, etc. span the globe, and are strongly connected to each other: therefore, the Tier 1 ISPs form the core of the internet. Our connection to www.xyz.com then continues back through another regional ISP, and the xyz.com company network, until we reach the web server host.
Imagine you want to implement a new kind of network application: for example, an instant messaging service, a peer-to-peer file sharing system, etc. You should be able to implement your application by writing software that will run on end systems. You should not need to be concerned with any of the following issues:
Even though all of these issues must be solved in order to enable communication between any two systems on the internet, applications do not need to be concerned with them because they are handled by lower-level services. A service is a software and/or hardware component that enables a specific type of communication. Services are organized in layers, with higher-level services being built on lower-level services. Services interact directly only with services in the layer immediately above and below them: the higher level service is the client, and the lower level service is the provider.
A protocol describes how the details of communication in a particular service are carried out. Each layer may have a multiple services, each implemented by its own protocol.
|Application||Structured communication between peer applications||HTTP (web browser <---> web server), SSH (secure login and file xfer)||Encoding of data, framing of messages, concurrency|
|Transport||Unstructured communication between peer applications||TCP (reliable connection), UDP (unreliable datagram)||Multiplexing/demultiplexing, connection management, reliability, flow control, congestion avoidance|
|Network||Unreliable transmission of packets between end systems||IP||Routing|
|Link||Transmission of packets across a single network link||Ethernet, PPP||broadcast vs. point-to-point, medium access control, error detection/correction|
|Physical||Physical transmission of bits over the communication medium||100BaseT (ethernet), 802.11b (11Mb/s WiFi)||encoding of bits as electrical signals, radio waves, etc.|