They have different meanings. proto="tcp" in "tcp://" case means that we find a tcp protocol address, so we set it to "tcp"; that in default case means that we found no protocol information in the address so we fall back to "tcp" protocol. This will make code more clear especially we want to support more protocols in the future.