in.add()
LESSON 25. 일련번호와 확인 응답 번호의 구조 본문
일련번호와 확인 응답 번호란?
- 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