TCP와 UDP.

Slides:



Advertisements
Similar presentations
1 비동기와 동기 전송 (Asynchronous and Synchronous Transmission) 전송링크를 통해 전송하기 위해 두 장치 사이의 긴밀한 협조와 동의가 필요 — 송 수신기간에 동기 (synchronize ) 를 맞추기 위한 비트들의 Timing( 전송률,
Advertisements

Young-Tae Han 데이터 링크 제어 Young-Tae Han
4 통신 프로토콜과 표준화, 최근 표준화 협력 방향.
1. Window size는 buffer size?
Chapter 13 전송층 개요.
7장. TCP와 UDP.
6 데이터 링크 계층.
파이프라인된 프로토콜 파이프라이닝: 송신자는 확인 응답을 기다리지 않고 여러 패킷을 전송하도록 허용
Chapter 14 User Datagram Protocol (UDP).
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
3 장 OSI 기본 참조 모델 OSI : Open System Interconnection
Department of Computer Science and Engineering
UDP/ARP 4조 권대흥 임정식 홍태경 발표 이두용.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Load Balancing L4와 L7은 어떻게 동작할까?.
Chapter 11 Data Link Control.
Chapter 02 네트워크에 대한 이해.
VoIP (Voice Over Internet Protocol)
Chapter 5 링크 계층.
4.3 Managing TCP sessions 4조 임종철,임정묵,이규윤.
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
Chapter 13 Wired LANs: Ethernet.
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
PART 02 프로토콜 컴퓨터 네트워크 chapter 06 트랜스포트 계층 임효택.
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
네트워크 계층 모델 응용 계층: HTTP.
Error Detection and Correction
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
컴퓨터 네트워크 PART 02 프로토콜 (chapter 03 트랜스포트 계층) 임효택
10 장 데이터 링크 제어(Data Link Control)
13 장 광역 통신망(WAN) 13.1 점대점 WAN 13.2 교환형 WAN 13.3 ATM LAN 13.4 요약.
Frame Relay Prof. Choong Seon HONG.
제 22 장 TCP Persist Timer.
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 15 Transmission Control Protocol (TCP).
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
Trivial File Transfer Protocol (TFTP)
Network Security WireShark를 활용한 프로토콜 분석 I.
22 장 전송층(Transport Layer)
OSI Reference Model.
Transmission Control Protocol (TCP)
21 장 전송층(Transport Layer)
제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션
6 데이터 링크 계층 학습 목표 오류 제어, 흐름 제어의 원리와 동작 방식을 이해한다.
Chapter 2 네트워크 모델 (Network Models).
Chapter 04. OSI 참조 모델.
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).
10 장 데이터 링크 제어(Data Link Control)
Network 네트워크 이론 및 실습 TCP / IP 4장.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
김 형 진 전북대학교 IT응용시스템공학과 네트워크의 기본 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
10 기타 전송 계층 프로토콜.
Chapter 26 IP over ATM.
제 19 장 TCP 대화식 데이터 흐름.
Ping Test.
Chapter 27 Mobile IP.
7 IP 프로토콜의 이해 학습 목표 네트워크 계층의 필요성과 역할을 이해한다.
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
컴퓨터 네트워크 PART 02 프로토콜 (chapter 03 트랜스포트 계층) 임효택
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
ARP.
Presentation transcript:

TCP와 UDP

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

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

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

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

IP 주소와 포트 번호

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

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

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

UDP를 사용하는 서비스

UDP 헤더

Pseudoheader

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

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

TCP를 사용하는 서비스

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

TCP에서의 세그먼트 전달

TCP 세그먼트의 헤더

Sequence number(SN)와 ACK number

TCP 연결: three-way handshake

연결 해제

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

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

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가 허락하는 범위에서 프레임을 연속해서 전송한다. 그런데 프레임 전송에 에러가 발생하면 재전송을 해야 하는데…

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 크기의 범위 내에서 프레임을 계속 전송하는 것은 같지만 만약 에러가 발생해서 재전송을 해야 할 때 차이가 있다.

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

에러 제어

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

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

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

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

Congestion Control

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

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

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

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

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

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

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

Fast Retransmit와 Fast Recovery

Cwnd의 변화 예