Chapter 12 transmission control protocol tcp
This presentation is the property of its rightful owner.
Sponsored Links
1 / 48

Chapter 12 Transmission Control Protocol (TCP) PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on
  • Presentation posted in: General

Chapter 12 Transmission Control Protocol (TCP). Mi-Jung Choi Dept. of Computer Science and Engineering [email protected] Contents. 12.1TCP SERVICES 12.2TCP FEATURES 12.3SEGMENT 12.4A TCP CONNECTION 12.5STATE TRANSITION DIAGRAM 12.6FLOW CONTROL 12.7ERROR CONTROL

Download Presentation

Chapter 12 Transmission Control Protocol (TCP)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Chapter 12 transmission control protocol tcp

Chapter 12 Transmission Control Protocol (TCP)

Mi-Jung Choi

Dept. of Computer Science and Engineering

[email protected]


Contents

Contents

12.1TCP SERVICES

12.2TCP FEATURES

12.3SEGMENT

12.4A TCP CONNECTION

12.5STATE TRANSITION DIAGRAM

12.6FLOW CONTROL

12.7ERROR CONTROL

12.8 CONGESTION CONTROL

12.9 TCP TIMERS

12.10 OPTIONS

12.12 TCP PACKAGE


Objectives

Objectives

  • Be able to name and understand the services offered by TCP

  • Understand TCP’s flow and error control and congestion control

  • Be familiar with the fields in a TCP segment

  • Understand the phases in a connection-oriented connection

  • Understand the TCP transition state diagram

  • Be able to name and understand the timers used in TCP

  • Be familiar with the TCP options


Tcp ip protocols

TCP/IP Protocols


Tcp ip functions

TCP/IP Functions

  • To create a process-to-process communication (using port numbers)

  • To create a flow control mechanism at the transport level (using sliding window)

  • To create a error control mechanism at the transport level (using Ack packet, time-out, retransmission)

  • Sequence control mechanism

  • A connection oriented, reliable transport protocol


12 1 tcp services

12.1 TCP SERVICES

  • We explain the services offered by TCP to the processes at the application layer

  • The topics discussed in this section include:

    • Process-to-Process Communication

    • Stream Delivery Service

    • Full-Duplex Communication

    • Connection-Oriented Service

    • Reliable Service


Process to process communication

Process-to-Process Communication

  • For client/server communication

    we must define the

    • Local host

    • Local client program

    • Remote host

    • Remote server program


Process to process communication cont

PROCESS-TO-PROCESS COMMUNICATION (cont.)

  • Port numbers :

    ~ mentioned in UDP chapter


Process to process communication cont1

PROCESS-TO-PROCESS COMMUNICATION (cont.)

  • Well-known port in TCP


Chapter 12 transmission control protocol tcp

Example 1

As we said in Chapter 11, in UNIX, the well-known ports are stored in a file called /etc/services. Each line in this file gives the name of the server and the well-known port number. We can use the grep utility to extract the line corresponding to the desired application. The following shows the ports for FTP.

$ grep ftp /etc/services

ftp-data 20/tcpftp-control 21/tcp


Process to process communication cont2

PROCESS-TO-PROCESS COMMUNICATION (cont.)

  • Socket addresses

    ~ a combination of IP address and port number

    ~ to make a connection for each end

    ~ to need a pair of socket addresses: client and server socket address

    • These four pieces of information are part of the IP header (IP address) and TCP header (port number)


12 1 tcp services cont

12.1 TCP SERVICES (cont.)

  • Stream delivery service

    • Sending and receiving buffers

    • Segments

  • Full-Duplex service

    • piggybacking

  • Connection-Oriented service

    • A virtual connection (not physical connection)

  • Reliable service

    • Reply acknowledge packet


Stream delivery

Sending TCP

~ receives data as a stream of bytes from application process using sending buffer

~ make data to appropriate segments and transfer to network

Receiving TCP

~ receives segments using receiving buffer

~ reassemble segments to data and send data as a stream of bytes to application process

Stream delivery


S ending and receiving buffers

Sending and receiving buffers

The sending process and the receiving process may not produce and consume data at the same speed, TCP needs buffers for storage


