Link Control Protocol: Difference between revisions

Content deleted Content added
Kbdankbot (talk | contribs)
Robot - rename category per CFD 2009 March 8
m v2.05 - Fix errors for CW project (Reference list missing / disambiguation page with disallowed <ref>)
 
(27 intermediate revisions by 22 users not shown)
Line 1:
In [[computingcomputer network]]ing, the '''Link Control Protocol''' (LCP) forms part of the [[Point-to-Point Protocol]] (PPP), within the family of [[Internet protocols]]. In setting up PPP communications, both the sending and receiving devices send out LCP [[packet (information technology)|packet]]s to determine the standards of the ensuing data transmission. LCP is logically a [[Transport Layer]] protocol according to the [[OSI model]], however occurs as part of the [[Data link layer]] in terms of the actual implemented [[Network stack]]
 
The LCP [[Communications protocol|protocol]]:
* checks the identity of the linked device and either accepts or rejects the [[peer-to-peer| peer]] device
* determines the acceptable packet size for transmission
* searches for errors in configuration
* can terminate the link if requirements exceed the parameters
LCP packets are sent during the ''Link Establishment Phase'' of PPP, after the [[physical layer]] has been made ready from the ''Link Dead'' state. No transmission of [[Network layer|network-layer protocols]] such as [[Internet Protocol|IP]] may be transmitted across PPP until after the ''Link Establishment'' or ''Authentication'' phases are complete. When a connection is requested by a peer to be terminated (or if ''Authentication'' fails), the ''Link Termination Phase'' is performed, and PPP returns to the ''Link Dead'' state.
Devices cannot use PPP to transmit data over a network until the LCP packet determines the acceptability of the link, but LCP packets are embedded into PPP packets and therefore a basic PPP connection has to be established before LCP can reconfigure it.
The LCP over PPP packets have control code 0xC021 and their info field contains the LCP packet, which has four fields. (Code, Id, Length, Data)
* Code: Operation requested: configure link, terminate link, ... and acknowledge and deny codes.
* data: Parameters for the operation
 
