พอร์ต (เครือข่ายคอมพิวเตอร์)

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

ในระบบเครือข่ายคอมพิวเตอร์พอร์ตคือปลายทางการสื่อสาร ในระดับซอฟต์แวร์ ภายในระบบปฏิบัติการพอร์ตคือโครงสร้างเชิงตรรกะที่ระบุกระบวนการ เฉพาะ หรือประเภทของ บริการ เครือข่าย พอร์ตจะถูกระบุสำหรับแต่ละโปรโตคอลการขนส่ง และการรวมที่อยู่ ด้วยหมายเลข 16 บิตที่ไม่มีลายเซ็นซึ่งเรียกว่าหมายเลขพอร์ต โปรโตคอลการขนส่งทั่วไปส่วนใหญ่ที่ใช้หมายเลขพอร์ตคือTransmission Control Protocol (TCP) และUser Datagram Protocol (UDP)

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

พอร์ตให้ บริการ มัลติเพล็กซ์สำหรับหลายบริการหรือหลายเซสชันการสื่อสารในที่อยู่เครือข่ายเดียว ในแบบจำลองไคลเอ็นต์-เซิร์ฟเวอร์ของสถาปัตยกรรมแอปพลิเคชัน เซสชันการสื่อสารหลายรายการพร้อมกันอาจเริ่มต้นขึ้นสำหรับบริการเดียวกัน

หมายเลขพอร์ต

หมายเลขพอร์ตเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงนาม ซึ่งมีค่าตั้งแต่ 0 ถึง 65535 สำหรับ TCP หมายเลขพอร์ต 0 ถูกสงวนไว้และไม่สามารถใช้ได้ ในขณะที่สำหรับUDPพอร์ตต้นทางเป็นทางเลือก และค่าศูนย์หมายความว่าไม่มีพอร์ต กระบวนการเชื่อมโยงช่องสัญญาณอินพุตหรือเอาต์พุตผ่านซ็อกเก็ตอินเทอร์เน็ตซึ่งเป็นประเภทของfile descriptorที่เกี่ยวข้องกับโปรโตคอลการขนส่งที่อยู่ IPและหมายเลขพอร์ต สิ่งนี้เรียกว่าการผูกมัด ซ็อกเก็ตถูกใช้โดยกระบวนการในการส่งและรับข้อมูลผ่านเครือข่าย ซอฟต์แวร์ระบบเครือข่ายของระบบปฏิบัติการมีหน้าที่ส่งข้อมูลออกจากพอร์ตแอปพลิเคชันทั้งหมดไปยังเครือข่ายและส่งต่อแพ็กเก็ตเครือข่ายเพื่อประมวลผลโดยจับคู่ที่อยู่ IP และหมายเลขพอร์ตของแพ็กเก็ตกับซ็อกเก็ต สำหรับ TCP มีเพียงกระบวนการเดียวเท่านั้นที่สามารถผูกกับที่อยู่ IP เฉพาะและการรวมพอร์ต ความล้มเหลวของแอปพลิเคชันทั่วไป ซึ่งบางครั้งเรียกว่าข้อขัดแย้งของพอร์ต เกิดขึ้นเมื่อหลายโปรแกรมพยายามใช้หมายเลขพอร์ตเดียวกันบนที่อยู่ IP เดียวกันกับโปรโตคอลเดียวกัน

