UNIT IV-TRANSPORT LAYER Introduction – Transport Layer Protocols – Services – Port Numbers – User Datagram Protocol – Transmission Control Protocol – SCTP. INTRODUCTION OF TRANPORT LAYER What is the transport layer? Layer 4 of the OSI Model: Transport Layer provides transparent transfer of data between end users, providing reliable data transfer services to the upper layers. The transport layer controls the reliability of a given link through flow control, segmentation and de-segmentation, and error control. The transport Layer is the second layer in the TCP/IP model and the fourth layer in the OSI model. It is an end-to-end layer used to deliver messages to a host. It is termed an end-to-end layer because it provides a point-to-point connection rather than hop-to-hop, between the source host and destination host to deliver the services reliably. The unit of data encapsulation in the Transport Layer is a segment. Working of Transport Layer The transport layer takes services from the Application layer and provides services to the Network layer. At the sender’s side: The transport layer receives data (message) from the Application layer and then performs Segmentation, divides the actual message into segments, adds the source and destination’s port numbers into the header of the segment, and transfers the message to the Network layer. At the receiver’s side: The transport layer receives data from the Network layer, reassembles the segmented data, reads its header, identifies the port number, and forwards the message to the appropriate port in the Application layer. Responsibilities of a Transport Layer The Process to Process Delivery End-to-End Connection between Hosts Multiplexing and Demultiplexing Congestion Control Data integrity and Error correction Flow control 1. The Process to Process Delivery While Data Link Layer requires the MAC address (48 bits address contained inside the Network Interface Card of every host machine) of source-destination hosts to correctly deliver a frame and the Network layer requires the IP address for appropriate routing of packets, in a similar way Transport Layer requires a Port number to correctly deliver the segments of data to the correct process amongst the multiple processes running on a particular host. A port number is a 16 -bit address used to identify any client-server program uniquely. 2. End-to-end Connection between Hosts The transport layer is also responsible for creating the end-to-end Connection between hosts for which it mainly uses TCP and UDP. TCP is a secure, connection-orientated protocol that uses a handshake protocol to establish a robust connection between two end hosts. TCP ensures the reliable delivery of messages and is used in various applications. UDP, on the other hand, is a stateless and unreliable protocol that ensures best-effort delivery. It is suitable for applications that have little concern with flow or error control and requires sending the bulk of data like video conferencing. It is often used in multicasting protocols. 3. Multiplexing and Demultiplexing Multiplexing(many to one) is when data is acquired from several processes from the sender and merged into one packet along with headers and sent as a single packet. Multiplexing allows the simultaneous use of different processes over a network that is running on a host. The processes are differentiated by their port numbers. Similarly, Demultiplexing(one to many is required at the receiver side when the message is distributed into different processes. Transport receives the segments of data from the network layer distributes and delivers it to the appropriate process running on the receiver’s machine. 4. Congestion Control Congestion is a situation in which too many sources over a network attempt to send data and the router buffers start overflowing due to which loss of packets occurs. As a result, the retransmission of packets from the sources increases the congestion further. In this situation, the Transport layer provides Congestion Control in different ways. It uses open-loop congestion control to prevent congestion and closed-loop congestion control to remove the congestion in a network once it occurred. TCP provides AIMD – additive increases multiplicative decrease and leaky bucket technique for congestion control. 5. Data integrity and Error Correction The transport layer checks for errors in the messages coming from the application layer by using error detection codes, and computing checksums, it checks whether the received data is not corrupted and uses the ACK and NACK services to inform the sender if the data has arrived or not and checks for the integrity of data. 6. Flow Control The transport layer provides a flow control mechanism between the adjacent layers of the TCP/IP model. TCP also prevents data loss due to a fast sender and slow receiver by imposing some flow control techniques. It uses the method of sliding window protocol which is accomplished by the receiver by sending a window back to the sender informing the size of data it can receive. Protocols of Transport Layer Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Stream Control Transmission Protocol (SCTP) Datagram Congestion Control Protocol (DCCP) AppleTalk Transaction Protocol (ATP) Fibre Channel Protocol (FCP) Reliable Data Protocol (RDP) Reliable User Data Protocol (RUDP) Structured Steam Transport (SST) Sequenced Packet Exchange (SPX) TRANSPORT LAYER PROTOCOLS The transport layer is represented by two protocols: TCP and UDP. The IP protocol in the network layer delivers a datagram from a source host to the destination host. o The transport layer is represented by two protocols: TCP and UDP. o The IP protocol in the network layer delivers a datagram from a source host to the destination host. o Nowadays, the operating system supports multiuser and multiprocessing environments, an executing program is called a process. When a host sends a message to other host means that source process is sending a process to a destination process. The transport layer protocols define some connections to individual ports known as protocol ports. o An IP protocol is a host-to-host protocol used to deliver a packet from source host to the destination host while transport layer protocols are port-to-port protocols that work on the top of the IP protocols to deliver the packet from the originating port to the IP services, and from IP services to the destination port. o Each port is defined by a positive integer address, and it is of 16 bits. UDP o UDP stands for User Datagram Protocol. o UDP is a simple protocol and it provides non sequenced transport functionality. o UDP is a connectionless protocol. o This type of protocol is used when reliability and security are less important than speed and size. o UDP is an end-to-end transport level protocol that adds transport-level addresses, checksum error control, and length information to the data from the upper layer. o The packet produced by the UDP protocol is known as a user datagram. User Datagram Protocol (UDP) is a Transport Layer protocol. UDP is a part of the Internet Protocol suite, referred to as UDP/IP suite. Unlike TCP, it is an unreliable and connectionless protocol. So, there is no need to establish a connection prior to data transfer. The UDP helps to establish low-latency and loss-tolerating connections establish over the network.The UDP enables process to process communication. Though Transmission Control Protocol (TCP) is the dominant transport layer protocol used with most of the Internet services; provides assured delivery, reliability, and much more but all these services cost us additional overhead and latency. Here, UDP comes into the picture. For real-time services like computer gaming, voice or video communication, live conferences; we need UDP. Since high performance is needed, UDP permits packets to be dropped instead of processing delayed packets. There is no error checking in UDP, so it also saves bandwidth. User Datagram Protocol (UDP) is more efficient in terms of both latency and bandwidth. UDP Header – UDP header is an 8-bytes fixed and simple header, while for TCP it may vary from 20 bytes to 60 bytes. The first 8 Bytes contains all necessary header information and the remaining part consist of data. UDP port number fields are each 16 bits long, therefore the range for port numbers is defined from 0 to 65535; port number 0 is reserved. Port numbers help to distinguish different user requests or processes. Applications of UDP: Used for simple request-response communication when the size of data is less and hence there is lesser concern about flow and error control. It is a suitable protocol for multicasting as UDP supports packet switching. UDP is used for some routing update protocols like RIP(Routing Information Protocol). Normally used for real-time applications which can not tolerate uneven delays between sections of a received message. UDP is widely used in online gaming, where low latency and high-speed communication is essential for a good gaming experience. Game servers often send small, frequent packets of data to clients, and UDP is well suited for this type of communication as it is fast and lightweight. Streaming media applications, such as IPTV, online radio, and video conferencing, use UDP to transmit real-time audio and video data. The loss of some packets can be tolerated in these applications, as the data is continuously flowing and does not require retransmission. VoIP (Voice over Internet Protocol) services, such as Skype and WhatsApp, use UDP for real-time voice communication. The delay in voice communication can be noticeable if packets are delayed due to congestion control, so UDP is used to ensure fast and efficient data transmission. DNS (Domain Name System) also uses UDP for its query/response messages. DNS queries are typically small and require a quick response time, making UDP a suitable protocol for this application. DHCP (Dynamic Host Configuration Protocol) uses UDP to dynamically assign IP addresses to devices on a network. DHCP messages are typically small, and the delay caused by packet loss or retransmission is generally not critical for this application. Following implementations uses UDP as a transport layer protocol: NTP (Network Time Protocol) DNS (Domain Name Service) BOOTP, DHCP. NNP (Network News Protocol) Quote of the day protocol TFTP, RTSP, RIP. The application layer can do some of the tasks through UDP Trace Route Record Route Timestamp UDP takes a datagram from Network Layer, attaches its header, and sends it to the user. So, it works fast. Actually, UDP is a null protocol if you remove the checksum field. 1. Reduce the requirement of computer resources. 2. When using the Multicast or Broadcast to transfer. 3. The transmission of Real-time packets, mainly in multimedia applications. Advantages of UDP: 1. Speed: UDP is faster than TCP because it does not have the overhead of establishing a connection and ensuring reliable data delivery. 2. Lower latency: Since there is no connection establishment, there is lower latency and faster response time. 3. Simplicity: UDP has a simpler protocol design than TCP, making it easier to implement and manage. 4. Broadcast support: UDP supports broadcasting to multiple recipients, making it useful for applications such as video streaming and online gaming. 5. Smaller packet size: UDP uses smaller packet sizes than TCP, which can reduce network congestion and improve overall network performance. Disadvantages of UDP: 1. No reliability: UDP does not guarantee delivery of packets or order of delivery, which can lead to missing or duplicate data. 2. No congestion control: UDP does not have congestion control, which means that it can send packets at a rate that can cause network congestion. 3. No flow control: UDP does not have flow control, which means that it can overwhelm the receiver with packets that it cannot handle. 4. Vulnerable to attacks: UDP is vulnerable to denial-of-service attacks, where an attacker can flood a network with UDP packets, overwhelming the network and causing it to crash. 5. Limited use cases: UDP is not suitable for applications that require reliable data delivery, such as email or file transfers, and is better suited for applications that can tolerate some data loss, such as video streaming or online gaming. UDP PSEUDO HEADER: the purpose of using a pseudo-header is to verify that the UDP packet has reached its correct destination the correct destination consist of a specific machine and a specific protocol port number within that machine UDP pseudo header details: the UDP header itself specify only protocol port number.thus , to verify the destination UDP on the sending machine computes a checksum that covers the destination IP address as well as the UDP packet. at the ultimate destination, UDP software verifies the checksum using the destination IP address obtained from the header of the IP packet that carried the UDP message. if the checksum agrees, then it must be true that the packet has reached the intended destination host as well as the correct protocol port within that host. User Interface: A user interface should allow the creation of new receive ports, receive operations on the receive ports that returns the data octets and an indication of source port and source address, and an operation that allows a datagram to be sent, specifying the data, source and destination ports and address to be sent. IP Interface: the UDP module must be able to determine the source and destination internet address and the protocol field from internet header one possible UDP/IP interface would return the whole internet datagram including the entire internet header in response to a receive operation such an interface would also allow the UDP to pass a full internet datagram complete with header to the IP to send. the IP would verify certain fields for consistency and compute the internet header checksum. The IP interface allows the UDP module to interact with the network layer of the protocol stack, which is responsible for routing and delivering data across the network. The IP interface provides a mechanism for the UDP module to communicate with other hosts on the network by providing access to the underlying IP protocol. The IP interface can be used by the UDP module to send and receive data packets over the network, with the help of IP routing and addressing mechanisms. The IP interface provides a level of abstraction that allows the UDP module to interact with the network layer without having to deal with the complexities of IP routing and addressing directly. The IP interface also handles fragmentation and reassembly of IP packets, which is important for large data transmissions that may exceed the maximum packet size allowed by the network. The IP interface may also provide additional services, such as support for Quality of Service (QoS) parameters and security mechanisms such as IPsec. The IP interface is a critical component of the Internet Protocol Suite, as it enables communication between hosts on the internet and allows for the seamless transmission of data packets across the network. User Datagram Format The user datagram has a 16-byte header which is shown below: Where, o Source port address: It defines the address of the application process that has delivered a message. The source port address is of 16 bits address. o Destination port address: It defines the address of the application process that will receive the message. The destination port address is of a 16-bit address. o Total length: It defines the total length of the user datagram in bytes. It is a 16-bit field. o Checksum: The checksum is a 16-bit field which is used in error detection. Disadvantages of UDP protocol o UDP provides basic functions needed for the end-to-end delivery of a transmission. o It does not provide any sequencing or reordering functions and does not specify the damaged packet when reporting an error. o UDP can discover that an error has occurred, but it does not specify which packet has been lost as it does not contain an ID or sequencing number of a particular data segment. TCP o TCP stands for Transmission Control Protocol. o It provides full transport layer services to applications. o It is a connection-oriented protocol means the connection established between both the ends of the transmission. For creating the connection, TCP generates a virtual circuit between sender and receiver for the duration of a transmission. What is TCP? Transmission Control Protocol (TCP) is a communications standard that enables application programs and computing devices to exchange messages over a network. It is designed to send packets across the internet and ensure the successful delivery of data and messages over networks. TCP (Transmission Control Protocol) is one of the main protocols of the Internet protocol suite. It lies between the Application and Network Layers which are used in providing reliable delivery services. It is a connection-oriented protocol for communications that helps in the exchange of messages between different devices over a network. The Internet Protocol (IP), which establishes the technique for sending data packets between computers, works with TCP. Working of TCP To make sure that each message reaches its target location intact, the TCP/IP model breaks down the data into small bundles and afterward reassembles the bundles into the original message on the opposite end. Sending the information in little bundles of information makes it simpler to maintain efficiency as opposed to sending everything in one go. After a particular message is broken down into bundles, these bundles may travel along multiple routes if one route is jammed but the destination remains the same. For example, When a user requests a web page on the internet, somewhere in the world, the server processes that request and sends back an HTML Page to that user. The server makes use of a protocol called the HTTP Protocol. The HTTP then requests the TCP layer to set the required connection and send the HTML file. Features of TCP/IP Some of the most prominent features of Transmission control protocol are 1. Segment Numbering System TCP keeps track of the segments being transmitted or received by assigning numbers to each and every single one of them. A specific Byte Number is assigned to data bytes that are to be transferred while segments are assigned sequence numbers. Acknowledgment Numbers are assigned to received segments. 2. Connection Oriented It means sender and receiver are connected to each other till the completion of the process. The order of the data is maintained i.e. order remains same before and after transmission. 3. Full Duplex In TCP data can be transmitted from receiver to the sender or vice – versa at the same time. It increases efficiency of data flow between sender and receiver. 4. Flow Control Flow control limits the rate at which a sender transfers data. This is done to ensure reliable delivery. The receiver continually hints to the sender on how much data can be received (using a sliding window) 5. Error Control TCP implements an error control mechanism for reliable data transfer Error control is byte-oriented Segments are checked for error detection Error Control includes – Corrupted Segment & Lost Segment Management, Out-of-order segments, Duplicate segments, etc. 6. Congestion Control TCP takes into account the level of congestion in the network Congestion level is determined by the amount of data sent by a sender Advantages It is a reliable protocol. It provides an error-checking mechanism as well as one for recovery. It gives flow control. It makes sure that the data reaches the proper destination in the exact order that it was sent. Open Protocol, not owned by any organization or individual. It assigns an IP address to each computer on the network and a domain name to each site thus making each device site to be distinguishable over the network. Disadvantages TCP is made for Wide Area Networks, thus its size can become an issue for small networks with low resources. TCP runs several layers so it can slow down the speed of the network. It is not generic in nature. Meaning, it cannot represent any protocol stack other than the TCP/IP suite. E.g., it cannot work with a Bluetooth connection. No modifications since their development around 30 years ago. Features Of TCP protocol o Stream data transfer: TCP protocol transfers the data in the form of contiguous stream of bytes. TCP group the bytes in the form of TCP segments and then passed it to the IP layer for transmission to the destination. TCP itself segments the data and forward to the IP. o Reliability: TCP assigns a sequence number to each byte transmitted and expects a positive acknowledgement from the receiving TCP. If ACK is not received within a timeout interval, then the data is retransmitted to the destination. The receiving TCP uses the sequence number to reassemble the segments if they arrive out of order or to eliminate the duplicate segments. o Flow Control: When receiving TCP sends an acknowledgement back to the sender indicating the number the bytes it can receive without overflowing its internal buffer. The number of bytes is sent in ACK in the form of the highest sequence number that it can receive without any problem. This mechanism is also referred to as a window mechanism. o Multiplexing: Multiplexing is a process of accepting the data from different applications and forwarding to the different applications on different computers. At the receiving end, the data is forwarded to the correct application. This process is known as demultiplexing. TCP transmits the packet to the correct application by using the logical channels known as ports. o Logical Connections: The combination of sockets, sequence numbers, and window sizes, is called a logical connection. Each connection is identified by the pair of sockets used by sending and receiving processes. o Full Duplex: TCP provides Full Duplex service, i.e., the data flow in both the directions at the same time. To achieve Full Duplex service, each TCP should have sending and receiving buffers so that the segments can flow in both the directions. TCP is a connectionoriented protocol. Suppose the process A wants to send and receive the data from process B. The following steps occur: o Establish a connection between two TCPs. o Data is exchanged in both the directions. o The Connection is terminated. TCP Segment Format Where, o Source port address: It is used to define the address of the application program in a source computer. It is a 16-bit field. o Destination port address: It is used to define the address of the application program in a destination computer. It is a 16-bit field. o Sequence number: A stream of data is divided into two or more TCP segments. The 32bit sequence number field represents the position of the data in an original data stream. o Acknowledgement number: A 32-field acknowledgement number acknowledge the data from other communicating devices. If ACK field is set to 1, then it specifies the sequence number that the receiver is expecting to receive. o Header Length (HLEN): It specifies the size of the TCP header in 32-bit words. The minimum size of the header is 5 words, and the maximum size of the header is 15 words. Therefore, the maximum size of the TCP header is 60 bytes, and the minimum size of the TCP header is 20 bytes. o Reserved: It is a six-bit field which is reserved for future use. o Control bits: Each bit of a control field functions individually and independently. A control bit defines the use of a segment or serves as a validity check for other fields. There are total six types of flags in control field: o URG: The URG field indicates that the data in a segment is urgent. o ACK: When ACK field is set, then it validates the acknowledgement number. o PSH: The PSH field is used to inform the sender that higher throughput is needed so if possible, data must be pushed with higher throughput. o RST: The reset bit is used to reset the TCP connection when there is any confusion occurs in the sequence numbers. o SYN: The SYN field is used to synchronize the sequence numbers in three types of segments: connection request, connection confirmation ( with the ACK bit set ), and confirmation acknowledgement. o FIN: The FIN field is used to inform the receiving TCP module that the sender has finished sending data. It is used in connection termination in three types of segments: termination request, termination confirmation, and acknowledgement of termination confirmation. o Window Size: The window is a 16-bit field that defines the size of the window. o Checksum: The checksum is a 16-bit field used in error detection. o Urgent pointer: If URG flag is set to 1, then this 16-bit field is an offset from the sequence number indicating that it is a last urgent data byte. o Options and padding: It defines the optional fields that convey the additional information to the receiver. Differences b/w TCP & UDP Basis for Comparison TCP UDP Definition TCP establishes a virtual circuit before transmitting the data. UDP transmits the data directly to the destination computer without verifying whether the receiver is ready to receive or not. Connection Type It is a protocol It is a Connectionless protocol Speed slow high Reliability It is a reliable protocol. It is an unreliable protocol. Header size 20 bytes 8 bytes acknowledgement It waits for the acknowledgement of data and has the ability to resend the lost packets. It neither takes the acknowledgement, nor it retransmits the damaged frame. Connection-Oriented TRANSPORT LAYER SERVICES What are the services provided by the transport layer? Address Mapping Assignment of Network Connection Multiplexing of Transport Connections Splitting of Transport Connection Establishment of Transport Connection Data Transfer Segmentation and Concatenation of TPDUs Flow Control Error Recovery Sequence Numbering Address Mapping It means mapping of transport address onto the network address. Whenever a session entity requests to send a transport service data unit (TSDU) to another session entity, it sends its transport service access point address as its identification. The transport entity then determines the network service access point (NSAP) address. This is known as address mapping. Assignment of Network Connection The transport entity assigns a network connection for carrying the transport protocol data units (TPDUs). The transport entity establishes this assigned network connection. In some of the transport protocols, recovery from network disconnection is allowed. In such protocols, whenever a disconnection occurs, the transport entity reassigns the transport of TPDUs to a different network connection. Multiplexing of Transport Connections For optimum network link uses, the transport entity can create multiple end-to-end transport connections to the network connection, referred to as multiplexing. There are various TSDUs (multiplexed) identified by the receiving transport entity using the transport connection endpoint identifier (TCEPI), attached to each TSDU by the sending transport entity. The TCEP identifier is unique for each connection, as shown in the figure below − Splitting of Transport Connection When the service quality offered by the network service is less than the required quality of service or when greater resilience is required against network connection failures, then splitting is done by the transport entity. Splitting means TPDUs belonging to one transport connection may be sent over different network connections. Splitting requires the re-sequencing because it results in the reordering of TSDUs, as shown in the figure shown below − Establishment of Transport Connection The transport layer establishes the transport connection by sending a request. For establishing a link, it uses the T-CONNECT service primitives. The transport entity provides the quality of service, requirement, and collect addresses services. Data Transfer The transport layer provides the data transfer of two types, such as the regular data transfer and expedited data transfer. In normal data transfer, the user can request to transfer user data with any integral number of octets. This transfer is transparent, i.e., user data boundaries are preserved during the transfer, and there are no constraints on the content and number of octets. The mode of data transfer can be two ways simultaneously. The expedited data transfer has a distinct control flow, and it can pass all the data queue with maximum priority for delivery. It is a user optional or optional provider service. The number of user data octets is restricted to 16. Segmentation and Concatenation of TPDUs The transport entity divides the transport service data unit into several transport protocol data units, each with a separate header containing a PCI (Protocol Control Identifier). This function is known as segments. This segmenting function is used when the network service cannot support the transport protocol data unit's size containing an unsegmented TSDU. A reassembly process is performed at the transmitting end for such TPDUs. The reverse function of segments is known as concatenation. The concatenation enables the mapping of several TPDUs onto a single NSDU (Network Service Data Unit). These TPUs may belong to the same or several transport connections. If they belong to different transport connections, they must be travelling in the exact directions. At the receiving end, a separation function is performed by the transport entity. The transport entity identifies the boundary of different TPDUs. Concatenation is done for improving the efficiency of utilization of the network service. On concatenation, there are some restrictions as to which type of TPDUs can be concatenated so that their boundaries should be identified by the transport entity, as shown in the figure below. Flow Control The transport entity uses a modified form of sliding window protocol for flow control. This flow control is required because the transport layer may experience back pressure from the network layer. In the mechanism, the window size is variable and controlled by the receiver. A credit allocated is sent to the receiver's sender, which indicates how many TPDUs can be received by it. Error Recovery The errors at this level can be introduced due to TPDU errors, protocol errors or signal failure conditions of network connections, i.e., reset or release of network connections. Such errors occurring at layer 3 are reported to the transport layer. The TPDU errors can be in the form of lost TPDU, duplicated TPDU, re-ordering of sequence, or content errors. The duplicate TPDUs are discarded, lost are acknowledged to resend. In the recording, they are re-sequenced, and content errors are detected by incorporating error detection bytes in TPDUs by the transport entity. Such TPDUs with content errors are discarded and treated as lost, and hence they are also acknowledged. In the case of protocol errors, the connection is released, and in the case of signal failure errors, reassignment of network connection and resynchronization is done. Sequence Numbering Each TPDU is given a sequence number by a transport entity that is seven bits long in the normal operations mode. This sequence numbering is done to provide flow control and error recovery. In the case of extended mode, the sequence number can be 31 bits long. PORT NUMBER PORT In computer networking, a port or port number is a number assigned to uniquely identify a connection endpoint and to direct data to a specific service. PORT NUMBER A port number is a way to identify a specific process to which an internet or other network message is to be forwarded when it arrives at a server. All network-connected devices come equipped with standardized ports that have an assigned number. Port number is the part of the addressing information used to identify the senders and receivers of messages in computer networking. Different port numbers are used to determine what protocol incoming traffic should be directed to. Port number identifies a specific process to which an Internet or other network message is to be forwarded when it arrives at a server. Ports are identified for each protocol and It is considered as a communication endpoint. Ports are represented by 16-bit numbers. There are 2^16 port numbers i.e 65536. They are divided into three categories 1. Well-Known Port Numbers 0 to 1023 are well-known port numbers are as they are used by well-known protocol services. These are allocated to server services by the Internet Assigned Numbers Authority (IANA). 2. Registered Port Numbers 1024 to 49151 are registered port numbers i.e it can be registered to specific protocols by software corporations 3. Dynamic Port Numbers 49152 to 65535 are dynamic port numbers and they can be used by anyone Difference between IP address and Port Number : Serial No IP address Port Number 01. Internet Protocol address (IP address) used to identify a host in network. Port number is used to identify an processes/services on your system 02. IPv4 is of 32 bits (4 bytes) size and for IPv6 is 128 bits (16 bytes). The Port number is 16 bits numbers. 03. IP address is the address of the layer3 IP protocol. Port number is the address of the layer-4 protocols. 04. IP address is provided by admin of system or network administrator. Port number for application is provided by kernel of Operating System. 05. ipconfig command can be used to find IP address . netstat command can be used to find Network Statistics Including Available TCP Ports. 06. IP address identify a host/computer on a computer network. Port numbers are logical interfaces used by communication protocols. 07. 192.168.0.2, 172.16.0.2 are some of IP address examples. 80 for HTTP, 123 for NTP, 67 and 68 for DHCP traffic, 22 for SSH etc. SCTP Stream Control Transmission Protocol (SCTP) is a transport-layer protocol that ensures reliable, in-sequence transport of data. SCTP provides multihoming support where one or both endpoints of a connection can consist of more than one IP address. SCTP stands for Stream Control Transmission Protocol. It is a connection- oriented protocol in computer networks which provides a full-duplex association i.e., transmitting multiple streams of data between two end points at the same time that have established a connection in network. It is sometimes referred to as next generation TCP or TCPng, SCTP makes it easier to support telephonic conversation on Internet. A telephonic conversation requires transmitting of voice along with other data at the same time on both ends, SCTP protocol makes it easier to establish reliable connection. SCTP is also intended to make it easier to establish connection over wireless network and managing transmission of multimedia data. SCTP is a standard protocol (RFC 2960) and is developed by Internet Engineering Task Force (IETF). Characteristics of SCTP : 1. Unicast with Multiple properties – It is a point-to-point protocol which can use different paths to reach end host. 2. Reliable Transmission – It uses SACK and checksums to detect damaged, corrupted, discarded, duplicate and reordered data. It is similar to TCP but SCTP is more efficient when it comes to reordering of data. 3. Message oriented – Each message can be framed and we can keep order of datastream and tabs on structure. For this, In TCP, we need a different layer for abstraction. 4. Multi-homing – It can establish multiple connection paths between two end points and does not need to rely on IP layer for resilience. 5. Security – Another characteristic of SCTP that is security. In SCTP, resource allocation for association establishment only takes place following cookie exchange identification verification for the client (INIT ACK). Man-in-the-middle and denial-of-service attacks are less likely as a result. Furthermore, SCTP doesn’t allow for half-open connections, making it more resistant to network floods and masquerade attacks. Advantages of SCTP : 1. It is a full- duplex connection i.e. users can send and receive data simultaneously. 2. It allows half- closed connections. 3. The message’s boundaries are maintained and application doesn’t have to split messages. 4. It has properties of both TCP and UDP protocol. 5. It doesn’t rely on IP layer for resilience of paths. Disadvantages of SCTP : 1. One of key challenges is that it requires changes in transport stack on node. 2. Applications need to be modified to use SCTP instead of TCP/UDP. 3. Applications need to be modified to handle multiple simultaneous streams.