Microsoft PowerPoint - 3-Network-Transport

Similar documents
Microsoft PowerPoint Network-Transport

Microsoft PowerPoint Network-Transport

Microsoft PowerPoint Network-Transport

Microsoft PowerPoint - net3

3rd Edition: Chapter 3

그룹웨어와 XXXXX 제목 예제

ARQ (Automatic Repeat reQuest)

슬라이드 제목 없음

슬라이드 1

Microsoft PowerPoint - Chap09_TCP와 UDP [호환 모드]

Microsoft PowerPoint _TCP_IP

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

Switching

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

TCP.IP.ppt

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

The Pocket Guide to TCP/IP Sockets: C Version

[QoS 강좌] QoS에서의 혼잡 회피 적용과 이해 ②

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

슬라이드 제목 없음

V. 통신망 기술

Microsoft Word doc

Microsoft PowerPoint - tem_5

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

TCP for MANET

2009년 상반기 사업계획

일반적인 네트워크의 구성은 다음과 같다

Subnet Address Internet Network G Network Network class B networ

Microsoft PowerPoint - 20_TransportProtocols-1.ppt

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

0. 들어가기 전

bn2019_2

Microsoft Word - src.doc

슬라이드 1

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

Network seminar.key

The Pocket Guide to TCP/IP Sockets: C Version

SMB_ICMP_UDP(huichang).PDF

OSI 참조 모델과 TCP/IP

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

7. TCP

<4D F736F F F696E74202D FB5A5C0CCC5CDB8B5C5A9BFCD20BFC0B7F9C1A6BEEE20B1E2B9FD205BC8A3C8AF20B8F0B5E55D>

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PEL_PPT

Microsoft PowerPoint - 04-UDP Programming.ppt

IP 주소란? 네트워크상에존재하는컴퓨터들을구분하고, 서로를인식하기위해사용하는특수한번호. 32-bit 체계의 IPv4 와, 128-bit 체계의 IPv6 가있다. About IPv4 32-bit 의길이로이루어지는 IPv4 는 1 byte (= 8-bit) 씩 4 개로나누

Windows 8에서 BioStar 1 설치하기

DBPIA-NURIMEDIA

[Brochure] KOR_TunA

SRC PLUS 제어기 MANUAL

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

한국정보과학회 학술대회 논문작성양식

UDP Flooding Attack 공격과 방어

°í¼®ÁÖ Ãâ·Â

Microsoft Word - logic2005.doc

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint PythonGUI-socket

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft Word - NAT_1_.doc

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

<4D F736F F F696E74202D20BBE7BABB202D DBED7BCBCBDBAC1A6BEEE2CC7C1B7CEC5E4C4DD2C4F B0E8C3FE2E707074>

<3130C0E5>

PCServerMgmt7

Secure Programming Lecture1 : Introduction

소프트웨어 융합 개론

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

< F5320B4EBC0C0C0E5BAF1BFA120B4EBC7D120BAB8BEC8B1E2B4C920B0A1C0CCB5E528C3D6C1BE292E687770>

자바-11장N'1-502

이세원의 인터넷통신 과제 02.hwp

Microsoft PowerPoint 권태경교수님Network-Research-CSE

네트워크통신연결방법 네트워크제품이통신을할때, 서로연결하는방법에대해설명합니다. FIRST EDITION

슬라이드 1

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Nordic Chipset BLE Test Application Note


PowerPoint Presentation

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

2009년 상반기 사업계획

특허청구의범위청구항 1 패킷스케줄러의패킷스케줄링방법에있어서, 복수의패킷타입각각에대해가중치를결정하는단계 ; 상기가중치에따라상기패킷스케줄러내에서상기복수의패킷타입이대기하기위한전체대기공간을상기복수의패킷타입각각에대한대기공간으로분할하는단계 ; 및상기복수의패킷타입각각에대한가중치를변

CHAPTER 01

Microsoft PowerPoint - 06-IPAddress [호환 모드]

2009 학년도 2 학기통신프로토콜 Quiz 모음 ( 인터넷정보과 1 학년 C/G 반 ) 담당교수 : 권춘우 [Quiz #1] 통신기초와관련한다음물음에답하라. 1. 통신이라함은정보원 ( 송신자 / 수신자 ) 간정보를전송매체를통해전달하는것을의미한다. 그래서정보원 (sou

간격으로측정한검측데이터를통합운영부로실시간전송, 모니터링및분석하는기능을제공하여결함궤도의유지보수를수행하게한다. 송신커널단에서는응용프로세스의 write 이벤트마다매번전송을하는것이아니라송신데이터가버퍼에적정량채워졌을때송신을수행한다. 수신단커널은수신한데이터를버퍼링하고수신단응용프로

ARMBOOT 1

[ tcpdump 패킷캡처프로그램 ] tcpdump란? tcpdump 버전확인 tcpdump 플래그 (flags) tcpdump 사용법 tcpdump의사용예제 telnet을활용해 root와 passwd 암호알아내기 [01] tcpdump란? tcpdump는 Lawren

SLA QoS

슬라이드 제목 없음

Chapter 4 UDP 소켓 사용법

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

hd1300_k_v1r2_Final_.PDF

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Transcription:

3장. 트랜스포트계층 (Transport Layer) 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 강의목표 트랜스포트계층서비스의원리 다중화 / 역다중화 (multiplexing/demultiplexing) 신뢰적인데이터전달 (reliable data transfer) 흐름제어 (flow control) 혼잡제어 (congestion control) 인터넷에서의트랜스포트계층학습 UDP: 비연결형트랜스포트 (connectionless transport) t) TCP: 연결지향형트랜스포트 (connection-oriented transport) TCP 혼잡제어 순천향대학교컴퓨터공학과 2

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.3 비연결형트랜스포트 : UDP 34 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 : TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 3 트랜스포트서비스와프로토콜 서로다른호스트에서동작하는애플리케이션프로세스간의논리적통신 (logical communication) 을제공 트랜스포트프로토콜은종단시스템에서구현 송신측애플리케이션메시지를세그먼트 (segment) 로분할하여네트워크계층에전달 수신측세그먼트를메시지로결합하여애플리케이션계층에전달 애플리케이션에하나이상의트랜스포트프로토콜 인터넷 : TCP 와 UDP 순천향대학교컴퓨터공학과 4