แอปพลิเคชันที่ใช้บริการทั่วไปมักใช้หมายเลขพอร์ตที่รู้จักกันดีซึ่ง สงวนไว้โดยเฉพาะ เพื่อรับคำขอบริการจากลูกค้า กระบวนการนี้เรียกว่า การฟังและเกี่ยวข้องกับการรับคำขอบนพอร์ตที่เป็นที่รู้จักซึ่งสร้างไดอะล็อกเซิร์ฟเวอร์ไคลเอ็นต์แบบหนึ่งต่อหนึ่งโดยใช้พอร์ตการรับฟังนี้ ไคลเอ็นต์อื่นๆ อาจเชื่อมต่อกับพอร์ตการรับฟังเดียวกันพร้อมกันได้ สิ่งนี้ใช้ได้เนื่องจากการเชื่อมต่อ TCP ถูกระบุโดยทูเพิลที่ประกอบด้วยที่อยู่ภายในเครื่อง พอร์ตภายในเครื่อง ที่อยู่ระยะไกล และพอร์ตระยะไกล [1] พอร์ตที่รู้จักกันดีถูกกำหนดโดยอนุสัญญาดูแลโดยInternet Assigned Numbers Authority(ไออาน่า). ในระบบปฏิบัติการจำนวนมาก จำเป็นต้องมีสิทธิพิเศษสำหรับแอปพลิเคชันในการผูกกับพอร์ตเหล่านี้ เนื่องจากสิ่งเหล่านี้มักจะถือว่ามีความสำคัญต่อการทำงานของเครือข่าย IP ในทางกลับกัน การสิ้นสุดการเชื่อมต่อไคลเอ็นต์มักใช้หมายเลขพอร์ตสูงที่จัดสรรไว้สำหรับการใช้งานในระยะสั้น ดังนั้นจึงเรียกว่าพอร์ตชั่วคราว

หมายเลขพอร์ตทั่วไป

IANA มีหน้าที่รับผิดชอบในการประสานงานทั่วโลกของรูท DNS การกำหนดที่อยู่ IP และทรัพยากรโปรโตคอลอื่นๆ ซึ่งรวมถึงการลงทะเบียนหมายเลขพอร์ตที่ใช้กันทั่วไปสำหรับบริการอินเทอร์เน็ตที่มีชื่อเสียง

หมายเลขพอร์ตแบ่งออกเป็นสามช่วง: พอร์ตที่รู้จักกันดี พอร์ตที่ลงทะเบียนและ พอร์ต ไดนามิกหรือพอร์ตส่วนตัว

พอร์ตที่รู้จักกันดี (หรือที่เรียกว่าพอร์ตระบบ ) คือพอร์ตที่มีหมายเลขตั้งแต่ 0 ถึง 1023 ข้อกำหนดสำหรับการกำหนดใหม่ในช่วงนี้จะเข้มงวดกว่าการลงทะเบียนอื่นๆ [2]

หมายเลขพอร์ตที่มีชื่อเสียงโด่งดัง
ตัวเลข งานที่มอบหมาย
20 File Transfer Protocol (FTP) การถ่ายโอนข้อมูล
21 การควบคุมคำสั่ง File Transfer Protocol (FTP)
22 Secure Shell (SSH) การเข้าสู่ระบบอย่างปลอดภัย
23 บริการล็อกอินระยะไกล Telnetข้อความที่ไม่ได้เข้ารหัส
25 การส่งอีเมล Simple Mail Transfer Protocol (SMTP)
53 บริการระบบชื่อโดเมน (DNS)
67, 68 โปรโตคอลการกำหนดค่าโฮสต์แบบไดนามิก (DHCP)
80 Hypertext Transfer Protocol (HTTP) ที่ใช้ในเวิลด์ไวด์เว็บ
110 โปรโตคอลที่ทำการไปรษณีย์ (POP3)
119 โปรโตคอลการถ่ายโอนข่าวเครือข่าย (NNTP)
123 โปรโตคอลเวลาเครือข่าย (NTP)
143 Internet Message Access Protocol (IMAP) การจัดการจดหมายดิจิทัล
161 โปรโตคอลการจัดการเครือข่ายอย่างง่าย (SNMP)
194 อินเทอร์เน็ตรีเลย์แชท (IRC)
443 HTTP Secure (HTTPS) HTTP ผ่าน TLS/SSL
546, 547 DHCPv6รุ่น IPv6 ของ DHCP

พอร์ตที่ลงทะเบียนคือพอร์ตจาก 1024 ถึง 49151 IANA รักษารายการอย่างเป็นทางการของช่วงที่เป็นที่รู้จักและลงทะเบียนไว้ [3]

