Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCP와 UDP.

Similar presentations


Presentation on theme: "TCP와 UDP."— Presentation transcript:

1 TCP와 UDP

2 Chapter 3 outline 3.1 Transport-layer services
3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control

3 Transport services와 protocols
양 종단 호스트 사이에서 응용 메시지의 전달을 담당한다. transport protocol은 종단 호스트에서 동작한다. 응용 프로세스들은 transport protocol을 통해서 메시지를 전달 메시지를 쪼개서 segments로 전송 Segment에는 전달하는 응용 프로세스의 주소를 표시 수신 transport protocol은 수신한 세그먼트를 목적지 프로세스에 전달 application transport network data link physical network data link physical network data link physical network data link physical logical end-end transport network data link physical network data link physical application transport network data link physical

4 포트 번호(port number) Transport layer에서 응용 프로세스를 구별하기 위해 사용하는 프로세스 주소를 포트 번호라고 한다.

5 포트 번호의 영역 포토 번호 Well known 포트 번호: 특정 프로세스에 이미 정해진 번호
임시 포트 번호: 그때 그때 프로세스에 할당되는 번호

6 IP 주소와 포트 번호

7 Transport layer(TL) protcols
TL은 응용 프로세스에 패킷을 전달할 때 프로세스가 신뢰할 수 있는 패킷을 전달할 수도 있고 혹은 Network layer(NL)로부터 받은 패킷을 그대로 전달할 수도 있다. TCP 응용 프로세스가 신뢰할 수 있는 서비스를 제공한다. 따라서 에러 제어, 흐름 제어, 순서 제어 등의 작업을 수행해야 한다. UDP NL로부터 받은 패킷을 그대로 전달한다.

8 Chapter 3 outline 3.1 Transport-layer services
3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control

9 UDP UDP에서는 전달하는 정보 단위를 보통 datagram이라고 한다.
NL로부터 받은 datagram를 응용 해당 프로세스로 전달하는 일 만을 수행한다. 따라서 신뢰성 있는 전달을 요구하지 않는 서비스가 UDP를 이용한다.

10 UDP를 사용하는 서비스

11 UDP 헤더

12 Pseudoheader

13 Chapter 3 outline 3.1 Transport-layer services
3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control

14 TCP TCP의 주요 특징 신뢰성 있는 전송을 위해서 다음의 작업을 수행한다.
연결형 방식(connection-oriented) 스트림(stream)으로 전달 수신한 패킷에 대해서 반드시 ACK 전송 신뢰성 있는 전송을 위해서 다음의 작업을 수행한다. 에러 제어 흐름 제어 순서 보장 체증 제어(congestion control)

15 TCP를 사용하는 서비스

16 스트림 전달 방식 TCP에서는 전달하는 정보 단위를 세그먼트(segment)라고 한다.(비교, IP에서는 패킷 혹은 데이터그램, Ethernet의 frame) 하지만 TCP는 세그먼트를 전송할 때 이것을 스트림의 전송으로 본다.

17 TCP에서의 세그먼트 전달

18 TCP 세그먼트의 헤더

19 Sequence number(SN)와 ACK number

20 TCP 연결: three-way handshake

21 연결 해제

22 ACK 전송 TCP는 받드시 받은 세그먼트에 대해서 ACK을 전송한다.

23 에러 제어 에러 제어 에러 검출 에러 정정 CRC Checksum Forward error correction
재전송(retransmission, ARQ) Stop-and-Wait ARQ Go-Back-N ARQ Selective Repeat ARQ

24 Go-Back-N ARQ . Go-Back-N ARQ는 window가 허락하는 범위에서 프레임을 연속해서 전송한다.
I(2)I(3) timeout Retransmit all frames from I(4) from I(7) Error on ACK(8) NAK(4) ACK(8) on I(4) ACK(1) . Go-Back-N ARQ는 window가 허락하는 범위에서 프레임을 연속해서 전송한다. 그런데 프레임 전송에 에러가 발생하면 재전송을 해야 하는데…

25 Selective Repeat ARQ I(0) I(1) I(2) I(3) I(4) I(5) I(6) I(7) ACK(1) timeout Retransmit only I(4) only I(1) Error on ACK(2) NAK(4) ACK(2) on I(4) . 현재의 window 크기의 범위 내에서 프레임을 계속 전송하는 것은 같지만 만약 에러가 발생해서 재전송을 해야 할 때 차이가 있다.

26 TCP 에러 제어 Selective Repeat와 거의 비슷하다.

27 에러 제어

28 TCP 흐름 제어 양 종단의 TCP는 흐름 제어를 수행한다.
수신 TCP는 현재의 남아있는 버퍼 크기를 ACK을 전송할 때 window size 필드를 통해서 알려준다. ACK은 세그먼트가 잘 도착했다는 것을 알려주는 것이고 window size는 현재의 버퍼 크기를 알려주는 것이다.

