1. Window size는 buffer size?

Slides:



Advertisements
Similar presentations
1)RACK 2)UPS 3)P D U 장치 4)Server Group 5)KVM Switch 7)UPS 를 위한 HUB 6) RACK Monitor.
Advertisements

(1/7) Postech DP&NM Lab On the Performance Characteristics of High-Speed Enterprise Networks (Performance Analysis of Underutilized Enterprise Network)
Using Telephone and Cable Networks
1. 전송 계층 서비스 프로세스 대 프로세스 통신 전송 계층 프로토콜은 프로세스 대 프로세스 통신 제공
6 데이터 링크 계층.
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
컴퓨터 프로그래밍 기초 [Final] 기말고사
Chapter 11 Data Link Control.
Windows Server 장. 사고를 대비한 데이터 백업.
VoIP (Voice Over Internet Protocol)
4.3 Managing TCP sessions 4조 임종철,임정묵,이규윤.
Chapter 13 Wired LANs: Ethernet.
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
제 14장 Multicast & Broadcast
제 15 장 점 대 점 프로토콜 15.1 천이상태 15.2 PPP 계층 15.3 링크 제어 프로토콜 15.4 인증
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
TCP와 UDP.
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
10 장 데이터 링크 제어(Data Link Control)
13장 고급 입출력 함수 박사 4학기 최 성자.
Frame Relay Prof. Choong Seon HONG.
GPRS(general Packet Radio System) 설명
제 22 장 TCP Persist Timer.
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
Network Security WireShark를 활용한 프로토콜 분석 I.
메모리 관리 & 동적 할당.
뇌를 자극하는 Windows Server 2012 R2
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
DK-128 FND 실습 아이티즌 기술연구소
USN(Ubiquitous Sensor Network)
1. lastACK, TS.Recent? 1 / 27 TSOPT를 사용한 수신기 수신기는 1개의 버퍼(큐)와 변수들을 가짐.
1. 의사 헤더의 정보는 실제 정보인가? 1 / 23 UDP의 허용된 계층위반
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
8장. spss statistics 20의 데이터 변환
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
21 장 네트워킹과 인터네트워킹 장치 21.1 중계기(Repeaters) 21.2 브릿지(Bridges)
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
연구 진행 상황 보고서 연구 결과 문제점 및 대책 목표 및 계획 어지럼증 기타 임상시험 설계 및 준비
10 기타 전송 계층 프로토콜.
3 네트워크 기술 학습 목표 회선 교환 시스템과 패킷 교환 시스템의 차이와 원리를 이해한다.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
제 19 장 TCP 대화식 데이터 흐름.
Ping Test.
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
Chapter 27 Mobile IP.
라우터의 이해 (보충자료) TCP/IP구성 Ping명령어를 이용한 연결검사 비트와 바이트 10진수/2진수/16진수
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
7 IP 프로토콜의 이해 학습 목표 네트워크 계층의 필요성과 역할을 이해한다.
논리회로 설계 및 실험 4주차.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
Network Lab. Young-Chul Hwang
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
ARP.
Presentation transcript:

1. Window size는 buffer size? 수신자가 보내준 window size는 발신자가 전송가능한 최대 bytes 21페이지 TSOPT 예제 26페이지 SACK 언제 재전송 되나? 2018년 9월 18일 오전 5시 54분 1 / 35

