2013-07-15 11 views
7

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?

+0

Ponieważ websockets są zbudowane na TCP. –

+0

Aplikacje w pakiecie chrome mają dostęp do interfejsu API dla UDP io. – dandavis

+0

Czy możesz wyjaśnić więcej, więc mogę google to? Czym jest to API? Czy mówisz o webRTC? –

Odpowiedz

5

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.

+0

Prawda, ale nawet websocket to TCP, a nie UDP –

+0

@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

+0

Uwaga: WebRTC jest implementowany tylko na górze UDP w Firefoksie. –

1

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.

+0

Czy możemy też tworzyć połączenia UDP między przeglądarką a serwerem? Zgaduję, prawda? –

+1

w rzeczywistości, RTC nadal potrzebuje serwera do uzgadniania, co nie jest jasne z tekstu pokazanego ... – dandavis

+0

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

-1

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.

+0

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. –

+0

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

+0

@protometa Dzięki za komentarz, i znalazłem WebRTC i ten post http: // stackoverflow.com/questions/13040752/websockets-udp-and-benchmarks – Anderson

Powiązane problemy