0% found this document useful (1 vote)
692 views13 pages

DCyt MICRO PROJECT

TCP (Transmission Control Protocol) is the dominant transport protocol for data transmission over the internet. It provides reliable data transmission through mechanisms like establishing a connection, sending packets of data with sequence numbers, acknowledging received packets, detecting and handling lost or out-of-order packets, and closing the connection. The document discusses these mechanisms of TCP in detail over multiple pages and sections.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (1 vote)
692 views13 pages

DCyt MICRO PROJECT

TCP (Transmission Control Protocol) is the dominant transport protocol for data transmission over the internet. It provides reliable data transmission through mechanisms like establishing a connection, sending packets of data with sequence numbers, acknowledging received packets, detecting and handling lost or out-of-order packets, and closing the connection. The document discusses these mechanisms of TCP in detail over multiple pages and sections.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Department of Computer Science and Engineering 2020-21

Subject Name

Data Communication and Computer Network (DCC-22414)

Topic

TCP (Transmission control protocal)

Class

CW-4I (Computer Science and Engineering)

Name of Student
SHIVKRISHNA RANGU

PRANAB MANDAL

GAURAV ROY

Project In charge Head Of Department

S.A. Rewatkar Deepak Nagrale


INDEX

1. Introduction……………………………………………………1
2. Working ……………………………………………………….3
2.1 Packet format
2.2 Establish connection
2.3 Send packets of data
2.4 Close the connection
2.5 Detecting lost packet
2.6 Handling out of order packets
3. Advantages…………………………………………………….7
4. Disadvantages………………………………………………….7
5. Characteristics………………………………………………...7
6. Flowchart ……………………………………………………...8
INTRODUCTION page 1

