소켓을 통해 메시지를 전송하는 동안 메시지 순서가 올바른지 확인하는 방법은 무엇입니까? 따라야 할 구체적인 디자인이 있습니까? 몇 가지 방법을 제안하십시오 ...소켓 오류 발생시 메시지 순서가 올바른지 확인 하시겠습니까?
답변
TCP는 보낸 순서대로 데이터를 전달합니다. UDP는 그렇지 않습니다. 매우 드문 TCP 오류가 발생하는 오류가있는 경우 다시 시작해야합니다. UDP는 전달을 보장하지 않으므로 재전송을 요청하고 시퀀싱을 적용하려면 프로토콜을 추가해야합니다. TCP를 사용하거나 자체 시퀀스 검사를 수행하십시오.
TCP 소켓 인 경우 드롭 된 패킷 등에 대한 지원이 자동으로 TCP 스택에 내장됩니다. 패킷을 잃어 버리면 패킷이 다시 보내지기 때문에 잠깐 동안 블리핑 될 수 있다는 점을 제외하고는 아무 것도 할 필요가 없습니다. 이것은 항상 발생합니다. 아무도 알려주지 않습니다 (스위치를 쓴 사람 제외).
완전히 끊어진 연결을 처리하려는 경우 : 이는 프로토콜에 따라 다릅니다. 메시지 당 요청/응답을 수행하는 경우에는 간단하지만 대기 시간이 많이 소요됩니다. 일부 프로토콜은 요청/응답 측면에서 완전히 독립적으로 작동합니다 (요청을 보낼 때마다 응답하지 않습니다. 요청을 계속 보내면 나중에 어떤 시점에서 응답이 돌아옵니다). 그 설정에서 주변을 디자인해야합니다 : 어쩌면 마지막으로 으로 알려짐 응답이지만, 이는 여전히 청각 장애없이 처리되었을 수도 있음을 의미합니다. 따라서 모든 작업을 안전하게 반복 할 수 있기를 원할 수 있습니다. 따라서 작업을 보냈지 만 다시 완료 할 수 있는지 여부는 알 수 없습니다.
UDP를 사용하는 경우 대답은 "완전히 당신, 문제입니다, 알아 내야합니다."는 대개 각 패킷에 시퀀스 번호를 삽입하는 것을 의미합니다. 물론 UDP를 사용하고 있다면 패킷을 버려두고 패킷을 허용하고 곧 재시작하는 것이 좋습니다.
- 1. 컬렉션의 순서가 올바른지 확인하십시오.
- 2. 싱글 톤 구성 파일이 올바른지 확인 하시겠습니까?
- 3. 다형성 - 모두 올바른지 확인
- 4. 오류 메시지 내용 확인
- 5. Apache에서 URL의 % 이스케이프가 올바른지 확인
- 6. 부동 소수점 인수가 올바른지 확인
- 7. 오류 발생시 특정 오류 페이지
- 8. 순서가 바뀌는 메시지
- 9. angular.js 유효성 확인 오류 메시지
- 10. jQuery 원격 오류 메시지 확인
- 11. Emacs에서 시작 오류 메시지 확인
- 12. 셀렌 2 - 오류 메시지 확인
- 13. VMware/Vagrant 오류 메시지 확인
- 14. 소켓 : 바이트 순서가 뒤섞 임
- 15. node.js에서 요청의 유효성 확인 및 오류 발생시 종료
- 16. 소켓 PHP에서 사용자 로그인을 보내고 확인 하시겠습니까?
- 17. Python SSL 소켓 인증서 확인 실패 오류
- 18. C 프로그래밍 : 오류 발생시 free()를 호출 하시겠습니까?
- 19. 확인 메시지 모달을 통해 laravel에서 삭제 하시겠습니까?
- 20. ReloadableResourceBundleMessageSource : 메시지 파일 순서가 중요합니까?
- 21. 오류 발생시 상위 클래스에 알리기
- 22. 오류 발생시 캐치가 발생하지 않음
- 23. 안드로이드 - 터치시 터치시 오류 발생시
- 24. 오류 발생시 상태 코드 렌더링
- 25. 오류 발생시 전자 메일 알림
- 26. 모델에서 오류 발생시 ViewModel을 알리기
- 27. 오류 발생시 Curl 응답 헤더
- 28. 확인 메시지 Spring shell
- 29. xslt 1.0을 통해 xml 노드의 요소 순서가 올바른지 확인하십시오.
- 30. XML 유효성 검사기 (주어진 xml이 올바른지 확인)
질문이 명확하지 않습니다. 무슨 순서를 고려하고 있니? –
어떤 종류의 소켓과 연결/프로토콜을 사용하고 있습니까? TCP over IP는 연결 지향적이며 올바른 순서를 유지해야합니다. 그러나 그것은 당신이하고있는 일과 당신이 그것을 어떻게 사용하고 있는지에 달려 있습니다. –
TCP (사용자 고유의 메시지 경계 포함) 또는 SCTP를 사용 하시겠습니까? – harold