트랜스포트와네트워크계층 네트워크계층 집안비유 : 호스트들사이의논리적통신을 두집안의사촌지간아이들 ( 제공 앤, 빌 ) 간의편지배달 트랜스포트계층 프로세스들사이의논리적통신을제공 네트워크계층서비스에의존 애플리케이션메시지 = 봉투안의편지 프로세스 = 사촌형제 호스트 ( 종단시스템 ) = 집 트랜스포트프로토콜 = 앤과빌 네트워크계층프로토콜 = 우편서비스 순천향대학교컴퓨터공학과 5 인터넷트랜스포트프로토콜계층 신뢰적, 순서적인데이터전달 : TCP 혼잡제어 흐름제어 연결설정 비신뢰적, 비순서적인데이터전달 : UDP IP와같은최선형전달서비스 (best- effort delivery service) 제공되지않는서비스 지연보장 대역폭보장 순천향대학교컴퓨터공학과 6

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.3 비연결형트랜스포트 : UDP 34 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 : TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 7 다중화 / 역다중화 (Multiplexing/Demultiplexing) l i l i 수신호스트역다중화 : 송신호스트다중화 : 소켓들로부터데이터를모으수신된세그먼트들을올바른고, 데이터에헤더정보를캡슐소켓에전달화한세그먼트들을네트워크계층에전달 순천향대학교컴퓨터공학과 8

다중화 / 역다중화동작 호스트는 IP 데이터그램을수신 데이터그램은출발지 ( 소스 ) IP 주소, 목적지 IP 주소를가짐 데이터그램은한개의트랜스포트계층세그먼트를가짐 세그먼트는출발지, 목적지포트번호를가짐 호스트는 IP 주소와포트번호를사용하여세그먼트를해당소켓에전달 순천향대학교컴퓨터공학과 9 비연결형다중화 / 역다중화 (1) (Connectionless Mux/Demux) 포트번호를갖는소켓을생성 DatagramSocket mysocket1 = newdatagramsocket(12534); UDP 소켓은두요소로구분 ( 목적지 IP 주소, 목적지포트번호 ) 호스트가 UDP 세그먼트수신시 : 세그먼트내의목적지포트번호를조사 해당포트번호를갖는소켓에 UDP 세그먼트를전달 IP 데이터그램들의출발지 IP 주소또는출발지포트번호가다르더라도모두동일한목적지 IP 주소와목적지포트번호를가지면같은소켓에전달 순천향대학교컴퓨터공학과 10

비연결형다중화 / 역다중화 (2) SP 는응답시복귀주소의부분으로사용 순천향대학교컴퓨터공학과 11 연결지향형다중화 / 역다중화 (1) (Connection-Oriented Oi t dm Mux/Demux) TCP 는 4 개요소로구분 출발지 IP 주소, 출발지포트번호 목적지 IP 주소, 목적지포트번호 수신측호스트는 4 개의값을사용하여해당소켓으로세그먼트를전달 서버호스트는동시에많은 TCP 소켓들을지원할수있음 각소켓들은자신의 4 개요소로구분 웹서버는연결되는각클라이언트마다다른소켓들을가짐 비지속 HTTP 는각요청에대해서다른소켓을가짐 순천향대학교컴퓨터공학과 12

연결지향형다중화 / 역다중화 (2) 순천향대학교컴퓨터공학과 13 연결지향형다중화 / 역다중화 : 멀티쓰레드웹서버 순천향대학교컴퓨터공학과 14

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 34 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 : TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 15 UDP (User Datagram Prtocol) [RFC 768] IP 에최소기능만추가 다중화 / 역다중화 오류검사 최선형 (best effort) 서비스의 UDP 세그먼트 : 손실 순서에어긋나게애플리케이션에전달 비연결형 (connectionless) UDP 송수신측간연결을위해핸드셰이크를사용하지않음 UDP 세그먼트들은서로무관하게독립적으로다루어짐 순천향대학교컴퓨터공학과 16 UDP 를사용하는이유는? 지연을유발하는연결설정이없음 단순하여송수신측에서연결상태가없음 간소한세그먼트헤더로인한작은패킷오버헤드 혼잡제어를하지않아서원하는만큼빨리전달

UDP 응용과포맷 스트리밍멀티미디어애플리케이 션 손실감내 (loss tolerant) 속도 ( 전송률 ) 민감 (rate sensitive) UDP 응용 DNS SNMP UDP 상의신뢰적전송 애플리케이션계층에신뢰성데이터전송추가 애플리케이션에맞추어진오류회복 (error recovery) 순천향대학교컴퓨터공학과 17 UDP 체크섬 (UDP Checksum) 체크섬은전송된세그먼트의오류를검출 송신측 : 세그먼트의값을 16비트정수의열로간주 세그먼트값들을더함 (1의보수합 ) 체크섬값은세그먼트들합의1의보수값 UDP 체크섬필드에삽입 수신측 : 수신된세그먼트의값 (16비트정수들 ) 들의합과체크섬값을더함 덧셈결과값 1111111111111111 => 오류검출없음 16 비트중하나라도 0 이면오류검출 순천향대학교컴퓨터공학과 18

인터넷체크섬예 정수값덧셈시 1 의보수덧셈은최상위비트에서캐리가발생하면결과값에더함 두 16 비트덧셈예 순천향대학교컴퓨터공학과 19 3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 : TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 20

신뢰성있는데이터전송의원리 (Principles i of Reliable Data Transfer) 신뢰성있는데이터전송구현 트랜스포트, 링크, 애플리케이션계층모두에중요한문제 네트워킹에서상위 10개 (top-10) 안에드는중요한이슈 비신뢰적인채널 (unreliable channel) 의특성에따라신뢰적인데이터전송 (reliable data transfer, rdt) 프로토콜의복잡도결정 순천향대학교컴퓨터공학과 21 신뢰적인데이터전송프로토콜인터페이스 rdt_send(): 상위계층 (e.g. app) 에서호출. 수신측의상위계층으로전송할데이터를전달 deliver_data(): d rdt 가호출하여상위계층에데이터전달을 send side receive side udt_send(): rdt가호출. 비신뢰적인채널을통해패킷을수신측에전송 순천향대학교컴퓨터공학과 22 rdt_rcv(): 패킷이채널의수신측에도착하였을때호출 l

신뢰적인데이터전송프로토콜구축 이절에서는 rdt 의송신, 수신측의개발을단계적으로소개 단방향데이터전송 (unidirectional data transfer) 만고려 제어패킷은양방향으로전송 송신자, 수신자동작정의를위해 FSM(finite state machine, 유한상태머신 ) 을사용 상태변화를일으키는이벤트 (event) 이벤트가발생했을때취해지는행동 (action) 상태상태 1 이벤트 2 행동 순천향대학교컴퓨터공학과 23 Rdt 1.0: 신뢰적인채널상의신뢰적인전송 (Reliable Transfer over Reliable Channel) 하위채널이완전히신뢰적 비트오류없음 패킷손실없음 송신자, 수신자에대한분리된 FSM 송신자는하위채널에데이터전송 수신자는하위채널로부터데이터를읽음 순천향대학교컴퓨터공학과 24

