강의

멘토링

로드맵

Inflearn brand logo image

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

tkddls8900님의 프로필 이미지
tkddls8900

작성한 질문수

인프라공방 - 그럴듯한 서비스 만들기

리눅스 서버 진단하기

네트워크 TIME_WAIT에 대한 질문이 있습니다!

해결된 질문

작성

·

75

0

안녕하세요 강의 정말 잘 듣고 있습니다!

 

18:10 에서 TCP 연결 해제를 위해 클라이언트의 마지막 ACK가 유실되면 클라이언트가 서버로부터 SYN패킷을 보내 재연결을 시도한다고 말씀해주셨습니다

그런데 https://birdie-hyun.tistory.com/3 이 블로그에서는 ACK가 유실되면 서버가 클라이언트로부터 일정 횟수만큼 FIN 요청을 보낼 것이고, 클라이언트는 시간이 지나고 연결이 끊어졌기 때문에 FIN에 대한 ACK를 보낼 수 없어 네트워크 트래픽으로 이어진다고 나와있습니다

 

어떤 내용이 사실인지 궁금해서 질문 남겨봅니다

감사합니다..!

답변 1

0

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

안녕하세요. 강의 재밌게 봐주셔서 감사합니다!

강의 내용과 블로그를 인용해주신 내용은 같습니다.

 

"클라이언트의 마지막 ACK가 유실되면 클라이언트가 서버로부터 SYN패킷을 보내 재연결을 시도"

이 부분이 잘못 이해하신 부분으로 보이는데요. SYN 패킷을 보내 재연결을 시도한다는 이야기를 하지는 않았었어요 ㅎ;

클라이언트가 FIN을 보낸 후 서버로부터 FIN,ACK를 받고 나서 서버로 ACK를 보낼 때 마지막 ACK가 유실되면, 이 후에 클라이언트에서 (사용자가 요청을 새로하는 등의 상황으로 인해!) 서버로 요청을 보내 SYN 패킷이 발생하더라도 서버 입장에서는 연결을 해제하는 중이었기 때문에 비정상적인 요청이라 이해하고 RST로 연결을 끊는다는 이야기였어요.
블로그에선 "연결을 해제하는 단계"를 좀 더 상세히 풀어 쓴거구요.

가령 첫번째 상황의 경우 TIME-WAIT이 없다면, 서버는 ACK를 받지 못했으므로 타이머를 설정하고 일정시간이 지나면 FIN을 다시 전송할 겁니다. 클라이언트는 수신하지 않을 거고, 일정 시간 지나면 retransmission 단계를 수행한다는 이야기인데요. TCP retransmission과 관련해서는 제 블로그 내에 혼잡 제어 쪽을 보셔도 좋을거 같습니다. https://www.brainbackdoor.com/network/tcp-error-recovery
두번째 상황은 TCP 신뢰성과 관련된 내용이니 질문 주신 부분과는 무관할 거 같네요.

혹시 궁금한 점이 해소되었을까요? ㅎㅎ;

좋은 밤 보내세요~

tkddls8900님의 프로필 이미지
tkddls8900
질문자

답변 너무 감사합니다

재연결 시도에 대한 내용이 없는데 제가 강의 내용을 잘못 이해했습니다!

 

답변 덕분에 해당 내용 완벽히 이해했고 적어주신 블로그 내용은 잘 참고하도록 하겠습니다 감사합니다~

tkddls8900님의 프로필 이미지
tkddls8900

작성한 질문수

질문하기