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

caputdraconis

페이지 맨 위로 올라가기

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)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

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

    나의 외부 링크

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

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

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

    티스토리

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

    티스토리툴바