in.add()

LESSON 25. 일련번호와 확인 응답 번호의 구조 본문

Book/모두의 네트워크

LESSON 25. 일련번호와 확인 응답 번호의 구조

idan 2022. 6. 19. 15:35

일련번호와 확인 응답 번호란?

  • 3-way 핸드셰이크가 끝나고 실제 데이터를 보내거나 상대방이 받을 때는 TCP 헤더의 일련번호(sequence number)와 확인 응답 번호(acknowledgement number)를 사용한다.
  • TCP는 데이터를 분할해서 보내는데 일련번호는 송신 측에서 수신 측에 '이 데이터가 몇 번째 데이터인지' 알려 주는 역할을 한다.
  • 전송된 데이터에 일련번호를 부여하면 수신자는 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있다.
  • 확인 응답 번호는 수신 측이 몇 번째 데이터를 수신했는데 송신 측에 알려 주는 역할을 한다.
  • 그래서 이 번호는 다음 번호의 데이터를 요천하는데도 사용된다.
  • 예를 들어 10번 데이터를 수신하면 22번 데이터를 송신 측에 요청하는 것이다. 이것을 확인 응답이라고 한다.
  • 데이터가 항상 올바르게 전달되는 것은 아니므로 일련번호와 확인 응답 번호를 사용해서 데이터가 손상되거나 유실된 경우에 데이터를 재전송하게 되어 있다.
  • 이것을 재전송 제어라고 한다.
  • 데이터를 전송하는 도중에 오류가 발생하면 일정 시간동인 대기한 후에 재전송하는 것이다.

윈도우 크기란?

  • 지금까지 설명한 것은 세그먼트(데이터) 하나를 보낼 때마다 확인 응답을 한 번 반환하는 통신이었다.
  • 이와 같은 통신은 한 번 보낼 때마다 한 번 응답을 반환하는 방식이어서 효율이 높지 않다.
  • 하지만 매번 확인 응답을 기다리는 대신 세그먼트를 연속해서 보내고 난 다음에 확인 응답을 반환하면 효율이 높아진다.
  • 세그먼트를 일시적으로 보관하는 장소인 버퍼(buffer)가 있어 세그먼트를 연속해서 보내도 수신 측은 대응할 수 있고 확인 응답의 효율도 높아진다.
  • 대량으로 데이터가 전송되면 보관하지 못하고 넘쳐 버리는 오버플로(overflow)가 발생할 수 있다.
  • 때문에 오버플로가 발생하지 안도록 버퍼의 한계 크기를 알고 있어야 한다.
  • 그것이 TCP 헤더의 윈도우 크기(window size)값에 해당한다.
  • 윈도우 크기는 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지를 나타내는 것이다.
  • 즉, 확인 응답을 일일이 하지 않고 연속해서 송수신할 수 있는 데이터의 크기이다.
  • 이 윈도우 크기의 초깃값은 3-way 핸드셰이크를 할 때 판단한다.
  • 이것으로 수신 측이 윈도우 크기를 가지고 있다면 확인 응답을 받지 않고도 세그먼트를 연속적으로 전송할 수 있다,

'Book > 모두의 네트워크' 카테고리의 다른 글

LESSON 27. UDP의 구조  (0) 2022.06.19
LESSON 26. 포트 번호의 구조  (0) 2022.06.19
LESSON 24. TCP의 구조  (0) 2022.06.19
LESSON 23. 전송 계층의 역할  (0) 2022.06.19
LESSON 22. 라우터의 구조  (0) 2022.06.18
Comments