พอร์ตไดนามิกหรือพอร์ตส่วนตัวคือพอร์ตตั้งแต่ 49152 ถึง 65535 การใช้งานทั่วไปอย่างหนึ่งสำหรับช่วงนี้คือพอร์ตชั่วคราว

พฤติกรรมเครือข่าย

โปรโตคอล Transport-layerเช่นTransmission Control Protocol (TCP) และUser Datagram Protocol (UDP) ถ่ายโอนข้อมูลโดยใช้หน่วยข้อมูลโปรโตคอล (PDU) สำหรับ TCP นั้น PDU คือเซ็กเมนต์และสำหรับ UDP มันคือดาตาแกรม โปรโตคอลทั้งสองใช้ ฟิลด์ ส่วนหัวเพื่อระบุหมายเลขพอร์ตต้นทางและปลายทาง หมายเลขพอร์ตถูกเข้ารหัสในส่วนหัวของแพ็กเก็ต โปรโตคอลการขนส่ง และสามารถตีความได้อย่างง่ายดาย ไม่เพียงแต่โฮสต์ที่ส่งและรับเท่านั้น แต่ยังรวมถึงส่วนประกอบอื่นๆ ของโครงสร้างพื้นฐานเครือข่ายด้วย โดยเฉพาะไฟร์วอลล์โดยทั่วไปมีการกำหนดค่าเพื่อแยกความแตกต่างระหว่างแพ็กเก็ตตามหมายเลขพอร์ตต้นทางหรือปลายทาง การส่งต่อพอร์ตเป็นตัวอย่างการใช้งานของสิ่งนี้

การสแกนพอร์ต

แนวปฏิบัติในการพยายามเชื่อมต่อกับพอร์ตต่างๆ ตามลำดับบนโฮสต์เดียวเรียกว่าการสแกนพอร์ต ซึ่งมักจะเกี่ยวข้องกับ ความพยายามใน การแคร็ก ที่เป็นอันตราย หรือกับผู้ดูแลระบบเครือข่ายที่มองหาช่องโหว่ที่เป็นไปได้เพื่อช่วยป้องกันการโจมตีดังกล่าว ความพยายามในการเชื่อมต่อพอร์ตมักถูกตรวจสอบและบันทึกโดยโฮสต์ เทคนิคการเคาะพอร์ตใช้ชุดการเชื่อมต่อพอร์ต (การเคาะ) จากคอมพิวเตอร์ไคลเอนต์เพื่อเปิดใช้งานการเชื่อมต่อเซิร์ฟเวอร์

ตัวอย่าง

ตัวอย่างของการใช้พอร์ตคือการส่งอีเมล เซิร์ฟเวอร์ที่ใช้สำหรับส่งและรับอีเมลโดยทั่วไปต้องการสองบริการ บริการแรกใช้ในการขนส่งอีเมลไปและกลับจากเซิร์ฟเวอร์อื่น ทำได้โดยใช้Simple Mail Transfer Protocol (SMTP) แอปพลิเคชันบริการ SMTP มาตรฐานรับฟังบนพอร์ต TCP 25 สำหรับคำขอที่เข้ามา บริการที่สองมักจะเป็นPost Office Protocol (POP) หรือInternet Message Access Protocol (IMAP) ซึ่งใช้โดยไคลเอนต์อีเมลแอปพลิเคชันบนคอมพิวเตอร์ส่วนบุคคลของผู้ใช้เพื่อดึงข้อความอีเมลจากเซิร์ฟเวอร์ บริการ POP รับฟังบนพอร์ต TCP หมายเลข 110 บริการทั้งสองอาจทำงานอยู่บนโฮสต์คอมพิวเตอร์เครื่องเดียวกัน ซึ่งในกรณีนี้ หมายเลขพอร์ตจะแยกความแตกต่างของบริการที่ร้องขอโดยคอมพิวเตอร์ระยะไกล ไม่ว่าจะเป็นคอมพิวเตอร์ของผู้ใช้หรือเซิร์ฟเวอร์อีเมลอื่น

