Pages

Monday, 9 November 2015

OSI Reference Model

The model is called the ISO OSI (Open Systems Interconnection) Reference Model because it deals with connecting open systems—that is, systems that are open for communication with other systems.  This model is based on a proposal developed by the International Standards Organization (ISO) as a first step toward international standardization of the protocols used in the various layers.




The OSI model has seven layers. The principles that were applied to arrive at the seven layers can be briefly summarized as follows:

1. A layer should be created where a different abstraction is needed.

2. Each layer should perform a well-defined function.

3. The function of each layer should be chosen with an eye toward defining internationally standardized protocols.

4. The layer boundaries should be chosen to minimize the information flow across the interfaces.

5. The number of layers should be large enough that distinct functions need not be thrown together in the same layer out of necessity and small enough that the architecture does not become unwieldy.

Note that the OSI model itself is not a network architecture because it does not specify the exact services and protocols to be used in each layer. It just tells what each layer should do.




The Physical Layer


The physical layer is concerned with transmitting raw bits over a communication channel. 

The Data Link Layer


The main task of the data link layer is to transform a raw transmission facility into a line that appears free of undetected transmission errors to the network layer. It accomplishes this task by having the sender break up the input data into data frames (typically a few hundred or a few thousand bytes) and transmit the frames sequentially. If the service is reliable, the receiver confirms correct receipt of each frame by sending back an acknowledgement frame.


The Network Layer


The network layer controls the operation of the subnet.

If too many packets are present in the subnet at the same time, they will get in one another's way, forming bottlenecks. The control of such congestion also belongs to the network layer. More generally, the quality of service provided (delay, transit time, jitter, etc.) is also a network layer issue.


The Transport Layer


The basic function of the transport layer is to accept data from above, split it up into smaller units if need be, pass these to the network layer, and ensure that the pieces all arrive correctly at the other end. Furthermore, all this must be done efficiently and in a way that isolates the upper layers from the inevitable changes in the hardware technology.

The Session Layer


The session layer allows users on different machines to establish sessions between them. Sessions offer various services, including dialog control (keeping track of whose turn it is to transmit), token management(preventing two parties from attempting the same critical operation at the same time), and synchronization(check pointing long transmissions to allow them to continue from where they were after a crash).


The Presentation Layer


Unlike lower layers, which are mostly concerned with moving bits around, the presentation layer is concerned with the syntax and semantics of the information transmitted. In order to make it possible for computers with different data representations to communicate, the data structures to be exchanged can be defined in an abstract way, along with a standard encoding to be used ''on the wire.'' The presentation layer manages these abstract data structures and allows higher-level data structures (e.g., banking records), to be defined and exchanged.


The Application Layer


The application layer contains a variety of protocols that are commonly needed by users. One widely-used application protocol is HTTP (HyperText Transfer Protocol), which is the basis for the World Wide Web. When a browser wants a Web page, it sends the name of the page it wants to the server using HTTP. The server then sends the page back. Other application protocols are used for file transfer, electronic mail, and network news.






Wednesday, 4 November 2015

What are the design issue with layers in computer network?


