@Override
  public Class<? extends Header> getDataPacketHeaderType() {
    if (protocol == null) return null;
    
    switch (protocol) {
      case TCP:
        return TcpHeader.class;
      case UDP:
        return UdpHeader.class;
      default:
        return null;
    }
  }