Computer networking end-to-end protocols: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Howard C. Berkowitz
(New page: {{subpages}} '''End-to-end protocols''' are responsible for the transfer of data from a source to one or more network endpoints. "End-to-end" is the Internet architectural term, while the ...)
 
imported>Howard C. Berkowitz
(Work-in-progress save)
Line 4: Line 4:
A broader definition, however, lets the idea of this layer include tunneling: the endpoint that encapsulates a packet is logically at the transport layer, even though it is not the true application endpoint.
A broader definition, however, lets the idea of this layer include tunneling: the endpoint that encapsulates a packet is logically at the transport layer, even though it is not the true application endpoint.


There are two major types of end-to-end protocol: true host-to-host, and between [[midbox]]es that act as a proxy for an endpoint. Proxy midboxes, such as tunneling devices, firewalls, and [[network address translator]]s terminate the end-to-end stream and convey an independent end-to-end stream either to the true host or to another midbox.
The basic end-to-end protocols send information between two true endpoints, or to a '''midbox''' that acts as a '''proxy''' for an endpoint host. There are also related protocols that set up end-to-end paths with a specific [[quality of service]]. Yet another type, '''[[tunneling protocol]]''' takes the of a packet from a '''payload protool''', and wraps it in a '''delivery protocol''' to pass it across a network that might not be compatible with the format of the payload packet. Closely related are protocols that set up a [[security association]] between two points and apply some type of [[encryption]], for purposes such as [[data integrity]], [[data authentication]], or [[data confidentiality]] function
 
Proxy midboxes, such as tunneling devices, firewalls, and [[network address translator]]s terminate the end-to-end stream and convey an independent end-to-end stream either to the true host or to another midbox. They manipulate the received packet in one or more useful ways, such as stripping the delivery protocol from a tunneled packet, terminate a high-overhead security function.
==End-to-end protocols for the Internet Protocol Suite==
Three protocols provide a classic end-to-end service:
:*'''[[User Datagram Protocol]]'''<ref name=RFC0758>{{citation
| url = http://www.ietf.org.rfc/rfc0758.txt
| title =  User Datagram Protocol
| first = J. | last = Postel
| date = August 1980
| id = RFC0758
| publisher = Internet Engineering Task Force
}}</ref>
:*'''[[Transmission Control Protocol]]''' <ref name=RFC0793>{{citation
| url = http://www.ietf.org.rfc/rfc0793.txt
| title =  Transmission Control Protocol
| first = J. | last = Postel
| date = September 1981
| id = RFC0793
| publisher = Internet Engineering Task Force
}}</ref> There have been a number of modifications and guidelines for use, which help improve performance. These are discussed in the TCP article.
:*'''[[Real Time Transport Protocol]]'''<ref name=RFC3550>{{citation
| id = RFC3550
| url = http://www.ietf.org.rfc/rfc3550.txt
| title =  RTP: A Transport Protocol for Real-Time Applications
| first1 = H. | last1 = Schulzrinne | first2 = S. | last2=Casner| first3=R. | last3 = Frederick | first4=V. | last4= Jacobson
| date = July 2003
| publisher = Internet Engineering Task Force
}}</ref> (RTP) is different in that its packets ride on top of UDP packets, but is usually considered an end-to-end protocol for one-way transfer, perhaps of a one-to-many [[multicast]] for distribution of real-time information such as [[voice over IP]] or [[streaming video]].  There are a number of specifications for the different payloads that RTP can carry; see the RTP article.
 
Rather than getting feedback in the form of RTP packets, the individual recipients send control information back to the transmitting endpoint, using the '''[[Real Time Transport Control Protocol]]''' (RTCP), which is documented in the RTCP specification.  RTCP, as an abbreviation, is somewhat unfortunate since it has nothing to do with TCP, the Transmission Control Protocol.
 
The '''[[Reliable Stream Transfer Protocol]]''' (RSTP) is an application-level protocol that helps a real-time application select the appropriate end-to-end protocol for the data to be transmitted. <ref name=RFC2326>{{citation
| url = http://www.ietf.org.rfc/rfc2326.txt
| id = RFC2326
| title =  Real Time Streaming Protocol
| first1 = H. | last1 = Schulzrinne | first2 = A. | last2=Rao | first3=R. | last3 = Lanphier
| date = April 1998
| publisher = Internet Engineering Task Force
}}</ref>
 