Tcp segments

TCP segments

IP layer, as a service provider for TCP, needs to send data in packets, not as a stream of bytes.

TCP groups a number of bytes together into a packet called segment


Udp vs tcp communication

응용

응용

응용

응용

UDP

UDP

다중화

역다중화

datagram

datagram

datagram

datagram

UDP vs. TCP communication


12 2 tcp features

12.2 TCP FEATURES

  • To provide the services mentioned in the previous section, TCP has several features that are briefly summarized in this section.

  • The topics discussed in this section include:

    • Numbering System

    • Flow Control

    • Error Control

    • Congestion Control


Numbering system

Numbering system

  • TCP keeps track of the segment being transmitted or received using sequence number and acknowledge number

  • These number is used for flow and error control

  • The bytes of data being transferred in each connection are numbered by TCP

  • The numbering starts with a randomly generated number (b/w 0 ~ 232-1)


Numbering system1

Numbering system

  • When TCP receives bytes of data from the process and stores them in sending buffer

  • After numbering the bytes, TCP assigns sequence number to each segment that is being sent

  • The value of the sequence number field in a segment defines the number of the first data byte contained in that segment

  • The value of the acknowledgment field in a segment defines the number of the next byte a party expects to receives. The acknowledgment number is cumulative


Example 2

Example 2

  • Suppose a TCP connection is transferring a file of 5000 bytes. The first byte is numbered 10001. What are the sequence numbers for each segment if data is sent in five segments, each carrying 1000 bytes?

  • Solution:

    The following shows the sequence number for each segment:

    Segment 1➡ Sequence Number: 10,001 (range: 10,001 to 11,000)

    Segment 2➡ Sequence Number: 11,001 (range: 11,001 to 12,000)

    Segment 3➡ Sequence Number: 12,001 (range: 12,001 to 13,000)

    Segment 4➡ Sequence Number: 13,001 (range: 13,001 to 14,000)

    Segment 5➡ Sequence Number: 14,001 (range: 14,001 to 15,000)


Chapter 12 transmission control protocol tcp

12.3 SEGMENT

A packet in TCP is called a segment

The topics discussed in this section include:

  • Format

  • Encapsulation


12 3 segment

12.3 SEGMENT

  • The unit of data transfer b/w 2 devices using TCP is a segment


12 3 segment cont

12.3 SEGMENT (cont.)

  • Segment

    • source port address : the port number of the application program in the sender’s host

    • destination port address : the port number of the application program in the receiver’s host

    • sequence number : the number of the 1st byte of data in this segment

    • acknowledgement number : the byte number that the receiver is expecting to receive from the other party

    • header length : 4 bytes

    • control :

    • window size: 16 bits

    • checksum : all segment including pseudo-header

    • urgent pointer :

    • option :


12 3 segment cont1

FlagDescription

----- --------------

URGUrgent pointer field is valid

ACKAcknowledgment field is valid

PSHPush the data

RSTConnection must be reset

SYNSynchronize sequence numbers

FINTerminate the connection

12.3 SEGMENT (cont.)

  • Control


12 3 segment cont2

12.3 SEGMENT (cont.)

  • Control

    • URG: 긴급 포인터가 유효함

    • ACK: 확인 응답 번호가 유효함

    • PSH: 수신측은 데이터를 가능한 빨리 응용으로 보내야 함

    • RST: 연결을 재설정

    • SYN: 연결을 초기화히기 위해 순서 번호를 동기화

    • FIN: 송신측이 데이터 전송을 종료함


Pseudoheader added to the tcp datagram

Pseudoheader added to the TCP datagram

The inclusion of the checksum in TCP is mandatory


Chapter 12 transmission control protocol tcp

Encapsulation and decapsulation


12 4 tcp connection

12.4 TCP CONNECTION

  • TCP is connection-oriented. A connection-oriented transport protocol establishes a virtual path between the source and destination. All of the segments belonging to a message are then sent over this virtual path. A connection-oriented transmission requires three phases: connection establishment, data transfer, and connection termination.

  • The topics discussed in this section include:

    • Connection Establishment

    • Data Transfer

    • Connection Termination

    • Connection Reset


