CDP and LLDP
CDP (Cisco Discovery Protocol) and LLDP (Link Layer Discovery Protocol) are both layer two protocols which allow network devices to learn information about neighboring devices. The information exchanged includes:
- Identity – such as system name and system description.
- Port – which interface we are receiving the data from on the remote (neighboring) device
- Capabilities – such as layer two switching or layer three routing.
- Neighbors – the information which that device has learnt about its neighbors.
Cisco Discovery Protocol
CDP is a Cisco proprietary protocol which has been in use on Cisco devices for many
years. If CDP is enabled, a device will send out information about itself using
the multicast MAC address
01-00-0c-cc-cc-cc. It will also listen for CDP transmissions
from neighbors to that address. The actual information exchanged may vary between
devices and is included in the frame as a series of Type Length Values (TLVs).
CDP information a device receives from its neighbors gets stored in a local table which can be queried locally from the command line of the device or remotely using SNMP. The Wireshark project provides several examples of CDP packets.
Link Layer Discovery Protocol
LLDP is a vendor-neutral standard defined by the IEEE in
802.1AB. It allows devices from different manufacturers to learn information about
each other and behaves similarly to CDP. LLDP uses Ethernet frames and is usually
sent to one of several multicast MAC addresses (
01:80:c2:00:00:00) with the Ethertype 0x88CC.
Like CDP, LLDP is sent as Type Length Values (TLVs) and stored locally for all neighbors. LLDP information may also be made available for querying with SNMP. Exactly what information is shared by devices may vary between manufacturers.
What’s the difference between CDP and LLDP?
The main difference is that CDP is a proprietary protocol implemented by Cisco, whereas LLDP is used by many vendors (including Cisco). The details of what information gets exchanged may also vary slightly between LLDP and CDP. Both protocols serve the same purpose and operate in similar ways to share similar types of data between neighboring devices.