[컴퓨터네트워크] 전송계층 3

백은진·2021년 4월 13일
0

강의

목록 보기
4/7

복습

  • 연결된 두 TCP 사이를 TCP connection이라고 한다.
  • 각 TCP는 send buffer와 receive buffer를 가지고 있다.

본 학습

  • TCP에서 가장 중요한 3 가지

    • reliable data transfer
    • flow control
    • congestion control
  • flow control ⭐️

    • receiver가 받을 수 있는 양만큼 sender가 데이터를 보내는 것
    • receiver는 ACK의 header에 자신의 buffer의 남은 양을 적어서 보낸다.
    • receiver가 기준이 되기 때문에 receiver-drive다.
    • flow control은 보내는 양을 조절하나, 보내는 속도를 조절하나?
      • 단위 시간당 보내는 양이 많으면 = 보내는 속도가 높음
      • 단위 시간당 보내는 양이 적으면 = 보내는 속도가 낮음
    • A와 B TCP protocol이 있다고 할 때, B에 여유있는 buffer가 하나도 없을 수 있다. 이 때 A가 해당 ACK를 받으면, 주기적으로 segment(data 부분에 0 또는 1 byte 정도의 정보만을 담아서)를 B에게 보내 여유 buffer가 생겼는지 확인한다.
  • connection management

    • Recall: TCP sender, receiver establish "connection" before exchanging data segments.
    • Three way handshake:
      • Step 1: client host sends TCP SYN segment to server
        - specifies initial sequence number
        - no data

      • Step 2: server host receives SYN, replies with SYNACK segment
        - server allocates buffers
        - specifies server initial sequence number

      • Step 3: client receives SYNACK, replies with ACK segment, which may contain data

    • Closing TCP connection
    • 공공의 Network는 한정돼있다. 따라서 Network에 많은 양의 데이터가 계속해서 흐른다면, Network는 터질 수 있다. 이를 방지하기 위해 TCP는 계속하여 데이터 전송 양을 조절한다. (Network 상태가 좋다면(=여유롭다면) 데이터를 더 보내고, Network 상태가 좋지 않다면(=꽉 차있다면) 데이터를 덜 보내는 방식)
    • 그러나 직접적으로 Network 상태가 어떤지 알 수 있는 방법은 현재 없다. 때문에 TCP segment를 통해 ACK가 오지 않거나 늦게 오는 경우를 보면서 간접적으로 Network 상태를 파악하고, 이 상태에 따라 데이터 전송 양을 조절한다. (간접적으로 유추하는 것이기 때문에 파악한 Network 상태가 아주 정확하진 않다.)
profile
💡 Software Engineer - F.E

0개의 댓글