2011-06-13 2 views
0

나는 TCP와 비슷한 신뢰할 수있는 네트워킹 프로토콜을 만들었으며 재전송 임계 값에 대한 좋은 기본값이 패킷에 있어야하는지 궁금해하고있었습니다 (연결이 끊어진다고 가정하기 전에 패킷을 재전송 한 횟수). 네트워크에서 최적의 재시도 횟수를 찾는 방법은 무엇입니까? 또한; 모든 네트워크가 동일한 신뢰성을 갖는 것은 아니므로,이 '최적의'값은 네트워크마다 다를 것이라고 생각합니다. 최적의 재시도 횟수를 계산하는 좋은 방법이 있습니까? 또한; 다시 시도하기 전에 몇 밀리 초를 기다려야합니까? 지금까지 있기 때문에, 당신은 TCP, TCP를 사용을 원하는 경우에.패킷이 손실되었다고 가정하기 전에 패킷을 몇 번이나 재전송해야합니까?

고려되어야합니다 너무 많은 현실 세계의 복잡성을 선물로

+0

이 프로토콜은 통과하는 NAT 방화벽에 대해 UDP 위에 구축됩니다. – IDWMaster

답변

0

응용 프로그램이이 값을 설정할 수있게되어 결국 기본값 5로 다시 시도됩니다. 이것은 테스트 시나리오에서 많은 수의 네트워크에서 작동하는 것처럼 보였습니다.

1

이 질문은 대답 할 수 없습니다. 전송 계층에 대한 사용자 정의 프로토콜을 설계하려는 경우 TCP로 코딩 된 누적 된 경험이 40 년 이상 지속됩니다.

기존의 문헌을 보지 않으면 책상에 앉지 않아도 좋은 백가지 설계 고려 사항을 놓치게됩니다.

+0

방화벽 제한 때문에 TCP는 간단하게 문제가되지 않습니다. (우리는 모바일 장치와 데스크톱 컴퓨터 용 P2P 응용 프로그램을 개발하고 있으며 대부분의 사람들은 NAT를 재구성하는 방법을 모르기 때문에 UDP가 필요합니다 (UDP 구멍 펀치). 우리는 그 위에 신뢰성있는 계층을 구축하고 있습니다.). – IDWMaster

+0

그런 다음 휠을 다시 발명하지 마십시오. 훔치십시오. http://en.wikipedia.org/wiki/UDP_hole_punching – msw

+0

문제는 UDP가 신뢰성이 없기 때문에 다시 발명해야한다는 것입니다. 이미 UDP 구멍 펀치를 사용하고 있습니다. 그것은 단지 TCP와 같은 "신뢰성있는"것이 아닙니다. – IDWMaster

관련 문제