This blog post discusses the RTP in EIGRP. My question is how seq number is chosen and why in sending new packet the device should mention the seq number of last packet? for example

A-----seq:23 ack:0 ---->B
A<----seq:23 ack:23---- B

No problem so far, it says actually I have received the seq:23 and I acknowledge 23.

A-----seq:24 ack:23---->B

First problem is here, why should A put ack:23 in its packet? I mean it should be zero because A have not received ack for seq:24?

A<----seq:24  ack:24-----B

and now B acknowledges A seq:24 with ack:24? Please refer to the above link, I'm a bit confused.

  • sorry im new to this forum and its actually my second post,I should have add link description,
    – Mjaryan
    Apr 29, 2014 at 13:04

1 Answer 1


Нi! Look at 61 page of RFC1889

about your question: "is how seq number is chosen"

when device sending first RTP packet of the session, seq number must be random, to make known-plaintext attacks on encryption more difficult , in next packets seq is just increment

"B first problem is here", there is no problem, A tell to B, that A has recieved ack of the last B packet(which was seq 23)

"and now B acknowledge A seq:24 with ack:24???", yes ;-), B acknowledge to A, that seq 24 was recieved, by sending ack 24


there is last version of Enhanced Interior Gateway Routing Protocol draft-savage-eigrp-02:

 The following sequence number rules must be met for the reliable
 EIGRP protocol to work correctly:

     o A sender of a packet includes its global sequence number
       in the sequence number field of the fixed header. The
       sender includes the receivers sequence number in the
       acknowledgment number field of the fixed header.
     o Any packets that do not require acknowledgment must be
       sent with a sequence number of 0.
     o Any packet that has an acknowledgment number of zero (0)
       indicates that sender is not expecting to explicitly
       acknowledging delivery. Otherwise, it is acknowledging
       a single packet.
     o Packets that are network layer multicast must contain
       acknowledgment number of 0.

But, in the rfc, there is no info about first seq number, so i`ve tested this on hardware. And as i see, seq number is starting from 1(not random, like in RTP). And it is intresting, looks like, that the seq number will be increment, until we will reboot device or restart eigrp process("no router eigrp"). "clear ip eigrp nei" wasnt drop seq num to zero, hm

  • the RFC 1889 discuss Real-time transport protocol, not Cisco Proprietary RTP in EIGRP "RTP as referenced by EIGRP refers to Cisco's proprietary Reliable Transport Protocol, not the much more commonly discussed Real-time Transport Protocol characteristic of VoIP communications" but thanks anyway
    – Mjaryan
    Apr 29, 2014 at 13:38
  • as i understand, ciscos rtp is the same like "usual" rtp, with difference: cisco uses seq\ack only in packets which contain topology changes(like a tcp), in simple eigrp hello-packets there are no seq\ack fields(like a udp). Iam not sure about first sequence number, but i`ll check this tomorrow, on my test-stand(if nobody will answer)
    – pyatka
    Apr 29, 2014 at 14:02
  • Dear friend VoIP's RTP is a wire-level protocol and Cisco RTP is a layer-4-like function!! that functions similar to TCP, but without any fancy windowing or congestion control,and it's proprietary.so there are 2 different protocol with 2 different function,anyway thanks again.
    – Mjaryan
    Apr 29, 2014 at 14:56
  • Ive updated my answer ;-)
    – pyatka
    Apr 30, 2014 at 6:08
  • Amazing my friend! the doc u have mentioned.answered almost all of my questions,thank you
    – Mjaryan
    May 1, 2014 at 13:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.