Почти WebRTC

По-голямата част от материала на WebRTC е фокусиран върху кодиране на приложния слой и не е благоприятна за разбиране на технологията. Нека се опитаме да навлезем по-дълбоко и да разберете как връзката, която тази сесия дръжка и кандидати, които трябва STUN и завъртете сървъри.

Почти WebRTC
Фигура 1: Двете възли в същата мрежа

Почти WebRTC
Фигура 2: Възлите в различни мрежи (един в частния, друг публично)

WebRTC успешно се справя с такива проблеми, като се използва протоколът ICE. което, обаче, изисква използването на допълнителни сървъри (STUN. оборот). За всичко това по-долу.

Двете фази WebRTC

По този начин, ние считаме, първата фаза - фазата на установяване на връзка. Тя се състои от няколко елемента. Помислете за тази първа фаза на възела, който постави началото на връзката и след това чакат.

Единствената разлика е във втория параграф.

Мислено стъпка createOffer или createAnswer SDP трябва да бъде свързан към фазите на преносни и лед кандидатки обекти.

медии поток (на медийния поток), дръжка сесия (СДП) и кандидатите (Ice кандидат) - Повече подробности някои от тези лица, а именно да се разглеждат.

Ключови лица

Медийни предавания (медийния поток)

В WebRTC там е доста сложна йерархия в потока. Всяка нишка може да се състои от множество медийни песни (MediaTrack), които от своя страна могат да се състоят от множество медийни канали (MediaChannel). Да себе си и медийни потоци могат да бъдат до известна степен също.

Почти WebRTC
Фигура 4: Два различни медии поток. Един за нас, по един за нашата трапеза

Почти WebRTC
Фигура 5: медийни потоци се състоят от медийни парчета

Почти WebRTC
Фигура 6: медийни предавания и пътеки са идентифицирани с етикети

Например, ако една медия писта може да се идентифицира с етикет, тогава защо ни е нужно за този пример се използват два медии поток, вместо един? След единична медии поток може да се предава и да се използват различни песни в него. Стигнали сме до критичните свойства на медийни потоци - те се синхронизира медии песен. Различните медийни предавания не са синхронизирани един с друг, но в рамките на всеки носител поток всички записи са възпроизведени едновременно.

По този начин, ако искаме нашите думи, нашите емоции по лицето й, както и нашето парче хартия, възпроизведен в същото време, е необходимо да се използва един и същ медиен поток. Ако това не е толкова важно, е полезно да се използват различни потоци - на снимката ще бъде по-гладка 4.

Ако някаква песен трябва да бъде изключен по време на прехвърлянето, можете да използвате функция е активирана в медиите запис.

Сесия ЕВРОВОК (SDP)

От WebRTC имат способността да редактирате SDP обект, а след това следва да се определи при получаване на местната ЕВРОВОК. Това може да изглежда малко странно, трябва да прехвърлите WebRTC, че тя ни е дал, но това е протокола. тя трябва да се зададе и при получаване на отдалечен ЕВРОВОК. Следователно, трябва да се инсталира на същия възел два дескриптора - ви, а други "(т.е. на локални и отдалечени).

След като ръкостискане възли са наясно с желанията на другия. Например, ако възел 1 поддържа кодеци и Б. и възел 2 поддържа кодеци В и С след това, тъй като всеки възел знае противника и описания му, двете възлови точки ще изберат кодек В (Фигура 7). логика връзка вече е настроен, и вие можете да прехвърлите медийни потоци, но има и друг проблем - възли все още са обвързани с механизъм за сигнализиране.

Почти WebRTC
Почти WebRTC
Фигура 7: Регулирането на кодеци

Кандидатите (Ice кандидат)

За разлика от описания на сесията е, че трябва да се инсталира само на отдалечените кандидати. Редактирането не е позволено и не може да донесе никаква полза. В някои изпълнения WebRTC кандидатите трябва да се инсталират само след инсталиране на дръжките 9 сесии.

Почти WebRTC
Фигура 8: два възела в същата мрежа

Докато възли в една и съща мрежа - всичко просто и лесно - всеки възел има само един кандидат обект (винаги се отнася до храната си, което означава, неговото местоположение в мрежата). Но кандидатите ще бъдат много по-големи, когато възлите са разположени в различни мрежи.