== Structure ==
LCP was created to overcome the noisy and unreliable physical lines of the time (e.g. phone lines on dial up modems), in a way which didn't lock the PPP protocol into specific proprietary vendor protocols and physical transmission media.
{| class="wikitable"
! style="width:7%; border-bottom:none; border-right:none;" |''Offsets''
! style="width:7%; border-left:none;" |[[Octet (computing)|Octet]]
! colspan="8" |0
! colspan="8" |1
! colspan="8" |2
! colspan="8" |3
|-
! style="border-top: none" |[[Octet (computing)|Octet]]
![[Bit]]
! style="width:2.4%;" |0
! style="width:2.4%;" |1
! style="width:2.4%;" |2
! style="width:2.4%;" |3
! style="width:2.4%;" |4
! style="width:2.4%;" |5
! style="width:2.4%;" |6
! style="width:2.4%;" |7
! style="width:2.4%;" |8
! style="width:2.4%;" |9
! style="width:2.4%;" |10
! style="width:2.4%;" |11
! style="width:2.4%;" |12
! style="width:2.4%;" |13
! style="width:2.4%;" |14
! style="width:2.4%;" |15
! style="width:2.4%;" |16
! style="width:2.4%;" |17
! style="width:2.4%;" |18
! style="width:2.4%;" |19
! style="width:2.4%;" |20
! style="width:2.4%;" |21
! style="width:2.4%;" |22
! style="width:2.4%;" |23
! style="width:2.4%;" |24
! style="width:2.4%;" |25
! style="width:2.4%;" |26
! style="width:2.4%;" |27
! style="width:2.4%;" |28
! style="width:2.4%;" |29
! style="width:2.4%;" |30
! style="width:2.4%;" |31
|-
! colspan="34" |[[Point-to-Point Protocol#Structure|Point-to-Point Protocol]]
|-
!0
!0
| colspan="8" |Flag (0x7E)
| colspan="8" |Address (0xFF)
| colspan="8" |Control (0x03)
| colspan="8" |Protocol (0xC0)
|-
!4
!32
| colspan="8" |Protocol, cont. (0x21)
! colspan="24" |
|-
! colspan="34" |Link Control Protocol
|-
!0
!0
| colspan="8" |Code
| colspan="8" |Identifier
| colspan="16" |Length
|-
! colspan="2" rowspan="5" |
! colspan="32" |''Link Configuration''
|-
! colspan="2" rowspan="4" |Code
|1
! colspan="2" rowspan="4" |Name
| colspan="5" |Configure-Request
! colspan="4" rowspan="4" |Description
| colspan="18" |Peer requesting connection with the specified options over link defaults.
|-
|2
| colspan="5" |Configure-Ack
| colspan="18" |Peer requesting connection with the specified options over link defaults.
|-
|3
| colspan="5" |Configure-Nak
| colspan="18" |Peer recognizes given options, but some are not acceptable.
|-
|4
| colspan="5" |Configure-Reject
| colspan="18" |Peer does not recognize or is prohibited from accepting some given options.
|-
!4
!32
| colspan="32" |List of option data, size variable
|-
! colspan="2" rowspan="3" |
! colspan="32" |Link Termination
|-
! colspan="2" rowspan="2" |Code
|5
! colspan="2" rowspan="2" |Name
| colspan="5" |Terminate-Request
! colspan="4" rowspan="2" |Description
| colspan="18" |Peer requesting to close the connection.
|-
|6
| colspan="5" |Terminate-Ack
| colspan="18" |Peer accepts connection closure, or requires re-negotiation.
|-
!4
!32
| colspan="32" |Uninterpreted data by the sender, size variable
|-
! colspan="2" rowspan="2" |
! colspan="32" |Link Maintenance
|-
! colspan="2" |Code
|7
!Name
| colspan="5" |Code-Reject
! colspan="2" |Description
| colspan="21" |Peer does not recognize a provided LCP code.
|-
!4
!32
| colspan="32" |Faulting LCP Packet, size variable
|-
! colspan="2" rowspan="2" |
! colspan="2" |
! colspan="30" |LCP-Specific Codes
|-
! colspan="2" |Code
|8
!Name
| colspan="5" |Protocol-Reject
! colspan="2" |Description
| colspan="21" |Peer does not recognize a protocol used within the ''LCP Opened'' state.
|-
!4
!32
| colspan="16" |Rejected PPP Protocol
| colspan="16" |Faulting Packet, size variable
|-
! colspan="2" rowspan="3" |
! colspan="2" rowspan="3" |Code
|9
! rowspan="3" |Name
| colspan="5" |Echo-Request
! colspan="3" rowspan="3" |Description
| colspan="20" |Peer is requesting an Echo-Reply.
|-
|10
| colspan="5" |Echo-Reply
| colspan="20" |Peer is responding to an Echo-Request (only acceptable when in ''LCP Opened.'')
|-
|11
| colspan="5" |Discard-Request
| colspan="20" |Peer is sending data to be discarded ("sinked") by the remote peer.
|-
!4
!32
| colspan="32" |Magic Number (0, if '''Configure-Request''' / '''Configure-Ack''' have not established one yet)
|-
!8
!64
| colspan="32" |Uninterpreted data by the sender, size variable
|}
 
=== Link Configuration Option ===
== External links ==
{| class="wikitable"
* [http://tools.ietf.org/html/rfc1570.html RFC1570]: PPP LCP Extensions
! style="width:7%; border-bottom:none; border-right:none;" |''Offsets''
* [http://tools.ietf.org/html/rfc1661.html RFC1661]: The Point-to-Point Protocol (PPP)
! style="width:7%; border-left:none;" |[[Octet (computing)|Octet]]
* [http://tools.ietf.org/html/rfc1663.html RFC1663]: PPP Reliable Transmission
! colspan="8" |0
! colspan="8" |1
! colspan="8" |2
! colspan="8" |3
|-
! style="border-top: none" |[[Octet (computing)|Octet]]
![[Bit]]
! style="width:2.4%;" |0
! style="width:2.4%;" |1
! style="width:2.4%;" |2
! style="width:2.4%;" |3
! style="width:2.4%;" |4
! style="width:2.4%;" |5
! style="width:2.4%;" |6
! style="width:2.4%;" |7
! style="width:2.4%;" |8
! style="width:2.4%;" |9
! style="width:2.4%;" |10
! style="width:2.4%;" |11
! style="width:2.4%;" |12
! style="width:2.4%;" |13
! style="width:2.4%;" |14
! style="width:2.4%;" |15
! style="width:2.4%;" |16
! style="width:2.4%;" |17
! style="width:2.4%;" |18
! style="width:2.4%;" |19
! style="width:2.4%;" |20
! style="width:2.4%;" |21
! style="width:2.4%;" |22
! style="width:2.4%;" |23
! style="width:2.4%;" |24
! style="width:2.4%;" |25
! style="width:2.4%;" |26
! style="width:2.4%;" |27
! style="width:2.4%;" |28
! style="width:2.4%;" |29
! style="width:2.4%;" |30
! style="width:2.4%;" |31
|-
!0
!0
| colspan="8" |Type
| colspan="8" |Length
! colspan="16" |
|-
! colspan="2" |
! colspan="2" |Type
|0
! colspan="2" |Name
| colspan="5" |Vendor Specific
! colspan="3" |Description
| colspan="19" |Vendor specific data not defined by the PPP specification.
|-
!2
!16
| colspan="24" |Vendor's [[Organizationally unique identifier|Organizationally Unique Identifier]]
| colspan="8" |Kind (OUI Subtype)
|-
!6
!48
| colspan="32" |Vendor defined data, size variable
|-
! colspan="2" |
! colspan="2" |Type
|1
! colspan="2" |Name
| colspan="5" |[[Maximum receive unit|Maximum-Receive-Unit]]
! colspan="3" |Description
| colspan="19" |Defines a peer's MRU, overriding the default of 1,500 octets.
|-
!2
!16
| colspan="16" |The maximum-receive-unit for this peer's implementation
! colspan="16" |
|-
! colspan="2" |
! colspan="2" |Type
|3
! colspan="2" |Name
| colspan="5" |Authentication-Protocol
! colspan="3" |Description
| colspan="19" |Defines an [[authentication protocol]] for a remote peer to [[Authentication|authenticate]] with before transitioning phases.
|-
!2
!16
| colspan="16" |The requested authentication protocol, assigned by IANA<ref>{{Cite web |title=Point-to-Point (PPP) Protocol Field Assignments |url=https://www.iana.org/assignments/ppp-numbers/ppp-numbers.xhtml#ppp-numbers-9 |access-date=2025-03-18 |website=www.iana.org}}</ref>
| colspan="16" |Additional data for this protocol, size variable
|-
! colspan="2" |
! colspan="2" |Type
|4
! colspan="2" |Name
| colspan="5" |Quality-Protocol
! colspan="3" |Description
| colspan="19" |Defines a [[quality protocol]] for [[link quality monitoring]].
|-
!2
!16
| colspan="16" |The requested quality protocol
| colspan="16" |Additional data for this protocol, size variable
|-
! colspan="2" |
! colspan="2" |Type
|5
! colspan="2" |Name
| colspan="5" |[[Magic number (programming)|Magic-Number]]
! colspan="3" |Description
| colspan="19" |Defines a unique identifier for a peer.
|-
!2
!16
| colspan="32" |Magic number
|-
! colspan="2" rowspan="2" |
! colspan="2" |Type
|7
! colspan="2" |Name
| colspan="6" |Protocol-Field-Compression
! colspan="3" |Description
| colspan="18" |No data. Refer to [[rfc:1661|RFC 1661]] Section [[rfc:1661#section-6.5|6.5]] for details.
|-
! colspan="2" |Type
|8
! colspan="2" |Name
| colspan="8" |Address-and-Control-Field-Compression
! colspan="3" |Description
| colspan="16" |No data. Refer to [[rfc:1661|RFC 1661]] Section [[rfc:1661#section-6.6|6.6]] for details.
|}
 
==References==
[[Category:Data Link Layer protocols]]
{{Reflist}}
[[Category:Internet standards]]
 
== External links ==
[[cs:LCP]]
* {{IETF RFC|1570|link=no}}: PPP LCP Extensions
[[de:Link Control Protocol]]
* {{IETF RFC|1661|link=no}}: The Point-to-Point Protocol (PPP)
[[es:Link Control Protocol]]
* {{IETF RFC|1663|link=no}}: PPP Reliable Transmission
[[fr:Link Control Protocol]]
* {{cite web|last1=Kozierok|first1=Charles|title=PPP Link Control Protocol (LCP)|url=http://www.tcpipguide.com/free/t_PPPLinkControlProtocolLCP.htm|website=The TCP/IP Guide|accessdate=4 December 2014}}
[[ja:Link Control Protocol]]
[[Category:Link protocols]]
[[ru:LCP]]
[[Category:Internet Standards]]
[[zh:链路控制协议]]