Source: The ABCs of IP Addressing by Gilbert Held (2002)


The actual entry in the Sequence Number field is based on the number of bytes in the TCP data field, i.e., because TCP was developed as a byte-oriented protocol, each byte in each packet is assigned a sequence number. Because it would be most inefficient for TCP to transmit 1 byte at a time, groups of bytes, typically 512 or 536, are placed in a segment and 1 sequence number is assigned to the segment and placed in the sequence field. That number is based on the number of bytes in the current segment as well as previous segments, because the sequence field value increments its count until all 16-bit positions are used and then continues via a rollover through zero. For example, assume the first TCP segment contains 512 bytes and a second segment will have the sequence number 1024.

I looked it up in a dictionary and I don't think there was a meaning that even remotely matched what I've got there in that paragraph.

  • 4
    It just means when all the bits are on (so an unsigned field holds its maximum value), incrementing (adding 1) results in all the bits being off. Same as with a four-digit display showing incrementing decimal values as 9997, 9998, 9999, 0000, 0001, 0002.,,, – FumbleFingers Reinstate Monica Nov 26 '16 at 19:12
  • 1
    Surprisingly, neither the Collins dictionary nor the New Hacker's Dictionary includes a definition of this meaning of "rollover". Collins includes 6 definitions of "roll over", and 48 definitions of "roll". The New Hacker's Dictionary defines "overclock", "overflow bit", "overrun", and "overrun screw". It is not obvious that any of these 57 definitions would answer the original poster's question, even though the meaning that the original poster asked about has been standard for decades. – Jasper Nov 26 '16 at 20:49
  • 1
    The word in this meaning is too arcane to appear in a general purpose dictionary. – Tᴚoɯɐuo Nov 26 '16 at 21:28
  • 1
    Wikipedia has a good article on integer overflow. I haven't heard "rollover" very often. We usually say the value "wraps around". – isanae Nov 26 '16 at 22:08
  • Aside from the silliness of writing 216pp(!!) on such a simple subject: (1) although IP and TCP were originally specified for MTU down to 576 and thus TCP segment as small as 536 (without options), I don't think anyone has used links or even paths under 1400 since the (still unambiguous!) Clilnton administration and (2) TCP seqnum and acknum are 32-bit not 16-bit. – dave_thompson_085 Nov 27 '16 at 0:52

Have you ever seen a car with a mechanical odometer?

Many cars and trucks built during the 1960s had odometers that showed mileages between 0.0 miles and 99,999.9 miles. The odometers were connected via gears to the vehicles' transmissions. The last digit slowly moved as the wheels moved. Each time a 9 needed to be replaced by a 0, the next digit would also be bumped up by 1. When the vehicle reached 100,000 miles, all of the digits would move. The odometer was said to "roll over". (In this example, it would "roll over" from 99,999.9 miles to 0.0 miles.)

The computer programming use of the word "rollover" is analogous. An unsigned 8-bit character can roll over from 255 to 0. A 16-bit unsigned integer can roll over from 65,535 to 0.

In general, most programming languages either throw errors when overflow occurs, or silently roll over from a data type's maximum value to its minimum value. For example, a signed 8-bit character can roll over from 127 to -128, and a 16-bit signed integer can roll over from 32,767 to -32,768.

| improve this answer | |

It is saying that since the sequence number is limited to 16-bits, at some point the transmission may overrun the maximum number represented by 16-bits (2^16) at which point the count begins at 0 again.

Think of a snake biting its tail

(source: benelles.com)

In a 32- or 64-bit world, it is modulo 16-bit arithmetic.

| improve this answer | |

I think you may be dealing with jargon here: the meaning of the word would mean what that group of users uses it to mean. You would have to consult a programmer to discover what they mean by it.

| improve this answer | |
  • Susan, while it is jargon-ish the use of "rollover" here is not much different from any other use of the word. It basically means that the sequence "runs out" of numbers and "rolls over" back to 0. – Andrew Nov 26 '16 at 20:10
  • @Andrew: It is very different from other uses of the word. Spot! Roll over, boy! Good dog. Unless one conceptualizes the data field as a physical thing, as in Jasper's example of the odometer whose digits are mounted on a turning wheel, and unless one understands that the bitwise incrementation is similar to that wheel, the figurative leap cannot be made, and one would wonder what it means for a numerical value to roll over. – Tᴚoɯɐuo Nov 27 '16 at 11:47
  • @TRomano "to roll over" and "rollover" are different words. "Rollover plan" is common parlance. – Andrew Nov 27 '16 at 13:19
  • @Andrew. The noun is formed from the verb. Compare "a turnabout" – Tᴚoɯɐuo Nov 27 '16 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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