Features of these three protocols is summarized below.
{| class="wikitable"
|-
! Feature
! TCP
! UDP
! RTP/RTCP
|-
| Connection orientation
| Yes
| No
| Yes[1]
|-
| Reliable delivery of ordered packets
| Yes
| No
| Yes
|-
| Reliable delivery but may reorder packets
| No
| No
| No
|-
| Data error detection
| Yes
| Yes
| Yes
|-
| Data error correction
| Yes
| No
| No
|-
| Flow and congestion control
| Yes
| No
| Yes[2]
|-
| Multiple data streams between endpoints
| No
| No
| Yes
|}
:*Note 1: unidirectional data transfer
:*Note 2: indirect, using the RTCP monitoring receiver
==Resource Reservation Protocol==
==Tunneling protocols==
Tunneling protocols are usually needed, in the Internet, when an IP payload packet has addresses incompatible with those of the delivery network. A number of historic tunneling protocols carried fundamentally different delivery protocols, such as Novell IPX, over an Internet Protocol delivery network.
===Generic Route Encapsulation===
 
===IP in IP===
 
==Cryptographic mechanisms with attributes of end-to-end protocols==
 
===IPSec Authentication Header===
 
===IPSec Encapsulating Security Payload Header===
 
===IPSec Transport Mode===
 
===IPSec Tunnel Mode===
 
==References==
{{reflist|2}}

Revision as of 15:49, 13 May 2008

This article is developing and not approved.
Main Article
Discussion
Definition [?]
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

End-to-end protocols are responsible for the transfer of data from a source to one or more network endpoints. "End-to-end" is the Internet architectural term, while the OSI Reference Model puts the function primarily into the transport layer.

A broader definition, however, lets the idea of this layer include tunneling: the endpoint that encapsulates a packet is logically at the transport layer, even though it is not the true application endpoint.

The basic end-to-end protocols send information between two true endpoints, or to a midbox that acts as a proxy for an endpoint host. There are also related protocols that set up end-to-end paths with a specific quality of service. Yet another type, tunneling protocol takes the of a packet from a payload protool, and wraps it in a delivery protocol to pass it across a network that might not be compatible with the format of the payload packet. Closely related are protocols that set up a security association between two points and apply some type of encryption, for purposes such as data integrity, data authentication, or data confidentiality function

Proxy midboxes, such as tunneling devices, firewalls, and network address translators terminate the end-to-end stream and convey an independent end-to-end stream either to the true host or to another midbox. They manipulate the received packet in one or more useful ways, such as stripping the delivery protocol from a tunneled packet, terminate a high-overhead security function.

End-to-end protocols for the Internet Protocol Suite

Three protocols provide a classic end-to-end service:

Rather than getting feedback in the form of RTP packets, the individual recipients send control information back to the transmitting endpoint, using the Real Time Transport Control Protocol (RTCP), which is documented in the RTCP specification. RTCP, as an abbreviation, is somewhat unfortunate since it has nothing to do with TCP, the Transmission Control Protocol.

The Reliable Stream Transfer Protocol (RSTP) is an application-level protocol that helps a real-time application select the appropriate end-to-end protocol for the data to be transmitted. [4]

Features of these three protocols is summarized below.

Feature TCP UDP RTP/RTCP
Connection orientation Yes No Yes[1]
Reliable delivery of ordered packets Yes No Yes
Reliable delivery but may reorder packets No No No
Data error detection Yes Yes Yes
Data error correction Yes No No
Flow and congestion control Yes No Yes[2]
Multiple data streams between endpoints No No Yes
  • Note 1: unidirectional data transfer
  • Note 2: indirect, using the RTCP monitoring receiver

Resource Reservation Protocol

Tunneling protocols

Tunneling protocols are usually needed, in the Internet, when an IP payload packet has addresses incompatible with those of the delivery network. A number of historic tunneling protocols carried fundamentally different delivery protocols, such as Novell IPX, over an Internet Protocol delivery network.

Generic Route Encapsulation

IP in IP

Cryptographic mechanisms with attributes of end-to-end protocols

IPSec Authentication Header

IPSec Encapsulating Security Payload Header

IPSec Transport Mode

IPSec Tunnel Mode

References

  1. Postel, J. (August 1980), User Datagram Protocol, Internet Engineering Task Force, RFC0758
  2. Postel, J. (September 1981), Transmission Control Protocol, Internet Engineering Task Force, RFC0793
  3. Schulzrinne, H.; S. Casner & R. Frederick et al. (July 2003), RTP: A Transport Protocol for Real-Time Applications, Internet Engineering Task Force, RFC3550
  4. Schulzrinne, H.; A. Rao & R. Lanphier (April 1998), Real Time Streaming Protocol, Internet Engineering Task Force, RFC2326