윈도우 계산 2 / 35 윈도우 관계식 따라서, slow start 동작 시에는 cwnd의 크기가 사용됨. awnd = minimum[rwnd,cwnd] awnd : 전송 윈도우 크기 (송신할 수 있는 세그먼트 수) rwnd : 수신 윈도우 크기 (수신측 버퍼 여유용량) cwnd : 혼잡 윈도우 크기 (연결 초기` 및 `혼잡 상황`에서 사용되는 윈도우) 연결 초기에 cwnd = 1 로 셋팅됨 최대값이 될 때까지 cwnd를 증가시킴 따라서, slow start 동작 시에는 cwnd의 크기가 사용됨. cwnd 값은 어떻게 구하는가? 2018년 9월 18일 오전 5시 54분 2 / 35

CWND 계산 3 / 35 RFC5681 전달 받은 ACK에 다음 동작 수행 cwnd += SMSS, (cwnd < ssthresh), 저속시작 cwnd += SMSS*SMSS/cwnd, (cwnd > ssthresh), 혼잡 회피 2018년 9월 18일 오전 5시 54분 3 / 35

혼잡 회피 4 / 35 혼잡 회피 원인 결과 혼잡이 발생한 경우 발생 e.g 타이머 만료 중복된 ack 수신 전송 세그먼트의 수를 조금씩 증가 시킴 2018년 9월 18일 오전 5시 54분 4 / 35

16. TCP 혼잡 제어 2015. 08. 29 김 진 홍 jhkim3624@etri.re.kr

contents 개요 고전적인 알고리즘 표준 알고리즘의 발전 Eifel 응답 알고리즘을 이용한 Spurious RTO의 제어 확장 예제 혼잡 상태 공유 TCP 친화성 고속 환경에서의 TCP 지연 기반 혼잡 제어 버퍼 포화 활성 대기열 관리와 ECN TCP 혼잡 제어와 관련된 공격 정리

1. 개요 7 / 35 16장의 주된 내용 전반부 후반부 혼잡 제어 알고리즘의 기본 원리 2. 고전적인 알고리즘 2. 고전적인 알고리즘 3. 표준 알고리즘의 발전 4. Eifel 응답 알고리즘을 이용한 Spurious RTO의 제어 5. 확장 예제 후반부 알고리즘의 최신 버전(수정된 기능) 6. 혼잡 상태 공유 7. TCP 친화성 8. 고속 환경에서의 TCP 9. 지연 기반 혼잡 제어 10. 버퍼 포화 11. 활성 대기열 관리와 ECN 12. TCP 혼잡 제어와 관련된 공격 2018년 9월 18일 오전 5시 54분 7 / 35

1. 개요 혼잡 제어 정의 네트워크가 너무 큰 트래픽 부하에 영향 받는 것을 방지하기 위해 구현된 행위 기본 접근 방법 네트워크가 혼잡한 상황이라고 할 수 있는 경우 전송 속도 감소. E.g 라우터가 패킷을 폐기하고 있는 경우 속도 감소 후 언제 정상 속도로 복구 할 것인가? 2018년 9월 18일 오전 5시 54분 8 / 35

1. 개요 9 / 35 발신자의 속도를 늦추는 방법 발신자의 윈도우 조절 문제점 발신자의 사용 가능한 윈도우(W) 혼잡 윈도우(cwnd) cwnd(혼잡 윈도우 크기)를 알기 위해 실험이 필요. 수신자의 수신 윈도우(awnd) awnd(수신자의 윈도우 크기)는 패킷 교환을 통해 습득.(15장) W= min(awnd, cwnd) 문제점 awnd와 cwnd가 시간에 따라 변화 함. W와 awnd와 cwnd는 측정을 통해 동적으로 결정되어야 함. 2018년 9월 18일 오전 5시 54분 9 / 35

2. 고전적인 알고리즘 10 / 35 알고리즘의 구성 TCP 데이터 전송 저속시작 -> 패킷 손실 -> 혼잡 회피 2018년 9월 18일 오전 5시 54분 10 / 35

2. 고전적인 알고리즘 저속시작 새로운 TCP 연결이 생성되거나 RTO에 의해 패킷 손실이 발생할 경우 수행 됨. 목적 데이터 전송 시 사용 가능한 대역폭을 찾기 위한 cwnd 값을 검색하는 것을 도움. 시작 IW(initial window)라 불리는 정해진 수의 세그먼트 부터 전송. 동작 IW = 1SMSS(Sender’s Maximum Segment Size) IW = 2*(SMSS)이고, 많아야 2 세그먼트 IW = 3*(SMSS)이고, 많아야 3 세그먼트 IW = 4*(SMSS)이고, 많아야 4 세그먼트 2018년 9월 18일 오전 5시 54분 11 / 35

2. 고전적인 알고리즘 12 / 35 저속시작 (계속) 각 패킷에 대해 ACK를 반환할 경우 문제점 K번 왕복후의 W 값 W = 2^k 문제점 저속 시작이 계속 되어 네트워크를 훼손 할 정도의 크기가 될 수 있음. 2018년 9월 18일 오전 5시 54분 12 / 35

2. 고전적인 알고리즘 13 / 35 저속시작 (계속) 문제점 해결 저속 시작이 계속 되어 네트워크를 훼손 할 정도의 크기가 될 수 있음. 이 시점은 cwnd와 ssthresh(slow start threshold)라 불리는 값에 따라 결정 됨 해결 cwnd가 반 값으로 감소됨. 혼잡 회피 동작을 수행함. 2018년 9월 18일 오전 5시 54분 13 / 35

2. 고전적인 알고리즘 14 / 35 혼잡 회피 저속 시작 동작은 cwnd가 지수적으로 증가함. cwndt+1 = cwndt + SMSS * SMSS/cwndt 1씩 증가하는 cwnd 2018년 9월 18일 오전 5시 54분 14 / 35

2. 고전적인 알고리즘 저속 시작과 혼잡 회피 2018년 9월 18일 오전 5시 54분 15 / 35

2. 고전적인 알고리즘 16 / 35 저속 시작과 혼잡 회피의 선택 cwnd ≤ ssthresh 저속시작 작동 cwnd > ssthresh 혼잡 회피 작동 2018년 9월 18일 오전 5시 54분 16 / 35

2. 고전적인 알고리즘 17 / 35 ssthresh 초기값 값 변경 cwnd보다 높은 임의값 재전송이 될 때 (time out, ack기반 재전송) ssthresh = max(flight size/2, 2*SMSS) flight size = 발신자가 네트워크에 전송할 수 있는 데이터의 양 2018년 9월 18일 오전 5시 54분 17 / 35

2. 고전적인 알고리즘 18 / 35 표준 TCP[RFC5681] 지금까지의 설명은 표준 TCP의 기본 절차 RFC5681 초기값과 저속 시작 cwnd = IW ssthresh = awnd cwnd 갱신 새로운 데이터를 알리는 good ACK를 받을 때 갱신. cwnd += SMSS, (cwnd < ssthresh), 저속시작 cwnd += SMSS*SMSS/cwnd, (cwnd > ssthresh), 혼잡 회피 2018년 9월 18일 오전 5시 54분 18 / 35

2. 고전적인 알고리즘 19 / 35 ACK 기반 재전송 발생시 일시적인 cwnd의 증가가 발생. ACK 기반 재전송 발생(ACK 3개 도착) ssthresh 계산 cwnd는 (ssthresh + 3*SMSS)로 설정 됨. cwnd는 ACK를 받을 때 마다 증가. Good ACK가 수신되면 cwnd가 ssthresh 값으로 재설정 됨. 그림. 2번과 3번을 빠른 복구 라고 함. 동작 재전송 수행 4번을 수축 이라고 함. 재전송이 완료되고 일시적인 증가를 제거 2018년 9월 18일 오전 5시 54분 19 / 35

3. 표준 알고리즘의 발전 20 / 35 New Reno 탄생 동기 과정 ack 기반 재전송 과정 중 빠른 복구의 문제점 여러 개의 패킷이 손실될 때 한번에 하나의 패킷이 복구 됨. 과정 발신자가 빠른 재전송을 들어가기 전 현재 전송 지점을 저장함. 1번에 대한 빠른 재전송을 수행. 발신자는 8에 대한 ack를 받길 기대중. 2번에 대한 ack가 도착. 3번이 전달 되지 않았다는 것을 인지한 후 재전송. 8에 대한 ack 도착 2018년 9월 18일 오전 5시 54분 20 / 35

3. 표준 알고리즘의 발전 21 / 35 SACK을 이용한 혼잡 제어 탄생 동기 과정 여러 개의 패킷이 손실될 때 한번에 하나의 패킷이 복구 됨. 과정 발신자가 빠른 재전송을 들어가기 전 현재 전송 지점을 저장함. 1번에 대한 빠른 재전송을 수행. 발신자는 8에 대한 ack를 받길 기대중. 2번에 대한 ack가 도착. 3번이 전달 되지 않았다는 것을 인지한 후 재전송. 8에 대한 ack 도착 2018년 9월 18일 오전 5시 54분 21 / 35

3. 표준 알고리즘의 발전 22 / 35 혼잡 윈도우 유효성 검사(CWV) 발신자의 cwnd는 데이터가 전송 되지 않으면 감소함. ssthresh는 감소 되기 이전의 초기 값에 대한 설정을 유지 패킷의 전송률을 감소시키는 것은 라우터의 압박을 줄여줌. 2018년 9월 18일 오전 5시 54분 22 / 35

3. 표준 알고리즘의 발전 23 / 35 지역 혼잡 원인 영향 전송률 절반 감소 전송 시스템에서의 패킷 손실 데이터 전송 < 데이터 생산 영향 CWR(Congestion Window Reducing) 상태가 되게 함 Ssthresh = cwnd/2 Cwnd = min(cwnd, flight size+1) 전송률 절반 감소 2018년 9월 18일 오전 5시 54분 23 / 35

3. 표준 알고리즘의 발전 24 / 35 초반부 정리 혼잡 제어 알고리즘의 기초 저속 시작 혼잡 회피 전송률 절반 감소 2018년 9월 18일 오전 5시 54분 24 / 35

6. 혼잡 상태 공유 25 / 35 연결 정보 공유 먼저, 연결이 맺어지면 RTT측정값, cwnd, ssthresh가 저장됨. 지금까지는 호스트당 하나의 연결이었음. 같은 호스트들 사이에 다른 연결이 설정된다면? 이전 연결이나 다른 연결로부터 ssthresh와 cwnd 값을 얻음. 즉, 다른 연결에 사용될 cwnd, ssthresh를 초기화 시킴. 21페이지 TSOPT 예제 26페이지 SACK 언제 재전송 되나? 2018년 9월 18일 오전 5시 54분 25 / 35

8. 고속 환경에서의 TCP 탄생 배경 1Gb/s 이상의 고속 네트워크를 사용하는경우 윈도우를 증가시키는 시간이 오래걸림. 혼잡이 없을 경우에 이득을 볼 수 없음. 2018년 9월 18일 오전 5시 54분 26 / 35

8. 고속 환경에서의 TCP - 계속 27 / 35 연구 결과 고속 TCP(HSTCP) 기존의 Reno congestion control 알고리즘의 congestion window 조절 기능을 수정 congestion window 크기를 매우 크게 만들어 TCP 의 한계성을 극복 이진 증가(BIC, CUBIC) – 2.6.18이후 default algorithm congestion window 크기를 마지막으로 발생한 혼잡 이후, 경과 시간에 대한 3 차 함수를 이용하여 조절. W(t) = C(t-K)³ + Wmax 두가지 방법이 존재 방법 1. 마지막 혼잡이 발생하기 이전상태로 빠르게 혼잡 윈도우를 복구하는 방법 방법 2. 추가적인 대역폭을 점유하기 위해 혼잡 윈도우 크기를 처음에는 느리게 증가시키다가 점차 증가 속도를 높이는 방법(HSTCP와 비슷) 2018년 9월 18일 오전 5시 54분 27 / 35

9. 지연 기반 혼잡 제어 28 / 35 지금까지 설명한 알고리즘들과의 차이점 손실 기반 혼잡 제어 지연 기반 혼잡 제어 복합 타임아웃, 패킷 손실, ACK 손실, SACK, ECN 등이 감지된 경우 윈도우 조절 지연 기반 혼잡 제어 측정한 RTT 값을 기반으로 윈도우 조절 Vegas, FAST, Westwood 등 널리 쓰이지는 않음 복합 패킷 손실뿐 아니라 지연 측정을 기반으로 윈도우 조절 CTCP 2018년 9월 18일 오전 5시 54분 28 / 35

10. 버퍼 포화 29 / 35 발생 원인과 문제점 배경 원인 문제점 해결 메모리 가격의 하락으로 네트워크 장비의 버퍼 용량 증가 원인 큐잉 지연 표준 TCP 혼잡 제어 알고리즘이 버퍼를 꽉 찬 상태로 유지하려는 경향이 있기 때문. 문제점 프로토콜의 성능 저하 해결 프로토콜 수정 부작용 발생 가능 엑세스 드라이브를 사용하여 동적으로 버퍼크기를 조절 2018년 9월 18일 오전 5시 54분 29 / 35

11. 활성 대기열 관리와 ECN 활성 대기열 관리 라우터가 FIFO방식 이외의 버퍼관리와 스케줄링을 사용하는 것 좀 더 정교한 스케줄링과 버퍼 관리 정책 2018년 9월 18일 오전 5시 54분 30 / 35

11. 활성 대기열 관리와 ECN - 계속 31 / 35 ECN bit 설정 혼잡 상황에서 라우터의 기능 packet (with ECN) 발신자 packet 수신자 라우터 ACK (ECN echo) ACK (ECN echo) 2018년 9월 18일 오전 5시 54분 31 / 35

11. 활성 대기열 관리와 ECN - 계속 32 / 35 ECN echo ACK를 받은 후 발신자의 행동 혼잡 윈도우 조절 2018년 9월 18일 오전 5시 54분 32 / 35

12. TCP 혼잡 제어와 관련된 공격 33 / 35 기본 접근 방법 발신자가 의도한 것보다 더 빠른 속도로 데이터를 주입 다른 발신자보다 큰 이득을 취할 수 있음 라우터에 부하를 줌 2018년 9월 18일 오전 5시 54분 33 / 35

12. TCP 혼잡 제어와 관련된 공격 - 계속 34 / 35 공격 방법 ACK 구분 DupACK 스푸핑 인정되는 byte 범위에 대한 ACK를 전송하여 빠른 cwnd 증가를 가져옴. DupACK 스푸핑 발신자에서 빠른 재전송 발생시 공격 빠른 복구 과정에서 ACK를 전송하여 cwnd를 증가 시킴 Optimistic ACKing 아직 도착하지 않은 세그먼트에 대한 ACK 생성 RTT가 짧다고 판단하고 cwnd를 증가 시킴 2018년 9월 18일 오전 5시 54분 34 / 35

13. 정리 35 / 35 정리 기본접근 알고리즘 추가 라우터 동작의 변화 저속시작 혼잡회피 속도 반감 손실 감지 후 즉시 감소 대신 점차적으로 감소 시킴 혼잡 윈도우 검증 발신 App이 유휴 상태일때 cwnd가 커지지 않게 관리 가용 대역폭 도달 시간 감소 HSTCP FAST CTCP 라우터 동작의 변화 더 정교한 스케쥴링 ECN flag 2018년 9월 18일 오전 5시 54분 35 / 35

Qna