문제

한쪽에서 패킷을 보내고 다른쪽에 수신 할 이더넷 응용 프로그램을 구축하고 있습니다. RFC 3393에서와 같이 수신기 쪽의 패킷 지연을 계산하려고합니다. 따라서 발신자 쪽의 패킷에 타임 스탬프를 넣은 다음 패킷을 받 자마자 수신기 쪽에서 타임 스탬프를 가져와야합니다. 값을 빼면 타임 스탬프의 차이를 얻은 다음 후속 차이 로이 값을 빼면 IPDV 지연이 한 번의 방법을 얻을 수 있습니다. 두 시계는 동기화되지 않습니다. 따라서 모든 도움이 크게 감사드립니다. 고맙습니다.

도움이 되었습니까?

해결책

RFC 3393은 측정을위한 것입니다 변화 패킷 지연에서 지연 자체를 측정하는 것이 아닙니다.

예를 들어 보려면 : 비디오 스트리밍 응용 프로그램을 작성하고 있습니다. 가능한 한 적은 비디오 데이터를 버퍼링하려고합니다 (비디오가 가능한 빨리 재생되기 시작합니다). 항상 데이터를 항상한다고 가정 해 봅시다 언제나 기계에서 기계 B로 20ms를 가져 가기 위해 20ms가 필요합니다.이 경우 (기계 A가 비디오 데이터를 재생하는만큼 빨리 보낼 수 있다고 가정하면) 버퍼가 전혀 필요하지 않습니다. 첫 번째 프레임을받는 즉시, 다음 프레임이 필요할 때까지 도착했을 것이라는 지식에 안전하게 재생을 시작할 수 있습니다. 연주 할 때 빨리).

이것은 항상 동일하다면 20ms가 아무리 길어 지더라도 작동합니다. 1000ms 일 수 있습니다 - 첫 번째 프레임은 도착하는 데 1000ms가 걸리지 만 다음 프레임은 1000ms가 걸리고 첫 번째 프레임 바로 뒤로 전송되기 때문에 여전히 도착하자마자 재생을 시작할 수 있습니다. 다시 말해서 이미 그 위에 있습니다. 길과 잠시 여기에있을 것입니다. 분명히 현실 세계는 이와 같지 않습니다.

다른 극단을 가져 가십시오. 대부분의 경우 데이터는 20ms에 도착합니다. 때로는 5000ms가 걸릴 때를 제외하고. 버퍼를 유지하지 않고 프레임의 지연이 20ms이면 문제없이 처음 50 프레임을 재생할 수 있습니다. 그런 다음 프레임 51은 5000ms가 도착하고 5000ms에 대한 비디오 데이터없이 남겨 둡니다. 사용자는 가서 귀여운 고양이 비디오를 위해 다른 사이트를 방문합니다. 당신이 정말로 필요한 것은 5000ms의 데이터 버퍼였습니다. 그러면 괜찮 았을 것입니다.

긴 예, 짧은 점 : 당신은 무엇에 관심이 없습니다. 순수한 패킷의 지연은 변화 그 지연에서 - 그것은 당신의 버퍼가 얼마나 큰지입니다.

측정합니다 순수한 지연, 두 머신의 시계를 동기화해야합니다. 기계 A는 타임 스탬프 12337849227이있는 패킷을 보냅니다 28 그리고 그것이 시간에 머신 B에 도착했을 때 12337849227 48, 당신은 패킷이 20ms를 가져 갔다는 것을 알고있을 것입니다.

그러나 당신은 관심이 있기 때문에 변화, 당신은 (RFC 3393이 설명하는 것처럼) 기계 A의 여러 패킷이 필요합니다. 72 8, 그런 다음 10ms 나중에 Timestamp 1233784922로 패킷 2를 보냅니다. 73 8, 그런 다음 10ms 나중에 Timestamp 1233784922로 패킷 3을 보냅니다. 74 8.

Machine B는 Packet 1을 수신합니다. 12 8. 기계 A와 기계 B 사이의 일원 지연은이 경우 (기계 B의 관점에서) -600ms입니다. 이것은 분명히 완전한 쓰레기이지만 우리는 신경 쓰지 않습니다. Machine B는 Timestamp 1233784922의 생각에 패킷 2를받습니다. 15 8. 단방향 지연은 -580ms입니다. Machine B는 Timestamp 1233784922의 생각에 패킷 3을받습니다. 16 8. 단방향 지연은 다시 -580ms였습니다.

위와 같이, 우리는 절대 지연이 무엇인지 신경 쓰지 않기 때문에, 그것이 부정적이든 3 시간이든 상관하지도 않습니다. 우리가 관심을 갖는 것은 지연의 양이 20ms에 의해 다양하다는 것입니다. 따라서 20ms의 데이터 버퍼가 필요합니다.

나는 여기에서 시계 드리프트 문제를 완전히 윤활하고 있습니다 (즉, 기계 A와 B의 시계는 약간 다른 속도로 실행되므로 기계 A의 시간은 실제로 1.00001 초의 속도로 실제로 진행됩니다. 통과). 이것은 측정에서 부정확성을 유발하지만 대부분의 응용 분야에서 실질적인 효과가 문제가되지 않을 것입니다.

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