1 / 42

TCP 와 UDP

TCP 와 UDP. 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

kiersten
Download Presentation

TCP 와 UDP

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP와 UDP

  2. 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 Chapter 3 outline

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

  4. 비유 부산 서울 길수 보원 길수와 보원은 각각 기숙사에서 살고 있다. 보원은 길수에게 편지를 보낸다. 보원은 편지를 자신의 기숙사 메일함에 넣었다. 보원 기숙사의 우편 담당자는 모든 편지를 모아서 우체국에 보냈다. 마침내 보원의 편지는 길수의 기숙사에 도착했다. 길수 기숙사의 우편 담당자는 기숙사에 도착한 모든 편지를 수거하여 기숙사에 있는 각 학생들에게 편지를 전달했다. 이와 같이 보원이 보낸 편지가 길수에게 전달되었다. Processes 메시지 Transport layer 주소 Transport-layer protocol 호스트 주소 호스트 길수와 보원 편지 장 길수, 이보원 우편 담당 책임자 기숙사 주소 기숙사

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

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

  7. IP 주소와 포트 번호

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

  9. 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 Chapter 3 outline

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

  11. UDP를 사용하는 서비스

  12. UDP 헤더

  13. Pseudoheader

  14. 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 Chapter 3 outline

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

  16. TCP를 사용하는 서비스

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

  18. TCP에서의 세그먼트 전달

  19. TCP 세그먼트의 헤더

  20. Sequence number(SN)와 ACK number • SN은 세그먼트의 번호가 아니라 세그먼트가 데이터 스트림에서 위치하는 시작 바이트로 나타낸다.

  21. TCP 연결: three-way handshake

  22. 연결 해제

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

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

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

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

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

  28. 에러 제어

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

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

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

  32. 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 Chapter 3 outline

  33. Congestion Control

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

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

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

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

  38. Congestion Avoidance • 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

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

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

  41. Fast Retransmit와 Fast Recovery

  42. Cwnd의 변화 예

More Related