docs: async def _handle_data(self, data):
          """
          Handle data received from the network.
          """
          try:
              _, _, verification_tag, chunks = parse_packet(data)
          except ValueError:
              return
  
          # is this an init?
          init_chunk = len([x for x in chunks if isinstance(x, InitChunk)])
          if init_chunk:
              assert len(chunks) == 1
              expected_tag = 0
          else:
              expected_tag = self._local_verification_tag
  
          # verify tag
          if verification_tag != expected_tag:
              self.__log_debug('Bad verification tag %d vs %d',
                               verification_tag, expected_tag)
              return
  
          # handle chunks
          for chunk in chunks:
              await self._receive_chunk(chunk)
  
          # send SACK if needed
          if self._sack_needed:
              await self._send_sack()