Lesson 1

Ace your homework & exams now with Quizwiz!

What are the different types of devices that help to provide connectivity between hosts that are in the same network, or help interconnect networks?

Repeaters and Hubs, Bridges and Layer-2 Switches, Routers and Layer-3 Switches

"Galactic Network"

(1962) The first vision of a Network - proposed as "Galactic Network" - by J.C.R. Licklider was at MIT back in 1962. As the head of the research program at Defense Advanced Research Projects Agency (DARPA) - led a group of researchers to experiment connecting two computers. An MIT researcher, Lawrence G. Roberts connected one computer in MA to another computer located in CA with a low-speed dial-up telephone line.

ARPANET

(1969) The results of the first experiments showed that time-shared infrastructure was working sufficiently well at that moment. But also at the same time researchers indicated the need for packet switching technology. Roberts continued developing the computer network concept, which resulted in the first network which was connecting four nodes (from UCLA, Stanford Research Institute, UCSB and Univ. of Utah, respectively) into the initial ARPANET by the end of 1969.

NCP and ARPANET

(1970) As the number of computers that were added to the ARPANET increased quickly, research work proceeded to designing protocols. The initial ARPANET Host-to-Host protocol called Network Control Protocol (NCP) was introduced in 1970, and it allowed the network users to begin developing applications. One of the first applications that launched was email in 1972.

Internetworking and TCP/IP

(1973) a DARPA team of researchers led by Bob Kahn, introduced the idea of open-architecture networking so that the individual networks may be independently designed and developed. This led researchers to develop a new version of the NCP protocol which would eventually be called the Transmission Control Protocol / Internet Protocol (TCP/IP). Khan collaborated with Vint Cerf in Stanford and presented the original TCP paper in 1973. The first version of TCP later split its functionalities into two protocols, the simple IP which provided only for addressing and forwarding of individual packets, and the separate TCP which focused on service features such as flow control and recovery from lost packets.

DNS - History

(1983) The Domain Name System (DNS) - which was designed to translate domain names to IP addresses by a scalable distributed mechanism - was introduced by Paul Mockapetris at USC in 1983.

WWW - History

(1990) More applications sprung up quickly. One of the first and most popular applications was the World Wide Web (WWW), which was introduced by a team of researchers led by Tim Berners-Lee.

Which of the following statements are correct? A. The Spanning Tree Algorithm helps to prevent broadcast storms B. The Spanning Tree Algorithm presented in this lecture always results in a spanning tree that places the root in a topologically central location, so that all the nodes are as "close" as possible to the root. C. Network traffic cannot traverse an inactive link.

- A is correct. That is the purpose of the Spanning Tree Algorithm. Although it is still possible to have broadcast storms on the network (such as from a bad network card), STP prevents broadcast storms that result from having loops present in the network topology. - B is incorrect. The Spanning Tree Algorithm presented guarantees a unique spanning tree that all the nodes will agree to, but sometimes this isn't the most "optimal" tree possible. Network administrators can configure the switch ID if they want to have a specific spanning tree. - C is incorrect. Traffic can still reach the link, but the link is not used to forward traffic.

Which of the following are ramifications of the "hourglass shape of the internet"? (Choose all that apply) A. Many technologies that were not originally designed for the internet have been modified so that they have versions that can communicate over the internet (such as Radio over IP). B. It has been a difficult and slow process to transition to IPv6, despite the shortage of public IPv4 addresses. C. Applications like BitTorrent leverage peer-to-peer networking instead of a more traditional client-server model for better performance.

- A is correct; Modifying a technology so that it is compatible with the rest of the internet (i.e., by making it compatible with IP) greatly enhances market penetration (from the vendor's perspective), and/or decreases the amount of extra development that would need to happen. - B is correct. A big part of the Internet infrastructure uses IPV4 while the cost of transitioning is high. This reflects as a consequence of the narrow waist. - C is not relevant here. The hourglass shape of the Internet refers to Internet architecture in terms of protocols available at the different layers.

4 reasons to study computer networks

1) Internet growth 2) Networks play instrumental role in society 3) Networking is playground for interdisciplinary research innovations 4) Networking offers multidisciplinary research opportunities with potential for impact

Disadvantages of a layered protocol stack

