Transmission Control Protocol (TCP), the most popular transport layer communication protocol for the Internet .It was originally designed for wired networks, where Bit Error Rate (BER) is low and congestion is the primary cause of packet loss [1].This article analyzes the issues in TCP, such as slow start, congestion control, collisions, low BER etc. Then it provides systematic analysis the issues regarding to wireless network i.e., Head of Line Blocking . At the end it proposes solution forTCP enhancement specific to wireless network . Key Words — TCP( Transmission Control Protoco l), UDP (User Datagram Protocol), Bit Error Rate, Wireless Networks , Atomic Broadcast System (ABS), Stream Control Transmission Protocol (SCTP) , congestion control . I. INTRODUCTION1 The transport layer is the layer in the Open System Interconnection (OSI) model responsible for end -to-end communication over a network (c.f. Figure 1). It provides logical communication between application processes running on different hosts within a layered architecture of protocols and other network components. The basic function of the Transport layer is to accept data from the layer above, split it up into smaller units, pass these data units to the Network layer, and ensure that all the pieces a rrive correctly at the other end. TCP is a network communication protocol designed to send data packets over the Internet. Transport layer ensure the reliable arrival of messages across a network and provides error checking mechanisms and data flow control. Figure 1: OSI Model. At transport layer two main protocols work:  UDP ( User Datagram Protocol; a connection less protocol.)  TCP (connection oriented) TCP stands for transmission control protocol. It was defined by Internet Engineering Task Force (IETF) . It is used in establishing and maintaining communication between applications on different computers and provide full duplex acknowledgement and flow control service to upper layer protocol and application. Figure 2 shows how packets are exchanged with o ther layers. Performance Improvement in TCP Dr. Kiramat Ullah, Musfirah Ehsan, Abdullah Ahmed, Ahmed Rameez, AbdurRafay Pakistan Institute of Engineering and Applied Sciences (PIEAS) Figure 2: TCP Packet Exchange. Following are the goals for which TCP is designed , endorsed in Figure 3 :  Route should be established for as long as needed.  Reliable delivery.  Technology should permit dissimilar systems to exchange data.  Interconnections across long distances. Figure 3: TCP Header Format. In the next section we explain TCP operation in detail with the help of sequence chart. II. TCP OPERATIONS Figure 4 shows the sequence flow of a TCP connection. Figure 4: Sequence Chart of TCP. 3 TCP has many functions . Connection setup and teardown ; TCP establishes a connection known as a logical circuit between the remote host ports first then link ports or processes, maintains the connection throughout the communication and then tears down the connection when it is no more needed. Multiplexing ; this capability enables TCP to establish and maintain multiple communication paths between two hosts simultaneously . Data transfer ; it receives data from upper layer and passes it down to I P (Internet Protocol) for addressing and delivery. On the destination end it takes the packets from IP and sends them to upper layers . Flow control ; it guarantees that incoming traffic does not overwhelm a host’s receive buffer. When congestion occurs, a host reduces its window size and when congestion no longer exists, a host can increase the size. Reliability ; it comes from TCP’s guaranteed delivery of packets. The receiving host does not send an ACK if datagrams become lost in transit. TCP deals with damaged frames through a CRC (Cyclic Redundancy Check) field contained within the TCP header. Precedence and security ; the higher the precedence level, the higher the security level. III. PROBLEMS TCP has many problems. Slow Start ; TCP has a slow start and accelerates its way to fast but this acceleration is very slow and takes a lot of time. If the user is loading small amount of data, it would take a lot of time as by the time TCP gets to a go od reasonable speed, the data has alrea dy been read. For large amount, TCP is good but for smaller amounts of data, it isn’t very reliable. Head of Line Blocking ; The slow start has a solution that the user can send a bunch of different data (a set of images, for example) using a single stream. The problem with this is that if one of the image is lost (a part of the set of data being sent by the same stream), the TCP will not send the remaining data. For example, if the second image from the right is lost, the TCP will start solving the data lo ss issue and will not send the files that have been loaded or that are ready to be sent. This can be a problem when watching videos. Wireless loss vs. Congestion ; The fundamental design problem of TCP is that it assumes that losses are caused by congestion . This is true with wired connections and can occur in a router but in wireless connections, there are other reasons too like Interference. So, if there is congestion at a router, TCP slows down and sends traffic more slowly . This maybe the right thing to do in a wired network but in a wireless network, the medium maybe un -reliable but the data can still be send=t at a reasonably fast speed. TCP assumes that the case is the same with both the wired and wireless connections and slo ws the traffic down. Slow H andshake ; TCP takes a long time to establish a TCP connection because of the handshake it has to do between the sender and the receiver. This was okay in the past but now that the internet has expanded and we are seeing highe r latency connections from devi ces in certain areas where the internet connections aren’t very good. And so, if the round -trip time from the user to the server takes a little time, because TCP has to do its complicated handshake to establish a connection. T his can take a very long time. IV. HEAD OF LINE BLOCKING It is a performance issue that occurs when a bunch of packets is blocked by the first packet in line. It can happen especially in input buffered network switches where out -of-order delivery of packets can occur. A switch can be composed of input buffered ports, output buffered ports and switch fabric. It is a stream management issue. When first -in first -out input buffers are used, only the first received packet is prepared to be forwarded. All packets received afterwards are not forwarded if the first one can not be forwarded. That is basically what HOL blocking really is. If there’s no HOL blocking happening, arrived packets have the chance to be forwarded around the stuck packet. Why it happens? The first reason is The Atomic Broadcast System (ABS) . This system introduces the solution algorithm s for single point of failure problem in centralized servers and these algorithms introduce the problem of HOL. These algorithms ensure that all systems of multiple processors receive the same set of messages in the same order. Figure 5 shows the operation of Atomic Broadcasting in TCP. Figure 5 : Atomic Broadcasting in TCP. The second reason occurs when for a packet its destination output port is busy. The output is occupied if there is output contention or output congestion .Contention in this case is the situation where two or more input flows want to be forwarded to single output at the same time.Output congestion happens when the output buffer is full. Output buffer can be filled up if pa ckets input rate exceeds the output rate. Figure 6 shows Congestion causing HOL. Figure 6: Congestion cau sing HOL. V. SOLUTIONS The problem caused by first reason , Atomic Broadcasting , can be solved by using multiple streams to transmit data which is implemented by the Stream Control Transmission Protocol (SCTP). SCTP is a protocol for transmitting multiple streams of data at the same time between two end points , shown in figure 7, that have established a connection in a network. Sometimes referred to as "next generation TCP". SCTP also is intended to make it easier to manage connections over a wireless netwo rk and to manage the transmission of multimedia data. SCTP is a standard protoc ol developed by the Internet Engineering Task Force (IETF ). Figure 7 : Multiple streams in SCTP . The problem caused by second reason, congession can be solved by the use of per port buffering. Each port maintains a small ingress buffer and a larger egress buffer. Larger output buffers (64 Kb to 512 k shared) allow frames to be queued for transm it during periods of congestion. During normal operations, only a small input queu e is necessary because the switching bus is servicing frames at a very high speed. In addition to queuing during congestion, many models of Catalyst switches are capable of separating frames into different input and output queues, providing preferential tr eatment or priority queuing for sensitive traffic such as voice. This is explained in figure 8. 5 Figure 8 : controlling congestion to avoid HOL blocking . VI. CONCLUSIONS This article exploited the issues regarding TCP and proposed enhancement to Head of Line Blocking problem. VII.