В компьютерных сетях протокол Message Session Relay Protocol ( MSRP ) — это протокол для передачи серии связанных мгновенных сообщений в контексте сеанса связи. Приложение создает экземпляр сеанса с помощью протокола описания сеанса (SDP) через протокол инициирования сеанса (SIP) или других методов рандеву .
Протокол MSRP определен в RFC 4975. [1] Сообщения MSRP также могут передаваться с использованием посредников-одноранговых узлов, используя расширения ретрансляции, определенные в RFC 4976. [2]
MSRP используется в контексте RCS , особенно для функций мгновенного обмена сообщениями , передачи файлов и обмена фотографиями .
Синтаксис MSRP похож на другие текстовые протоколы IETF, такие как SIP, HTTP и RTSP .
MSRP требует надежного транспортного уровня, например TCP . Каждое сообщение является либо запросом, либо ответом и использует URI ; сообщение содержит заголовки и тело, которые могут переносить любые типы данных, включая двоичную информацию.
Первые 2 заголовка должны быть To-Path и From-Path, а последний должен быть Content-Type; это значительно снижает сложность парсеров. Сообщения также должны заканчиваться 7 символами тире ('-'), за которыми следует идентификатор транзакции, который появляется в первой строке; за ними следует флаг продолжения, который представляет собой один символ и конец строки (CRLF). Эта последняя строка в конце сообщений делает довольно простым поиск и обнаружение границ сообщения.
MSRP URI имеет схему (которая является "msrp" или "msrps"), полномочия, как определено RFC 3986, которые содержат IP/доменное имя и, возможно, порт, необязательный идентификатор сеанса, транспорт и дополнительные необязательные параметры. Например:
msrp://atlanta.example.com:7654/jshA7weztas;tcp
msrp
это схемаatlanta.example.com:7654
является авторитетомjshA7weztas
это идентификатор сеансаtcp
это транспортMSRP можно использовать в сеансе SIP :
Сессия MSRP устанавливается через модель предложения-ответа SIP [3] . Тип носителя m-line SDP — сообщение , а протокол — TCP/MSRP для MSRP через TCP и TCP/TLS/MSRP для MSRP через защищенный TLS. Кроме того, URI MSRP указывается в атрибуте пути .
Полный пример SDP, предоставленный в RFC:
в=0o=alice 2890844526 2890844527 В IP4 alice.example.comс= -c=IN IP4 alice.example.comт=0 0m=сообщение 7394 TCP/MSRP *a=accept-types:текст/обычныйa=путь:msrp://alice.example.com:7394/2s93i9ek2a;tcp
Адрес и порт содержатся в строках c и m, а также в атрибуте path в строке a. Обычно другие типы носителей используют строки c и m для описания адреса и порта, но в разделе 8.1 MSRP RFC 4975 говорится, что атрибут path является авторитетным источником для MSRP.