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

สารบัญ:

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

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

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

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

Image
Image

การกำหนดค่าการเชื่อมต่อซ็อกเก็ตเครือข่ายใหม่กำหนดให้ต้องจัดสรรหมายเลขพอร์ตหนึ่งหมายเลขทั้งด้านต้นทางและปลายทาง ข้อความ 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 ได้เหมือนกับที่คุณส่งกับหมายเลขพอร์ตอื่น

แนะนำ: