TCP 3 방향 핸드 셰이크에서 세 세그먼트가 전송됩니다 (SYN, SYN ACK, ACK). 세 번째 세그먼트 (ACK)가 손실되면 어떻게됩니까? 발신자가 세그먼트를 다시 보내거나 연결 설정을 포기할 것입니까? 두 호스트가 세그먼트가 손실되었다는 것을 어떻게 알 수 있습니까?TCP 핸드 셰이크 세그먼트가 손실되면 어떻게됩니까?
답변
TCP는 모든 패킷에 시퀀스 번호가 있습니다. 따라서 패킷이 손실되었는지 여부를 쉽게 알 수 있습니다. 호스트가 패킷에 대해 ACK를 얻지 못하면 단지 재전송합니다.
비록 대부분의 경우 ACK가 손실 되더라도 아주 단순한 이유로 다시 보내지 않습니다. ACK 직후에 TCP 프로토콜을 연 호스트는 데이터 전송을 시작합니다. 이 데이터는 모든 TCP 패킷과 마찬가지로 ACK 번호를 가지므로 수신자는 ACK를받습니다. 따라서 SYN-ACK의 송신자는 다음 패키지에서 "암시 적"ACK를 얻으므로 ACK를 얻지 못했다는 사실을 신경 쓰지 않아야합니다.
SYN-ACK의 재전송은 데이터가 전혀 수신되지 않는 경우에만 필요합니다.
업데이트 :
우리의 SYN가 (이 수신 부문에서 아마) 인정 된 경우 수신 세그먼트의 우선 순위 수준해야 경기 : 나는 정확히이 지정된 RFC의 장소를 발견 을 다시 설정해야하는 경우 로컬 우선 순위 수준을 정확하게 지정해야합니다.
즉, ACK가 삭제되었지만 다음 패킷이 삭제되지 않으면 모든 것이 정상입니다. 그렇지 않으면 연결을 재설정해야합니다. 어느 것이 완벽하게 이해됩니다.
저는이 특정 상황에 대한 전문가는 아니지만 클라이언트가 연결되어 있다고 생각하지만 서버는 그렇지 않을 것이라고 생각합니다. 클라이언트가 서버에 데이터를 보내려고하면 서버는이를 거부하고 "연결"을 재설정 할 수 있도록 클라이언트에 RST 패킷을 전송합니다.
서버는 SYN-ACK을 보낼 때 연결이 설정된 것으로 간주합니다. 그러나 이것은 구현 세부 사항 일 수 있습니다, 나는이 경우에 무엇을해야하는지에 대한 실제 사양을 찾지 못했습니다. 어쩌면 아무것도 없습니다. –
@LennartRegebro : [RFC 793 Section 3.4] (http://tools.ietf.org/html/rfc793#section-3.4)에 따르면 서버는 최종 ACK를 수신 할 때까지 'ESTABLISHED'상태로 들어 가지 않습니다. 'SYN + ACK '을 보내면 여전히 SYN-RECEIVED 상태입니다. 클라이언트는'SYN + ACK '를 받으면'ESTABLISHED' 상태가됩니다. –
발견 : "수신 세그먼트의 우선 순위 수준이이어야 로컬로 우선 순위 수준을 일치시켜야합니다 (리셋을 보내야하는 경우). 즉, ACK 및 * only * ACK가 삭제되면 연결이 설정됩니다. 더 많은 것들이 떨어지면 리셋됩니다. " –
- 1. TCP RST가 손실되면 어떻게됩니까?
- 2. TCP 핸드 셰이크 안정성
- 3. Nanomsg TCP 핸드 셰이크
- 4. TCP 핸드 셰이크 프로세스
- 5. REST call TCP 핸드 셰이크
- 6. TCP 4 방향 핸드 셰이크
- 7. 핸드 셰이크 이후의 TCP 패킷
- 8. TCP 핸드 셰이크 대기 시간
- 9. Ada를 사용한 TCP/IP 핸드 셰이크
- 10. 파이썬 RAW 소켓을 사용하는 TCP 핸드 셰이크
- 11. TCP 서버 핸드 셰이크 실패 스푸핑
- 12. SOCK_RAW 소켓을 사용하는 TCP 핸드 셰이크
- 13. TCP 3- 방향 핸드 셰이크 질문
- 14. accept() 메서드 및 tcp/ip 핸드 셰이크
- 15. SSL 핸드 셰이크 시간 초과
- 16. 3 웨이 핸드 셰이크 구현
- 17. Scapy에서 3 방향 핸드 셰이크
- 18. 활성 디렉토리가있는 SSO 핸드 셰이크
- 19. SocketRocket + Socketio는 핸드 셰이크
- 20. Rserve 예외 : 핸드 셰이크
- 21. Netty 핸드 셰이크 문제
- 22. 리디렉션, 앱 핸드 셰이크
- 23. SSL 핸드 셰이크 실패
- 24. BitTorrent 피어 핸드 셰이크
- 25. 이동 ListenAndServeTLS 핸드 셰이크
- 26. SignalR 핸드 셰이크
- 27. SSL 핸드 셰이크 재교섭
- 28. SocketIO4Net 핸드 셰이크 오류
- 29. 클라이언트가 TCP 핸드 셰이크 중에 RST 패킷을 보내는 이유는 무엇입니까?
- 30. TCP 핸드 셰이크 : 서버 보낸 이벤트 및 WebSocket?
https://tools.ietf.org/rfc/rfc793.txt는 어떤 일이 발생하는지 설명합니다. –
@EdHeal : 특정 부분을 지적 할 수 있습니까? – skrtbhtngr