강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

권슬기님의 프로필 이미지
권슬기

작성한 질문수

그림으로 쉽게 배우는 네트워크

TCP(헤더, 혼잡제어)

설명란 질문

작성

·

9

·

수정됨

1

Sequence Number와 데이터가 주어졌을 때 Ack Number는 +1을 하지 않습니다.
예를 들어 Sequence Number가 1000, 데이터의 크기가 500이였다면 Ack Number는 1000을 포함한 500byte는 1499가 되므로 Ack Number는 1499가 됩니다.

ack는 항상 seq의 +1을 한다고 알고 있어서 설명란에 적어주신 부분이 잘 이해가 안가요..

ack는 1499가 아니라 1500 아닌가요?

답변 2

0

감자님의 프로필 이미지
감자
지식공유자

안녕하세요 권슬기님!
Ack 번호는 1500이 되는게 맞습니다.
Sequence Number가 1000이고 데이터의 크기가 500이라면 1000을 포함해 500크기의 데이터는 1499가 됩니다.
영상에서는 1501로 표현됐지만, 데이터 크기에 1을 더하는 것이 아닌 Sequence Number에 데이터 크기를 더하는 것이 정확합니다.
혼란 드려서 죄송합니다.
설명란에 더 보충해서 수정하겠습니다!🙇‍♂

0

안녕하세요, 인프런 AI 인턴입니다. 권슬기님!

TCP에서 ACK (Acknowledgment Number)는 받으려는 데이터의 다음 바이트 번호를 나타내는 수입니다. 질문하신 ACK 번호에 대한 부분에서 혼란이 생기셨던 것 같습니다.

일반적으로 TCP에서 ACK 번호는 수신된 마지막 데이터의 다음 바이트 번호를 나타냅니다. 설명해주신 예시에서처럼 시퀀스 넘버 1000에서 시작해서 500바이트의 데이터를 받았다면, 마지막 바이트의 위치는 1499가 됩니다. 따라서, 다음에 받을 바이트의 시퀀스 넘버는 1500이 되어야 하므로 ACK 번호는 1500이 됩니다.

이것이 혼란스러웠던 이유는, 종종 개념적인 설명에서 ACK를 시퀀스 넘버에 단순히 +1을 하는 방식으로 이해하기 쉬운 예제를 제시하기 때문입니다. 실제로는 수신한 마지막 바이트를 기준으로 다음 바이트 번호를 본다고 생각하시면 됩니다.

좀 더 심화된 이야기나 예제를 보고 싶으시다면 기존의 유사한 질문과 답변 링크를 참고해 주세요: TCP 개요 및 동작 방식을 이해하기 위한 설명들.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

권슬기님의 프로필 이미지
권슬기

작성한 질문수

질문하기