Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Chapter 12 Transmission Control Protocol (TCP) Chapter 12 Transmission Control Protocol (TCP) Mi-Jung Choi Dept. of Computer Science and Engineering.

Similar presentations


Presentation on theme: "1 Chapter 12 Transmission Control Protocol (TCP) Chapter 12 Transmission Control Protocol (TCP) Mi-Jung Choi Dept. of Computer Science and Engineering."— Presentation transcript:

1 1 Chapter 12 Transmission Control Protocol (TCP) Chapter 12 Transmission Control Protocol (TCP) Mi-Jung Choi Dept. of Computer Science and Engineering mjchoi@postech.ac.kr

2 2 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 Contents

3 3 oBe able to name and understand the services offered by TCP o Understand TCP’s flow and error control and congestion control o Be familiar with the fields in a TCP segment o Understand the phases in a connection-oriented connection o Understand the TCP transition state diagram o Be able to name and understand the timers used in TCP o Be familiar with the TCP options Objectives

4 4 TCP/IP Protocols

5 5 oTo create a process-to-process communication (using port numbers) oTo create a flow control mechanism at the transport level (using sliding window) oTo create a error control mechanism at the transport level (using Ack packet, time-out, retransmission) oSequence control mechanism oA connection oriented, reliable transport protocol TCP/IP Functions

6 6 12.1 TCP SERVICES We explain the services offered by TCP to the processes at the application layer o We explain the services offered by TCP to the processes at the application layer o The topics discussed in this section include: Process-to-Process Communication Stream Delivery Service Full-Duplex Communication Connection-Oriented Service Reliable Service

7 7  For client/server communication we must define the  Local host  Local client program  Remote host  Remote server program Process-to-Process Communication

8 8 PROCESS-TO-PROCESS COMMUNICATION (cont.) oPort numbers : ~ mentioned in UDP chapter

9 9 PROCESS-TO-PROCESS COMMUNICATION (cont.) oWell-known port in TCP PortProtocolDescription 7EchoEchoes a received datagram back to the sender 9DiscardDiscards any datagram that is received 11UsersActive users 13DaytimeReturns the date and the time 17QuoteReturns a quote of the day 19ChargenReturns a string of characters 20FTP,dataFile transfer Protocol for data 21FTP,controlFile transfer Protocol for control 23TELNETTerminal Network 25SMTPSimple Mail Transfer Protocol 53DNSDomain Name Server 67BOOTPBootstrap protocol 79Fingerfinger 80HTTPHypertext Transfer Protocol 111RPCRemote Procedure Call

10 10 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/tcp ftp-control 21/tcp Example 1

11 11 PROCESS-TO-PROCESS COMMUNICATION (cont.) oSocket 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 12 12.1 TCP SERVICES (cont.) oStream delivery service Sending and receiving buffers Segments oFull-Duplex service piggybacking oConnection-Oriented service A virtual connection (not physical connection) oReliable service Reply acknowledge packet

13 13 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

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

15 15 TCP segments oIP layer, as a service provider for TCP, needs to send data in packets, not as a stream of bytes. oTCP groups a number of bytes together into a packet called segment

16 16 UDP vs. TCP communication 응용 UDP 역다중화 datagram UDP 다중화

17 17 12.2 TCP FEATURES To provide the services mentioned in the previous section, TCP has several features that are briefly summarized in this section. o 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: o The topics discussed in this section include: Numbering System Flow Control Error Control Congestion Control

18 18 Numbering system oTCP keeps track of the segment being transmitted or received using sequence number and acknowledge number oThese number is used for flow and error control oThe bytes of data being transferred in each connection are numbered by TCP oThe numbering starts with a randomly generated number (b/w 0 ~ 2 32 -1)

19 19 Numbering system oWhen TCP receives bytes of data from the process and stores them in sending buffer oAfter numbering the bytes, TCP assigns sequence number to each segment that is being sent oThe value of the sequence number field in a segment defines the number of the first data byte contained in that segment oThe 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

20 20 Example 2 oSuppose 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? oSolution: 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)

21 21 A packet in TCP is called a segment A packet in TCP is called a segment The topics discussed in this section include: FormatFormat EncapsulationEncapsulation 12.3 SEGMENT

22 22 oThe unit of data transfer b/w 2 devices using TCP is a segment

23 23 12.3 SEGMENT (cont.) oSegment 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 1 st 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 :

24 24 12.3 SEGMENT (cont.) oControl FlagDescription ----- -------------- URGUrgent pointer field is valid ACKAcknowledgment field is valid PSHPush the data RSTConnection must be reset SYNSynchronize sequence numbers FINTerminate the connection

25 25 12.3 SEGMENT (cont.) oControl URG: 긴급 포인터가 유효함 ACK: 확인 응답 번호가 유효함 PSH: 수신측은 데이터를 가능한 빨리 응용으로 보내야 함 RST: 연결을 재설정 SYN: 연결을 초기화히기 위해 순서 번호를 동기화 FIN: 송신측이 데이터 전송을 종료함

26 26 Pseudoheader added to the TCP datagram The inclusion of the checksum in TCP is mandatory

27 27 Encapsulation and decapsulation

28 28 12.4 TCP CONNECTION oTCP 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. oThe topics discussed in this section include: Connection Establishment Data Transfer Connection Termination Connection Reset

29 29 12.4 TCP CONNECTION oTCP: connection oriented oEstablishment the VC b/w source TCP and destination oConnection establishment and termination oConnection establishment 3 단계 수행 1) 호스트 A 는 호스트 B 에게 연결 설정 세그먼트를 전송 ( 초기화 정보 ) 2) 호스트 B 는 호스트 A 에게 확인응답 세그먼트 와 초기화 정보 세그먼트 전송 3) 호스트 A 는 호스트 B 에게 확인응답 세그먼트 전송 oConnection termination 4 단계 수행 1) 호스트 A 는 연결 종료를 알리고 세그먼트 전송 2) 호스트 B 는 A 의 요구에 대해 확인 응답하는 세그먼트 전송 3) 호스트 B 는 연결 종료를 알리는 세그먼트 전송 4) 호스트 A 는 B 의 요구에 대해 확인응답

30 30 Connection establishment using three-way handshaking

31 31 o A SYN segment cannot carry data, but it consumes one sequence number. o A SYN + ACK segment cannot carry data, but does consume one sequence number. oAn ACK segment, if carrying no data, consumes no sequence number.

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

33 33 Connection termination using three-way handshaking The FIN + ACK segment consumes one sequence number if it does not carry data

34 34 Half Close oOne 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 oSorting 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.

35 35 Connection Reset oThe 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

36 36 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: ScenariosScenarios 12.5 STATE TRANSITION DIAGRAM

37 37 ofinite state machine At any moment, the machine is in one of the state oTCP states 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

38 38 STATE TRANSITION DIAGRAM SYN SYN +ACK ACK FIN ACK FIN data ack client server - 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

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

40 40 Client states Server states STATE TRANSITION DIAGRAM

41 41 Connection termination using three-way handshake

42 42 Simultaneous Open

43 43 Simultaneous Close

44 44 Denying a Connection

45 45 Aborting a connection

46 46 TCP OPERATION oEncapsulation and decapsulation

47 47 TCP OPERATION (cont.) oBuffering

48 48 TCP OPERATION (cont.) oMultiplexing and demultiplexing


Download ppt "1 Chapter 12 Transmission Control Protocol (TCP) Chapter 12 Transmission Control Protocol (TCP) Mi-Jung Choi Dept. of Computer Science and Engineering."

Similar presentations


Ads by Google