def checksum(data): if len(data) % 2: data += b'\x00' s = sum(array.array('H',data)) s = (s & 0xffff) + (s >> 16) s += (s >> 16) return _socket.ntohs(~s & 0xffff)