Udostępnij za pośrednictwem


Rozwiązywanie problemów z protokołem RDP Shortpath dla sieci publicznych

Ważne

Używanie funkcji RDP Shortpath dla sieci publicznych z funkcją TURN dla usługi Azure Virtual Desktop jest obecnie dostępne w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Jeśli masz problemy podczas korzystania z protokołu RDP Shortpath dla sieci publicznych, skorzystaj z informacji w tym artykule, aby pomóc w rozwiązywaniu problemów.

Weryfikowanie łączności serwera STUN/TURN i typu translatora adresów sieciowych

Możesz zweryfikować łączność z punktami końcowymi STUN/TURN i sprawdzić, czy podstawowa funkcja UDP działa, uruchamiając plik wykonywalny avdnettest.exe. Oto link pobierania do najnowszej wersji avdnettest.exe.

Możesz uruchomić avdnettest.exe polecenie, klikając dwukrotnie plik lub uruchamiając go z poziomu wiersza polecenia. Dane wyjściowe będą wyglądać podobnie do tych, jeśli łączność powiedzie się:

Checking DNS service ... OK
Checking TURN support ... OK
Checking ACS server 20.202.68.109:3478 ... OK
Checking ACS server 20.202.21.66:3478 ... OK

You have access to TURN servers and your NAT type appears to be 'cone shaped'.
Shortpath for public networks is very likely to work on this host.

Ważne

W okresie obowiązywania wersji zapoznawczej funkcja TURN jest dostępna tylko dla połączeń z hostami sesji w puli hostów weryfikacji. Aby skonfigurować pulę hostów jako środowisko weryfikacji, zobacz Definiowanie puli hostów jako środowiska weryfikacji.

Informacje o błędzie zarejestrowane w usłudze Log Analytics

Poniżej przedstawiono niektóre tytuły błędów, które mogą być widoczne w usłudze Log Analytics i co oznaczają.

ShortpathTransportNetworkDrop

W przypadku protokołu TCP rozróżniamy dwie różne ścieżki — hosta sesji do bramy, a bramę do klienta — ale nie ma to sensu w przypadku protokołu UDP, ponieważ nie ma bramy. Innym rozróżnieniem dla protokołu TCP jest to, że w wielu przypadkach jeden z punktów końcowych, a może niektóre infrastruktury w środku, generuje pakiet resetowania TCP (bit kontroli RST), co powoduje twarde zamknięcie połączenia TCP. Działa to, ponieważ protokół TCP RST (a także TCP FIN do bezpiecznego zamykania) jest obsługiwany przez system operacyjny, a także niektóre routery, ale nie aplikację. Oznacza to, że jeśli aplikacja ulegnie awarii, system Windows powiadomi element równorzędny o tym, że połączenie TCP nie istnieje, ale nie istnieje taki mechanizm dla protokołu UDP.

Większość błędów połączenia, takich jak ConnectionFailedClientDisconnect i ConnectionFailedServerDisconnect, są spowodowane przez pakiety resetowania TCP, a nie limit czasu. Nie ma możliwości, aby system operacyjny lub router zasygnalizował wszystko za pomocą protokołu UDP, więc jedynym sposobem, aby wiedzieć, że element równorzędny zniknął, to komunikat przekroczenia limitu czasu.

ShortpathTransportReliabilityThresholdFailure

Ten błąd zostanie wyzwolony, jeśli określony pakiet nie przejdzie przez, mimo że połączenie nie jest martwe. Pakiet jest niechętny do 50 razy, więc jest mało prawdopodobne, ale może się zdarzyć w następujących scenariuszach:

  1. Połączenie było bardzo szybkie i stabilne, zanim nagle przestanie działać. Limit czasu wymagany do momentu zadeklarowania utraty pakietu zależy od czasu rundy (RTT) między klientem a hostem sesji. Jeśli protokół RTT jest bardzo niski, jedna strona może próbować ponownie wysłać pakiet bardzo często, więc czas potrzebny do osiągnięcia 50 prób może być mniejszy niż zwykle wartość limitu czasu 17 sekund.

  2. Pakiet jest bardzo duży. Maksymalny rozmiar pakietu, który można przesłać, jest ograniczony. Rozmiar pakietu jest sondowany, ale może się wahać i czasami zmniejszać. W takim przypadku istnieje możliwość, że wysyłany pakiet jest zbyt duży i stale zakończy się niepowodzeniem.

ConnectionBrokenMissedHeartbeatThresholdExceeded

Jest to limit czasu na poziomie protokołu RDP. Ze względu na błędną konfigurację limit czasu na poziomie protokołu RDP czasami jest wyzwalany przed przekroczeniem limitu czasu na poziomie protokołu UDP.