TCP is the dominant transport protocol in today’s data center networks (DCNs) which have
been the infrastructures for Internet and cloud computing. However, the widespread TCP has
many inadequacies in meeting the throughput and latency demand of Internet applications and
cloud services. First, TCP Incast [1], which refers to throughput collapse in many-to-one
communication pattern, has risen to be a critical problem in DCNs. Since the many-to-one
communication pattern widely exists in many Internet applications and cloud services (eg., web
search and Map-Reduce), this problem could badly degrade their performance. Second, in
DCNs, short TCP flows often suffer from high delays when long TCP flows occupy the link
bandwidth for a long time. Since a large portion of traffic in DCNs is short flows which are
latency sensitive and latency inversely correlates with business profit (Amazon estimates every
100ms of latency costs them one percent profit [2]), this problem is also critical for TCP in
DCNs.
Actually, both of the two problems are highly related with TCP timeout. In the case where
TCP Incast occurs, since no TCP sender can transfer a new data unit to the receiver until all
senders finish transferring their current data units, even one flow’s timeout can significantly
reduce the whole throughput of all the flows. Moreover, timeout can easily prolong the flow
completion time (FCT), which is the main metric of latency. Unfortunately, TCP timeout is
common in today’s DCNs. The authors of Corrective take a measurement of billions of
TCPconnections from clients to Google DCNs and found that about 10% of the TCP flows
beget at least one packet loss. Furthermore, among all the losses in the measurement, 77% are
recovered by timeout [3].
To improve TCP performance on throughput and latency in DCNs, many solutions that
focus on avoiding timeout are provided [4]–[8]. Compared with transport layer solutions which
need to make changes on switches or network interfaces (e.g., DCTCP [5], ICTCP [7] and ICaT
[8]) and application layer solutions which spend expensive overhead costs in global real-time
scheduling (e.g., [9], [10]), redundant transmission based solutions show great advantages in
deployment and system overhead, and thus become research hotspots.
Existing redundant transmission based solutions for avoiding TCP timeout in DCNs can be
grouped into two categories. The first is pure redundant transmission, which means that the
redundancy is original flow [11], [12] or packet [1]. The second is coding redundant
transmission, which means that the redundancy is coded packet (mixed by original packets [3].
Compared with pure redundant transmission, coding redundant transmission could be more
efficient, since the coded redundant packet can recover any original packet mixed in it [13].
However, the existing coding redundant retransmission based solution (e.g., Corrective [3])
still has weaknesses and can be improved.
In this paper, we present a novel coding redundant transmission based solution named TCP
with Adaptive Complementary Coding (TCP-ACC) to improve TCP performance on
throughput and latency in DCNs. Without revising TCP’s congestion control mechanism, we
first design a light-weight coding scheme to prevent timeout and ensure consist transmission
for flows. Compared with Corrective, TCP-ACC is more flexible in redundancy setting and
can recover multiple losses in one window. Second, to determine the optimal number of
Page 2

redundant coding packets in our scheme, we model and analyze the tradeoff between avoiding
TCP timeout and aggravating network congestion by a Lyapunov optimization method [14].
By fast solving this model, TCP-ACC can adapt its coding redundancy to the real-time packet
losses in an near optimal way, and thus can effectively improve TCP performance on both
throughput and latency. Analysis on this model also proves that TCP-ACC can reduce the flow
timeout probability close to that of the optimal complementary solution. To the best of our
knowledge, this is the first work that shows how to apply the Lyapunov optimization method
to schedule the coding process. We carry out extensive simulations on NS2 to compare the
performance of TCP-ACC with other three solutions for TCP’s problems in DCNs. Simulation
results show that TCP-ACC can nearly halve the FCT and double the throughput with different
flow arrival rates and flow sizes.
The remainder of this paper is organized as follows. We first introduce the related works
in Section II. In Section III, we present the details of our TCP-ACC scheme. We further provide
a Lyapunov optimization model for our complementary coding scheme and analyze it in
Section IV. We evaluate the performance of the proposed schemes in Section V and conclude
our work in Section VI
WORKING page 3

The Transmission Control Protocol (TCP) is a transport protocol that is used on top of IP to
ensure reliable transmission of packets.

TCP includes mechanisms to solve many of the problems that arise from packet-based
messaging, such as lost packets, out of order packets, duplicate packets, and corrupted packets.

Since TCP is the protocol used most commonly on top of IP, the Internet protocol stack is
sometimes referred to as TCP/IP.

Packet format

When sending packets using TCP/IP, the data portion of each IP packet is formatted as
a TCP segment.

Each TCP segment contains a header and data. The TCP header contains many more fields
than the UDP header and can range in size from 202020 to 606060 bytes, depending on the
size of the options field.

The TCP header shares some fields with the UDP header: source port number, destination port
number, and checksum. To remember how those are used, review the UDP article.
From start to finish page 4

Let's step through the process of transmitting a packet with TCP/IP.

Step 1: Establish connection

When two computers want to send data to each other over TCP, they first need to establish
a connection using a three-way handshake.

The first computer sends a packet with the SYN bit set to 111 (SYN = "synchronize?"). The
second computer sends back a packet with the ACK bit set to 111 (ACK = "acknowledge!")
plus the SYN bit set to 111. The first computer replies back with an ACK.

In fact, the three packets involved in the three-way handshake do not typically include any
data. Once the computers are done with the handshake, they're ready to receive packets
containing actual data.

The SYN and ACK bits are both part of the TCP header:

The ACK and SYN bits are highlighted on the fourth row of the header.
Step 2: Send packets of data page 5

When a packet of data is sent over TCP, the recipient must always acknowledge what they
received.

The first computer sends a packet with data and a sequence number. The second computer
acknowledges it by setting the ACK bit and increasing the acknowledgement number by the
length of the received data.

The sequence and acknowledgement numbers are part of the TCP header:

Those two numbers help the computers to keep track of which data was successfully
received, which data was lost, and which data was accidentally sent twice.
Step 3: Close the connection page 6

Either computer can close the connection when they no longer want to send or receive data
A computer initiates closing the connection by sending a packet with the FIN bit set to 1 (FIN
= finish). The other computer replies with an ACK and another FIN. After one more ACK from
the initiating computer, the connection is closed.

Detecting lost packets

TCP connections can detect lost packets using a timeout.


Page 7

After sending off a packet, the sender starts a timer and puts the packet in a retransmission
queue. If the timer runs out and the sender has not yet received an ACK from the recipient, it
sends the packet again.

The retransmission may lead to the recipient receiving duplicate packets, if a packet was not
actually lost but just very slow to arrive or be acknowledged. If so, the recipient can simply
discard duplicate packets. It's better to have the data twice than not at all!

Handling out of order packets

TCP connections can detect out of order packets by using the sequence and
acknowledgement numbers.

When the recipient sees a higher sequence number than what they have acknowledged so
far, they know that they are missing at least one packet in between. In the situation pictured
above, the recipient sees a sequence number of #73 but expected a sequence number of #37.
The recipient lets the sender know there's something amiss by sending a packet with an
acknowledgement number set to the expected sequence number.

Sometimes the missing packet is simply taking a slower route through the Internet and it
arrives soon after.
Page 8

Other times, the missing packet may actually be a lost packet and the sender must retransmit
the packet.

In both situations, the recipient has to deal with out of order packets. Fortunately, the
recipient can use the sequence numbers to reassemble the packet data in the correct order.
Advantages of the TCP model Page 7

 It helps you to establish/set up a connection between different types of computers.


 It operates independently of the operating system.
 It supports many routing-protocols.
 It enables the internetworking between the organizations.
 TCP/IP model has a highly scalable client-server architecture.
 It can be operated independently.
 Supports a number of routing protocols.
 It can be used to establish a connection between two computers.

Disadvantages of the TCP model

 TCP/IP is a complicated model to set up and manage.


 The shallow/overhead of TCP/IP is higher-than IPX (Internetwork Packet Exchange).
 In this, model the transport layer does not guarantee delivery of packets.
 Replacing protocol in TCP/IP is not easy.
 It has no clear separation from its services, interfaces, and protocols.

Characteristics

 Support for a flexible TCP/IP architecture


 Adding more system to a network is easy.
 In TCP/IP, the network remains intact until the source, and destination machines were
functioning properly.
 TCP is a connection-oriented protocol.
 TCP offers reliability and ensures that data which arrives out of sequence should put
back into order.
 TCP allows you to implement flow control, so sender never overpowers a receiver with
data.
Flowchart page 8

You might also like