SIP
Материал из Википедии — свободной энциклопедии
- Прикладной уровень
- HTTP, SMTP, FTP, TFTP, DHCP, SSH, IRC, SNMP, DNS,
IMAP, NNTP, SIP, Telnet, BitTorrent, XDR, rlogin… - Транспортный уровень
- TCP, UDP, SCTP, DCCP, RTP, RUDP…
- Сетевой уровень
- IPv4, IPv6, ARP, RARP, ICMP, IGMP
- Канальный уровень
- Ethernet, 802.11 WiFi, Token ring, FDDI, PPP,
SLIP, ATM, DTM, Frame Relay, SMDS… - Физический уровень
- RS-232, EIA-422, RS-449, EIA-485…
SIP (англ. Session Initiation Protocol — протокол установления сессии) — протокол прикладного уровня, разработанный IETF MMUSIC Working Group, и предлагаемый стандарт установления, изменения и завершения интерактивного пользовательского сеанса, включающего мультимедийные элементы, такие как видео, голос, мгновенные сообщения (instant messaging), он-лайн игры и виртуальная реальность.
Протокол начал разрабатываться в 1996 года Хенингом Шулзри (Henning Schulzrinne, Колумбийский университет) и Марком Хэндли (UCL), начиная с 1996 года. В ноябре 2000 года SIP был утверждён как сигнальный протокол проекта 3GPP и постоянный элемент архитектуры IMS. Наряду с H.323, SIP — один из основополагающих протоколов Voice over IP.
Протокол обладает следующими достоинствами:
- Простой. Включат себя только шесть функций, что облегчает его использование.
- Независимый от транспортного уровня, может использовать UDP, TCP, ATM и тд.
- Экономичный, все запросы формируются на основе текста.
[править] Проект протокола
Клиенты SIP традиционно используют порт 5060 TCP и UDP для соединения серверов и других элементов SIP. В основном SIP используется для установления и разъединения голосовых и видеозвонков. При этом он может использоваться и в любых других приложениях, где требуется установка соединения, таких как Event Subscription and Notification, Terminal mobility и так далее. Существует большое количество RFC, относящихся к SIP и определяющих поведение таких приложений. Для передачи самих голосовых и видеоданных используют другие транспортные протоколы, чаще всего Real-time Transport Protocol (RTP).
Главной задачей разработки SIP было создание сигнального протокола и протокола установления соединений для IP коммуникаций, который может поддерживать расширенный набор функций обработки вызова и услуг, представленных в существующей ТфОП. Сам протокол SIP не определяет этих функций, а сосредоточен только на процедурах установления звонка и сигнализации. При этом он был спроектирован обеспечивать создание таких функций элементов сети, как Прокси-сервер (Proxy Servers) и Пользовательские Агенты (User Agents). При помощи этих элементов можно поддерживать базовые телефонные операции: набор номера, звонок телефонного аппарата, возможность после набора услышать длинные или короткие гудки. В мире SIP реализация этих функций и используемая терминология другие, нежели в традиционной телефонии, но для конечного пользователя поведение остаётся тем же.
Телефонные сети на основе SIP могут поддерживать и более современные услуги, обычно предоставляемые Signalling System 7 (SS7), несмотря на значительное различие этих двух протоколов. SS7 характеризуется сложной, централизованной интеллектуальной сетью и простыми, неинтеллектуальными, терминалами (традиционные телефонные аппараты). SIP является протоколом типа точка-точка. Как протоколы такого класса он требует только очень простую (и, соответственно, хорошо масштабируемую) сеть с интеллектом, встроенным в оконечные элементы на периферии (терминалы, построенные как физические устройства или программы). Другими словами, функции SIP реализованы в терминальных устройствах (т.е. на границе сети), в отличие от традиционных возможностей SS7, которые поддерживаются самой сетью.
Хотя существует много других сигнальных протоколов VoIP, SIP характеризуется его сторонниками как относящийся к сообществу IP, а не к телекоммуникационной индустрии. SIP стандартизирован и контролируется главным образом IETF, в то время как протокол H.323 семейства VoIP был традиционно теснее связан с ITU. Однако эти две организации так или иначе одобрили оба протокола.
SIP используется вместе с несколькими другими протоколами и участвует только в сигнальной части сессии связи. SIP выполняет роль носителя для SDP, который описывает media данные в рамках сессии, например какие порты IP должны быть использованы, какой использовать кодек. В типичном применении "сессии" SIP — это просто потоки пакетов RTP. RTP является непосредственным носителем голосовых и видеоданных.
Первая предложенная версия стандарта (SIP 2.0) была определена в RFC 2543. Протокол был дополнительно уточнён в RFC 3261, хотя многие реализации по-прежнему основаны на промежуточных версиях стандарта. Обратите внимание, что номер версии остался 2.0.
SIP похож на HTTP и разделяет с ним общие принципы проектирования: он пригоден для чтения человеком и структурирован в отношении запросов и откликов. Сторонники SIP также заявляют о нём как о более простом, по сравнению с H.323. Однако некоторые склонны считать, что, в то время как первоначально целью SIP была простота, в своём сегодняшнем виде он стал так же сложен, как и H.323. Другие считают, что SIP — протокол без состояний, который тем самым даёт легко реализовать восстановление при отказе и другие возможности, которые затруднены в протоколах с состояниями, таких как H.323. Этот аргумент приобрёл религиозный характер, но, судя по всему, SIP выиграл сражение, если не войну протоколов. SIP разделяет с HTTP много кодов состояний, таких как известный '404 not found'. SIP и H.323 не ограничены голосовой связью, они могут обслуживать любой сеанс связи, от голосового до видеосеанса или приложений будущего.
[править] Внешние ссылки
- Курс изучения SIP от авторов очень популярного прокси SIP с открытым исходным кодом
- Страница форума SIP
- Обзор Протокола SIP
- Asterisk и SIP wiki