Why do some services have a question mark (?) after them?
When you ask for service version detection (-sV), Nmap does its best to find out what service is listening by sending probes and matching responses. If it can't match any known service, it falls back to a lookup in the nmap-services file. Since this is only guessing the service based on port number, Nmap appends a ? to the end of the service name.