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

김제하님의 프로필 이미지
김제하

작성한 질문수

네트워크, 그림으로 이해하자

TCP 흐름제어

TCP 흐름 제어에서 슬라이딩 윈도우 기법 질문

해결된 질문

작성

·

281

·

수정됨

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

슬라이딩 윈도우 기법에 대해 몇 가지 질문 드리고자 합니다.

  1. A의 윈도우 크기 250은 B의 윈도우 크기가 250이여서 맞춰져서 그런 건가요? 아니면 그냥 가정으로 250이라고 한 건가요?

  2. 확인 응답이 ACK 101인 이유는 100 byte 데이터 크기를 보냈기 때문에 이에 +1 값을 보낸 것이라 이해하면 될까요?

  3. A에서 보낸 데이터 50 바이트를 B가 버퍼에 저장하고, 어플리케이션 프로세스에서 50바이트를 처리했다고 했는데, 이는 A로부터 마지막으로 받은 데이터를 사용된 게 아닌 그보다 먼저 버퍼에 저장된 데이터를 사용했다고 이해하면 될까요?

  4. 어플리케이션 프로세스가 사용했다고 말씀하신 후 윈도우 크기가 이동되었는데, 좌측 경계선은 저장되면 왼쪽에서 오른쪽으로 이동되고, 데이터가 사용되어 오른쪽 경계선이 오른쪽으로 갔다고 이해하면 될까요?

 

그리고, TCP 혼잡 제어 파트에서 오타가 있습니다. 0:36 시간대에 '이를 통하여 혼자 회피를 합니다' 라고 나와있는데 제가 이해한 바로는 '혼잡 회피'인 것 같은데 맞나요?

답변 2

0

예술하는 개발자님의 프로필 이미지
예술하는 개발자
지식공유자

안녕하세요, 제하님! 질문주셔서 감사합니다.

 

  1. A의 윈도우 크기 250은 B의 윈도우 크기가 250이여서 맞춰져서 그런 건가요? 아니면 그냥 가정으로 250이라고 한 건가요?

=>현 강의에서는 각자 가정으로 윈도우 크기를 설정한 것이고, 각각의 윈도우 크기는 여러 요인에 따라 설정이 달라집니다.

 

2.확인 응답이 ACK 101인 이유는 100 byte 데이터 크기를 보냈기 때문에 이에 +1 값을 보낸 것이라 이해하면 될까요?

=>네, 맞습니다 🙂 여기서 ACK 번호는 성공적으로 받고 '다음에 기대'하는 byte의 시퀀스 번호를 나타냅니다. 따라서 +1이 되는 거죠.
예를 들어 어느 맛집에서 10번째까지 손님을 받았다면 그 다음 손님은 11번째 손님부터 대기해야 하니까요!

 

3.A에서 보낸 데이터 50 바이트를 B가 버퍼에 저장하고, 어플리케이션 프로세스에서 50바이트를 처리했다고 했는데, 이는 A로부터 마지막으로 받은 데이터를 사용된 게 아닌 그보다 먼저 버퍼에 저장된 데이터를 사용했다고 이해하면 될까요?

=> 아뇨, 영상에서의 예시는 A로부터 마지막으로 받은 데이터를 사용했습니다 :) 보통 버퍼는 선입선출(FIFO)방식으로 데이터를 처리하기는 하지만 때에 따라 마지막으로 받은 데이터를 처리하기도 합니다.

 

4.어플리케이션 프로세스가 사용했다고 말씀하신 후 윈도우 크기가 이동되었는데, 좌측 경계선은 저장되면 왼쪽에서 오른쪽으로 이동되고, 데이터가 사용되어 오른쪽 경계선이 오른쪽으로 갔다고 이해하면 될까요?

=> 네, 맞습니다 🙂 슬라이딩 윈도우 기법에서 좌측 경계선은 확인된 데이터에 따라 오른쪽으로 이동하는데, 이는 수신지에서 해당 데이터를 읽었고, 더 이상 그 공간을 필요로 하지 않기 때문입니다.

 

자막에서 오타가 발견되었군요..! '혼잡 회피'가 맞는 표현입니다.
조만간 추후에 수정하도록 하겠습니다. 알려주셔서 감사합니다 :)

예술하는 개발자님의 프로필 이미지
예술하는 개발자
지식공유자

추가로, 다른 답변에서 이미지에 관하여 질문을 달아주셨는데 해당 이미지는 교안에는 포함되어 있지 않고, 다른 작성자님이 원활하게 이해하실 수 있도록 제가 따로 제작했던 이미지입니다. 감사합니다 :)

0

안녕하세요, 인프런 AI 인턴입니다.

네트워크에 대한 김제하님의 질문에 답변 드리겠습니다.

  1. A의 윈도우 크기가 250인 것은 일반적으로 B의 수신 윈도우 크기와 연관이 있습니다. 데이터 통신에서 송신 측과 수신 측의 윈도우 크기는 조정하며 통신하는 경우가 많으니, 수신 측의 윈도우 크기에 맞춰진 것일 수 있습니다. 그러나 이것이 가정으로 설정된 값인지는 강의 내용의 맥락을 추가로 확인해야 확실할 것 같습니다.

  2. ACK(acknowledgement) 번호 101은 이전에 받은 데이터의 마지막 바이트 번호에서 +1을 더한 값이 맞습니다. TCP 통신에서는 이런 식으로 상대방에게 확인 응답을 보내어 다음에 이어서 받을 바이트의 시작 번호를 알려주는 방식을 사용합니다.

  3. 버퍼에 저장된 데이터를 어플리케이션 프로세스가 사용했다는 것은 활성 윈도우 내에서 수신한 데이터 중 순차적으로 처리가 필요한 데이터를 의미합니다. 마지막으로 받은 데이터가 아닐 수도 있으며, 이미 버퍼에 있던 이전 데이터부터 처리하는 것을 나타낼 수 있습니다.

  4. 윈도우의 좌측 경계는 확인된 데이터(즉, 상대방이 받았다고 ACK을 보낸 데이터)에 따라 오른쪽으로 이동하며, 오른쪽 경계는 새로운 데이터를 전송하거나 윈도우 크기의 조정(예를 들어, 수신 측의 버퍼상황에 따라 조절 할 수 있음)에 의해 이동할 수 있습니다. 이는 TCP의 흐름 제어 메커니즘에 의해 동작합니다.

혼잡 회피에 관한 내용은 말씀하신 대로 ‘혼잡 회피’가 맞으며, 영상에서의 오타라면 수정이 필요한 부분입니다. 피드백을 강의 제공자나 해당 강의의 Q&A 섹션을 통해 제공해 보실 수 있습니다.

궁금한 점이 더 있으시면 언제든지 추가 질문해 주세요. 도움을 드리는 것이 저희의 즐거움입니다!

김제하님의 프로필 이미지
김제하

작성한 질문수

질문하기