EIGRP Header Format
EIGRP Protocol Structure
EIGRP uses IP protocol 88 and includes a common header format for all packet types. Understanding the header structure is essential for packet analysis and troubleshooting.
EIGRP Header Structure
Every EIGRP packet begins with a 20-byte header that contains common fields for all packet types:
EIGRP Header Format (20 bytes)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Opcode | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual Router ID | Autonomous System |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Field Lengths:
- Version: 8 bits
- Opcode: 8 bits
- Checksum: 16 bits
- Flags: 32 bits
- Sequence Number: 32 bits
- Acknowledgment Number: 32 bits
- Virtual Router ID: 16 bits
- Autonomous System: 16 bits
Header Field Descriptions
Field | Size | Purpose | Values |
---|---|---|---|
Version | 8 bits | EIGRP version number | 2 (current version) |
Opcode | 8 bits | Packet type identifier | 1=Update, 3=Query, 4=Reply, 5=Hello |
Checksum | 16 bits | Error detection | IP checksum algorithm |
Flags | 32 bits | Packet flags | Init, Conditional Receive, etc. |
Sequence Number | 32 bits | Reliable transport | Incremental for reliable packets |
Acknowledgment Number | 32 bits | Reliable transport | Last received sequence number |
Virtual Router ID | 16 bits | Multiple instances | 0 for single instance |
Autonomous System | 16 bits | AS number | 1-65535 |
Packet Type Opcodes
Opcode | Packet Type | Reliability | Purpose |
---|---|---|---|
1 | Update | Reliable | Routing information exchange |
3 | Query | Reliable | Route recomputation request |
4 | Reply | Reliable | Response to Query |
5 | Hello | Unreliable | Neighbor discovery/keepalive |
6 | IPX SAP | Reliable | IPX Service Advertisement |
Reliable Transport Protocol (RTP)
EIGRP Reliability
EIGRP implements its own reliable transport protocol to ensure critical packets are delivered:
- Sequence Numbers: Track packet order and detect duplicates
- Acknowledgments: Confirm packet reception
- Retransmission: Resend unacknowledged packets
- Selective Reliability: Only critical packets need acknowledgment
Packet Encapsulation
EIGRP Packet Structure
(14 bytes)
(20 bytes, Protocol=88)
(20 bytes)
(Variable length)
Hello Packets
The Foundation of EIGRP
Hello packets are the foundation of EIGRP neighbor relationships. They handle neighbor discovery, maintain relationships, and exchange essential parameters.
Hello Packet Purpose
Neighbor Discovery
Find other EIGRP routers on the network segment
Keepalive
Maintain existing neighbor relationships
Parameter Exchange
Share timers, K-values, and capabilities
Failure Detection
Detect neighbor failures through timeouts
Hello Timers
Interface Type | Hello Interval | Hold Time | Reasoning |
---|---|---|---|
High-bandwidth | 5 seconds | 15 seconds | Fast failure detection |
Low-bandwidth | 60 seconds | 180 seconds | Bandwidth conservation |
Multipoint | 60 seconds | 180 seconds | Reduce overhead |
Update Packets
The Heart of EIGRP
Update packets carry routing information and are the primary mechanism for topology exchange in EIGRP. They use reliable transport and contain route advertisements.
Update Packet Purpose
Route Advertisement
Advertise reachable networks to neighbors
Topology Exchange
Share network topology information
Metric Propagation
Distribute path metrics and components
Route Withdrawal
Remove unreachable networks
Update Packet Characteristics
Characteristic | Value | Description |
---|---|---|
Opcode | 1 | Update packet identifier |
Reliability | Reliable | Requires acknowledgment |
Delivery | Unicast/Multicast | Depends on scenario |
Sequence Number | Non-zero | Incremental for reliability |
Flags | Init, EOT | Control packet flow |
Query Packets
DUAL Query Process
Query packets are sent when a router goes active for a destination and needs to find alternate paths. They're a crucial part of the DUAL algorithm's loop prevention mechanism.
Query Packet Purpose
Route Recomputation
Request alternate paths when primary route fails
DUAL Process
Essential part of diffusing computation
Loop Prevention
Ensure loop-free alternate paths
Network Convergence
Coordinate network-wide route changes
When Queries Are Sent
Scenario | Trigger | Action | Query Scope |
---|---|---|---|
Successor Loss | Primary path fails | No feasible successor available | All neighbors except source |
Metric Increase | Path cost increases | Exceeds feasible successor threshold | Affected neighbors |
Interface Down | Interface failure | Direct connection lost | All neighbors |
Neighbor Loss | Neighbor goes down | Routes through neighbor lost | Remaining neighbors |
ACK Packets
Reliable Transport
ACK packets provide reliable transport for EIGRP by acknowledging receipt of reliable packets. They ensure that critical routing information is delivered successfully.
ACK Packet Purpose
Acknowledgment
Confirm receipt of reliable packets
Reliable Transport
Enable EIGRP's reliable delivery mechanism
Flow Control
Manage packet transmission rate
Error Recovery
Trigger retransmission of lost packets
ACK Packet Characteristics
Characteristic | Value | Description |
---|---|---|
Opcode | 5 | Same as Hello packet |
Reliability | Unreliable | Does not require acknowledgment |
Sequence Number | 0 | Unreliable packets use sequence 0 |
Acknowledgment Number | Non-zero | Sequence number being acknowledged |
Data | None | No TLV data in ACK packets |
Reliable Transport Mechanism
Reliable Packet Flow
Send
Reliable packet
transmitted
Receive
Neighbor receives
packet
ACK
ACK packet
sent back
Confirm
Sender receives
ACK