자고일어나니코딩왕
자일코의 CODING
자고일어나니코딩왕
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • [Linux]리눅스 (1)
    • [NETWORK]네트워크 (17)
    • [PS] 알고리즘문제풀이 (16)
    • [SQL] (13)
    • [ALGORITHM]알고리즘개념 (9)
    • [DATA_STRUCTURE]자료구조 (1)
    • [PYTHON]파이썬 (0)
    • [정보처리기사] (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스 #파일시스템 #디렉토리
  • 원격접속
  • BIOS #MBR #LILO #Kernel #init
  • 리눅스
  • ssh
  • virtualbox

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자고일어나니코딩왕

자일코의 CODING

[NETWORK] #6-2. TCP window control
[NETWORK]네트워크

[NETWORK] #6-2. TCP window control

2020. 5. 18. 01:57

Transmission Rate Control with a window continued

  • window size가 W 인 패킷의 개수를 조절한다.

  • Transmission rate = window size * max Segment Size / Round trip time

  • 만약 window size 가 매우 작으면 transmission rate << network capacity

  • 만약 window size 가 매우 크면 transmission rate >> network capacity = congestion

    • 따라서 window 사이즈를 네트워크의 환경에 따라 적절히 선택해야한다.

TCP Window Controls Summary

  • Flow control

    • receiver의 overloading을 피한다.

    • receiver에 의해서 set된다.

    • Rwnd : receive window

  • Congestion control

    • Network 의 overloading을 피한다.

    • Sender 에 의해서 set된다.

    • 가능한 Network capacity을 추론한다.

    • Cwnd : congetion window

  • Set W = min(cwnd , rwnd)

    Flow Control
    • receivers는 advertise한다 free buffer space를 TCP header의 rwnd의 값 안에 포함시킴으로써

      • RcvBuffer의 size는 soket option에 의해 설정되며 일반적으로 4096byte이다.

      • 많은 os 는 RcvBuffer을 자동으로 맞춘다.

    • sender는 unasked data를 receiver의 rwnd value값으로 제한한다.

    • Receive buffer는 overflow하지 않음을 보장한다.

    Congestion control
    • 송신자는 cwnd를 network congestion으로부터 계산한다.

      • 두가지방법이있다.

        • 네트워크로부터 현재 네트워크 상황을 전달받는다.

        • destination 으로부터 정보를 전달받아 현재 네트워크 상황을 유추한다.

    • 일반적으로 혼잡을 인식하는 지표들

      • Losses(Tcp의 경우에서)

      • Delay

      • Mark

    • cwnd를 계산하기위한 알고리즘

      • TCP Tahoe , TCP Reno, TCP vegas ,RED , REM.....

    TCP Sliding window
    • sliding window 는 flow control 과 congetion control 을 위한 것이다.

    • Window 의 크기를 rwnd 와 cwnd 의 최솟값으로 설정한다.

    • 송신자는 모든 윈도우의 데이터를 전송할 필요는 없다.

    • window가 open 될때는 window size가 증가할때,window가 close될때는 ACK에 의해서하지만 축소되서는 안된다.

    • TCP sliding window는 바이트단위이다.

    • 응답을 기다리지않고 연속으로 패킷을 전달한다.

    • 윈도우의 크기가 상황에 맞게 동적으로 변한다.

    Window Management in TCP
    • 수신자는 송신자에게 두가지의 변수를 준다.

      • AckNo = 32bits

      • Window size = 16bits

        • 이말인 즉슨 나는 새로운 데이터를 받을 준비가 되어있다. sequence number가 AckNo , AckNo+1,,,,,,,,Ack+win-1인 것들의

    • Closing 이란?

      • receiver는 데이터를 ack할수있다. window를 opening 하지 관여 x

    • Opening or Shrinking 이란?

      • receiver는 window size 를 ack 하지않고도 변경시킬수 있다.

    TSO(TCP Large Segment Offloading)
    • 내용의 크기가 컸을 경우 더작은 세그먼트로 쪼개는 과정을 거치는데 CPU가 아니라 NIC에 위임한다.

'[NETWORK]네트워크' 카테고리의 다른 글

[NETWORK] #7.DNS  (0) 2020.05.18
[NETWORK]#6-3.TCP congestion control  (0) 2020.05.18
[NETWORK]#6-1. TCP handshake  (0) 2020.05.18
[NETWORK]#6. TCP  (0) 2020.05.18
[NETWORK]#5.전송계층(TRANSPORT LAYER)  (0) 2020.05.18
    '[NETWORK]네트워크' 카테고리의 다른 글
    • [NETWORK] #7.DNS
    • [NETWORK]#6-3.TCP congestion control
    • [NETWORK]#6-1. TCP handshake
    • [NETWORK]#6. TCP
    자고일어나니코딩왕
    자고일어나니코딩왕
    열코!

    티스토리툴바