해결된 질문
작성
·
176
0
안녕하세요 널널한 개발자님. 우선 질 좋은 강의 제공에 감사인사부터 드립니다. 제목에 작성된 것처럼 2가지 질문이 있어 남깁니다! 질문에 해당하는 강의 제목은 [TCP 연결과정] 입니다.
3-way handshaking 동작을 설명해주시면서 클라이언트, 서버 간에 전달하는 데이터 단위가 Segment이고, 이 Segment 정보에 (데이터가 담긴) 페이로드는 없고 IP, TCP 헤더 정보만 있다고 하셨는데요! 그렇다는 것은 3-way handshaking 동작은 뭔가 클라이언트가 서버쪽으로 데이터를 전달해서 서버에서 로직을 처리하고 응답을 받는 것이 목적이 아닌 단순히 클라이언트가 서버와의 연결이 정상인가를 확인하는 용도이기 때문인 건가요? 그러면 페이로드는 그럼 언제 전달되는 것인지 궁금합니다.
TCP 연결 시 랜덤하게 생성한 시퀀스 넘버를 교환하는 것 말고 기타 정책 중 MSS 라는 정보를 전달주신다고 하셨는데요. 그러면서 서버의 MSS가 클라이언트의 MSS 보다 작을 경우, 클라이언트 쪽에서 서버의 MSS에 맞게 축소시켜 전달한다고 하셨는데요! 예를 들어, 클라이언트의 MSS가 1.5KB 이고, 서버의 MSS가 1.4KB 라고 가정해봅니다. 클라이언트 쪽에서 서버의 MSS에 맞게 축소하려고 하는데, 클라이언트가 전달하려는 Segment의 용량이 맥시멈 사이즈인 1.5KB라고 한다면 어쩔 수 없이 용량을 1.4KB로 축소하게 되고, 이 과정에서 데이터 손실?이 발생할 수도 있는 건가요?(질문하다 보니 2번 질문은 3-way handshaking 과정에서 payload 부분이 전달 된다는 가정하에 질문일 수 있겠네요)
질문이 다소 이해가 가지 않으시면 말씀 주세요 감사합니다~
답변 1
1
3-way handshaking은 데이터 송/수신에 앞서 논리적 TCP 연결을 수행하는 절차입니다. 연결이 정상인지를 판단하는 것이 아니라 연결 그 자체가 목적이지요. 데이터는 연결 후에 송/수신 할 수 있습니다.
MSS를 작은 Peer에 맞추는 것은 어쩔 수 없기 때문입니다. 그로 이해 전송효율이 떨어지는 것은 감수하는 것이지요. 손실까지는 아닙니다. 참고하시기 바랍니다. 😄
아 두 가지 답변 모두 이해되었습니다! 답변 감사합니다 :)