Computer >> คอมพิวเตอร์ >  >> ระบบเครือข่าย >> ระบบเครือข่าย

พอร์ต 0 ใช้สำหรับอะไร

พอร์ต 0 มีความสำคัญเป็นพิเศษในการเขียนโปรแกรมเครือข่าย โดยเฉพาะอย่างยิ่งใน Unix OS เมื่อพูดถึงการเขียนโปรแกรมซ็อกเก็ตที่พอร์ตนั้นใช้เพื่อขอพอร์ตแบบไดนามิกที่จัดสรรโดยระบบ พอร์ต 0 เป็นพอร์ตไวด์การ์ดที่บอกให้ระบบค้นหาหมายเลขพอร์ตที่เหมาะสม

ไม่เหมือนกับหมายเลขพอร์ตส่วนใหญ่ พอร์ต 0 เป็นพอร์ตสงวนในเครือข่าย TCP/IP ซึ่งหมายความว่าไม่ควรใช้ในข้อความ TCP หรือ UDP พอร์ตเครือข่ายในช่วง TCP และ UDP ตั้งแต่หมายเลขศูนย์ถึง 65535 หมายเลขพอร์ตในช่วงระหว่างศูนย์ถึง 1023 ถูกกำหนดเป็นพอร์ตที่ไม่ใช่พอร์ตชั่วคราว พอร์ตระบบ หรือพอร์ตที่เป็นที่รู้จัก Internet Assigned Numbers Authority (IANA) เก็บรักษารายการอย่างเป็นทางการของการใช้งานหมายเลขพอร์ตเหล่านี้บนอินเทอร์เน็ต และจะไม่มีการใช้พอร์ตระบบ 0

วิธีการทำงานของพอร์ต TCP/UDP 0 ในการเขียนโปรแกรมเครือข่าย

พอร์ต 0 ใช้สำหรับอะไร

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

IANA ได้จัดสรรพอร์ตระบบที่กำหนดไว้ล่วงหน้าสำหรับแอปพลิเคชันอินเทอร์เน็ตพื้นฐาน เช่น เว็บเซิร์ฟเวอร์ (พอร์ต 80) แต่แอปพลิเคชันเครือข่าย TCP และ UDP จำนวนมากไม่มีพอร์ตระบบของตัวเอง และต้องได้รับพอร์ตจากระบบปฏิบัติการของอุปกรณ์ทุกครั้งที่ทำงาน

ในการจัดสรรหมายเลขพอร์ตต้นทาง แอปพลิเคชันจะเรียกใช้ฟังก์ชันเครือข่าย TCP/IP เช่น bind() เพื่อขอหมายเลข แอปพลิเคชันสามารถจัดหาหมายเลขคงที่ (ฮาร์ดโค้ด) ให้กับ bind() หากพวกเขาต้องการขอหมายเลขเฉพาะ แต่คำขอดังกล่าวอาจล้มเหลวเนื่องจากแอปพลิเคชันอื่นที่ทำงานอยู่บนระบบอาจกำลังใช้งานอยู่

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

แอปพลิเคชันไม่ได้รับพอร์ต 0 แต่เป็นพอร์ตไดนามิกอื่นๆ ข้อดีของแบบแผนการเขียนโปรแกรมนี้คือประสิทธิภาพ แทนที่จะให้แต่ละแอปพลิเคชันใช้และรันโค้ดเพื่อลองหลายพอร์ตจนกว่าจะได้รับพอร์ตที่ถูกต้อง แอปต่างๆ จะอาศัยระบบปฏิบัติการ

Unix, Windows และระบบปฏิบัติการอื่นๆ จะแตกต่างกันไปในการจัดการพอร์ต 0 แต่ใช้หลักการทั่วไปเดียวกัน

พอร์ต 0 และความปลอดภัยเครือข่าย

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

ผู้ให้บริการอินเทอร์เน็ต (ISP) หลายรายบล็อกการรับส่งข้อมูลบนพอร์ต 0 ทั้งข้อความขาเข้าและขาออก เพื่อป้องกันการหาประโยชน์จากช่องโหว่เหล่านี้

คำถามที่พบบ่อย
  • หมายเลขพอร์ตคืออะไร

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

  • ฉันจะค้นหาหมายเลขพอร์ตได้อย่างไร

    หากต้องการค้นหาหมายเลขพอร์ตของที่อยู่ IP เฉพาะ ให้ไปที่พรอมต์คำสั่ง พิมพ์ netstat -a จากนั้นกด Enter . คุณจะเห็นรายการการเชื่อมต่อ TCP ที่ใช้งานอยู่พร้อมกับที่อยู่ IP และหมายเลขพอร์ตที่คั่นด้วยเครื่องหมายทวิภาค

  • ฉันสามารถเชื่อมต่อกับพอร์ต 0 ได้หรือไม่

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