dlaczego nie możemy mieć połączenia UDP między przeglądarką a serwerem? Dlaczego połączenie tcp jest możliwe (gniazdo sieciowe), ale nie udp?Dlaczego nie ma połączenia UDP przez przeglądarkę nawet z HTML5?
Odpowiedz
HTML5 nie zezwala na dowolne połączenia TCP.
Zamiast tego, gniazda internetowe to specjalny nowy protokół oparty na TCP, który umożliwia komunikację dwukierunkową.
Podobnie, WebRTC to specjalny nowy protokół oparty na protokole UDP, który umożliwia komunikację peer-to-peer.
Dozwolone arbitralne połączenia w gnieździe to major otwór bezpieczeństwa.
Prawda, ale nawet websocket to TCP, a nie UDP –
@Cgraphics: Nie ma sensu dopuszczać gniazd internetowych UDP. Gniazda sieciowe polegają na właściwościach protokołu TCP, takich jak zamawianie i gwarantowana dostawa. – SLaks
Uwaga: WebRTC jest implementowany tylko na górze UDP w Firefoksie. –
Możesz uzyskać dostęp do UDP za pomocą WebRTC, który jest dostępny w najnowszych wersjach Chrome i Firefox. Umożliwia to między innymi bezpośrednią przeglądarkę - połączenia z przeglądarką bez konieczności przechodzenia przez serwer.
Czy możemy też tworzyć połączenia UDP między przeglądarką a serwerem? Zgaduję, prawda? –
w rzeczywistości, RTC nadal potrzebuje serwera do uzgadniania, co nie jest jasne z tekstu pokazanego ... – dandavis
Uważam, że jest to możliwe, tak. Konieczne będzie wdrożenie po stronie serwera protokołów WebRTC. Słyszałem o takich rzeczach, o których mówiono, ale nie wiem o żadnej rzeczywistej realizacji. – rjmunro
Dawno, dawno temu, http był protokołem zaprojektowanym do transportu tekstu i html jak papier lub czasopismo. Informacje te muszą być kompletne i wiarygodne, więc http opiera się na TCP, a nie na UDP.
Później ludzie chcieli wyświetlać wiele multimediów przez przeglądarkę. Niektóre aplikacje, takie jak flash i Windows Media Player, wkradły się do przeglądarki i wyświetlały się w tle jako wtyczka. Mogą odtwarzać wideo z UDP i przeglądarką, nieważne.
W dzisiejszych czasach chcemy więcej, wszystkiego, nawet pokazując indeks giełdowy lub pokoje rozmów, te scenariusze w czasie rzeczywistym, które nie są odpowiednie dla http. Wreszcie, importowane jest gniazdo internetowe.
Widzisz, przeglądarki nie potrzebują UDP z powodów historycznych. Wideo może być zaspokojone przez istniejące wtyczki.
To po prostu głupie. Istnieją specyficzne zastosowania UDP do przesyłania strumieniowego wideo na żywo, które znacznie zmniejszają przeciążenie sieci. Telewizja kablowa jest dobrym przykładem dla multicast. Ogólnie rzecz biorąc, wideo na żywo może upuścić niektóre klatki i jest to lepsze doświadczenie dla użytkowników, jeśli opóźnienie jest mniejsze. –
Filmy w formacie HTML5 nadal nie mogły transmitować strumieni wideo na żywo. Jest to możliwe dopiero niedawno dzięki rozszerzeniom Media Source Extensions w niektórych przeglądarkach. Nawet wtedy zwykle jest dostarczany z WebSockets przez TCP i jestem pewien, że UPD byłby jeszcze lepszy. – protometa
@protometa Dzięki za komentarz, i znalazłem WebRTC i ten post http: // stackoverflow.com/questions/13040752/websockets-udp-and-benchmarks – Anderson
- 1. Dlaczego XInclude nie jest obsługiwana przez żadną przeglądarkę?
- 2. Dlaczego inicjalizacja zerowa ma miejsce, nawet jeśli baza ma konstruktor deklarowany przez użytkownika?
- 3. python cgitb nie działa przez przeglądarkę
- 4. Dlaczego nie ma "instrukcji połączenia metody złożonej", tj. ". ="?
- 5. Dlaczego nie ma IntStream.flatMapToObj()?
- 6. Odbieranie błędu w protokole UDP: odmówiono połączenia
- 7. Jak uniemożliwić buforowanie pliku json przez przeglądarkę
- 8. zapobiega przeganianiu przez przeglądarkę zewnętrznych połączeń aplikacji
- 9. Określanie systemu DRM obsługiwanego przez przeglądarkę
- 10. Błąd połączenia NodeJS - nie ma metody "rejestrator"
- 11. Dlaczego moje połączenia nie są zamknięte, nawet jeśli jawnie pozbywam się DataContext?
- 12. Wywołanie Ajax zostaje anulowane przez przeglądarkę
- 13. wykryć, jeśli nie ma połączenia internetowego
- 14. NetworkInfo.isConnected() zwraca true, ale nie ma połączenia
- 15. Dlaczego nie ma jednolitej_dystrybucji?
- 16. Dlaczego SLComposeViewController nie ma delegata?
- 17. Dlaczego Silverlight lub Flash nie implementują gniazd UDP?
- 18. Dlaczego mDNS (Bonjour, Avahi, itp.) Używa UDP?
- 19. Dlaczego nie ma std :: inplace_merge_unique?
- 20. Python UDP Broadcast nie wysyłający
- 21. Dlaczego nie ma obiektu StrongReference?
- 22. Czy skrypty PHP nadal działają, nawet jeśli użytkownik zamknął przeglądarkę?
- 23. Czy mogę użyć WebRTC do otwarcia połączenia UDP?
- 24. Dlaczego nie ma std :: protect?
- 25. Sposób ostrzegania użytkownika, gdy nie ma połączenia z Internetem
- 26. Emulator VS dla Androida nie ma połączenia z Internetem
- 27. Dlaczego domyślne Azure ciąg połączenia bazy danych ma Pooling = False
- 28. Dlaczego funkcja Date.new nie inicjalizuje połączenia?
- 29. Pokaż wszystkie daty między, nawet jeśli nie ma wyniku
Ponieważ websockets są zbudowane na TCP. –
Aplikacje w pakiecie chrome mają dostęp do interfejsu API dla UDP io. – dandavis
Czy możesz wyjaśnić więcej, więc mogę google to? Czym jest to API? Czy mówisz o webRTC? –