/// This option indicates the end of the option list.
/// This option indicates the end of the option list.<br/>
/// This might not coincide with the end of the internet header according to the internet header length.
/// This is used at the end of all options, not the end of each option, and need only be used if the end of the options would not otherwise coincide with the end of the internet header.
/// May be copied, introduced, or deleted on fragmentation, or for any other reason.
/// This option identifies the U.S. classification level at which the datagram is to be protected
/// and the authorities whose protection rules apply to each datagram.
///
/// This option is used by end systems and intermediate systems of aninternet to:
/// <para>
/// This option is used by end systems and intermediate systems of an internet to:
/// <list type="number">
/// <item>Transmit from source to destination in a network standard representation the common security labels required by computer security models.</item>
/// <item>Validate the datagram as appropriate for transmission from the source and delivery to the destination.</item>
/// <item>
/// Ensure that the route taken by the datagram is protected to the level required by all protection authorities indicated on the datagram.
/// In order to provide this facility in a general Internet environment, interior and exterior gateway protocols must be augmented
/// to include security label information in support of routing control.
/// </item>
/// </list>
/// </para>
///
/// <para>
/// The DoD Basic Security option must be copied on fragmentation.
/// This option appears at most once in a datagram.
/// Some security systems require this to be the first option if more than one option is carried in the IP header,
/// but this is not a generic requirement levied by this specification.
/// </para>
///
/// a. Transmit from source to destination in a network standard representation the common security labels required by computer security models,
///
/// b. Validate the datagram as appropriate for transmission from the source and delivery to the destination,
///
/// c. Ensure that the route taken by the datagram is protected to the level required by all protection authorities indicated on the datagram.
/// In order to provide this facility in a general Internet environment, interior and exterior gateway protocols must be augmented
/// to include security label information in support of routing control.
///
/// The DoD Basic Security option must be copied on fragmentation.
/// This option appears at most once in a datagram.
/// Some security systems require this to be the first option if more than one option is carried in the IP header,
/// but this is not a generic requirement levied by this specification.
///
/// The format of the DoD Basic Security option is as follows:
/// <para>
/// The format of the DoD Basic Security option is as follows:
/// The option-type octet is viewed as having 3 fields:
/// 1 bit copied flag,
/// 2 bits option class,
/// 5 bits option number.
///
/// The copied flag indicates that this option is copied into all fragments on fragmentation.
/// 0 = not copied
/// 1 = copied
///
/// The option classes are:
/// 0 = control
/// 1 = reserved for future use
/// 2 = debugging and measurement
/// 3 = reserved for future use
///
/// DoD Extended Security Option (133), RFC 1108, is not supported because it only defines abstract option and no concrete option RFC is available.
/// EIP: The Extended Internet Protocol, RFC 1385, is not supported because according iana.org its option type is 145 but according to the RFC its option type is 138 (0x8A).
/// <list type="table">
/// <listheader>
/// <term>Bits</term>
/// <description>Description</description>
/// </listheader>
/// <item><term>1 bit</term>
/// <description>
/// Copied flag.
/// <para>
/// The copied flag indicates that this option is copied into all fragments on fragmentation.
/// <item>DoD Extended Security Option (133), RFC 1108, is not supported because it only defines abstract option and no concrete option RFC is available.</item>
/// <item>EIP: The Extended Internet Protocol, RFC 1385, is not supported because according iana.org its option type is 145 but according to the RFC its option type is 138 (0x8A).</item>
/// The SACK option is to be sent by a data receiver to inform the data sender of non-contiguous blocks of data that have been received and queued.
/// The data receiver awaits the receipt of data (perhaps by means of retransmissions) to fill the gaps in sequence space between received blocks.
/// When missing segments are received, the data receiver acknowledges the data normally by advancing
/// the left window edge in the Acknowledgement Number Field of the TCP header.
/// The SACK option does not change the meaning of the Acknowledgement Number field.
/// </para>
///
/// <para>
/// This option contains a list of some of the blocks of contiguous sequence space occupied by data that has been received and queued within the window.
/// Each contiguous block of data queued at the data receiver is defined in the SACK option by two 32-bit unsigned integers in network byte order:
/// * Left Edge of Block - This is the first sequence number of this block.
/// * Right Edge of Block - This is the sequence number immediately following the last sequence number of this block.
///
/// <list type="bullet">
/// <item>Left Edge of Block - This is the first sequence number of this block.</item>
/// <item>Right Edge of Block - This is the sequence number immediately following the last sequence number of this block.</item>
/// </list>
/// </para>
/// Each block represents received bytes of data that are contiguous and isolated;
/// that is, the bytes just below the block, (Left Edge of Block - 1), and just above the block, (Right Edge of Block), have not been received.
/// Thus, a TCP that is prepared to scale windows should send the option, even if its own scale factor is 1.
/// The scale factor is limited to a power of two and encoded logarithmically, so it may be implemented by binary shift operations.
///
/// <pre>
/// +---------+---------+---------+
/// | Kind=3 |Length=3 |shift.cnt|
/// +---------+---------+---------+
/// </pre>
///
/// <para>
/// This option is an offer, not a promise; both sides must send Window Scale options in their SYN segments to enable window scaling in either direction.
/// If window scaling is enabled, then the TCP that sent this option will right-shift its true receive-window values by 'shift.cnt' bits
/// for transmission in SEG.WND.
/// The value 'shift.cnt' may be zero (offering to scale, while applying a scale factor of 1 to the receive window).
/// </para>
///
/// <para>
/// This option may be sent in an initial SYN segment (i.e., a segment with the SYN bit on and the ACK bit off).
/// It may also be sent in a SYN,ACK segment, but only if a Window Scale option was received in the initial SYN segment.
/// A Window Scale option in a segment without a SYN bit should be ignored.
/// </para>
///
/// <para>
/// The Window field in a SYN (i.e., a SYN or SYN,ACK) segment itself is never scaled.