Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Does HTTPS use TCP or UDP?

share|improve this question
3  
Why is this a -? I wish all questions were this clear and consise –  Mark Henderson Jan 3 '10 at 9:53
add comment

4 Answers

up vote 15 down vote accepted

HTTPS can run over any reliable stream transport protocol. Normally that's TCP, but it could also be SCTP. It is NOT expected to run over UDP, which is an unreliable datagram protocol (in fact, while that's not its official name, that's a good way to remember what it is).

The IANA assignment for UDP is historical; at the time, nearly every protocol was assigned both the TCP and UDP port numbers, even if it was expected that it would only ever use one. There has been discussion of merging the port number registries, and only ever assigning one port to one protocol from here on. That is to make it easier to deploy future transport protocols that would otherwise need their own registries. I'm not aware of how that discussion concluded.

share|improve this answer
    
Most SSL implementations expose it as SSL socket, so it implies TCP. There are very rare occurrences of using any other transport. –  Nasko May 14 '10 at 18:10
add comment

It uses TCP. It would be difficult to run it on UDP without the guarantee of packets arriving. If the packets don't arrive, the encrypted data will not be decipherable.

share|improve this answer
2  
Or if the packets arrive out of order, as UDP contains no provisions for reordering packets like TCP. –  janneb Jan 3 '10 at 9:42
1  
Not going to -1 you because it'd be a little pedantic, but its worth noting that there's no reason it couldn't be run over UDP. It may be atypical, but it is possible. –  ThatGraemeGuy Jan 3 '10 at 12:01
add comment

For the next time, if you wonder if a default port service run on tcp or udp, you can look at /etc/services on a linux machine.

share|improve this answer
1  
Or a Windows machine, in a command prompt: find "https" %windir%\system32\drivers\etc\services –  ThatGraemeGuy Jan 3 '10 at 11:57
    
My /etc/services also lists 80/udp. Actually, many services have allocated both ports, "just in case" I guess. –  Peter Eisentraut Jan 9 '10 at 23:03
add comment

The OSI model allows higher layer protocols to run over any underlying protocol providing the correct services. HTTPS is HTTP using SSL/TLS security. SSL/TLS typically runs on top of TCP, but there is nothing to stop you from running it on UDP, SCTP or any other transport layer protocol.

As a matter of fact HTTPS over TCP and UDP are both defined as "well known" by IANA and have reserved port numbers.

See http://www.iana.org/assignments/port-numbers for the "official" ports/protocol combinations.

share|improve this answer
1  
See for example tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) for how SSL/TLS can run over UDP. –  pehrs Jan 3 '10 at 11:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.