29 Window closed, BUSY CONDITION Make the receiver’s state worse!!
ACK로 충분한가? window size = 3 1 2 3 1 2 3 I(0) 1 2 3 1 2 3 I(1) I(2) 1 2 1 2 3 1 2 3 1 2 3 1 2 3 Window closed Window closed ACK(2) 1 2 3 1 2 3 1 2 3 1 2 3 I(0) I(3) I(1) 1 2 3 1 2 3 3 1 1 2 3 1 2 3 Window closed ACKs not sent Window closed, BUSY CONDITION TIMEOUT I(0) I(3) I(1) Retransmit I(3),I(0),I(1) Make the receiver’s state worse!! 29

30 Closing Window, BUSY CONDITION Not retransmit I(3),I(0),I(1)
ACK외에 buffer 크기를 알려줌 window size = 3 1 2 3 1 2 3 I(0) I(1) 1 2 3 1 2 3 I(2) 1 2 1 2 3 1 2 3 1 2 3 1 2 3 Closing Window Closing Window ACK 2, CDT 3 1 2 3 1 2 3 1 2 3 1 2 3 I(0) I(3) I(1) 1 2 3 1 2 3 3 1 1 2 3 1 2 3 Closing Window ACK 1, CDT 0 Closing Window, BUSY CONDITION TIMEER Not retransmit I(3),I(0),I(1) 1 ACK 1, CDT 2 1 2 3 1 2 3 1 2 3 I(2) IDLE CONDITION I(3) Open Window 30

31 Chapter 3 outline 3.1 Transport-layer services
3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control

32 Congestion Control

33 Congestion(체증, 혼잡) 망에 입력되는 트래픽 양이 망이 처리할 수 있는 한도를 초과할 경우 체증이 발생한다.
다음 그림은 단위 시간 당 입력되는 패킷의 수(input load)와 단위 시간당 처리되는 패킷의 수(throughput), 그리고 패킷이 처리될 때 까지의 지연 시간(delay) 관계를 보여 주고있다.

34 TCP congestion control
Congestion의 발견(detection) TCP는 송신한 패킷에 대해서 ACK을 수신한다. 만약 정해진 시간이 지날 때 까지 ACK이 도착하지 않으면 congestion이 발생한 것으로 판단하다.(timeout) Rate control TCP 호스트는 처음에는 적은 양의 패킷 전송을 하고 점차 양을 늘려나간다.(slow start) Congestion이 발생한 것으로 판단되면 전송되는 패킷의 양을 초기 상태로 줄여서 다시 시작한다.(congestion avoidance)

35 Congestion control 파라메터
Awnd (advertised window by receiver) 초기 연결 설정 단계에서, TCP는 상대방 TCP에게 자신의 최대 버퍼 크기(초기 Awnd)를 알려준다. 세그먼트를 수신할 때 마다 TCP는 현재 자신의 버퍼 중 비어있는 공간의 크기(Awnd)를 알려준다. Cwnd (congestion window) TCP가 세그먼트를 전송할 때 ACK을 받지않고 연속해서 보낼 수 있는 세그먼트의 양을 결정한다. 즉, TCP 흐름 제어에 의하면 TCP는 Awnd 만큼 연속해서 세그먼트를 전송할 수 있다. 하지만 congestion control에 의해서 Awnd 만큼 전송할 수 없고 Cwnd 만큼 전송하게 된다.

36 Slow Start initialize: cwnd = 1 (one maximum segment size);
For each segment that is acknowleged cwnd = cwnd + 1 until min(cwnd, awnd)

37 Congestion Avoidance If (segment timeout) 1. Set threshold = cwnd/2
TCP는 timeout될 때까지 ACK을 받지 못하면 congestion avoidance를 수행한다. Congestion Avoidance If (segment timeout) 1. Set threshold = cwnd/2 2. Set cwnd = 1 and restart “slow-start” until (cwnd = threshold) 3. If (cwnd  threshold) cwnd = cwnd + 1 every roundtrip time

38 Slow Start와 Congestion Avoidance
20 Time out occurs 15 cwnd 10 Threshold 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Round-trip times

39 Fast Retransmit와 Fast Recovery
동일한 ACK을 3개 받을 경우 Fast Retransmit Timeout되기 전이라도 바로 재전송한다. Fast Recovery Cwnd를 현재의 Cwnd의 반으로 줄인다. 그리고 줄인 Cwnd에서부터 linear하게 증가시킨다.

40 Fast Retransmit와 Fast Recovery

41 Cwnd의 변화 예


Download ppt "TCP와 UDP."

Similar presentations


Ads by Google