Some of the key design issues that occur in computer networks are present in several layers.


    Every layer needs a mechanism for identifying senders and receivers. Since a network normally has many computers, some of which have multiple processes, a means is needed for a process on one machine to specify with whom it wants to talk.

      Another set of design decisions concerns the rules for data transfer. In some systems, data only travel in one direction; in others, data can go both ways. The protocol must also determine how many logical channels the connection corresponds to and what their priorities are.

        Error control is an important issue because physical communication circuits are not perfect.

          Another problem that must be solved at several levels is the inability of all processes to accept arbitrarily long messages. This property leads to mechanisms for disassembling, transmitting, and then reassembling messages.

            An issue that occurs at every level is how to keep a fast sender from swamping a slow receiver with data.



            Tuesday, 3 November 2015

            Services Vs Protocols



             A service is a set of primitives (operations) that a layer provides to the layer above it. The service defines what operations the layer is prepared to perform on behalf of its users, but it says nothing at all about how these operations are implemented. A service relates to an interface between two layers, with the lower layer being the service provider and the upper layer being the service user.


            A protocol, in contrast, is a set of rules governing the format and meaning of the packets, or messages that are exchanged by the peer entities within a layer. Entities use protocols to implement their service definitions. They are free to change their protocols at will, provided they do not change the service visible to their users. In this way, the service and the protocol are completely decoupled.


            In other words, services relate to the interfaces between layers, as illustrated in Fig. . In contrast, protocols relate to the packets sent between peer entities on different machines.





            In respect with programming languages, a service is like an abstract data type or an object in an object-oriented language. It defines operations that can be performed on an object but does not specify how these operations are implemented.

            A protocol relates to the implementation of the service and as such is not visible to the user of the service.





            Monday, 2 November 2015

            Distinguishing computer network on the basis of transmission and scale


            On the basis of transmission technology

            Broadcast Links/Networks :



            Broadcast networks have a single communication channel that is shared by all the machines on the network. Short messages, called packets in certain contexts, sent by any machine are received by all the others. An address field within the packet specifies the intended recipient. Upon receiving a packet, a machine checks the address field. If the packet is intended for the receiving machine, that machine processes the packet; if the packet is intended for some other machine, it is just ignored.

            For example : An airport announcement asking all flight passengers to report to gate 12 for immediate boarding. Although all people at airport will here but only those will respond that have their flight right now, others will just ignore.
            .
            Broadcast systems generally also allow the possibility of addressing a packet to all destinations by using a special code in the address field. When a packet with this code is transmitted, it is received and processed by every machine on the network. This mode of operation is called broadcasting. Some broadcast systems also support transmission to a subset of the machines, something known as multicasting. One possible scheme is to reserve one bit to indicate multicasting. The remaining n - 1 address bits can hold a group number.

            Point-to-Point Networks :


            Point-to-point networks consist of many connections between individual pairs of machines. To go from the source to the destination, a packet on this type of network may have to first visit one or more intermediate machines. Often multiple routes, of different lengths, are possible, so finding good ones is important in point-to-point networks. As a general rule (although there are many exceptions), smaller, geographically localized networks tend to use broadcasting, whereas larger networks usually are point-to-point. Point-to-point transmission with one sender and one receiver is sometimes called unicasting.


            On the basis of Scale


            Local Area Network :


            Local area networks, generally called LANs, are privately-owned networks within a single building or campus of up to a few kilometers in size. They are widely used to connect personal computers and workstations in company offices and factories to share resources (e.g., printers) and exchange information.



            Metropolitan Area Networks:



            A metropolitan area network, or MAN, covers a city. The best-known example of a MAN is the cable television network available in many cities.



            Wide Area Network:


            A wide area network, or WAN, spans a large geographical area, often a country or continent. It contains a collection of machines intended for running user (i.e., application) programs. The hosts are connected by a communication subnet. The hosts are owned by the customers (e.g., people's personal computers), whereas the communication subnet is typically owned and operated by a telephone company or Internet service provider. The job of the subnet is to carry messages from host to host, just as the telephone system carries words from speaker to listener.




            Sunday, 1 November 2015

            How to make a Deterministic Finite Automata (DFA)?


            Example:

            Construct a DFA, that accept set of all strings over {a, b} of length 2?

            Solution: 

            Step 1:

            First construct the set of strings that are accepted:

            L = {aa, ab, ba, bb}

            These four strings should be accepted by our automaton.

            Step 2:

            Take the smallest string, and draw the skeleton our DFA.
            Here we can take any,

            Let u take aa, 



            Step 3:

            Then complete all state transaction for each symbol in the alphabet.

            Here, {a, b}




            Step 4:

            Now we have get all the strings which need to be accepted, so for strings that need not to be accepted has to be send to some state from where it cannot lead to final state. State ‘C’ in our case. That state is called trap state or dead state. (state ‘D’ here).



            Number of states are 4  (2 + 2)  (So for two symbols we have 2+2 states).

            In same consideration, if |w| is the length of the string and

            |w|>= 2 then the DFA is,





             here number of states are 3 (2+1).

            |w|<=2 then the DFA is,






             here the number of states are 4 (2+2).


            Conclusion


            If |w| = n then n+2 states will be used for minimal DFA.

            |w| >= n then n+1 states will be used for minimal DFA.

            |w| <= n then n+2 states will be used for minimal DFA.