1) Some layers functionality depends on the information from other layers, which can violate the goal of layer separation. 2) One layer may duplicate lower layer functionalities. 3) Some additional overhead that is caused by the abstraction between layers.

What is a bridge?

A bridge is a device with multiple inputs/outputs. It transfers frames from an input to 1+ outputs. Though it doesn't need to forward all the frames it receives. A learnings bridge learns, populates and maintains, a forwarding table. The bridge consults that table so that it only forwards frames on specific ports, rather than over all ports.

How does EvoArch explain hourglass shape?

A large birth rate at the layer above the waist can cause death for the protocols at the waist if these are not chosen as substrates by the new nodes at the higher layers. The waist of the Internet architecture is narrow,. The EvoArch model predicts that even if these brand new architectures do not have the shape of an hourglass initially, they will probably do so as they evolve, which will lead to new ossified protocols. The model suggests that one way to proactively avoid these ossification effects a network architect should try to design the functionality of each layer so that the waist is wider, consisting of several protocols that offer largely non-overlapping but general services, so that they do not compete with each other.

Know Spanning Tree Algorithm

Every node (bridge) in the graph has an ID. The bridges eventually select one bridge as the root of the topology. The algorithm runs in "rounds" and at every round each node sends to each neighbor node a configuration message with three fields: a) the sending node's ID, b) the ID of the roots as perceived by the sending node, and c) the number of hops between that (perceived) root and the sending node. At every round, each node keeps track of the best configuration message that it has received so far, and it compares that against the configuration messages it receives from neighboring nodes at that round. At the very first round of the algorithm, every node thinks that it is the root. Note that the distance of the node from itself (perceived root) is 0. Between two configurations, a node selects one configuration as better if: a) The root of the configuration has a smaller ID b) The roots have equal IDs, but one configuration indicates smaller distance from the root c) Both roots IDs are the same and the distances are the same, then the node breaks the tie by selecting the configuration of the sending node that has with the smallest ID. In addition, a node stops sending configuration messages over a link (port), when the node receives a configuration message that indicates that it is not the root, eg when it receives a configuration message from a neighbor that: a) either closer to the root, or b) it has the same distance from the root, but it has a smaller ID. As an example, let's consider the topology below. By running the above steps on this topology, we note that in the first round B3 receives (B2,B2,0) and (B5,B5,0), so it accepts B2 as the root. So in the second round it sends (B3,B2,1) to its neighbors. Similarly for B2; In the first round, B2 receives (B3,B3,0) and (B1,B1,0), it accepts B1 as the root. So in the second round B2 sends (B2,B1,1). Finally, B5 receives configuration messages from B3, B7 and B1. B5 accepts B1 as root and sends (B5, B1, 1) to B3. This results to B3 also accepting B1 as root. In addition, B3 realizes that both its neighbors, namely B2 and B5 are closer to the root (B1) than itself. This causes B3 to not select any of its links (ports). So B3 stops participating in forwarding traffic.

EvoArch: Iterations

EvoArch is a discrete-time model that is executed over rounds. At each round, we perform the following steps: A) We introduce new nodes, and we place them randomly at layers. B) We examine all layers, from the top to the bottom, and we perform the following tasks: 1) We connect the new nodes that we may have just introduced to that layer, by choosing substrates based on the generality probabilities of the layer below s(l−1), and by choosing products for them based on the generality probability of the current layer s(l). 2) We update the value of each node at each layer l, given that we may have new nodes added to the same layer l. 3) We examine all nodes, in order of decreasing value in that layer, and remove the nodes that should die. C) Finally, we stop the execution of the model when the network reaches a given number of nodes.

Encapsulation

Keeping details (like data and procedures) together in one part of a program so that programmers working on other parts of the program don't need to know about them. This is implemented in the form of packaging up details like application message + transport header. This info can help inform host about which application to deliver message to Note: At each layer the message is a combination of two parts: a) the payload which is the message from the layer above, and b) the new appended header information. At the receiving end, the process is reversed, with headers being stripped off at each layer. This reverse process is known as de-encapsulation.

EvoArch: Layer Generality

Layer generality. Each layer is associated with a probability s(l), which we refer to as layer generality. The layer generality decreases as we move to higher layers, and thus protocols at lower layers are more general in terms of their functions or provided services than protocols at higher layers.

EvoArch: Layers, Nodes, and Edges

