انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

network Software

الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 3
أستاذ المادة سيف محمود خلف العلاك       16/11/2018 11:11:54
NETWORK SOFTWARE
Protocol Hierarchies

To reduce their design complexity, most networks are organized as a stack oflayers or levels, each one built upon the one below it. The number of layers, thename of each layer, the contents of each layer, and the function of each layer differfrom network to network. The purpose of each layer is to offer certain servicesto the higher layers while shielding those layers from the details of how theoffered services are actually implemented. In a sense, each layer is a kind of virtualmachine, offering certain services to the layer above it.This concept is actually a familiar one and is used throughout computer science,where it is variously known as information hiding, abstract data types, dataencapsulation, and object-oriented programming. The fundamental idea is that aparticular piece of software (or hardware) provides a service to its users but keepsthe details of its internal state and algorithms hidden from them.When layer n on one machine carries on a conversation with layer n on anothermachine, the rules and conventions used in this conversation are collectivelyknown as the layer n protocol. Basically, a protocol is an agreement between thecommunicating parties on how communication is to proceed.

A five-layer network is illustrated in Figure below. The entities comprising thecorresponding layers on different machines are called peers. The peers may be software processes, hardware devices, or even human beings. In other words, it isthe peers that communicate by using the protocol to talk to each other.


In reality, no data are directly transferred from layer n on one machine tolayer n on another machine. Instead, each layer passes data and control informationto the layer immediately below it, until the lowest layer is reached. Belowlayer 1 is the physical medium through which actual communication occurs.

Between each pair of adjacent layers is an interface. The interface defineswhich primitive operations and services the lower layer makes available to theupper one. When network designers decide how many layers to include in a networkand what each one should do, one of the most important considerations isdefining clean interfaces between the layers. Doing so, in turn, requires that eachlayer perform a specific collection of well-understood functions. In addition tominimizing the amount of information that must be passed between layers, clearcutinterfaces also make it simpler to replace one layer with a completely differentprotocol or implementation.

A set of layers and protocols is called a network architecture. The specificationof an architecture must contain enough information to allow an implementerto write the program or build the hardware for each layer so that it willcorrectly obey the appropriate protocol. Neither the details of the implementationnor the specification of the interfaces is part of the architecture because these arehidden away inside the machines and not visible from the outside. It is not evennecessary that the interfaces on all machines in a network be the same, providedthat each machine can correctly use all the protocols. A list of the protocols usedby a certain system, one protocol per layer, is called a protocol stack.

Now consider a more technical example: how to provide communication tothe top layer of the five-layer network in Figure below. A message, M, is produced byan application process running in layer 5 and given to layer 4 for transmission.Layer 4 puts a header in front of the message to identify the message and passesthe result to layer 3. The header includes control information, such as addresses,to allow layer 4 on the destination machine to deliver the message. Other examplesof control information used in some layers are sequence numbers (in casethe lower layer does not preserve message order), sizes, and times.

In many networks, no limit is placed on the size of messages transmitted inthe layer 4 protocol but there is nearly always a limit imposed by the layer 3 protocol.Consequently, layer 3 must break up the incoming messages into smaller units, packets, prepending a layer 3 header to each packet. In this example, M issplit into two parts, M1 and M2, that will be transmitted separately.

Layer 3 decides which of the outgoing lines to use and passes the packets tolayer 2. Layer 2 adds to each piece not only a header but also a trailer, and givesthe resulting unit to layer 1 for physical transmission. At the receiving machinethe message moves upward, from layer to layer, with headers being stripped off asit progresses. None of the headers for layers below n are passed up to layer n.

Design Issues for the Layers

Reliability is the design issue of making a network that operates correctlyeven though it is made up of a collection of components that are themselvesunreliable. Think about the bits of a packet traveling through the network. Thereis a chance that some of these bits will be received damaged (inverted) due tofluke electrical noise, random wireless signals, hardware flaws, software bugs andso on.
One mechanism for finding errors in received information uses codes for errordetection. Information that is incorrectly received can then be retransmitteduntil it is received correctly. More powerful codes allow for error correction.
Another reliability issue is finding a working path through a network. Oftenthere are multiple paths between a source and destination, and in a large network,there may be some links or routers that are broken. This topic is called routing.
A second design issue concerns the evolution of the network. Since there are many computers on the network, every layer needs a mechanismfor identifying the senders and receivers that are involved in a particular message.This mechanism is called addressing or naming, in the low and high layers,respectively.
An aspect of growth is that different network technologies often have different limitations. For example, not all communication channels preserve theorder of messages sent on them, leading to solutions that number messages. Anotherexample is differences in the maximum size of a message that the networkscan transmit. This leads to mechanisms for disassembling, transmitting, and then reassembling messages. This overall topic is called internetworking.
When networks get large, new problems arise. Cities can have traffic jams, a shortage of telephone numbers, and it is easy to get lost. Not many people havethese problems in their own neighborhood, but citywide they may be a big issue.Designs that continue to work well when the network gets large are said to bescalable.
A third design issue is resource allocation. Networks provide a service to hosts from their underlying resources, such as the capacity of transmission lines.To do this well, they need mechanisms that divide their resources so that one hostdoes not interfere with another too much.Many designs share network bandwidth dynamically, according to the shorttermneeds of hosts, rather than by giving each host a fixed fraction of the bandwidththat it may or may not use. This design is called statistical multiplexing,meaning sharing based on the statistics of demand. It can be applied at low layersfor a single link, or at high layers for a network or even applications that use thenetwork.
An allocation problem that occurs at every level is how to keep a fast senderfrom swamping a slow receiver with data. Feedback from the receiver to thesender is often used. This subject is called flow control. Sometimes the problemis that the network is oversubscribed because too many computers want to sendtoo much traffic, and the network cannot deliver it all. This overloading of thenetwork is called congestion. One strategy is for each computer to reduce its demandwhen it experiences congestion.
It is interesting to observe that the network has more resources to offer thansimply bandwidth. For uses such as carrying live video, the timeliness of deliverymatters a great deal. Most networks must provide service to applications that wantthis real-time delivery at the same time that they provide service to applicationsthat want high throughput. Quality of service is the name given to mechanismsthat reconcile these competing demands.
The last major design issue is to secure the network by defending it againstdifferent kinds of threats. One of the threats we have mentioned previously is thatof eavesdropping on communications. Mechanisms that provide confidentialitydefend against this threat, and they are used in multiple layers. Mechanisms forauthentication prevent someone from impersonating someone else. They mightbe used to tell fake banking Web sites from the real one, or to let the cellular networkcheck that a call is really coming from your phone so that you will pay thebill. Other mechanisms for integrity prevent surreptitious changes to messages. All ofthese designs are based on cryptography


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .