2012-06-07 8 views
4

실제로 TCP 핸드 셰이크에서 클라이언트가 핸드 셰이크를 완료하기 위해 다시 응답해야하는지 알고 싶습니다. Post syn과 syn-ack, 양 당사자는 데이터를 시작할 충분한 정보를 가지고 있지만, 여전히 클라이언트의 ack가 설정된 상태로 이동하도록 요청합니다.TCP 핸드 셰이크 안정성

질문은이 세 방향 핸드 쉐이크가 신뢰성을 달성하기 위해 필요하고 충분한 조건이며, 심지어 두 번째 메시지 이후에 일련 번호가 동기화 된 경우에도 까다로운 경우입니다.

통찰력이 있으십니까?

답변

3

서버가 클라이언트가 SYN-ACK를 수신 한 것을 어떻게 알 수 있습니까? 클라이언트가 syn-ack를 수신했음을 확인하기 위해 명시 적으로 ACK를 보내지 않는 한 서버는이를 알 수 없습니다.

이 세 번째 ACK가 삭제되면 서버는 SYN-ACK를 다시 보내고 클라이언트가 SYN-ACK가 중복되면 "이봐, 내 이전 ACK가 삭제되었을 것입니다. 그냥 ACK를 다시 보냅니다. " 서버가 AKC를 얻을 때까지 계속됩니다.

+1

정확하고 서버가 올바르게 알 필요가 없습니까? 왜 클라이언트는 실제로 syn-ack을 인정하지 않고 단순히 데이터를 보내기 시작할 수 없습니다. – Varun

+0

클라이언트와 서버 모두 연결이 설정되었는지 확인해야합니다. 이것은 클라이언트와 서버가 모두 연결에 필요한 자원을 예약해야하기 때문입니다. – Oleksi

+0

클라이언트는 syn 보내기시 자원을 할당하고 서버는 syn-ack를 전송할 때이를 수행합니다. 여기서 세 번째 ack는 여기에 있습니다. 내가 가지고있는 질문을 본다. 제 3의 대답이 정말로 필요하다. 나의 분석은 제안한다. 두 번째 메시지 자체를 게시한다. 양쪽 당사자는 모든 매개 변수를 동기화하고, 원한다면 그들은 단순히 교통을 시작할 수있다. ack는 데이터에 피기 백 일 수 없습니다. 나는 그 질문을 분명히 밝히기를 희망한다. – Varun

관련 문제