12 4 tcp connection1

12.4 TCP CONNECTION

  • TCP: connection oriented

  • Establishment the VC b/w source TCP and destination

  • Connection establishment and termination

  • Connection establishment

    • 3 단계 수행

      • 호스트 A는 호스트 B에게 연결 설정 세그먼트를 전송(초기화 정보)

      • 호스트 B는 호스트 A에게 확인응답 세그먼트 와 초기화 정보 세그먼트 전송

      • 호스트 A는 호스트 B에게 확인응답 세그먼트 전송

  • Connection termination

    • 4단계 수행

      • 호스트 A는 연결 종료를 알리고 세그먼트 전송

      • 호스트 B는 A의 요구에 대해 확인 응답하는 세그먼트 전송

      • 호스트 B는 연결 종료를 알리는 세그먼트 전송

      • 호스트 A는 B의 요구에 대해 확인응답


Connection establishment using three way handshaking

Connection establishment using three-way handshaking


Connection establishment using three way h andshaking

Connection establishment using three-way handshaking

  • A SYN segment cannot carry data, but it consumes one sequence number.

  • A SYN + ACK segment cannot carry data, but does consume one sequence number.

  • An ACK segment, if carrying no data, consumes no sequence number.


Data transfer

Data transfer

The FIN segment consumes one sequence number if it does not carry data


Connection termination using three way handshaking

Connection termination using three-way handshaking

The FIN + ACK segment consumes one sequence number if it does not carry data


Half close

Half Close

  • One end stops sending data while still receiving data.

    • Normally initiated by client.

    • It can occur when the server needs all data before processing can begin

  • Sorting example

    • The client, after sending all data to be sorted, can close the connection in the outbound direction.

    • However, the inbound direction must remain open to receive the sorted data.


Connection reset

Connection Reset

  • The TCP at end may deny a connection request, may abort a connection, or may terminate an idle connection. All of these are done with the RST (reset) flag.

    • Denying a connection

    • Aborting a connection

    • Terminating an idle connection


Chapter 12 transmission control protocol tcp

12.5 STATE TRANSITION DIAGRAM

To keep track of all the different events happening during connection establishment, connection termination, and data transfer, the TCP software is implemented as a finite state machine.

The topics discussed in this section include:

  • Scenarios


12 5 state transition diagram

StateDescription

----- --------------

CLOSEDThere is no connection

LISTENThe server is waiting for calls from the client

SYN-SENTA connection request is sent; waiting for acknowledgment

SYN-RCVDA connection request is received

ESTABLISHED Connection is established

FIN-WAIT-1The application has requested the closing of the connection

FIN-WAIT-2The other side has accepted the closing of the connection

CLOSINGBoth sides have decided to close simultaneously

TIME-WAITWaiting for retransmitted segments to die

CLOSE-WAITThe server is waiting for the application to close

LAST-ACKThe server is waiting for the last acknowledgment

12.5STATE TRANSITION DIAGRAM

  • finite state machine

    • At any moment, the machine is in one of the state

  • TCP states


State transition diagram

server

client

SYN

SYN +ACK

ACK

data

ack

FIN

ACK

FIN

ACK

STATE TRANSITION DIAGRAM

- state : ovals

- Transition from one to another state : directed line

- values on line

input / output

- Dotted line : server

- Solid line : client

- Thin line : unusual situation


Connection scenario

Connection scenario

The common value for MSL (Maximum Segment Lifetime) is between 30 seconds and 1 minute


State transition diagram1

STATE TRANSITION DIAGRAM

Client states

Server states


Connection termination using three way handshake

Connection termination using three-way handshake


Simultaneous open

Simultaneous Open


Simultaneous close

Simultaneous Close


Denying a connection

Denying a Connection


Aborting a connection

Aborting a connection


Tcp operation

TCP OPERATION

  • Encapsulation and decapsulation


Tcp operation cont

TCP OPERATION (cont.)

  • Buffering


Tcp operation cont1

TCP OPERATION (cont.)

  • Multiplexing and demultiplexing


  • Login