Rdt 2.0: 비트오류가있는채널 하위채널에서비트오류발생가능 체크섬사용하여비트오류검출 오류복구 (recover from error) ACK (acknowledgement) 수신된패킷이오류가없음을수신자가송신자에게알림 NAK (negative acknowledgement) 수신된패킷이오류가있음을수신자가송신자에게알림 송신자가 NAK 를수신하면패킷을재전송 => ARQ(Automatic Repeat request, 자동재전송요구 ) 프로토콜 Rdt 2.0 의추가기능 오류검출 수신자피드백 (feedback) 수신자에서송신자로제어메시지 (ACK, NAK) 전달 순천향대학교컴퓨터공학과 25 Rdt 2.0: FSM 동작정의 순천향대학교컴퓨터공학과 26

Rdt 2.0: 오류가없는동작 rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && isnak(rcvpkt) Wait for Wait for call from ACK or udt_send(sndpkt) above NAK rdt_rcv(rcvpkt) && isack(rcvpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_ send(ack) 순천향대학교컴퓨터공학과 27 Rdt 2.0: 오류시나리오 rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && isnak(rcvpkt) Wait for Wait for call from ACK or udt_send(sndpkt) above NAK rdt_rcv(rcvpkt) && isack(rcvpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_ send(ack) 순천향대학교컴퓨터공학과 28

Rdt 2.0 문제점 ACK/NAK 패킷의오류 (corrupt) 가능성고려하지않음 ACK/NAK 패킷에도체크섬비트추가 ACK/NAK 오류시송신자는수신자에게일어난상황을알수없음 ACK/NAK 오류시단순히재전송하면중복패킷 (duplicate packet) 발생가능 중복패킷해결책 송신자는 ACK/NAK 오류시현재패킷을재전송 송신자는각패킷에순서번호 (sequence number) 추가 수신자는순서번호를조사하여중복패킷이면버림 (discard) 전송후대기 (stop and wait) 송신자가패킷을보낸후수신자의응답을기다림 순천향대학교컴퓨터공학과 29 Rdt 2.1: 송신자,ACK/NAK 오류고려 순천향대학교컴퓨터공학과 30

Rdt 2.1: 수신자,ACK/NAK 오류고려 순천향대학교컴퓨터공학과 31 Rdt 2.1 개요 송신자 (sender) 패킷에순서번호추가 (0,1) 두개의순서번호사용 수신된 ACK/NAK의오류여부조사 Rdt2.0 보다상태수가2배 현재패킷이순서0 또는1인지를상태로기억 수신자 (receiver) 수신된패킷이중복되었는지조사 올바르게수신될패킷의순서번호가 0 또는 1인지를상태가표시 수신자는마지막으로보낸 ACK/NAK 가송신자측에서제대로받았는지알지못함 순천향대학교컴퓨터공학과 32

Rdt 2.2: NAK 없는프로토콜 (NAK-free Protocol) NAK 없이 ACK 만사용한다는점만제외하고 rdt 21 2.1 의기능과같음 수신자는 NAK 대신마지막에올바르게수신된패킷에대한 ACK 를보냄 수신자는 ACK 패킷에순서번호를명시해야함 송신자측에서중복된 ACK 를받으면 NAK 와같은동작을 수행 현재패킷을재전송 순천향대학교컴퓨터공학과 33 Rdt 2.2: 송신자, 수신자동작일부 순천향대학교컴퓨터공학과 34

Rdt 3.0: 오류와손실이있는채널 하위채널에서의패킷들 ( 데이터, ACK) 의손실 (packet loss) 을고려 체크섬, 순서번호, 재전송은도움은되지만근본적인해결에는충분하지못함 해결책 송신자가충분한시간동안 ACK 수신을기다림 지정된시간동안 ACK 를받지못하면재전송 패킷 ( 또는 ACK) 가손실이아니고지연된경우라면 : 재전송은중복패킷이되지만이미순서번호를사용하여이를해결 수신자는 ACK 패킷의순서번호를명시해야함 카운트다운타이머 (countdown timer) 필요함 순천향대학교컴퓨터공학과 35 Rdt 3.0: 송신자 순천향대학교컴퓨터공학과 36

Rdt 3.0 동작 (1) 순천향대학교컴퓨터공학과 37 Rdt 3.0 동작 (2) 순천향대학교컴퓨터공학과 38

Rdt 3.0 성능 (1) Rdt 30 3.0 은기능적으로잘동작하나성능은만족스럽지못함 전송후대기프로토콜 예 1 Gbps 전송률 (R) 을가진링크, 왕복전파지연 (RTT) 이 30 밀리초, 데이터패킷크기 (L) 가 8000 비트 (1 KB) 한데이터패킷을전송하는데필요한시간 t trans = L / R = 8000 비트 / 10 9 bps = 8 마이크로초 수신자측에데이터패킷이도착하는시간 t = RTT / 2 + L / R = 15.008 밀리초 송신자측에 ACK 패킷이도착하는시간 t = RTT + L / R = 30.008008 밀리초 순천향대학교컴퓨터공학과 39 Rdt 3.0 성능 (2) 송신자이용률 U sender U sender = L / R RTT + L / R =.008 30.008 = 0.00027 송신자는 30.008ms 동안 1000 바이트만송신 => 1 Gbps 링크에서 267 kbps 처리율 네트워크프로토콜이물리자원의사용을제한!!!! 순천향대학교컴퓨터공학과 40

Rdt 3.0: 전송후대기 (Stop-and-Wait) 동작 순천향대학교컴퓨터공학과 41 파이프라인프로토콜 (Pipelined Protocol) 파이프라이닝 (pipelining) 송신자가 ACK 응답을기다리지않고여러패킷을전송 순서번호의범위는증가하여전송중인패킷은유일한순서번호를가짐 송신측과수신측이패킷을버퍼링해야함 GBN(Go-Back-N) 과 SR(Selective Repeat, 선택적반복 ) 두종류의기본적인파이프라인프로토콜 순천향대학교컴퓨터공학과 42

파이프라이닝 : 향상된이용율 순천향대학교컴퓨터공학과 43 파이프라이닝프로토콜개요 GBN(Go-Back-N) Back N) 프로토콜 송신자는파이프라인에서최대 N개의 ACK 없이패킷전송허용 수신자는누적된 ACK(cumulative ACK) 만을전송 수신된패킷들의순서번호에갭이있으면ACK 응답하지않음 송신자는가장오래된 전송되었지만 ACK 응답없는패킷 에대한타이머를가짐 타이머가만료되면 ACK 응답없는모든패킷들을재전송 선택적반복 (Selective Repeat) 프로토콜 송신자는파이프라인에서최대 N 개의 ACK 없이패킷전송허용 수신자는개별패킷들에대해 ACK 응답 송신자는 전송되었지만 ACK 응답없는패킷 들각각에대해개별타이머를관리 타이머만료시 ACK 응답없는패킷만재전송 순천향대학교컴퓨터공학과 44

GBN (Go-Back-N) 송신자 패킷헤더에 k 비트순서번호 (seq #) 크기 N인윈도 (window) ACK 응답을받지않은연속적인 N 개의패킷버퍼링 슬라이딩윈도 (sliding-window ) ACK(n): 누적 ACK (cumulative ACK) 순서번호 n 을포함하여 ACK 응답을받은모든패킷들 가장오래된 ACK 응답없는패킷에타이머 timeout(n): 윈도에있는패킷 n 과더큰순서번호의모든패킷들을재전송 순천향대학교컴퓨터공학과 45 GBN 송신자의확장된 FSM 순천향대학교컴퓨터공학과 46

GBN 수신자의확장된 FSM ACK-only 가장큰순차 (in-order) 순서번호를갖는패킷을올바르게받았으면항상 ACK를보냄 중복된 ACK를생성할수있음 expectedseqnum 값만기억 비순차 (out-of-order) 패킷 폐기 (discard): 버퍼링하지않음 순천향대학교컴퓨터공학과 47 GBN 동작예 순천향대학교컴퓨터공학과 48

선택적반복 (Selective Repeat, SR) 수신자는올바르게수신된모든패킷들에대해개별적으로확인응답 상위계층에순차적 (in-order) 으로전달하기위해비순차 (out-of- order) 패킷들을버퍼링 송신자는 ACK 응답을받지못한패킷들을재전송 ACK 응답을받지못한각패킷에대해타이머관리 송신자윈도 N 개의연속적인순서번호 GBN 과마찬가지로윈도크기 N 은아직확인응답 (ACK) 안된패킷들의수를제한 순천향대학교컴퓨터공학과 49 선택적반복 : 송신자, 수신자윈도 순천향대학교컴퓨터공학과 50

선택적반복 : 이벤트와행동 송신자상위에서데이터받음 : 윈도내에가용한다음순서번호의패킷이있으면송신 timeout(n): 패킷 n을재전송, 타이머재시작 ACK(n) in [sendbase,sendbase+n-1]: 패킷 n 을수신된것으로표시 n이가장작은순서번호의패킷이면 base를다음미확인응답순서번호로이동 수신자 pkt n in [rcvbase, rcvbase+n-1] ACK(n) 을보냄 비순차패킷 : 버퍼에저장 순차패킷 : ( 버퍼에저장된이전패킷들과함께 ) 상위계층에전달 pkt n in [rcvbase-n,rcvbase-1] ACK(n) 을보냄 otherwise: 무시 순천향대학교컴퓨터공학과 51 SR 동작 순천향대학교컴퓨터공학과 52

선택적반복문제점 순서번호의크기가한정되었을때송수신윈도동기화시문제발생 예 순서번호 : 0, 1, 2, 3 윈도크기 3 수신자는 (a), (b) 두시나리오가동일하게간주 수신자는처음보낸패킷 0 의재전송과다섯번째패킷0를구별못함 최소한의윈도크기는? 윈도크기가 SR 프로토콜의순서번호공간크기의절반보다작거나같아야함 순천향대학교컴퓨터공학과 53 3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 54

TCP: 개요 (Overview) (1) RFCs: 793, 1122, 1323, 2018, 2581 점대점 (point-to-point) to point) 단일송신자, 단일수신자 신뢰적인, 순차바이트스트림 (reliable, in-order byte stream) 파이프라인 라 TCP 혼잡및흐름제어가윈도크기결정 송신버퍼, 수신버퍼 socket door application writes data TCP send buffer segment application reads data TCP receive buffer socket door 순천향대학교컴퓨터공학과 55 TCP: 개요 (2) 전이중데이터 (full duplex data) 같은연결상에서양방향데이터흐름 최대세그먼트크기 (MSS: maximum segment size) 연결지향형 (connection-oriented) 데이터교환전에송신자, 수신자의상태를초기화하는핸드셰이킹 (handshaking, 제어메시지들의교환 ) 흐름제어 (flow control) 송신자는수신자를수신한계를넘어서는송신을하지않음 순천향대학교컴퓨터공학과 56

TCP 세그먼트구조 (TCP Segment Structure) 순천향대학교컴퓨터공학과 57 TCP 순서번호와 ACK 순서번호 (seq. #) 세그먼트에서첫번째바이트의바이트스트림번호 시작순서번호는임의로선택 ACK 상대방으로부터기대하는다음바이트의순서번호 누적 ACK (cumulative ACK) 피기백 (piggybacked) pggy 비순차세그먼트수신 TCP에서규칙을제공하지않고개발자에일임 순천향대학교컴퓨터공학과 58

TCP 왕복시간과타임아웃 (TCP Roun Trip Time(RTT) and Timeout) TCP 는앞절의 rdt 처럼손실세그먼트발견을위해타임아웃 / 재전송메커니즘사용 타임아웃주기 왕복시간 (RTT) 보다커야함 너무짧은타임아웃 불필요한재전송발생 너무긴타임아웃 세그먼트손실에대한대응이느려짐 왕복시간을어떻게예측하는가? 순천향대학교컴퓨터공학과 59 왕복시간 (RTT) 예측 SampleRTT 측정 샘플세그먼트가송신된시간부터 ACK를받기까지측정된시간 재전송한세그먼트는무시 SampleRTT 값은네트워크부하에따라서가변적 현재 SampleRTT 값이아닌최근의값들의평균값으로추정 TCP 는아래식을사용하여추정 (EstimatedRTT) EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT 지수적가중이동평균 (EWMA, Exponential Weighted Moving Average) 과거샘플들의영향이지수적으로감소 일반적으로 = 0.125 (1/8) 순천향대학교컴퓨터공학과 60

타임아웃값설정 RTT 변화율 (DevRTT) DevRTT = (1- )*DevRTT + * SampleRTT-EstimatedRTT SampleRTT 가 EstmiatedRTT에서얼마나벗어났는지를예측 일반적으로 = 0.25 타임아웃주기 (TimeoutInterval) TimeoutInterval = EstimatedRTT + 4*DevRTT EstimatedRTT t 가 SampleRTT 에벗어나면타임아웃값에여유값 (margin) 을더하여설정 순천향대학교컴퓨터공학과 61 3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 62

TCP 신뢰적데이터전달 (TCP Reliable Data Transfer) TCP 는비신뢰적인인터넷네트워크계층 (IP 서비스 ) 상위계층에서신뢰적인데이터전달 (rdt, reliable data transfer) 서비스를제공 파이프라인되는세그먼트 누적 ACKs (cumulative ACKs) 단일재전송타이머 재전송시점 타임아웃이벤트 중복 ACKs (duplicated ACKs) 간소화 TCP 송신자 (simplified TCP sender) 부터먼저소개 중복 ACKs 무시 흐름제어, 혼잡제어무시 순천향대학교컴퓨터공학과 63 TCP 송신자이벤트 (1) 전송 / 재전송과관련된 TCP 송신자의 3 가지이벤트 상위애플리케이션으로부터수신된데이터 타이머타임아웃 ACK 수신 상위애플리케이션으로부터수신된데이터 이벤트 순서번호를포함한세그먼트생성 순서번호는세그먼트에서첫번째바이트의바이트스트림번호 타이머가이미동작중에있지않으면타이머를시작 타이머의만료주기 (expiration interval): TimeOutInterval 순천향대학교컴퓨터공학과 64

TCP 송신자이벤트 (2) 타이머타임아웃 이벤트 타임아웃을유발한세그먼트를재전송 타이머를다시시작 ACK 수신 이벤트 이전에응답받지못한세그먼트의확인응답 (ACK) 이면 : 해당세그먼트를 ACK 응답된세그먼트로표시 아직 ACK 응답을받지못한세그먼트들이존재하면타이머를시작 순천향대학교컴퓨터공학과 65 간소화된 TCP 송신자 Sendbase-1 마지막에누적확인응답 (ACK) 된순서번호 예 SendBase-1 = 71 y= 73 수신자는 73+ 를받기원함 y > SendBase 새데이터가확인응답 순천향대학교컴퓨터공학과 66

TCP 재전송시나리오 (1) 순천향대학교컴퓨터공학과 67 TCP 재전송시나리오 (2) 순천향대학교컴퓨터공학과 68

TCP ACK 생성 [RFC 1122, RFC 2581] 이벤트 TCP 수신자동작 기다리는순서번호를가진순서에맞는지연된 ACK. 다른순서에맞는다음세그먼트의도착. 이순서번호이전까세그먼트도착을위해 500ms까지기다지의모든데이터수신린다. 만약다음세그먼트가이기간동안에도착하지않으면 ACK를보냄. 기다리는순서번호를가진순서에맞는즉시두개의순서에맞는세그먼트들세그먼트의도착. ACK 전송을준비하의 ACK 전송을위해하나의누적는다른세그먼트를가짐. ACK(cumulative ACK) 를전송기다리는것보다높은순서번호를갖즉시기다리는바이트의순서번호 ( 간격는순서가틀린세그먼트의도착. 간격의최저값 ) 를나타내는중복 ACK (gap) 이감지. (duplicated ACK) 를전송 간격을부분적으로또는모두채우는세그먼트의도착. 간격의최저값부터세그먼트가시작된다면즉시 ACK 를전송 순천향대학교컴퓨터공학과 69 빠른재전송 (Fast Retransmit) 타임아웃주기가상대적으로길어질수있음 손실된패킷을다시보내기전까지오래기다림 중복 ACK 를사용하여손실된패킷들을감지 송신자는종종많은개수의세그먼트들을연속적으로보냄 세그먼트가손실되면많은중복 ACK 발생 송신자가같은데이터에대해 3개의중복ACK를수신하게되면 ACK 응답된세그먼트의다음세그먼트가손실되었다 고가정 빠른재전송 타이머가만료되기전에재전송 순천향대학교컴퓨터공학과 70

빠른재전송예 순천향대학교컴퓨터공학과 71 빠른재전송알고리즘 순천향대학교컴퓨터공학과 72

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 73 TCP 흐름제어 (TCP Flow Control) TCP 연결의수신자는수신버퍼를가짐 애플리케이션프로세스는버퍼로부터데이터를읽는속도가느릴수있음 흐름제어 (flow control) TCP 송신자가너무많은데이터를빠르게송신하여수신자의버퍼를오버플로 (overflow) 시키는것을방지 흐름제어는속도를일치시키는서비스 (speed-matching service) 수신하는애플리케이션이읽는속도와송신자가전송하는속도를같게함 순천향대학교컴퓨터공학과 74

TCP 흐름제어동작 TCP 수신자가순서가어긋난세그먼트를버린다고가정 버퍼의여유공간 (spare room) = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] 수신자는세그먼트에 RcvWindow 값을포함하여여유공간의크기를송신자에게알려줌 송신자는전송확인응답 (ACK) 이안된데이터의양이여유공간보다작은값을가지도록유지 (LastBytesent-LastByteAcked) RcvWindow 수신버퍼가오버플로되지않도록보장 순천향대학교컴퓨터공학과 75 3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 76

TCP 연결관리 (1) (TCP Connection Management) TCP 송신자, 수신자는데이터세그먼트교환전에연결 (connection) 을설정 TCP 변수들초기화 순서번호 버퍼, 흐름제어정보 (e.g. RcvWindow) 클라이언트 연결요청 Socket clientsocket = new Socket("hostname", "port number"); 서버 클라이언트요청승인 Socket connectionsocket = welcomesocket.accept(); 순천향대학교컴퓨터공학과 77 TCP 연결관리 (2) 세방향핸드셰이크 (three way handshake) 1 단계 : 클라이언트는서버에 SYN 세그먼트를송신 세그먼트헤더의 SYN 비트플래그세트 최초의순서번호를기술 데이터없음 2 단계 : 서버는 SYN 을받고, SYNACK 세그먼트를응답 서버는 TCP 버퍼와변수를할당 서버의최초순서번호를기술 3 단계 : 클라이언트는 SYNACK 를받고, ACK 응답 클라이언트는 TCP 버퍼와변수를할당 ACK 응답에데이터 ( 세그먼트페이로드 ) 가포함될수도있음 순천향대학교컴퓨터공학과 78

TCP 세방향핸드셰이크 순천향대학교컴퓨터공학과 79 TCP 연결관리 (3) 연결종료 (close) 클라이언트가연결종료하는경우가정 clientsocket.close(); 1 단계 : 클라이언트는서버에 FIN 세그먼트를송신 세그먼트헤더의 FIN 비트플래그세트 2 단계 : 서버는 FIN을받고, ACK 세그먼트를응답, 연결을종료, FIN 세그먼트를송신 3 단계 : 클라이언트는 FIN 을받고, ACK 세그먼트를응답 대기시간 (i (timed wait) i) 동안기다린후연결종료됨 4 단계 : 서버는 ACK 를받고, 연결을종료됨 순천향대학교컴퓨터공학과 80

TCP 연결종료 순천향대학교컴퓨터공학과 81 TCP 연결관리 : 상태전이 순천향대학교컴퓨터공학과 82

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 83 혼잡제어의원리 (Principles i of Congestion Control) 혼잡 (congestion) 네트워크이감당할수없을정도로너무많은출발지 (source) 에서너무많은데이터를너무빨리송신 하는것이원인 혼잡원인을처리하기위해선혼잡을일으키는송신자들을억제하는메커니즘이필요 혼잡제어는흐름제어와는다름 네트워크혼잡의결과 패킷손실 ( 라우터의버퍼오버플로 ) 긴패킷지연 ( 라우터버퍼에서큐잉 ) 혼잡제어는네트워킹의기본적인중요한문제의상위 10개목록 (top-10) 에포함 순천향대학교컴퓨터공학과 84

혼잡의원인과비용 : 시나리오 1 두송신자, 두수신자 송수신속도 ( 전송률 ) in out 링크처리량 R ( 또는라우터용량 C) 무한크기의버퍼를갖는한개의라우터 재전송없음 순천향대학교컴퓨터공학과 85 혼잡시큰지연 전송률이아무리커도처리량은 R/2에도달할수없음 혼잡의원인과비용 : 시나리오 2(1) 유한버퍼를가진하나의라우터 송신자는손실된패킷을재전송 재전송된데이터를포함한송신속도, ' in 순천향대학교컴퓨터공학과 86

혼잡의원인과비용 : 시나리오 2(2) 시나리오 2 의세가지경우 어떤패킷손실도발생하지않는경우 : in ' in = out 패킷이손실된경우만재전송 : ' in > out 패킷이크게지연되어타임아웃된경우에도재전송 : ' in >> out 혼잡비용 (cost of congestion) 손실된패킷을재전송 큰지연으로인한불필요한재전송 라우터가패킷의불필요한복사본을포워드하는데링크대역폭사용 순천향대학교컴퓨터공학과 87 혼잡의원인과비용 : 시나리오 3(1) 네개의송신자 멀티홉경로 in ' in 이큰경우에무슨일 타임아웃 / 재전송메커니즘이발생하는가? 순천향대학교컴퓨터공학과 88

혼잡의원인과비용 : 시나리오 3(2) 또다른혼잡비용 패킷이경로상에서버려질때, 버려지는지점까지패킷을전송하는데사용된상위라우터에서사용된전송용량은낭비 순천향대학교컴퓨터공학과 89 혼잡제어에대한접근법 혼잡제어를수행하는두가지접근법소개 종단간의혼잡제어 (end-end congestion control) 네트워크계층에서혼잡제어를위한피드백이나지원없음 종단시스템에서관찰된패킷손실및지연에기초하여혼잡을추측 TCP가사용하는방법 네트워크지원혼잡제어 (network-assisted congestion control) 라우터가종단시스템에게혼잡상태에관한피드백을제공 링크의혼잡을나타내는단일비트 (SNA, DECbit, TCP/IP ECN, ATM) 라우터가송신자에게자신의전송률을전송 (ATM ABR) 순천향대학교컴퓨터공학과 90

네트워크-지원혼잡제어예 : ATM ABR 혼잡제어 (1) ATM ABR(available bit rate) 프로토콜 탄력적인데이터전송서비스 네트워크부하가적은경우 : 송신자는여분의가용한대역폭을이용 네트워크이혼잡할때 : 송신자는미리정해진최소의전송률로억제 ATM 용어 : 스위치 ( 라우터 ), 셀 ( 패킷 ) RM 셀 (Resource Management cell) 송신자가보내고, 데이터셀들사이에산재 스위치가 RM 셀의비트들을세트 ( 네트워크-지원 ) NI (no increase) 비트 : 낮은혼잡상태 CI (congestion-indication) 비트 : 혼잡상태 수신자는 RM 셀을송신자에게다시보냄 순천향대학교컴퓨터공학과 91 네트워크-지원혼잡제어예 : ATM ABR 혼잡제어 (2) RM 셀안의 2 바이트 ER(explicit rate) 필드 혼잡한스위치를지나가는 RM 셀의 ER 필드값은줄임 송신자는경로가지원하는최대속도로설정 데이터셀안의 EFCI(explicit forward congestion indication) 비트 혼잡한네트워크스위치가 1 로세트 수신자가가장최근에수신된데이터셀의 EFCI가 1이면, RM 셀의 CI비트를 1로세트하고,RM 셀을송신자에게보냄 순천향대학교컴퓨터공학과 92

3 장. 트랜스포트계층 31 3.1 트랜스포트계층서비스개요 3.2 다중화와역다중화 3.33 비연결형트랜스포트 :UDP 3.4 신뢰성있는데이터전송의원리 3.5 연결지향형트랜스포트 :TCP 세그먼트구조 신뢰적인데이터전달 흐름제어 연결관리 3.6 혼잡제어의원리 3.7 TCP 혼잡제어 순천향대학교컴퓨터공학과 93 TCP 혼잡제어 : AIMD (Additive-Increase, Multiplicative-Decrease) li AIMD(Additive-Increase, Multiplicative-Decrease) 손실이발생할때까지가용한대역폭을탐지하면서 (probing) 전송률 ( 혼 잡윈도크기, CongWin) 을증가 CongWin 크기가 10 MSS 이면한번에최대 10 MSS 연속송신가능 가법적증가 (additive increase) 손실이감지될때까지매 RTT (round trip time, 왕복시간 ) 마다 CongWin 을 1 MSS 만큼증가 매 ACK 마다 MSS x (MSS/CongWin) 바이트증가 승법적감소 (Multiplicative-Decrease) 손실발생후에 CongWin을반으로줄임 24 Kbytes congestion window CongWin 값이톱니모양패턴 16 Kbytes 8 Kbytes 순천향대학교컴퓨터공학과 94 time

TCP 혼잡제어 : 상세내용 송신자에서확인안된데이터양을제한하여전송률제한 LastByteSent-LastByteAcked CongWin 송신자의송신률은대략, 송신자의혼잡감지 rate = CongWin Bt Bytes/sec RTT 손실이벤트 (loss event) = 타임아웃또는 3개의중복 ACK 손실이벤트가발생하면전송률 (CongWin) 을줄임 TCP 혼잡제어알고리즘의 3 가지요소 AIMD 슬로스타트 (slow start) 타임아웃이벤트에대한반응 순천향대학교컴퓨터공학과 95 TCP 슬로스타트 (TCP Slow Start) (1) TCP 연결이시작될때 CongWin 은 1MSS 로초기화 예 : MSS=500 바이트 & RTT=200msec 이면초기전송률 = 20Kbps 연결가능한대역폭이 MSS/RTT 보다아주큰경우 연결초기단계에서는전송률이일정수준으로도달하도록빠르게증가시키는것이바람직 연결이시작되었을때첫번째손실이벤트발생하기까지전송률을지수적으로증가 순천향대학교컴퓨터공학과 96

TCP 슬로스타트 (2) 연결이시작되었을때첫번째손실이벤트발생하기까지전송률을지수적으로증가 매 RTT 마다 CongWin을두배로증가 매 ACK 를수신할때마다 CongWin을 1 MSS 만큼증가시켜서달성 요약 슬로스타트동안에는초기전송률은느리지만지수적으로빠르게증가 순천향대학교컴퓨터공학과 97 타임아웃사건에대한반응 : 손실추정 3 개의중복 ACK 수신 CongWin을반으로줄이고이후윈도는선형적으로증가 => TCP Reno 이전 TCP Tahoe 는슬로스타트로진입 타임아웃이벤트발생 슬로스타트단계진입 CongWin을 1 MSS로설정하고이후윈도는지수적으로증가 특정임계치 (threshold) 에도달하면혼잡회피 (congestion avoidance) 단계시작 윈도가선형적으로증가 기본배경 3개의중복 ACK는네트워크이일부세그먼트들은전송할수있음을의미 타임아웃은전혀전송이안된네트워크혼잡을의미 순천향대학교컴퓨터공학과 98

타임아웃사건에대한반응 : 임계치값설정 언제지수적증가를선형적증가로변경하는가? CongWin의값이타임아웃전의 1/2 크기에도달할때 구현 가변적임계치 (variable threshold) 손실이벤트가발생하면임계치를손실이벤트전의 CongWin 의 1/2 크기로설정 3 개 ACK 수신 3 개의혼잡 ACK 수신시혼잡윈도 CongWin 순천향대학교컴퓨터공학과 99 요약 : TCP 혼잡제어 CongWin 이임계치보다작으면, 송신자는슬로스타트단계로진입하여윈도는지수적으로증가 CongWin이임계치보다크면, 송신자는혼잡회피단계로진입하여윈도는선형적으로증가 3 개의중복 ACK 를수신하면, 임계치는 CongWin/2 로설정하고, CongWin은임계치로설정 (TCP Reno) 타임아웃이발생하면, 임계치는임계치는 CongWin/2 로설정하고, CongWin 은 1 MSS 로설정 순천향대학교컴퓨터공학과 100

TCP 송신자혼잡제어 상태이벤트 TCP 송신자혼잡제어동작설명 슬로스타트 (SS) 혼잡회피 (CA) SS 또는 CA 이전의확인응답안 CongWin = CongWin + MSS, 된데이터에대한 If (CongWin > Threshold) ACK 수신 set state to Congestion Avoidance 이전의확인응답안 CongWin = CongWin+MSS * 된데이터에대한 (MSS/CongWin) ACK 수신세개의중복ACK로 Threshold = CongWin/2, 손실검출 CongWin = Threshold, Set state to Congestion Avoidance RTT 마다 CongWin 을두배로함 가법적증가, RTT 마다 1 MSS 씩 CongWin 증가 빠른회복 (fast recovery), 승법적감소구현, CongWin이 1 MSS로감소되지않음 SS 또는 CA 타임아웃 Threshold = CongWin/2, 슬로스타트시작 CongWin = 1 MSS, Set state to Slow Start SS 또는 CA 중복 ACK ACK되는세그먼트에대한중 CongWin, Threshold 불 복 ACK 카운트증가 변 순천향대학교컴퓨터공학과 101 TCP 처리율 (TCP Throughput) 윈도크기와 RTT 함수로써 TCP 의평균처리율 (average throughput) 은? 슬로스타트는무시 윈도크기가 w, 왕복시간이 RTT 초 => 전송률은 w/rtt 손실이발생하면윈도크기는 w/2 로감소 => 전송률은 w/2rtt 평균처리율은대략 0.75w/RTT 순천향대학교컴퓨터공학과 102

TCP 의미래 예 : 1500 바이트세그먼트, 100ms RTT 10 Gbps 처리율로전송원함 평균윈도크기가 w = 83,333 세그먼트요구 [RFC 3649] 많은양의세그먼트이며, 손실가능성 손실관점에서평균처리율 L 은손실률 1.22 MSS RTT 10 Gbps 처리율달성을위해 L = 2 10-10 오십억개의세그먼트당하나의손실이벤트 고속환경을위한새로운버전의 TCP 연구필요 L 순천향대학교컴퓨터공학과 103 TCP 공평성 (TCP Fairness) 공평성 (fairness) K개의 TCP 연결이 R bps의전송률 ( 대역폭 ) 의병목링크 (bottleneck link) 를통과하는경우, 각연결의평균전송률이 R/K 에가깝다면혼잡제어메커니즘은공평 순천향대학교컴퓨터공학과 104

TCP 가공평한이유 이상적으로두처리율의합은 R 과같아야함 동등한대역폭공유와전체대역폭이용선의교차지점가까운곳의처리율 R 전체대역폭이용선 동등한대역폭공유 손실 : 윈도크기반으로감소혼잡회피 : 가법적증가 연결 1 처리율 R 순천향대학교컴퓨터공학과 105 공평성과 UDP 멀티미디어애플리케이션들은 TCP 를사용하지않음 혼잡제어로인한전송속도조정을하지않음 UDP 사용 일정한속도로오디오 / 비디오를전송 패킷손실감수 TCP 관점에서 UDP 는공평하지못함 다른연결과협력하지않고, 전송률조절도하지않음 UDP 가 TCP 트래픽을밀어낼가능성있음 연구분야 UDP 트래픽으로인한인터넷마비방지하는혼잡제어방식 순천향대학교컴퓨터공학과 106

공평성과병렬 TCP 연결들 (Parallel l TCP Connections) TCP 기반애플리케이션이두호스트사이에다중병렬연결사용을방지할수없음 웹브라우저는웹페이지에다중객체전송을위해다중병렬 TCP 연결사용 예 : 9 개의진행중인연결을지원하는전송률 R 인링크 새애플리케이션이 1개의 TCP 연결을사용 => 전송률 R/10 획득 새애플리케이션이 11 개의병렬 TCP 연결을사용 => 전송률 R/2 획득불공평한할당 순천향대학교컴퓨터공학과 107 요약 (Summary) 트랜스포트계층서비스 다중화 (multiplexing), 역다중화 (demultiplexing) 신뢰적인데이터전송 (reliable data transfer) 흐름제어 (flow control) 혼잡제어 (congestion control) 다음학습내용 : 인터넷에서의구현 UDP TCP 네트워크 가장자리 (edge) 학습종료 ( 애플리케이션, 트랜스포트계층 ) 네트워크 코어 (core) 학습 순천향대학교컴퓨터공학과 108

실습과제 3-1: GBN 자바애플릿실행분석 GBN(Go-Back-N) Back N) 프로토콜의자바애플릿을아래와같이실행하고분석하라. 패킷손실, 누적 ACK, 타임아웃이포함된시나리오를설정하고설명 윈도크기는 5 시나리오와같이애플릿을실행 실행과정화면캡처 결과를분석 순천향대학교컴퓨터공학과 109 실습과제 3-2: SR 자바애플릿실행분석 SR(Selective Repeat, 선택적반복 ) 프로토콜의자바애플릿을아래와같이실행하고분석하라. 패킷손실, 누적 ACK, 타임아웃이포함된시나리오를설정하고설명 윈도크기는 5 시나리오와같이애플릿을실행 실행과정화면캡처 결과를분석 GBN 프로토콜과차이점 순천향대학교컴퓨터공학과 110