Layers. A protocol stack is modeled as a directed and acyclic network with L layers. Nodes. Each network protocol is represented as a node. The layer of a node u is denoted by l(u). Edges. Dependencies between protocols are represented as directed edges.

What were original goals of end to end principal

Moving functions and services closer to the applications that use them, increases the flexibility and the autonomy of the application designer to offer these services to the needs of the specific application. Thus, the higher-level protocol layers, are more specific to an application. Whereas the lower-level protocol layers are free to organize the lower-level network resources to achieve application design goals more efficiently and independently of the specific application.

What is a NAT box?

Network Address Translation (NAT) boxes. NAT boxes help us as a bandaid measure to deal with the shortage of Internet addresses. Let's see in more detail how a NAT-enabled home router operates. Let's assume we have a home network, where we have multiple devices we want to connect to the Internet. An internet service provider typically assigns a single public IP address (120.70.39.4) to global internet. Each device in network gets a IP in the private subnet, and we can have thousands in same address range (eg 10.0.0.0/24)

How does a NAT box work?

Network Address Translation (NAT) has a translation table that maps public facing IP and private IP's within the network. For example, let's assume that a host 10.0.0.1 inside the private network, uses port 3345 to send traffic to a host in the public Internet with IP address 128.119.40.186 and port 80. Then the NAT table says that packets with the source IP address of 10.0.0.1 and source port 3345, they should be rewritten to a source address 138.76.29.7 and a source port of 5001 (or any source port number that is not currently used in the NAT translation table). Similarly, packets with a destination IP address of 138.76.29.7 and destination port of 5001, they will be rewritten to destination IP address 10.0.0.1 and destination port 3345.

Some data link layer protocols, such 802.11 (WiFi), implement some basic error correction as the physical medium used is easily prone to interference and noise (such as a nearby running microwave). Is this a violation of the end-to-end principle? (Yes/No)

No, because violations of the e2e principle typically refer to scenarios where it is not possible to implement a functionality entirely at the end hosts, such as NAT and firewalls. In this question, we have a lower level protocol implementing error checking.

EvoArch: Competition

Node competitors and competition threshold. We refer to the competitors of a node u, C(u), as the nodes at layer l that share at least a fraction c of node u's products. We refer to the fraction c, as the competition threshold. So, a node w competes with a node u, if w shares at least a fraction c of u's products.

EvoArch: Birth and Death Rate

Node death rate. The model has a death and birth process in place, to account for the protocols that cease or get introduced respectively. The competition among nodes becomes more intense, and it is more likely that a protocol u dies if at least one of its competitors has a higher value than itself. When a node u dies, then its products also die, if their only substrate is u. Node basic birth process. The model, in its simplest version, has a basic birth process in place, where a new node is assigned randomly to a layer. The number of new nodes at a given time is set to a small fraction (say 1% to 10%) of the total number of nodes in the network at that time. So, the larger a protocol stack is, then the faster it grows

EvoArch: Node Evolutionary

Node evolutionary value. The value of a protocol node, v(u), is computed recursively based on the products of u. By introducing the evolutionary value of each node, the model captures the fact that the value of a protocol u is driven by the values of the protocols that depend on it. TCP has a high evolutionary value because it is used by many higher layer protocols, A new one wouldn't. So the evolutionary value determines if the protocol will survive the competition with other protocols, at the same layer, that offer similar services.

EvoArch: Incoming/Outgoing Edges & Node Substrates

Node incoming edges. If a protocol u at layer l uses the service provided by a protocol w at the lower layer l−1, then this is represented by an "upwards" edge from w to u. Node substrates. We refer to substrates of a node u, S(u), as the set of nodes that u is using their services. Every node has at least one substrate, except the nodes at the bottom layer. Node outgoing edges. The outgoing edges from a node u terminate at the products of u. The products of a node u are represented by P(u).

Data Link Layer

Some example protocols in this layer include Ethernet, PPP, WiFi. The data link layer is responsible to move the frames from one node (host or router) to the next node. More specifically, assuming we have a sender and receiver host, the network layer will route the datagram through multiple routers across the path between the sender and the receiver. At each node across this path, the network layer passes the datagram to the data link layer, which in turn delivers the datagram to the next node. Then, at that node, the link layer passes the datagram up to the network layer. The data link layer offers services that depend on the data link layer protocol that is used over the link. Some example services include reliable delivery, that covers the transmission of the data from one transmitting node, across one link, and finally to the receiving node. We note that this specific type of reliable delivery service is different from the reliable delivery service that is offered by the TCP protocol which offers reliability from the source host to the destination end host. [Packets - frames]

