네트워크

TCP (흐름제어/혼잡제어)

만듀 2021. 3. 8. 23:28
  • TCP 통신이란?
    • 네트워크 통신에서 신뢰적인 연결방식
    • TCP는 기본적으로 unreliable network에서, reliable network를 보장할 수 있도록 하는 프로토콜
    • TCP는 network congestion avoidance algorithm을 사용
  • reliable network를 보장한다는 것은 4가지 문제점 존재
    • 손실: packet이 손실될 수 있는 문제
    • 순서 바뀜: packet의 순서를 바뀌는 문제
    • Congestion: 네트워크가 혼잡한 문제
    • Overload: receiver가 overload 되는 문제
  • 흐름제어/혼잡제어란?
    • 흐름제어(endsystem 대 endsystem)
      • 송신 측과 수신 측의 데이터 처리 속도 차이를 해결하기 위한 기법
      • Flow Control은 receiver가 packet을 지나치게 많이 받지 않도록 조절하는 것
      • 기본 개념은 receiver가 sender에게 현재 자신의 상태를 feedback 한다는 점
    • 혼잡제어: 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법
  • 전송의 전체 과정
    • Application layer: sender application layer가 socket에 data를 씀.
    • Transport layer: data를 segment에 감싼다. 그리고 network layer에 넘겨줌.
    • 그러면 아랫단에서 어쨋든 receiveing node로 전송이 됨. 이 때, sender의 send buffer에 data를 저장하고, receiver는 receive buffer에 data를 저장함.
    • application에서 준비가 되면 이 buffer에 있는 것을 읽기 시작함.
    • 따라서 flow control의 핵심은 이 receiver buffer가 넘치지 않게 하는 것임.
    • 따라서 receiver는 RWND(Receive WiNDoW): receive buffer의 남은 공간을 홍보함

다음엔 흐름 제어와 혼잡 제어에 대해 좀 더 자세히 알아보도록 합시다.

 

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

HTTP에 대하여  (0) 2021.11.21
URI와 웹 브라우저  (0) 2021.11.21
OSI 7계층  (0) 2021.02.23
HTTP와 HTTPS  (0) 2021.02.10
TCP와 UDP의 비교  (0) 2021.02.09