문제

시스템은 UDP를 사용하고 전방 오류 수정을 사용하여 몇 개의 패킷이 손실 되더라도 레트 랜트 메이트없이 전체 메시지를 전송할 수 있습니다. 이것은 실제로 잘 작동합니까, 아니면 여분의 오버 헤드가 너무 많은 폐기물입니까?

도움이 되었습니까?

해결책

VoIP (Voice), 오류를 피하고 싶은 곳 및 위치와 같은 일부 응용 프로그램에 유용하다고 생각합니다. 당신은 멈추기를 원하지 않습니다 (알몸 패킷을 재전송하려면) 대기 (재전송 될 때까지).

따라서 위에 구현 될 수 있습니다 실시간 전송 프로토콜 UDP의 맛.

대기 시간이 끔찍하지 않습니까?

순방향 오류 수정이 엔드 투 엔드 지연이 증가하는지 묻고 있습니까? 그렇다면 대답은 "아니오"라고 생각하지만 필요한 대역폭이 증가합니다.

나는 당신이 항상 이미 필요하다고 생각합니다 약간 지터를 피하기 위해 대기 시간; 예를 들어, "전체 음성 채널을 200msec로 지연 시키자, 모든 패킷이 인터넷을 가로 지르는 데 0에서 200msec까지가 걸릴 수 있으며, 다시 조립되어 D-to-A 변환기를 통해 전송 될 수 있습니다. 다른 쪽 끝. "

이러한 숫자가 주어지면 전방 오류 수정이없는 경우 200msec 기간마다 각각 20msec의 데이터를 포함하는 10 개의 패킷을 보내는 것을 의미 할 수 있습니다. 끝.

전방 오류 수정이있을 때마다 200msec 기간마다 10 개의 패킷을 전송한다는 것을 의미 할 수 있습니다. 각 패킷은 20msec의 데이터와 이미 다른 패킷 (또는 아마도 당신, 아마도 당신에게 전송 된 10msec의 데이터가 포함되어 있습니다. 20 대신 30 패킷을 보내십시오). 그런 다음 단일 패킷이 손실되면 운반 된 데이터는 중복으로 전달되어 (다른 두 패킷 각각의 절반) 디코딩 된 출력의 결함을 피합니다.

다른 팁

또한 하드 드라이브 및 광학 디스크와 같은 저장 매체에도 적합하며, 여기서 부패하지 않은 데이터를 얻기 위해 소스로 돌아갈 수는 없습니다. 실제로 하드 드라이브와 광 디스크는 모두 전진 오류 수정을 매우 광범위하게 사용합니다.

전방 오류 수정은 또한 무선 통신에서 광범위하게 사용되며, 오류는 한 번에 몇 비트에 불과한 경향이 있습니다. 전체 패킷을 단일 비트 오류로 잃지 않고 포워드 오류 수정을 사용하여 손상된 비트를 고정합니다.

응용 프로그램에 따라 다릅니다.

게임과 같은 응용 프로그램의 경우 약간의 데이터를 잃어 버리면 큰 차이가 없으므로 오류 수정이 항상 필요합니다.

그러나 애플리케이션에 구체적인 주문 데이터가 필요한 경우 일종의 오류 수정이 필요합니다.

"오버 헤드"의 문제가 아니며 "응용 프로그램"에 관한 것입니다.

간단한 대답은 대역폭이 높은 지수 ( "장거리") 링크를 통해 전달하는 경우 전진 오류 수정이 의미가 있습니다. 그렇지 않으면 아마 그렇지 않을 것입니다.

재전송의 "가격"이 당신이 지불하고자하는 것보다 높을 때.
예를 들어 위성은 전파 시간이 매우 길어서 몇 바이트를 더 보내고 패킷을 다시 보내는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top