เห็นได้ชัดว่าการใช้คำว่า port หมายถึงการจัดส่งโดยทั่วไป คอมพิวเตอร์ยังใช้คำว่าพอร์ต อันที่จริงมันมีประโยชน์สองอย่าง ข้อแรกหมายถึงซ็อกเก็ตที่สามารถเสียบสายเคเบิลได้ ตัวอย่างทั่วไปจะรวมถึงพอร์ต USB หรืออีเธอร์เน็ต ในทางเทคนิค ซ็อกเก็ตอีเธอร์เน็ตถือได้ว่าเป็นพอร์ตเครือข่าย นั่นไม่ใช่ความหมายที่ยอมรับของคำว่า port ในเครือข่าย พอร์ตเครือข่ายคือหมายเลขลอจิคัลที่ระบุว่าทราฟฟิกเครือข่ายของกระบวนการหรือบริการเครือข่ายใดมีความหมายสำหรับหรือถูกส่งโดย
ทำไมหมายเลขพอร์ตจึงจำเป็น?
เมื่อคอมพิวเตอร์ของคุณสื่อสารกับเว็บเซิร์ฟเวอร์บนอินเทอร์เน็ต คอมพิวเตอร์จะใส่ที่อยู่ IP ในช่องผู้ส่ง ซึ่งช่วยให้เซิร์ฟเวอร์ทราบที่อยู่ IP ที่ต้องการเพื่อส่งการตอบกลับ เมื่อการตอบสนองนั้นกลับมายังคอมพิวเตอร์ของคุณ เบราว์เซอร์ของคุณจะตีความการตอบสนองและแสดงผลหน้าเว็บ
ใช้งานได้ดีในระบบในอุดมคติด้วยซอฟต์แวร์ชิ้นเดียวที่สร้างและรับปริมาณข้อมูลเครือข่าย โลกแห่งความเป็นจริงไม่ได้เป็นเช่นนั้น ในคอมพิวเตอร์ทุกเครื่อง มีซอฟต์แวร์มากมายที่สร้างทราฟฟิกเครือข่าย เพื่อให้แน่ใจว่าการรับส่งข้อมูลเครือข่ายถูกส่งไปยังโปรแกรมที่ถูกต้อง ในบางกรณี กระบวนการที่เหมาะสมในโปรแกรม เลเยอร์ที่อยู่ขั้นสุดท้ายจะใช้หมายเลขพอร์ต
ลองนึกภาพว่ามีเว็บเบราว์เซอร์ที่มีสองแท็บเปิดอยู่และวิดีโอเกมออนไลน์พร้อมๆ กัน แต่ละแท็บของเบราว์เซอร์ต้องสามารถส่งและรับปริมาณข้อมูลเครือข่ายได้พร้อมกัน เกมออนไลน์ยังต้องการทั้งการส่งและรับทราฟฟิกเครือข่าย คุณไม่ต้องการให้เกมของคุณต้องกรองการตอบสนองทางเว็บแบบสุ่ม และคุณไม่ต้องการให้เบราว์เซอร์ของคุณต้องกรองการเข้าชมเกมของคุณด้วย ทั้งแท็บและเกมจะได้รับพอร์ตเครือข่ายอย่างน้อยหนึ่งพอร์ตในแต่ละพอร์ต เพื่อให้สามารถกำหนดกระบวนการของผู้รับที่ต้องการได้อย่างง่ายดาย
เช่นเดียวกับเซิร์ฟเวอร์ สมมติว่าคุณมีเซิร์ฟเวอร์ที่ทำงานทั้งเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์อีเมล ในกรณีดังกล่าว หมายเลขพอร์ตจะช่วยให้ระบบปฏิบัติการแยกแยะแพ็กเก็ตเครือข่ายได้อย่างง่ายดายสำหรับบริการใด
หมายเลขพอร์ตคืออะไร?
หมายเลขพอร์ตจะอยู่ในรูปของจำนวนเต็ม 16 บิตที่ไม่ได้ลงนาม ซึ่งหมายความว่ามีไบนารีบิตสิบหกบิตเพื่อสร้างตัวเลข ไม่มีตัวเลขติดลบ และตัวเลขทั้งหมดเป็นจำนวนเต็ม ซึ่งช่วยให้หมายเลขพอร์ตที่เป็นไปได้ 65536 มีตั้งแต่ 0 ถึง 65535 ไม่มีระบบฟิสิคัลพอร์ต
รูปแบบการกำหนดที่อยู่ทั้งหมด เช่นเดียวกับที่อยู่ IP และที่อยู่ MAC นั้นสมเหตุสมผลทั้งหมด คุณสามารถนึกถึงที่อยู่ IP และ MAC เป็นที่อยู่ในจดหมายเพื่อส่งไปยังบ้าน/คอมพิวเตอร์ของคุณ ในการเปรียบเทียบนี้ หมายเลขพอร์ตจะเหมือนกับชื่อบนซองจดหมาย ตรวจสอบให้แน่ใจว่าส่งไปยังบุคคล/ขั้นตอนที่ถูกต้องในบ้าน/คอมพิวเตอร์ของคุณ
ภายในพื้นที่หมายเลขพอร์ต มีโครงสร้างอื่นอยู่ พอร์ตหมายเลข 0 ถูกสงวนไว้ ในทราฟฟิก TCP 0 ไม่ได้ใช้ทั้งหมด ในทราฟฟิก UDP หมายเลขพอร์ตเป็นทางเลือก โดยพอร์ต 0 หมายถึง "ไม่มีพอร์ต" สิ่งนี้ใช้ได้กับ UDP เพราะเป็นโปรโตคอลไร้สัญชาติที่ไม่จำเป็นต้องคาดหวังการตอบสนอง พอร์ต TCP และ UDP แยกจากกัน บริการหนึ่งสามารถผูกกับพอร์ตหนึ่งพอร์ตหรือมากกว่าบนโปรโตคอลหนึ่งหรือทั้งสองอย่าง บริการที่ใช้ทั้งสองมักจะแนบกับหมายเลขพอร์ตเดียวกันใน TCP และ UDP
พอร์ต 1-1023 เรียกว่าพอร์ต "ที่รู้จักกันดี" และโดยทั่วไปต้องการการอนุญาตระดับผู้ดูแลจึงจะมีผลผูกพัน พอร์ตที่รู้จักกันดีบางพอร์ตคือ 80 สำหรับ HTTP, 443 สำหรับ HTTPS และ 53 สำหรับ DNS ต่อไป คุณมีช่วง 1024 – 49151 สิ่งเหล่านี้เรียกว่าพอร์ตที่ "ลงทะเบียน" พอร์ตเหล่านี้เป็นพอร์ตที่ใช้เป็นประจำโดยบริการบางอย่าง แต่นั่นไม่เพียงพอหรือไม่เร็วพอที่จะได้ตัวเลขที่ต่ำกว่า 1023 พอร์ตระหว่าง 49152 ถึง 65535 เรียกว่าพอร์ตชั่วคราว
การใช้หมายเลขพอร์ต
IANA, Internet Assigned Numbers Authority ดูแลรายการพอร์ตที่เป็นที่รู้จักและลงทะเบียนไว้ พอร์ตที่รู้จักกันดีมีเพียงบริการเดียวที่เชื่อมโยงกับพอร์ตเหล่านี้ อย่างไรก็ตาม พอร์ตที่ลงทะเบียนอาจมีอาร์เรย์ของบริการที่รู้จักซึ่งใช้พอร์ตเป็นค่าเริ่มต้น
โดยทั่วไป ไม่มีอะไรหยุดโปรแกรมใด ๆ จากการผูกกับหมายเลขพอร์ตใด ๆ ดังที่กล่าวไว้ข้างต้น หมายเลขพอร์ตที่ต่ำกว่า 1024 มักจะต้องการสิทธิ์ระดับผู้ดูแลระบบหรือรูทเพื่อผูกมัด ถึงกระนั้น คุณสามารถบังคับบริการใดๆ ให้ผูกกับพอร์ต 80 ได้ ตัวอย่างเช่น แม้ว่าจะไม่ใช่เว็บเซิร์ฟเวอร์ก็ตาม หมายเลขพอร์ตในช่วงที่เป็นที่รู้จักและลงทะเบียนไว้มักจะถูกใช้โดยผู้ฟังเครือข่ายเท่านั้น โดยพอร์ตชั่วคราวมักใช้เพื่อเริ่มต้นการเชื่อมต่อ
Listener คือพอร์ตที่เปิดและเปิดทิ้งไว้ มันฟังข้อความเพื่อให้สามารถประมวลผลและส่งตอบกลับ นี่เป็นพฤติกรรมเฉพาะของบริการประเภทเซิร์ฟเวอร์ เช่น เว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์จะโฮสต์บนพอร์ต 80 และ 443 ในขณะที่เบราว์เซอร์ที่เชื่อมต่อกับพอร์ตเหล่านั้นจะใช้พอร์ตชั่วคราวในเครื่อง
หมายเลขพอร์ตมาตรฐานสำหรับผู้ฟังแอปพลิเคชันหมายความว่าง่ายต่อการทราบวิธีเชื่อมต่อกับบริการจริงๆ ตัวอย่างเช่น เมื่อคุณวาง HTTPS ไว้ด้านหน้า URL เบราว์เซอร์ของคุณจะถือว่าโดยค่าเริ่มต้นจำเป็นต้องเชื่อมต่อกับพอร์ต 443 ในบางกรณี Listener จะถูกตั้งค่าในพอร์ตสำรอง อาจเป็นเพราะบริการหรือเวอร์ชันอื่นของบริการใช้พอร์ตมาตรฐานอยู่แล้ว อาจเป็นความพยายามในการรักษาความปลอดภัยด้วยความสับสน
บทสรุป
พอร์ตเครือข่ายคือที่อยู่แบบลอจิคัล ซอฟต์แวร์สามารถผูกกับพอร์ตได้ ดังนั้นระบบปฏิบัติการจึงรู้ว่าการรับส่งข้อมูลใดๆ ที่ส่งไปยังพอร์ตนั้นมีไว้สำหรับกระบวนการนั้น หมายเลขพอร์ตมีตั้งแต่ 0 ถึง 65535 บริการจำนวนมากเชื่อมโยงกับหมายเลขพอร์ตมาตรฐาน เซิร์ฟเวอร์ใช้พอร์ตเหล่านี้ ในขณะที่อุปกรณ์ที่เชื่อมต่อจะใช้พอร์ตสุ่มตัวเลขสูง ซึ่งช่วยให้สามารถเชื่อมต่อกับบริการตามค่าเริ่มต้นได้ง่าย และทำให้มั่นใจได้ว่าการเชื่อมต่อกับบริการดังกล่าวไม่ได้ป้องกันคุณจากการโฮสต์บริการอื่นด้วยตนเอง