실습과제 3-3: 3 혼잡제어애플릿실행분석 TCP 혼잡제어의자바애플릿을아래와같이실행하고분석하라. Reno에대해 3개중복 ACK, 타임아웃이포함된시나리오를설정하고설명 호스트 (workstation) 수는 2 개이상으로하고, 하나는실행중추가 시나리오와같이애플릿을실행 실행과정화면캡처 결과를분석 순천향대학교컴퓨터공학과 111 실습과제 3-4: TCP, Wireshark 실습 (1) 브라우저를통해 alice.txt 파일을업로드할수있는특정웹사이트를방문하여 TCP 동작분석 아래웹사이트가아니면가산점 http://gaia.cs.umass.edu/wireshark-labs/tcp-wireshark-file1.html html 실습순서 웹사이트방문 Wireshark를실행하고패킷캡쳐 파일업로드 Wireshark 를중지, 패킷분석 질문에응답하여캡처된 TCP 동작분석 TCP 연결설정 ( 세방향핸드셰이크 ) 패킷의순서번호, 확인응답번호 TCP 흐름제어 TCP 혼잡제어 : 슬로스타트, 혼잡회피 TCP 성능 : 처리율 (throughput), 왕복시간 (RTT) 순천향대학교컴퓨터공학과 112

실습과제 3-4: TCP, Wireshark 실습 (2) 다음순서대로질문에답을하고, 해당답을제공하는 Wireshark 패킷리스트를캡처하고답을제공하는부분을표, Q1: 클라이언트와서버컴퓨터의 IP 주소와 TCP 포트번호? 시하고, 설명 HTTP 메시지의 TCP 패킷을조사 HTTP 메시지를전달하는 TCP 세그먼트만을패킷리스팅윈도우에보이도록설정을변경 Analyze->Enabled Protocols, HTTP 체크해제 순천향대학교컴퓨터공학과 113 실습과제 3-4: TCP, Wireshark 실습 (3) Q2: TCP SYN 세그먼트의순서번호? 세그먼트내의무엇이 SYN 세그먼트임을표시하는가? Q3: 서버가응답한 SYNACK 세그먼트의순서번호는? 이세그먼트의확인응답번호값과서버가이값을어떻게결정하는가? 세그먼트내의무엇이 SYNACK 세그먼트임을표시하는가? Q4: 파일을업로드하는 HTTP POST( 또는 GET) 명령을갖는 TCP 세그먼트의순서번호는? 패킷내용윈도우의 DATA 필드의내용에 POST 를갖는세그먼트를검색 Q5: HTTP POST 를갖는 TCP 세그먼트를 TCP 연결첫번째세그먼트로간주하고, 이첫세그먼트부터처음 6개의세그먼트의순서번호는 ( 클라이언트에서서버로업로드되는 6개의세그먼트 )? 각세그먼트가전송된시간은? 각세그먼트의 ACK 응답시간은? Q6: 처음 6개세그먼트를보낸시간과 ACK 응답시간의차를계산한 RTT( 왕복시간 ) 은? 순천향대학교컴퓨터공학과 114

