Protocol and protocol architecture • When computers, terminals, and/or other data processing devices exchange data, there must be a data path between the two computers (terminals/processing devices), either directly or via a communication network. • Means of connection of communicating systems: Point-to-point Multiple broadcast network
Internet Protocol and protocol architecture Means of connection of communicating systems: Switched network
Protocol • If you want to transfer a file from one computer to another, in addition to data path, you need to perform the following tasks: • The source system must activate the direct data communication path or inform the communication network of the identity of the desired destination system. • The source system must ascertain that the destination system is prepared to received data. • The file transfer application on the source system must ascertain that the file management program on the destination system is prepared to accept and store the file for this particular user. • If the file formats used on the two systems are incompatible, one or the other system must perform a format translation function.
Protocol • For two entities to communicate successfully, they must follow some mutually acceptable conventions between them. • These conventions are referred to as a protocol. • Protocol may be defined as a set of rules governing the exchange of data between two entities. • The key elements of a protocol: • Syntax: format and signal levels • Semantics: control information for coordination and error handling. • Timing: Speed matching and sequencing.
Protocol architecture • It is clear that there must be a high degree of cooperation between two computers if you want to transfer data from one computer to another. • Instead of implementing the logic for this as a single module, the task is broken up into subtasks, each of which is implemented separately. • There are many advantages associated with the structured set of modules to implement the communications function. • This structure is referred to as a protocol architecture.
Principle used for protocol architecture • The communications functions are partitioned into a hierarchical set of layers. • Each layer performs a related subset of the functions required to communicate with another system. • It relies on the next lower layer to perform more primitive functions and to conceal the details of those functions. • Ideally, the layers should be defined so that changes in one layer do not require changes in the other layers. • Thus, we have decomposed one problem into a a number of more manageable subproblems. • This partitioning should group functions logically and should have enough layers to make each layer manageably small. However, the number of layer should not be too many because of increased processing overhead.
TCP/IP and OSI RM • Two protocol architectures have served as the basis for the development of interoperable communications standards: the TCP/IP protocol suite and the OSI reference model. • TCP/IP is the most widely used interoperable architecture. • OSI RM has become the standard model for classifying communications functions.
Communications functions • A small set of functions that form the basis of all protocols. • Not all protocols have all functions because it would involve a significant duplication of effort. • We can group protocol functions into the following categories: • Encapsulation • Segmentation & reassembly • Connection control • Ordered delivery • Flow control • Error control • Addressing • Multiplexing • Transmission services
Communications functions Encapsulation • Each protocol data unit (PDU) contains not only data but also control information. Some PDU contains only control information and no data. The control information can be the address of the sender and/or receiver, error-detecting code, or protocol control (how to implement the protocol functions). Segmentation • Whether the application entity sends data in messages or in a continuous stream, lower-level protocols may need to break the data up into blocks of some smaller bounded size. This process is called segmentation. • An ATM network is limited to blocks of 53 octets, Ethernet has a maximum size of 1526 octets. Without a maximum block size, one station could monopolize a multipoint medium. Error control may be more efficient with smaller PDU size.
Communications functions Reassemble • The counterpart of segmentation is reassembly. • Eventually, the segmented data must be reassembled into messages appropriate to the application level. • If PDUs arrive out of order, the task will be more complicated. Connection control • Data transfer can be of two types: connectionless (e.g. datagram) and connection-oriented (virtual circuit). • Connection-oriented data transfer is preferred if stations anticipate a lengthy exchange of data and/or certain details of their protocol must be worked out dynamically.
Communications functions Connection control • A logical connection is established between two entities. • Three phases are: Connection establishment, data transfer, connection termination. • During the connection establishment one station will issue a connection request to the other. The receiving entity accepts or rejects the request and, the connection is considered to be established. A central authority may or may not be involved. • Both entities must be using the same protocol. • Following connection establishment, the data transfer phase is entered. During this phase, both data and control information are exchanged. Data and acknowledgement can be exchanged in both direction. • Finally, one side or both sides can terminate the connection by sending a termination request. Central authority also can forcibly terminate a connection.
Protocol entity Protocol entity Connection request Connection accept Data Multiple exchanges Acknowledgement Terminate connection request Terminate connection accept Communications functions The phase of a connection-oriented data transfer
Communications functions Ordered Delivery • If two communicating entities are in different hosts connected by a network, there is a risk that PDUs will not arrive in the order in which they were sent, because they may traverse different paths through the network. • In connection-oriented protocols, it is required that PDU order be maintained. Flow control • Flow control is a function performed by a receiving entity to limit rate of data that is sent by a transmitting entity. It must be performed at various layers of the protocols. • The simplest form of flow control is a stop-and –wait procedure, in which each PDU must be acknowledged before the next can be sent. • More efficient protocols involve some form of credit provided to the transmitter, which is the amount of data that can be sent without an acknowledgement.
Communications functions Error control • Error control is needed to guard against loss and damage of data and control information. • Error control is implemented as two separate functions: error detection and retransmission. • To detect error, the sender insert an error-detecting code in the transmitted PDU, which is a function of the other bits in the PDU. • The receiver checks the value of the code on the incoming PDU. • If an error is detected, the receiver discards the PDU. If the sender does not get the acknowledgement from the receiver in a reasonable amount of time, the sender retransmits the PDU. • Some protocols employ an error-correction code. In this case, the receiver not only detect the error, but also correct it. • Error control must be performed at various layers of protocols.
Communications functions Error control • A unique address is associated with each end system (e.g., workstation or server) and each intermediate system (e.g., router) in a configuration.Such an address is, in general, a network-level address. • In the case of TCP/IP architecture, this is referred to as an IP address, or an internet address. In the case of OSI RM architecture, this is referred to as network service access point (NSAP). • The network-level address is used to route a PDU through a network or networks to a system. • Once data arrive at a destination system, they must be routed to some process or application in the system. A system supports multiple applications and an application may support multiple users.Each application and each concurrent user of an application, is assigned a unique identifier, referred to as a port in the TCP/IP architecture and as a service access point (SAP) in the OSI RM architecture.
Communications functions Multiplexing • One form of multiplexing is supported by means of multiple connections into a single system. For example, with X.25, there can be multiple virtual circuits terminating in a single end system. • We will discuss in detail later. Transmission services • A protocol may provide a variety of additional services to the entities. • Priority => We need to send some messages to the destination entity with minimum delay. For example, close connection request.Priority can be assigned on a message basis or connection basis. • Security => Security mechanism, restricting access, may be invoked.
TCP/IP • TCP/IP is a result of protocol research and development conducted on the experimental packet-switched network, ARPANET, funded by the Defense Advanced Research Projects Agency (DARPA), and generally referred to as the TCP/IP suite. • This protocol suite consists of a large collection of protocols that have been issued as Internet standards. • There is no official TCP/IP protocol model as there is in the case of OSI.
TCP/IP • We can organize the communication task for TCP/IP into five relatively independent layers: • Application Layer • Transport Layer • Network Layer (Internet Layer) • Network Access Layer (Data Link Layer) • Physical Layer • Note that the physical and network access layers provide interaction between the end system and the network, where as the transport and application layers are known as end-to-end protocols because they support interaction between two end systems. The Internet layer has the flavor of both.
The TCP/IP protocol suite predates the OSI Reference Model by • about a decade. • Despite this, the TCP/IP protocol suite can be mapped to the model. • TCP/IP has fewer layers (4/5 layers) than the seven layers used in the • OSI RM. • In the OSI RM, data is passed down the stack when it is being • sent to the net and data is passed up the stack when it is being received • from the network. • Each layer in the stack adds control information (header) to ensure • proper delivery. • Each layer treats all the information as data that it receives from the • upper layer and encapsulates it with its own header. • When data is received, the opposite happens. Each layer strips off • its header before passing the data on to the layer above. TCP/IP Layered protocol
TCP/IP’s application layer • TCP/IP ‘s application layer corresponds to layers 5,6,7 • (Application, Presentation, and session layers ) of the • OSI RM. • TELNET ( a terminal emulation protocol) • FTP ( a file transfer protocol) • TFTP (Trivial File Transfer Protocol ) • SMTP( simple mail transfer protocol) • NSP (Name server protocol) • SNMP (Simple network management protocol) • UNIX "r" commands, such as rlogin, rsh, rcp (remote Copy), • rdate (checking date from other host)
Transport layer • The TCP/IP Transport layer protocols ensure that packets • arrive in sequence and without error, by exchanging • acknowledgments of data reception, and re-transmitting lost • packets. • This type of communication is known as "end-to-end" or • "host-to-host". • Two types of transport protocols at this level: • TCP ( Transport Control Protocol ) • UDP ( User Datagram Protocol )
TCP • In the TCP/IP suite, the connection-oriented transport protocol is the transmission control protocol (TCP). • To achieve a reliable service, the TCP transmits all data in units known as segments. • Generally, TCP decides when a new segment is transmitted. • At the destination side, the receiving TCP buffers the data received in a segment in a memory buffer associated with the application and delivers it when the buffer is full. • This transmission consists of a starting point to open the connection and an ending point to close the connection. • TCP attaches a header onto the transmitted data. • This header contains a number of parameters that help processes on the sending machine get connected to peer processes on the receiving machine.
TCP • TCP confirms that a packet has been reached its destination by establishing an end-to-end connection between sending and receiving hosts. • TCP is therefore considered a "reliable, connection-oriented" protocol. • In most open distributed applications we need a reliable message transport service. Example: the transfer of the contents of a file containing a customer’s bank record. In this application, even the corruption of a single bit is very important.
UDP protocol • UDP, the other Transport layer protocol, provides datagram • delivery service. • UDP is an unreliable (no ACK), connectionless datagram • protocol. • It does not provide any means of verifying that connection was • ever achieved between receiving and sending hosts. • As UDP eliminates the processes of establishing and verifying • connections, applications that send small amounts of data use • UDP rather than TCP. • UDP is used when error correction is not needed. • UDP is used for a single short request/response message • exchange between two application protocols • Simplex broadcast messages uses UDP.
Network layer • Also known as the Internet Layer. • Accepts and delivers packets for the network. • It includes the powerful • Internet protocol (IP), • the ARP protocol, and • the ICMP protocol.
IP protocol • IP protocol and its associated routing protocols are possibly the most significant of the entire TCP/IP suite. • IP is responsible for: • IP addressing: The IP addressing conventions are part of the IP protocol. • Host-to-host communication: IP determines the path a packet must take, based on the receiving host's IP address. • Packet formatting: IP assembles packets into units known as IP datagrams. • Fragmentation: If a packet is too large for transmission over the network media, IP on the sending hosts breaks the packet into smaller fragments. IP on the receiving host reconstructs the fragments into the original packet.
ARP Protocol The Address Resolution Protocol (ARP) assists IP in directing datagrams to the appropriate receiving host by mapping the IP address (32 bits long) to unique physical Ethernet address (48 bits long). Example: 184.108.40.206 decimal (89 CF C0 37) hex ====>00:00:at:10:fc:15
RARP Protocol • RARP translates addresses, but in the opposite direction. • It converts physical Ethernet addresses to IP addresses. • Example: 00:00:a7:10:fc:15 ====> 220.127.116.11 decimal (89 CF C0 37) hex • The RARP protocol really has nothing to do with routing data from one system • to another. • It helps configure diskless systems (workstation with no local disk, or an X- • terminal) by allowing workstations to learn their IP addresses. • A diskless station has no disk to read its IP address from TCP/IP configuration • file. • However, every system knows its physical address because it is encoded in the • Ethernet interface card (LAN adapter). • The diskless Xterminal uses the Ethernet broadcast facility to ask which IP • address maps to its physical Ethernet address. • When a server on the network sees the request, it looks up the Ethernet address • in the ether file (table) and if it finds a match, the server replies with the X- • terminal's (or the workstation's) IP address.
ICMP Protocol • Internet Control Message Protocol (ICMP) is the protocol • responsible for detecting network error conditions and • reporting on them. • ICMP reports on: • Flow control: When datagrams arrive too fast for processing, the receiver sends message to the sender to stop sending. • Connectivity failure: When a destination host can't be reached. • Redirection: Which tells a sending host to use another router. • Checking remote hosts: ping server ===> server is alive.
Network Access Layer ( Data Link Layer) • It provides error control and framing of the datagram. • It ensures the reliable delivery of data across the underlying • physical network. • It encompasses the function of the physical layer by specifying the • characteristics of the hardware to be used for the network. • In this layer TCP/IP describes hardware standards such as • IEEE802.3, the specification for Ethernet network media, and RS- • 232, the specification for standard pin connector for PPP • communication link.