이 영역을 누르면 첫 페이지로 이동
caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

페이지 맨 위로 올라가기

[Networks] Why is TCP Fair?

caputdraconis

[Networks] Why is TCP Fair?

  • 2021.11.10 04:00
  • Computer Network
글 작성자: caputdraconis
반응형

우선 TCP가 fair한지 아닌지를 판단하기 위해서 TCP의 특징인 congestion control(혼잡 제어)에 대해서 알고 있을 필요가 있습니다.

 

TCP는 Time-out 혹은 3 Duplicative Acks와 같은 혼잡 상황을 detect하여 상황에 맞게 Slow Start(SS), Addictive Increase(AI), Multiplicative Decrease(MD)와 같은 과정들을 거치게 됩니다. 바로 이 전체 과정을 Congestion control, 혼잡 제어라고 합니다.

 이는 UDP와 구분되는 TCP만의 특징으로, UDP는 혼잡한 상황인지 아닌지를 detect하지 않고 그냥 보내는데에 비해, TCP는 상황에 맞게 보내는 양을 유연하게 조절하며 혼잡을 최소화합니다. 

 

Congestion Control의 상황을 작은 그림으로 요약하면 아래와 같습니다.

 


 

 

2개의 연결을 다루는 상황입니다. x축은 첫번째 연결의 throughput, y축은 두번째 연결의 throughput입니다. 두개의 연결 각각의 RTT는 같다는 가정 하에 그려진 그림입니다.

y=x 를 보면, 첫번째 연결과 두번째 연결의 throughput이 같을 때입니다. 이때를 equal bandwidth share라고 합니다.

x+y=R(capacity) 를 보면, 두개의 연결이 capacity를 사이좋게 나눠서 사용하고 있을 때입니다.

 

 

계속 congestion control을 하다보면 equal bandwith share 주위에서 맴돌게 됩니다.(계속해서 혼잡이 발생하면 x축은 절반으로, y축도 절반으로 줄어들게 됩니다)

 

이는 두 Connection이 어떤 비율로 연결을 시작하든 궁극적으로 throughput은 공평하게 50:50이 됨을 이야기 하며, 이는 TCP는 Fair하다 라는 결론을 내릴 수 있게 됩니다.

 

 

 두 연결의 RTT가 다를 때에는 기울기가 달라지게 됩니다.

 

 

 

반응형

댓글

댓글을 사용할 수 없습니다.

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Networks] OSI 7 계층 정리

    [Networks] OSI 7 계층 정리

    2022.01.17
  • [AWS] 엔드포인트 실행 결과 비교

    [AWS] 엔드포인트 실행 결과 비교

    2022.01.12
  • [AWS] VPC란? VPC 엔드포인트 설정

    [AWS] VPC란? VPC 엔드포인트 설정

    2022.01.11
  • [Networks] TCP timers

    [Networks] TCP timers

    2021.11.10
다른 글 더 둘러보기

정보

caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

카테고리

  • 분류 전체보기 (168)
    • Cloud (3)
    • Computer Network (12)
    • Database (2)
    • Terraform (2)
    • 🥚고리즘 (13)
    • 겅부겅부🙃 (10)
      • Naver CS50 코칭스터디 (2)
      • Machine Learning (1)
      • Computing System (6)
    • 언어&프레임워크 (20)
      • Python (4)
      • Django (10)
      • Node JS (1)
      • C++ (2)
      • Java (1)
      • Flutter (2)
    • Security (76)
      • WebHacking Study (11)
      • 지옥방 스터디 (22)
      • 여름방학 스터디 (2)
      • PWN Study (6)
      • SUA Reversing Study (3)
      • PWN (3)
      • WebHacking (20)
      • Reversing (4)
    • 알고 있으면 도움되지 않을까,,? (23)
    • 일상다반사 (1)
    • 근황 정리 (1)
    • 42 Seoul (1)
      • Setting (1)

인기 글

공지사항

태그

  • old-16
  • 파이썬
  • 리스트함수
  • Python
  • 드림핵
  • 파이썬함수
  • 파이썬기초
  • 웹해킹.kr

나의 외부 링크

  • Github
  • solved.ac
  • caputdraconis@kakao.com

정보

caputdraconis의 caputdraconis

caputdraconis

caputdraconis

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © caputdraconis.

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.