ในขณะที่หมายเลขพอร์ตการรับฟังของเซิร์ฟเวอร์ถูกกำหนดไว้อย่างดี (IANA เรียกพอร์ตเหล่านี้ว่าพอร์ตที่เป็นที่รู้จัก) หมายเลขพอร์ตของไคลเอ็นต์มักจะถูกเลือกจากช่วงพอร์ตไดนามิก (ดูด้านล่าง) ในบางแอปพลิเคชัน ไคลเอ็นต์และเซิร์ฟเวอร์ใช้หมายเลขพอร์ตเฉพาะที่กำหนดโดย IANA ตัวอย่างที่ดีคือDHCPซึ่งไคลเอ็นต์ใช้พอร์ต UDP 68 เสมอ และเซิร์ฟเวอร์ใช้พอร์ต UDP 67 เสมอ

ใช้ใน URL

บางครั้งเห็นหมายเลขพอร์ตในเว็บหรือ ตัว ระบุทรัพยากรแบบเดียวกัน (URL) ตามค่าเริ่มต้น HTTP ใช้พอร์ต 80 และ HTTPS ใช้พอร์ต 443 แต่ URL เช่นhttp://www.example.com:8080/path/ระบุว่าเว็บเบราว์เซอร์เชื่อมต่อกับพอร์ต 8080 ของเซิร์ฟเวอร์ HTTP แทน

ประวัติ

แนวคิดเรื่องหมายเลขพอร์ตถูกสร้างขึ้นโดยนักพัฒนาARPANET รุ่นแรกๆ ด้วยความร่วมมืออย่างไม่เป็นทางการของผู้เขียนซอฟต์แวร์และผู้ดูแลระบบ หมายเลขพอร์ตคำยังไม่ได้ใช้งาน มันนำหน้าด้วยการใช้คำว่าsocket numberในระยะแรกของการพัฒนาเครือข่าย หมายเลขซ็อกเก็ตสำหรับโฮสต์ระยะไกลคือปริมาณ 40 บิต [4] 32 บิตแรกคล้ายกับที่อยู่ IPv4 ในปัจจุบัน แต่ในขณะนั้น 8 บิตที่สำคัญที่สุดคือหมายเลขโฮสต์ ส่วนที่มีความสำคัญน้อยที่สุดของหมายเลขซ็อกเก็ต (บิต 33 ถึง 40) คือเอนทิตีที่เรียกว่าAnother Eightbit Numberย่อมาจาก AEN [5]วันนี้เต้ารับเครือข่ายหมายถึงแนวคิดที่เกี่ยวข้องกันแต่ชัดเจน กล่าวคือที่อยู่ภายในของจุดปลายที่ใช้ภายในโหนดเท่านั้น

เมื่อวันที่ 26 มีนาคม พ.ศ. 2515 Vint CerfและJon Postelได้เรียกร้องให้จัดทำเอกสารการใช้งานในปัจจุบันและสร้างแคตตาล็อกหมายเลขซ็อกเก็ตใน RFC 322 ขอให้ผู้ดูแลระบบเครือข่ายส่งบันทึกหรือโทรออก " โดยอธิบายฟังก์ชันและหมายเลขซ็อกเก็ต ของโปรแกรมบริการเครือข่ายในแต่ละ HOST " [6]แค็ตตาล็อกนี้ได้รับการตีพิมพ์ในเวลาต่อมาในชื่อ RFC 433 ในเดือนธันวาคม พ.ศ. 2515 และรวมรายชื่อโฮสต์และหมายเลขพอร์ตและฟังก์ชันที่เกี่ยวข้องซึ่งใช้ในแต่ละโฮสต์ในเครือข่าย ฟังก์ชันรีจิสทรีแรกนี้ทำหน้าที่เป็นเอกสารเกี่ยวกับการใช้งานเป็นหลัก และระบุว่าการใช้หมายเลขพอร์ตขัดแย้งกันระหว่างโฮสต์บางตัวสำหรับ " บริการสาธารณะที่มีประโยชน์ " [5]เอกสารดังกล่าวสัญญาว่าจะแก้ไขข้อขัดแย้งตามมาตรฐานที่ Postel ได้เผยแพร่ในเดือนพฤษภาคม 1972 ใน RFC 349 ซึ่งในตอนแรกเขาได้เสนอการกำหนดหมายเลขพอร์ตอย่างเป็นทางการให้กับบริการเครือข่ายและแนะนำฟังก์ชันการดูแลระบบโดยเฉพาะ ซึ่งเขาเรียกว่าจักรพรรดิรักษารีจิสทรี [7] ค่า 256 ของ AEN แบ่งออกเป็นช่วงต่อไปนี้:

