HTTPS ใช้ TCP หรือ UDP หรือไม่


คำตอบ:


41

HTTPS สามารถเรียกใช้ผ่านโปรโตคอลการขนส่งสตรีมที่เชื่อถือได้ ปกติแล้วจะเป็น TCP แต่ก็อาจเป็น SCTP ไม่คาดว่าจะทำงานบน UDP ซึ่งเป็นโปรโตคอลดาตาแกรมที่ไม่น่าเชื่อถือ (อันที่จริงแล้วในขณะที่ไม่ใช่ชื่ออย่างเป็นทางการนั่นเป็นวิธีที่ดีในการจดจำว่ามันคืออะไร)

การกำหนด IANA สำหรับ UDP เป็นเรื่องในอดีต ในเวลานั้นเกือบทุกโปรโตคอลจะได้รับมอบหมายทั้งหมายเลขพอร์ต TCP และ UDP แม้ว่ามันจะถูกคาดหวังว่ามันจะใช้เพียงครั้งเดียวเท่านั้น มีการพูดคุยถึงการรวมการลงทะเบียนหมายเลขพอร์ตและเคยกำหนดหนึ่งพอร์ตให้กับหนึ่งโปรโตคอลจากที่นี่เป็นต้นไป นั่นคือเพื่อให้ง่ายต่อการปรับใช้โปรโตคอลการขนส่งในอนาคตที่จะต้องมีการลงทะเบียนของตนเอง ฉันไม่ทราบว่าการอภิปรายสรุปอย่างไร


1
การใช้งาน SSL ส่วนใหญ่เปิดเผยว่าเป็นซ็อกเก็ต SSL ดังนั้นจึงบอกเป็นนัยถึง TCP มีการใช้การขนส่งอื่น ๆ เกิดขึ้นน้อยมาก
Nasko

3
คำเตือน: คำตอบนี้ล้าสมัย (9 ปีที่แล้ว) ดูคำตอบเกี่ยวกับโปรโตคอล QUIC ซึ่งเป็นการใช้งานที่ Google ใช้กับ Chrome แค่พูด.
ivanleoncz

33

มันใช้ TCP มันจะยากที่จะรันบน UDP โดยไม่มีการรับประกันว่าแพ็คเก็ตจะมาถึง หากแพ็กเก็ตไม่มาถึงข้อมูลที่เข้ารหัสจะไม่สามารถถอดรหัสได้


4
หรือถ้าแพ็กเก็ตมาถึงตามคำสั่งเนื่องจาก UDP ไม่มีข้อกำหนดสำหรับการเรียงลำดับแพ็กเก็ตใหม่เช่น TCP
janneb

3
จะไม่ไปที่ -1 เพราะเป็นเรื่องอื้อฉาวเล็กน้อย แต่มันก็คุ้มค่าที่จะสังเกตว่ามันไม่มีเหตุผลที่มันจะไม่สามารถวิ่งบน UDP ได้ มันอาจจะผิดปรกติ แต่ก็เป็นไปได้
ThatGraemeGuy

12

ในครั้งต่อไปถ้าคุณสงสัยว่าบริการพอร์ตเริ่มต้นทำงานบน tcp หรือ udp คุณสามารถดู / etc / services บนเครื่อง linux


3
หรือเครื่อง Windows ในพรอมต์คำสั่ง:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy

1
My / etc / services ยังแสดงรายการ 80 / udp ด้วย ที่จริงแล้วบริการจำนวนมากได้จัดสรรทั้งสองพอร์ต "ในกรณี" ฉันเดา
Peter Eisentraut

8

ทุกวันนี้ HTTPS สามารถรันได้ทั้งบน TCP หรือ UDP

โปรโตคอล "QUIC" ใหม่มีวัตถุประสงค์เพื่อแทนที่การเชื่อมต่อ TCP หลายการเชื่อมต่อด้วยการเชื่อมต่อ UDP แบบมัลติเพล็กซ์และดังนั้นจึงสามารถจัดการ SSL และ HTTPS:

HTTPS → SSL → QUIC flow → UDP → IP

QUIC เริ่มต้นพัฒนาในปี 2555 โดย Google และอยู่ระหว่างการตรวจสอบ IETF สำหรับรายละเอียดเพิ่มเติมดูที่ Wikipedia


นี่ควรเป็นคำตอบโดยพิจารณาจากสถานการณ์ปัจจุบัน ตัวอย่างเช่นสำหรับวัตถุประสงค์ในการทดลองฉันสามารถบล็อกการรับส่งข้อมูล HTTPS สำหรับ IP ที่ระบุโดยใช้DROPเป้าหมายบนmangleโต๊ะโดยใช้udpโปรโตคอลสำหรับกฎ
ivanleoncz

2
+1 ไม่ได้คาดหวังว่าจะได้เรียนรู้บางสิ่งเมื่อคลิกที่คำถามนี้
T.Coutlakis

7

แบบจำลอง OSI ช่วยให้โปรโตคอลเลเยอร์ที่สูงกว่าสามารถทำงานบนโปรโตคอลพื้นฐานใด ๆ ที่ให้บริการที่ถูกต้อง HTTPS คือ HTTP โดยใช้ความปลอดภัย SSL / TLS โดยทั่วไป SSL / TLS จะทำงานบน TCP แต่ไม่มีสิ่งใดที่จะหยุดคุณไม่ให้รันบน UDP, SCTP หรือโปรโตคอลเลเยอร์การขนส่งอื่น ๆ

แท้ที่จริง HTTPS ผ่าน TCP และ UDP นั้นถูกกำหนดเป็น "รู้จัก" โดย IANA และมีหมายเลขพอร์ตที่สงวนไว้

ดูhttp://www.iana.org/assignments/port-numbersสำหรับพอร์ต "โปรโตคอล" / ชุดโปรโตคอล


1
ดูตัวอย่างtools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) สำหรับวิธีที่ SSL / TLS สามารถเรียกใช้ผ่าน UDP
pehrs

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.