Explain survival of TCP/IP in terms of EvoArch model

The EvoArch model suggests that the TCP/IP stack was not trying to compete with the telephone network services. The TCP/IP was mostly used for applications such as FTP, E-mail, and Telnet, so it managed to grow and increase its value without competing or being threatened by the telephone network, at that time that it first appeared. Later it gained even more traction, with numerous and powerful applications relying on it.

Describe and list out the OSI model

The International Organization for Standardization (ISO) proposed the seven-layered OSI model shown below, which consists of the following layers: application layer, presentation layer, session layer, transport layer, network layer, data link layer, and physical layer.

Describe and list the internet architecture model

The Internet architecture model though has five layers. The application, presentation, and session layers are combined into a single layer, and this combined layer is called the application layer. The interface between the application layer and the transport layer are the sockets

What shape does internet architecture look like?

The Internet protocol stack has a layered architecture that resembles an hourglass shape. Researchers have suggested a model called the Evolutionary Architecture model, or EvoArch, that can help to study layered architectures and their evolution in a quantitative manner. Through this model researchers were able to explain how the hierarchical structure of the layer architecture eventually lead to the hourglass shape.

Application Layer

The application layer includes multiple protocols, some of the most popular ones include: 1) The HTTP protocol (web), SMTP (e-mail) 2) The FTP protocol (transfers files between two end hosts) 3) The DNS protocol (translates domain names to IP addresses). So the services that this layer offers are multiple depending on the application that is implemented. The same is true for the interface through which it is accessed, and the protocol that is implemented. [Packet - message]

What is the end to end principle?

The end-to-end (e2e) principle is a design choice that characterized and shaped significantly the current architecture of the Internet. The e2e principle suggests that specific application-level functions usually cannot, and preferably should not be built into the lower levels of the system at the core of the network. In simple terms, the e2e principle is summarized as: the network core should be simple and minimal, while the end systems should carry the intelligence. Not all applications need the same features so building at network core is not usually beneficial. Helped internet expand so rapidly

E2E Violation: firewalls and traffic filters

The firewalls usually operated at the periphery of a network and they monitor the network traffic that is going through, to allow or drop traffic, if the traffic is flagged as malicious. Firewalls violate the e2e principle since they are intermediate devices that are operated between two end hosts and they can drop the end hosts communication.

What is the goal of spanning tree algorithm?

The goal of the spanning tree algorithm is to have the bridges select which links (ports) to use for forwarding eliminating loops. This is caused by: sometimes using bridges to connect LAN's fails, if the network topology results in loops (cycles). In that case, the bridges loop through packets forever!

E2E Violation: NAT Boxes

The hosts that are behind NAT boxes are not globally addressable, or routable. As a result, it is not possible for other hosts on the public Internet to initiate connections to these devices. So, if we have a host behind a NAT and a host in the public Internet, then by default they cannot communicate without the intervention of a NAT box.

The Network Layer

The network layer is responsible for moving datagrams from one Internet host to another. A source Internet host sends the segment along with the destination address, from the transport layer to the network layer. The network layer is responsible to deliver the datagram to the transport layer in the destination host. The protocols in the network layer are: 1) The IP Protocol, which we often refer to as "the glue" that binds the Internet together. All Internet hosts and devices that have a network layer must run the IP protocol. The IP protocol defines a) the fields in the datagram, and b) how the source/destination hosts and the intermediate routers use these fields, so the datagrams that a source Internet host sends reach their destination. 2) The routing protocols that determine the routes that the datagrams can take between sources and destinations. [Packet - datagram]

Explain the differences between intermediate devices (layer 2 & 3), end hosts, and how it relates to encapsulation

The path that connects the sending and the receiving hosts may include intermediate layer-3 devices, such as routers, and layer-2 devices such as switches. Both routers and layer-2 switches implement protocol stacks similarly to end-hosts. The difference is that routers and layer-2 switches do not implement all the layers in the protocol stack; routers implement layers 1 to 3, and layer-2 switches implement layers 1 to 2. So, going back to our diagram, when the data leave the sending host and they are received by the layer-2 switch, the switch implements the same process of de-encapsulation to process the data and encapsulation to send the data forward to the next device.

