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.




            Thursday, 29 October 2015

            What is Computer Network? Is Internet a CN?



            Definition:


            A computer network is a group of computer systems and other computing hardware devices that are linked together through communication channels to facilitate communication and resource-sharing among a wide range of users. 

            The connection need not be via a copper wire; fiber optics, microwaves, infrared, and communication satellites can also be used. Networks come in many sizes, shapes and forms.




            Some Misconception:


            Although it may sound strange to some people, neither the Internet nor the World Wide Web is a computer network.

             The Internet is not a single network but a network of networks and the Web is a distributed system that runs on top of the Internet.
             
            There is considerable confusion in the literature between a computer network and a distributed system. The key distinction is that in a distributed system, a collection of independent computers appears to its users as a single coherent system. Usually, it has a single model or paradigm that it presents to the users. Often a layer of software on top of the operating system, called middle ware, is responsible for implementing this model. A well-known example of a distributed system is the World Wide Web, in which everything looks like a document (Web page). 

            In a computer network, this coherence, model, and software are absent. Users are exposed to the actual machines, without any attempt by the system to make the machines look and act in a coherent way. If the machines have different hardware and different operating systems, that is fully visible to the users. If a user wants to run a program on a remote machine, he [] has to log onto that machine and run it there. 

            Thus, the distinction between a network and a distributed system lies with the software (especially the operating system), rather than with the hardware. 



            Theory Of Computation Basics

            Computation here is any task that can be calculated by a computer, calculator or any machine.
            So to calculate and efficiently sought out the problem with the help of algorithms, thermos is computation and the study of it at start level is theory of computation.

            We can say it as a core theory of computer science for algorithm and computer to solve problems.

            Basic Terminology in TOC :


            Symbols : They are the fundamental building block.

            Example : 0,1, &, $, a, b, A ... so on.

            Alphabets :  As we have 26 alphabets in English which make our English language. The same way the collection of symbols that constitute a computational language are called alphabets for the language.

            For Example : Set of a,b symbols which is represented in curly brackets {a,b} is our alphabet

            Strings : Sequence of symbols from a alphabets are called strings.

            For Example : abab is a string of length of 4.


            You can compare this hierarchy by English language where we have characters ( symbols), collection of characters (26 in English as alphabets here), sentence (as strings).



            Point of concerned :


             If {a,b} is the alphabet then how many strings of length 2 are possible.

            Solution : The string could be 

                     ab, ba, aa, bb

             Means total 4 strings are possible.


            Length of 3 possible?

            aab, aba, abb, aaa, bab, bba,baa,  bbb

            Means total 8 strings are possible.