실습과제 3-4: TCP, Wireshark 실습 (4) Q7: 아래와같이 Wireshark 기능을사용하여 RTT 그래프를그려라 패킷리스팅윈도우에서첫번째 TCP 세그먼트를선택하고, 메뉴에서 Statistics->TCP Stream Graph->Round Trip Time Graph 를선택 순천향대학교컴퓨터공학과 115 실습과제 3-4: TCP, Wireshark 실습 (5) Q8: 처음 6 개세그먼트의데이터길이 (Len) 는? Q9: 전체트레이스에서서버수신자의가용한최소수신버퍼크기 (Win) 는? 수신버퍼 ( 윈도 ) 가부족하여송신자 ( 클라이언트 ) 의전송을제약했는가? Q10: 재전송된세그먼트가발생했는가? 이를알기위해트레이스에서무엇을조사해야하는가? Q11: 얼마나많은업로드데이터에대해수신자 ( 서버 ) 가 ACK 응답했는가? 각 ACK 응답이벤트를 p.289 표 3.2의기준에따라분류하라. Q12: TCP 연결 ( 파일업로드 ) 의처리율 (throughput, h t 전송된바이트 / 초 ) 성능은? 이값을계산한과정을설명하라. Q13: 아래와같이 Wireshark 기능을사용하여클라이언트에서서버로시간에따른패킷전송그래프 (time sequence graph) 를그려라 패킷리스팅윈도우에서첫번째 TCP 세그먼트를선택하고, 메뉴에서 Statistics->TCP Stream Graph->Time Sequence Graph(Stevens) 를선택 순천향대학교컴퓨터공학과 116

실습과제 3-4: TCP, Wireshark 실습 (6) Q14: Q13의그래프에서 TCP 슬로스타트 (slow start) 단계의시작과끝을구분할수있는가? 혼잡회피 (congestion avoidance) 는어디서발생하는가? 순천향대학교컴퓨터공학과 117