Ние сега се обръщат към по-сложен случай. Един възел ще бъде зад рутер (или по-точно, за NAT) и втори възел ще бъде в същата мрежа като този път (например Интернет) (Фигура 9).

Почти WebRTC
Фигура 9: един възел за NAT, а другият не

Този случай има специално решение на проблема, който вече ги разглеждаме. Начало рутер обикновено съдържа NAT маса. Този специален механизъм, предназначен да възли в рамките на частна мрежа рутер може да се прилага, например, към уебсайтове.

Да се ​​върнем към технологията WebRTC. или по-скоро на частта, която използва протокола ICE (оттук лед кандидати). Възел p2 е един кандидат (разположението си в мрежата - 10.50.200.10) и p1 възел. което е зад рутер с NAT, ще има двама кандидати - местни (192.168.0.200) и кандидат рутер (10.50.200.5). Първият не е полезно, но това е все пак, образувано в WebRTC все още не знае нищо за отдалечения сайт - тя може да бъде в една и съща мрежа, но може би не. Вторият кандидат е полезно, и, както вече знаем, че ще бъде важно пристанище (да мине през NAT).

Писане в NAT таблицата се генерира само когато данните са от вътрешната мрежа. Затова възел p1 трябва първо прехвърляне на данните, и едва след това данните за възел P2 могат да стигнат до Р1 възел.

STUN и TURN сървъра

Когато инициализиране WebRTC да посочите достъпно STUN и завъртете сървъри, които ще бъдат наречени ICE сървъри. Ако не, ще бъдат определени на сървъра, ще бъде в състояние да се свърже възли в същата мрежа (свързана с него, без да NAT) само. Веднага трябва да се отбележи, че за 3гр -net непременно използвате своя страна сървъри.

Нека разгледаме този процес, като за пример.

Пример (работа STUN сървър)

STUN сървър е обозначен с s1. Маршрутизатор, както и преди, от R1. възел - чрез Р1. Вие също ще трябва да следи NAT масата - това е означен като r1_nat. И в тази таблица, обикновено съдържа много записи от различни подмрежи възли - те няма да бъдат управлявани.

Така че, в началото, ние имаме една празна маса r1_nat.

Каква е следващата стъпка? Каква е ползата от всички? Предимства - рекорд в r1_nat маса. Сега, ако някой ще бъде изпратена към рутера r1 пакета за порт 888 рутера ще препрати пакет p1 възел. По този начин, за да се създаде малък тесен проход към скрита възел p1.

От примера по-горе, можете да получите някаква представа за NAT сървър и по същество STUN. Като цяло, механизмът на ICE и STUN / TURN сървър е точно насочен към преодоляване на NAT ограничения.

TURN сървър - е подобрена STUN сървъра. Това веднага се съставя, че всяко TURN сървър може да работи като сървър STUN. Въпреки това, има и предимства. Ако p2p комуникация е невъзможно (като в 3G мрежи), сървърът стане режим повторител (реле), което означава, действа като посредник. Разбира се, за всеки p2p след това ние не говорим, но извън възлите на ICE механизъм мислят, че комуникират директно.

По този начин е необходимо TURN сървъра в случая, когато и двамата сте зад simmetrichnymNAT (всеки за своята).

кратко резюме

Ето някои твърдения за лица WebRTC. което винаги трябва да имате предвид. Подробностите са описани по-горе. Ако някои от твърденията, че не изглежда съвсем ясно, прочетете отново от съответните точки.

Тъй като всички възли в мрежата на същия рутера. # 8617;

Този комикс например винаги е полезно да се има предвид, за да се прави разлика между комуникация в WebRTC технология за комуникация сигнал # 8617;

Много опростенчески. В действителност, СДП - е единственият данните, които се предават, и това е част от кандидатите. # 8617;

Синхронизация винаги прекарва повече време. # 8617;

В дните на Vanilla Ice кандидати бяха приети в рамките на СДП. така връзката е вече там. # 8617;

Човек може само да се съгласите, че не може да откаже. В случай на отказ, просто игнорира искането за връзка. # 8617;

Например, когато се свързвате към FTP FTP-клиенти с TCP -Server първи -съединение (за ниво приложение транспортен протокол протокол слой може да се разглежда като физически), и едва след това се прехвърля чрез FTP (т.е. протокол логика). # 8617;

Това е реализацията на libjingle и някои браузъри. Това е така, тъй като кандидатите са част от СДП и обекта се записва в него. # 8617;