Physical Layer

The physical layer facilitates the interaction with the actual hardware and is responsible to transfer bits within a frame between two nodes that are connected through a physical link. The protocols in this layer again depend on the link and on the actual transmission medium of the link. One of the main protocols in the data link layer, Ethernet, has different physical layer protocols for twisted-pair copper wire, coaxial cable, and single-mode fiber optics.

Presentation Layer

The presentation layer plays the intermediate role of formatting the information that it receives from the layer below and delivering it to the application layer. For example, some functionalities of this layer are formatting a video stream or translating integers from big endian to little endian format.

Session Layer

The session layer is responsible for the mechanism that manages the different transport streams that belong to the same session between end-user application processes. For example, in the case of teleconference application, it is responsible to tie together the audio stream and the video stream.

Transport Layer

The transport layer is responsible for the end-to-end communication between end hosts. In this layer, there are two transport protocols, namely TCP and UDP. TCP include: a connection-oriented service to the applications that are running on the layer above, guaranteed delivery of the application-layer messages, flow control which in a nutshell matches the sender's and receiver's speed, and a congestion-control mechanism, so that the sender slows its transmission rate when it perceives the network to be congested UDP protocol provides a connectionless best-effort service to the applications that are running in the layer above, without reliability, flow or congestion control. [Packet - segment]

Connectivity: Routers and Layer-3 Switches

These are devices that operate on Layer 3. More info in other lessons

Connectivity: Bridges and Layer2-Switches

These devices can enable communication between hosts that are not directly connected. They operate on the data link layer (L2) based on MAC addresses. They receive packets and they forward them to reach the appropriate destination. -- A limitation is the finite bandwidth of the outputs. If the arrival rate of the traffic is higher than the capacity of the outputs then packets are temporarily stored in buffers. But if the buffer space gets full, then this can lead to packet drops.

Connectivity: Repeaters and hubs

They operate on the physical layer (L1), as they receive and forward digital signals to connect different Ethernet segments. They provide connectivity between hosts that are directly connected (in the same network). ++ is that they are simple and inexpensive devices, and they can be arranged in a hierarchy. -- hosts that are connected through these devices belong to the same collision domain, meaning that they compete for access to the same link.

EvoArch Example

To illustrate the above model and the parameters, let's consider a toy network example with L equal to 4 layers. The evolutionary value of each node is shown inside each circle. The generality probability for each layer is shown at the left of each layer, and it is denoted as s(l). As we noted earlier, the generality of the layers decreases as we move to higher layers, so on average, the number of products per node decreases as well. Let's further assume that we have a competition threshold c = ⅗. Nodes u, q and w compete in layer 2. U and q compete, but this is unlikely to cause q to die because u and q have comparable evolutionary values. In contrast, it is likely that w will die because its value is much less than that of its maximum-value competitor, u. The main takeaway message from this figure is that the layer width decreases as we move from the bottom layer to a middle layer, around layer 5, and then it increases again as we move towards the top layer.

(T/F) End-hosts implement all five layers while the intermediate devices don't

True - We note again that end-hosts implement all five layers while the intermediate devices don't. This design choice ensures that the Internet architecture puts much of its complexity and intelligence at the edges of the network while keeping the core simple.

How does a bridge learn?

When the bridge receives any frame this is a "learning opportunity" to know which hosts are reachable through which ports. This is because the bridge can view the port over which a frame arrives and the source host. Going back to our example topology, eventually the bridge builds the following forwarding table.

Advantages of having a layered network stack

include scalability, modularity and the flexibility to add or delete components which makes it easier overall for cost-effective implementations.

The functionalities in the network architecture are implemented by dividing the architectural model into _______ each offering different services.

layers


Related study sets

Chapter 17: Bandura: Social Cognitive Theory

View Set

Chapter 38: Nursing Care of the Child With an Alteration in Intracranial Regulation/Neurologic Disorder

View Set

Adding and subtracting fractions (word problems in English)

View Set

PREP U CARDIAC FUNCTION STUDY GUIDE

View Set