Proprietary protocol

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In telecommunications, a proprietary protocol is a communications protocol owned by a single organization or individual.[1]

Enforcement[edit]

Proprietors may enforce restrictions through patents and by keeping the protocol specification a trade secret. These restrictions are intended to give the owner control of the protocol.

Examples[edit]

The Skype protocol is a proprietary protocol.[2]

The Venturi Transport Protocol (VTP) is a patented proprietary protocol (U.S. Patent 5,883,893) that is designed to replace TCP transparently in order to overcome perceived inefficiencies related to wireless data transport.

Microsoft Exchange Server protocols are proprietary[3] open access protocols. The rights to develop and release protocols are held by Microsoft, but all technical details are free for access and implementation.[4]

Effects of incompatibility[edit]

The use of proprietary instant messaging protocols meant that instant messaging networks were incompatible and people were unable to reach friends on other networks.[5]

Proprietary extensions to open protocols[edit]

Microsoft developed a proprietary extension to the Kerberos network authentication protocol for the Windows 2000 operating system. The extensions made the protocol incompatible with implementations supporting the original standards, and this has raised concerns that this, along with the licensing restrictions, effectively denies products unable to conform to the standard access to a Windows 2000 Server using Kerberos.[6]

Reverse engineering[edit]

Reverse engineering is the process of retrieving a protocol’s details from a software implementation of the specification. Methods of reverse-engineering a protocol include packet sniffing and binary decompilation and disassembly.

There are legal precedents when the reverse-engineering is aimed at interoperability of protocols.[7][8][9] In the United States, the Digital Millennium Copyright Act grants a safe harbor to reverse engineer software for the purposes of interoperability with other software.[10][11]

References[edit]