공부/Network

Sequence Number 와 Acknowledgment Number

해리누나 2024. 6. 23. 22:25
728x90
반응형

 

 

TCP 헤더

TCP 통신 3-way handshake에서 실제 데이터를 보내거나 상대방에게 받을 때는 TCP 헤더의 일련번호(Sequence Number)와 확인 응답 번호(Acknowledgment Number)가 사용된다. TCP는 데이터를 분할하여 보내는데, 이때 일련번호는 송신 측에서 수신측에 '이 데이터는 몇 번째 데이터이에요~'하고 알려주는 역할을 한다. 이를 통해 수신자는 받은 데이터가 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있는 것이다.

확인 응답 번호는 수신자가 다음에 받을 데이터의 순서를 송신측에 알려주는 역할을 한다.

 

위 그림의 데이터를 전송하기 전 단계에서 3-way handshake로 연결 수립이 이루어질 때, 이번 통신에 사용하는 일련번호인 '3001'번과

 

❶ 호스트 A가 호스트 B로 200 bytes의 데이터를 전송한다.

❷ 호스트 B는 200 bytes를 수신한 후, 다음으로 수신하고자 하는 데이터의 번호를 확인 응답 번호에 넣는다. (다응에 수신하고 하는 데이터 = 3001 + 200)

❸ 호스트 A는 호스트 B에게 3201번부터 200 bytes의 데이터를 전송한다.

❹ 호스트 B는 200 bytes를 수신하고, 다음으로 수신하고자 하는 데이터의 번호를 확인 응답 번호에 넣는다. 이제 3401번부터 보내주면 돼~

 

이렇게 ❶ ~ ❹번 까지의 과정을 데이터 전송이 완료될 때까지 반복하는 것이다. TCP는 데이터가 항상 올바르게만 전달되는 것이 아니니 일련번호와 확인 응답 번호를 사용해서 데이터가 손상되거나 유실될 경우에 일정 시간 대기 후, 데이터를 재전송하게 한다. 이를 재전송 제어라 한다.

 

 

 

 

 

참고

책: 10일만에 배우는 네트워크 기초, 모두의 네트워크 | 미즈구치 카츠야 | 이승룡 옮김

728x90
반응형

'공부 > Network' 카테고리의 다른 글

Port (포트)란?  (0) 2024.06.26
Window size (윈도우 크기)  (0) 2024.06.25
TCP 3-way 와 4-way Handshake  (0) 2024.06.23
TCP 와 TCP 헤더  (1) 2024.06.22
전송 계층의 역할 / 연결형 통신 · 비연결형 통신  (0) 2024.06.21