def _read_mode_qsopt(self, size, kind):
        """Read Quick-Start Response option.

        Positional arguments:
            * size - int, length of option
            * kind - int, 27 (Quick-Start Response)

        Returns:
            * dict -- extracted Quick-Start Response (QS) option

        Structure of TCP QSopt [RFC 4782]:
             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
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |     Kind      |  Length=8     | Resv. | Rate  |   TTL Diff    |
            |               |               |       |Request|               |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                   QS Nonce                                | R |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                    Description
              0           0     tcp.qs.kind             Kind (27)
              1           8     tcp.qs.length           Length (8)
              2          16     -                       Reserved (must be zero)
              2          20     tcp.qs.req_rate         Request Rate
              3          24     tcp.qs.ttl_diff         TTL Difference
              4          32     tcp.qs.nounce           QS Nounce
              7          62     -                       Reserved (must be zero)

        """
        rvrr = self._read_binary(1)
        ttld = self._read_unpack(1)
        noun = self._read_fileng(4)

        data = dict(
            kind=kind,
            length=size,
            req_rate=int(rvrr[4:], base=2),
            ttl_diff=ttld,
            nounce=noun[:-2],
        )

        return data