Link Control Protocol: Difference between revisions

Content deleted Content added
JAnDbot (talk | contribs)
m robot Adding: cs:LCP
m v2.05 - Fix errors for CW project (Reference list missing / disambiguation page with disallowed <ref>)
 
(36 intermediate revisions by 27 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 specificthe informationstandards thatof the prospectiveensuing [[data]] transmission will require.

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
 
== External linksStructure ==
{| 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
|-
! 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 ===
[[Category:Link protocols]]
{| class="wikitable"
[[Category:Internet standards]]
! 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
|-
!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==
[[cs:LCP]]
{{Reflist}}
[[de:Link Control Protocol]]
 
[[es:Link Control Protocol]]
== External links ==
[[fr:Link Control Protocol]]
* {{IETF RFC|1570|link=no}}: PPP LCP Extensions
[[ru:LCP]]
* {{IETF RFC|1661|link=no}}: The Point-to-Point Protocol (PPP)
[[zh:链路控制协议]]
* {{IETF RFC|1663|link=no}}: PPP Reliable Transmission
* {{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}}
[[Category:Link protocols]]
[[Category:Internet Standards]]