ช่วง AEN
ช่วงหมายเลขพอร์ต งานที่มอบหมาย
0 ถึง 63 ฟังก์ชันมาตรฐานทั่วทั้งเครือข่าย
64 ถึง 127 ฟังก์ชันเฉพาะโฮสต์
128 ถึง 239 สงวนไว้สำหรับใช้ในอนาคต
240 ถึง 255 ฟังก์ชันทดลองใดๆ

บริการTelnetได้รับการมอบหมายอย่างเป็นทางการครั้งแรกของมูลค่า 1 โดยรายละเอียดงานชุดแรกคือ: [7]

การกำหนดพอร์ตในRFC  349
หมายเลขพอร์ต งานที่มอบหมาย
1 Telnet
3 การถ่ายโอนไฟล์
5 รับสมัครงานทางไกล
7 ก้อง
9 ทิ้ง

ใน ARPANET ยุคแรก AEN ยังถูกเรียกว่าsocket name [ 8]และใช้กับ Initial Connection Protocol (ICP) ซึ่งเป็นส่วนประกอบของNetwork Control Program (NCP) [9] [10] NCP เป็นผู้บุกเบิกโปรโตคอลอินเทอร์เน็ตสมัยใหม่ ทุกวันนี้ชื่อบริการ คำศัพท์ ยังคงเชื่อมต่ออย่างใกล้ชิดกับหมายเลขพอร์ต ซึ่งเดิมเป็นสตริงข้อความที่ใช้ในฟังก์ชันเครือข่ายบางอย่างเพื่อแสดงหมายเลขพอร์ตที่เป็นตัวเลข

อ้างอิง

  1. ^ โพสเทล, จอห์น. "อาร์เอฟซี793" . สืบค้นเมื่อ29 มิถุนายน 2555 .
  2. ^ มิเชล ฝ้าย; ลาร์ส เอเกิร์ต; และคณะ (สิงหาคม 2554). ขั้นตอน ของInternet Assigned Numbers Authority (IANA) สำหรับการจัดการชื่อบริการและ Transport Protocol Port Number Registry ไออีทีเอฟ ดอย : 10.17487/RFC6335 . BCP 165. RFC 6335 .
  3. ^ "หมายเลขพอร์ต" . Internet Assigned Numbers Authority (IANA)
  4. ^ RFC 36, Protocol Notes , S. Crocker (16 มีนาคม 1970)
  5. ^ a b RFC 433, รายการหมายเลขซ็อกเก็ต , J. Postel, N. Neigus (22 ธันวาคม 1972)
  6. ^ RFC 322, Well Known Socket Numbers , V. Cerf, J. Postel (26 มีนาคม 2515)
  7. a b RFC 349, Standard Socket Numbers J. Postel (30 พฤษภาคม 1972)
  8. RFC 197, Initial Connection Protocol--Reviewed , A. Shoshani, E. Harslem (14 กรกฎาคม 1971)
  9. ^ NIC 7104,คู่มือโปรโตคอล ARPANET
  10. ^ โพสเทล จอน; Feinler, E. (1978). คู่มือโปรโตคอล ARPANET Menlo Park, CA: ศูนย์ข้อมูลเครือข่าย