พอร์ต TCP ที่คุณต้องรู้ TCP แตกต่างจาก UDP ในแง่ง่าย ๆ อย่างไร

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

ความหมาย

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

รายละเอียด

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

พวกเขาใช้อย่างไร?

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

โครงสร้าง

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

ตัวอย่างการใช้งาน

ตัวอย่างหลักที่ใช้พอร์ต UDP และ TCP คือระบบอินเทอร์เน็ตเมล เซิร์ฟเวอร์ใช้ในการทำงานกับอีเมล โดยรวมแล้วต้องการบริการสองอย่าง บริการแรกใช้สำหรับการขนส่งทางอีเมลและจากเซิร์ฟเวอร์อื่น สามารถทำได้โดยใช้ Simple Mail Transfer Protocol (SMTP) โดยทั่วไปแอปพลิเคชันบริการ SMTP จะรับฟังพอร์ต TCP หมายเลข 25 เพื่อประมวลผลคำขอที่เข้ามา บริการอื่นคือ POP หรือ IMAP จำเป็นสำหรับแอปพลิเคชันไคลเอนต์อีเมลบนเครื่องของผู้ใช้เพื่อรับข้อความอีเมลจากเซิร์ฟเวอร์ บริการ POP จะรับฟังหมายเลขบนพอร์ต TCP 110 บริการข้างต้นทั้งหมดสามารถทำงานบนโฮสต์คอมพิวเตอร์เครื่องเดียวกันได้ เมื่อเกิดเหตุการณ์เช่นนี้ หมายเลขพอร์ตจะแยกแยะบริการที่ร้องขอโดยอุปกรณ์ระยะไกล หากหมายเลขพอร์ตการรับฟังของเซิร์ฟเวอร์ถูกกำหนดอย่างถูกต้อง พารามิเตอร์นี้สำหรับไคลเอนต์จะถูกกำหนดจากช่วงไดนามิก ไคลเอนต์และเซิร์ฟเวอร์แยกกันในบางกรณีใช้พอร์ต TCP เฉพาะที่กำหนดใน IANA ตัวอย่างที่ดีคือ DHCP ที่นี่ไคลเอนต์ใช้ UDP 68 ในกรณีใด ๆ และเซิร์ฟเวอร์ใช้ UDP 67

การใช้งานใน URL

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

รายการพอร์ต UDP และ TCP

ตามที่ระบุไว้ก่อนหน้านี้ IANA หรือ InternetA ที่กำหนด Numbers Authority มีหน้าที่รับผิดชอบในการประสานงานทั่วโลกของ DNS-Root, การกำหนดที่อยู่ IP และทรัพยากร Internet Protocol อื่นๆ ขั้นตอนเหล่านี้รวมถึงการลงทะเบียนพอร์ตที่ใช้บ่อยสำหรับบริการอินเทอร์เน็ตที่รู้จัก หมายเลขพอร์ตทั้งหมดแบ่งออกเป็นสามช่วง: เป็นที่รู้จัก ลงทะเบียน และส่วนตัวหรือไดนามิก พอร์ตที่รู้จักกันดีคือพอร์ตที่มีตัวเลขตั้งแต่ 0 ถึง 1023 หรือเรียกอีกอย่างว่าพอร์ตระบบ ข้อกำหนดสำหรับค่าใหม่ในช่วงนี้เข้มงวดกว่าการลงทะเบียนอื่นๆ

ตัวอย่าง

ตัวอย่างของพอร์ตในรายการที่รู้จักได้แก่:

  • พอร์ต TCP 443 – HTTPS;
  • 21 – โปรโตคอลการถ่ายโอนไฟล์;
  • 22- เชลล์ที่ปลอดภัย;
  • 25 – โปรโตคอลการถ่ายโอนเมลอย่างง่าย STMP;
  • 53 – DNS ระบบชื่อโดเมน;
  • 119 – โปรโตคอลการโอนข่าวเครือข่ายหรือ NNTP;
  • 80 – HTTP โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์;
  • 143 – โปรโตคอลการเข้าถึงข้อความอินเทอร์เน็ต;
  • 123 – โปรโตคอลเวลาเครือข่าย NTP;
  • 161 - โปรโตคอลการจัดการเครือข่ายอย่างง่าย SNMP

พอร์ตที่ลงทะเบียนจะต้องมีหมายเลขตั้งแต่ 1024 ถึง 49151 Internet Assigned Numbers Authority จัดทำรายการอย่างเป็นทางการของช่วงที่รู้จักและลงทะเบียนทั้งหมด พอร์ตความถี่หรือไดนามิกมีตั้งแต่ 29152 ถึง 65535 การใช้ช่วงนี้เพียงครั้งเดียวคือพอร์ตชั่วคราว

ประวัติความเป็นมาของการทรงสร้าง

แนวคิดเกี่ยวกับหมายเลขพอร์ตได้รับการพัฒนาโดยผู้สร้าง ARPANET ในยุคแรกๆ ได้รับการพัฒนาผ่านการทำงานร่วมกันอย่างไม่เป็นทางการระหว่างผู้เขียนซอฟต์แวร์และผู้ดูแลระบบ ขณะนั้นยังไม่มีการใช้คำว่าหมายเลขพอร์ต ลำดับหมายเลขโฮสต์ระยะไกลเป็นตัวเลข 40 บิต 32 บิตแรกคล้ายกับที่อยู่ IPv4 ในปัจจุบัน สิ่งที่สำคัญที่สุดคือ 8 บิตแรก ส่วนที่มีนัยสำคัญน้อยกว่าของตัวเลข (ซึ่งเป็นบิต 33 ถึง 40) กำหนดวัตถุที่เรียกว่า AEN มันเป็นต้นแบบของหมายเลขพอร์ตที่ทันสมัย มีการเสนอการสร้างไดเร็กทอรีหมายเลขซ็อกเก็ตครั้งแรกเมื่อวันที่ 26 มีนาคม พ.ศ. 2515 จากนั้นผู้ดูแลระบบเครือข่ายจะถูกเรียกให้อธิบายหมายเลขคงที่แต่ละหมายเลขในแง่ของบริการเครือข่ายและฟังก์ชันต่างๆ แค็ตตาล็อกนี้ได้รับการเผยแพร่ในเวลาต่อมาในชื่อ RFC 433 ในช่วงฤดูหนาวปี พ.ศ. 2515 ประกอบด้วยรายการโฮสต์ หมายเลขพอร์ต และฟังก์ชันที่เกี่ยวข้องที่ใช้ในแต่ละโหนดบนเครือข่าย ค่าหมายเลขพอร์ตอย่างเป็นทางการครั้งแรกได้รับการบันทึกไว้ในเดือนพฤษภาคม พ.ศ. 2515 ในเวลาเดียวกันมีการเสนอหน้าที่การดูแลระบบพิเศษสำหรับการรักษาทะเบียนนี้ รายการพอร์ต TCP แรกรวมค่า AEN 256 ค่า โดยแบ่งออกเป็นช่วงต่อไปนี้:

— จาก 0 ถึง 63 – ฟังก์ชั่นมาตรฐานของเครือข่ายทั้งหมด

จาก 64 ถึง 127 – ฟังก์ชั่นเฉพาะโฮสต์

— จาก 128 ถึง 239 – ฟังก์ชั่นที่สงวนไว้สำหรับใช้ในอนาคต

— จาก 240 ถึง 255 – ฟังก์ชั่นการทดลองใดๆ

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

ในเครือข่ายคอมพิวเตอร์ พอร์ตคือจุดสิ้นสุดของการสื่อสารในระบบปฏิบัติการ คำนี้ใช้สำหรับอุปกรณ์ฮาร์ดแวร์ด้วย แต่ในซอฟต์แวร์ คำนี้เป็นโครงสร้างเชิงตรรกะที่ระบุกระบวนการหรือประเภทของบริการเฉพาะ

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

ความหมาย

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

รายละเอียด

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

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

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

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

พวกเขาใช้อย่างไร?

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

บริการเครือข่ายหลัก (โดยเฉพาะอย่างยิ่ง WorldWideWeb) มีแนวโน้มที่จะใช้หมายเลขพอร์ตขนาดเล็ก - น้อยกว่า 1,024 ระบบปฏิบัติการจำนวนมากต้องการสิทธิพิเศษสำหรับแอปพลิเคชันเพื่อเชื่อมโยงกับแอปพลิเคชันเหล่านั้น เนื่องจากมักถือว่ามีความสำคัญต่อการทำงานของเครือข่าย IP ในทางกลับกันไคลเอนต์ปลายทางของการเชื่อมต่อมักจะใช้จำนวนมากซึ่งจัดสรรไว้สำหรับการใช้งานระยะสั้นซึ่งเป็นสาเหตุที่เรียกว่าพอร์ตชั่วคราว

โครงสร้าง

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

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

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

ตัวอย่างการใช้งาน

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

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

การใช้งานใน URL

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

รายชื่อพอร์ต TCP และ UDP

ตามที่ระบุไว้ Internet Assigned Numbers Authority (IANA) มีหน้าที่รับผิดชอบในการประสานงานทั่วโลกของ DNS-Root, การกำหนดที่อยู่ IP และทรัพยากร Internet Protocol อื่นๆ ซึ่งรวมถึงการบันทึกหมายเลขพอร์ตที่ใช้บ่อยสำหรับบริการอินเทอร์เน็ตที่เป็นที่รู้จัก

หมายเลขพอร์ตแบ่งออกเป็นสามช่วง: ที่รู้จักกันดี ลงทะเบียน และไดนามิกหรือส่วนตัว ที่รู้จักกันดี (หรือเรียกอีกอย่างว่าระบบ) คือตัวเลขตั้งแต่ 0 ถึง 1,023 ข้อกำหนดสำหรับการนัดหมายใหม่ในช่วงนี้จะเข้มงวดมากกว่าการลงทะเบียนอื่นๆ

ตัวอย่างที่รู้จักกันดี

ตัวอย่างที่พบในรายการนี้ได้แก่:

  • พอร์ต TCP 443: HTTP การรักษาความปลอดภัย (HTTPS)
  • 22: เชลล์ที่ปลอดภัย (SSH)
  • 25: Simple Mail Transfer Protocol (SMTP)
  • 53: ระบบชื่อโดเมน (DNS)
  • 80: โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์ (HTTP)
  • 119: โปรโตคอลการโอนข่าวเครือข่าย (NNTP)
  • 123: โปรโตคอลเวลาเครือข่าย (NTP)..
  • 143: โปรโตคอลการเข้าถึงข้อความอินเทอร์เน็ต (IMAP)
  • 161: โปรโตคอลการจัดการเครือข่ายอย่างง่าย (SNMP)1.
  • 94: อินเทอร์เน็ตรีเลย์แชท (IRC)

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

ประวัติความเป็นมาของการทรงสร้าง

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

คำว่า "หมายเลขพอร์ต" ในขณะนั้นยังไม่ได้ใช้ ลำดับหมายเลขสำหรับโฮสต์ระยะไกลคือตัวเลข 40 บิต 32 บิตแรกมีความคล้ายคลึงกับที่อยู่ IPv4 ในปัจจุบัน แต่ 8 บิตแรกมีความสำคัญที่สุด ส่วนที่เล็กที่สุดของตัวเลข (บิต 33 ถึง 40) แสดงถึงวัตถุอื่นที่เรียกว่า AEN นี่คือต้นแบบของหมายเลขพอร์ตสมัยใหม่

เมื่อวันที่ 26 มีนาคม พ.ศ. 2515 มีการเสนอการสร้างไดเร็กทอรีหมายเลขซ็อกเก็ตเป็นครั้งแรกใน RFC 322 ซึ่งเรียกร้องให้มีการอธิบายหมายเลขถาวรแต่ละหมายเลขในแง่ของฟังก์ชันและบริการเครือข่าย ไดเร็กทอรีนี้ได้รับการเผยแพร่ในเวลาต่อมาใน RFC 433 ในเดือนธันวาคม พ.ศ. 2515 และรวมรายชื่อโฮสต์ หมายเลขพอร์ต และฟังก์ชันที่เกี่ยวข้องที่ใช้กับแต่ละโหนดบนเครือข่าย ในเดือนพฤษภาคม พ.ศ. 2515 มีการจัดทำเอกสารการกำหนดหมายเลขพอร์ต บริการเครือข่าย และฟังก์ชันการดูแลเป็นพิเศษอย่างเป็นทางการสำหรับการดูแลรักษารีจิสทรีนี้อย่างเป็นทางการ

รายการพอร์ต TCP แรกมีค่า 256 AEN ซึ่งแบ่งออกเป็นช่วงต่อไปนี้:

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

บริการ Telnet ได้รับการกำหนดอย่างเป็นทางการเป็นครั้งแรกด้วยค่า 1 ในช่วงแรก ๆ ของ ARPANET คำว่า AEN ยังหมายถึงชื่อของซ็อกเก็ตที่ใช้กับโปรโตคอลการเชื่อมต่อดั้งเดิม (MSP) และโปรแกรมควบคุมเครือข่าย (NCP) ) ส่วนประกอบ. ยิ่งไปกว่านั้น NCP ยังเป็นบรรพบุรุษของโปรโตคอลอินเทอร์เน็ตสมัยใหม่ที่ใช้พอร์ต TCP/IP

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

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

กำลังศึกษาพอร์ต

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

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

ภาพรวมโดยย่อของโปรโตคอลเครือข่าย

TCP/IP คือชุดของโปรโตคอลเครือข่ายที่คอมพิวเตอร์สื่อสารระหว่างกัน ชุด TCP/IP เป็นเพียงชิ้นส่วนของรหัสซอฟต์แวร์ที่ติดตั้งในระบบปฏิบัติการที่ให้การเข้าถึงโปรโตคอลเหล่านี้ TCP/IP เป็นมาตรฐาน ดังนั้นแอปพลิเคชัน TCP/IP บนเครื่อง Windows ควรสื่อสารกับแอปพลิเคชันเดียวกันบนเครื่อง UNIX ได้สำเร็จ ในช่วงแรกๆ ของการสร้างเครือข่าย ในปี 1983 วิศวกรได้พัฒนาแบบจำลองการเชื่อมต่อโครงข่าย OSI เจ็ดชั้นเพื่ออธิบายกระบวนการเครือข่ายคอมพิวเตอร์ ตั้งแต่สายเคเบิลไปจนถึงแอปพลิเคชัน โมเดล OSI ประกอบด้วยเลเยอร์ทางกายภาพ ดาต้าลิงก์ เครือข่าย การขนส่ง เซสชัน และแอปพลิเคชัน ผู้ดูแลระบบที่ทำงานกับอินเทอร์เน็ตและ TCP/IP อย่างต่อเนื่องจะจัดการกับเลเยอร์เครือข่าย การขนส่ง และแอปพลิเคชันเป็นหลัก แต่เพื่อให้การวินิจฉัยประสบความสำเร็จ จำเป็นต้องรู้จักเลเยอร์อื่นๆ แม้ว่าโมเดล OSI จะมีอายุขั้นสูงแล้ว แต่ผู้เชี่ยวชาญหลายคนก็ยังคงใช้โมเดลนี้อยู่ ตัวอย่างเช่น เมื่อวิศวกรเครือข่ายพูดถึงสวิตช์เลเยอร์ 1 หรือเลเยอร์ 2 หรือผู้ขายไฟร์วอลล์พูดถึงการควบคุมเลเยอร์ 7 พวกเขากำลังพูดถึงเลเยอร์ที่กำหนดในแบบจำลอง OSI

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

เลเยอร์ 1 และ 2: สายเคเบิลทางกายภาพและที่อยู่ MAC

ชั้นที่ 1 (ทางกายภาพ) แสดงถึงตัวกลางจริงที่สัญญาณเดินทางผ่าน เช่น สายทองแดง สายไฟเบอร์ออปติก หรือสัญญาณวิทยุ (ในกรณีของ Wi-Fi) เลเยอร์ 2 ดาต้าลิงค์ อธิบายรูปแบบข้อมูลสำหรับการส่งข้อมูลในสื่อทางกายภาพ ที่เลเยอร์ 2 แพ็กเก็ตจะถูกจัดระเบียบเป็นเฟรม และสามารถใช้ฟังก์ชันการควบคุมการไหลและการจัดการข้อผิดพลาดขั้นพื้นฐานได้ มาตรฐาน IEEE 802.3 หรือที่รู้จักกันดีในชื่ออีเธอร์เน็ต เป็นมาตรฐานเลเยอร์ 2 ที่ใช้กันมากที่สุดสำหรับเครือข่ายท้องถิ่นสมัยใหม่ สวิตช์เครือข่ายทั่วไปคืออุปกรณ์เลเยอร์ 2 ซึ่งคอมพิวเตอร์หลายเครื่องเชื่อมต่อและแลกเปลี่ยนข้อมูลระหว่างกัน บางครั้งคอมพิวเตอร์สองเครื่องไม่สามารถเชื่อมต่อถึงกันได้แม้ว่าที่อยู่ IP ดูเหมือนจะถูกต้องก็ตาม ปัญหาอาจเกิดจากข้อผิดพลาดในแคช Address Resolution Protocol (ARP) ซึ่งบ่งชี้ถึงปัญหาที่เลเยอร์ 2 นอกจากนี้ จุดเชื่อมต่อไร้สายบางจุด (Access Point, AP) ให้การกรองที่อยู่ MAC โดยอนุญาตให้เฉพาะอะแดปเตอร์เครือข่ายที่มีที่อยู่ MAC เฉพาะเท่านั้นที่จะเชื่อมต่อกับ AP ไร้สาย

เลเยอร์ 3 และ 4: ที่อยู่ IP และพอร์ตเครือข่าย

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

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

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

พอร์ตเครือข่ายเป็นตัวเลขระหว่าง 1 ถึง 65535 ที่ระบุและทราบสำหรับทั้งสองแอปพลิเคชันระหว่างที่กำลังสร้างการสื่อสาร ตัวอย่างเช่น โดยทั่วไปไคลเอนต์จะส่งคำขอที่ไม่ได้เข้ารหัสไปยังเซิร์ฟเวอร์ตามที่อยู่เป้าหมายบนพอร์ต TCP 80 โดยทั่วไปแล้ว คอมพิวเตอร์จะส่งคำขอ DNS ไปยังเซิร์ฟเวอร์ DNS ที่ที่อยู่เป้าหมายบนพอร์ต UDP 53 ไคลเอนต์และเซิร์ฟเวอร์มีแหล่งที่มา และที่อยู่ IP ปลายทาง และพอร์ตเครือข่ายต้นทางและปลายทาง ซึ่งอาจแตกต่างกันไป ในอดีต หมายเลขพอร์ตทั้งหมดที่ต่ำกว่า 1,024 เรียกว่า "หมายเลขพอร์ตที่รู้จัก" และลงทะเบียนกับ Internet Assigned Numbers Authority (IANA) บนระบบปฏิบัติการบางระบบ เฉพาะกระบวนการของระบบเท่านั้นที่สามารถใช้พอร์ตในช่วงนี้ได้ นอกจากนี้ องค์กรต่างๆ ยังสามารถลงทะเบียนพอร์ต 1024 ถึง 49151 กับ IANA เพื่อเชื่อมโยงพอร์ตกับแอปพลิเคชันของตนได้ การลงทะเบียนนี้จัดเตรียมโครงสร้างที่ช่วยหลีกเลี่ยงข้อขัดแย้งระหว่างแอปพลิเคชันที่พยายามใช้หมายเลขพอร์ตเดียวกัน อย่างไรก็ตาม โดยทั่วไปแล้ว ไม่มีสิ่งใดที่จะป้องกันไม่ให้แอปพลิเคชันร้องขอพอร์ตเฉพาะได้ ตราบเท่าที่ไม่ได้ถูกครอบครองโดยโปรแกรมอื่นที่ใช้งานอยู่

ในอดีต เซิร์ฟเวอร์สามารถรับฟังพอร์ตที่มีหมายเลขต่ำ และไคลเอนต์สามารถเริ่มต้นการเชื่อมต่อบนพอร์ตที่มีหมายเลขสูง (มากกว่า 1,024) ตัวอย่างเช่น เว็บไคลเอนต์อาจเปิดการเชื่อมต่อกับเว็บเซิร์ฟเวอร์บนพอร์ตปลายทาง 80 แต่เชื่อมโยงพอร์ตต้นทางที่เลือกแบบสุ่ม เช่น พอร์ต TCP 1025 เมื่อตอบสนองต่อไคลเอนต์ เว็บเซิร์ฟเวอร์จะระบุแพ็คเก็ตไปยังไคลเอนต์ด้วยแหล่งที่มา พอร์ต 80 และพอร์ตปลายทาง 1025 การรวมกันของที่อยู่ IP และพอร์ตเรียกว่าซ็อกเก็ตและจะต้องไม่ซ้ำกันบนคอมพิวเตอร์ ด้วยเหตุนี้ เมื่อตั้งค่าเว็บเซิร์ฟเวอร์โดยมีเว็บไซต์สองแห่งแยกกันบนคอมพิวเตอร์เครื่องเดียวกัน คุณต้องใช้ที่อยู่ IP หลายรายการ เช่น ที่อยู่ 1:80 และที่อยู่ 2:80 หรือกำหนดค่าเว็บเซิร์ฟเวอร์ให้ฟังบนพอร์ตเครือข่ายหลายพอร์ต เช่น เช่น ที่อยู่1:80 และที่อยู่1:81. เว็บเซิร์ฟเวอร์บางแห่งอนุญาตให้หลายเว็บไซต์ทำงานบนพอร์ตเดียวโดยการร้องขอส่วนหัวของโฮสต์ แต่ฟังก์ชันนี้จริง ๆ แล้วดำเนินการโดยแอปพลิเคชันเซิร์ฟเวอร์เว็บที่เลเยอร์ที่สูงกว่า 7

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

เมื่อบล็อกแอปพลิเคชันเครือข่ายบนคอมพิวเตอร์หรือแก้ไขปัญหาข้อบกพร่องของไฟร์วอลล์ งานส่วนใหญ่มาจากการจัดประเภทและการกรองที่อยู่ IP ของเลเยอร์ 3 และโปรโตคอลของเลเยอร์ 4 และพอร์ตเครือข่าย หากต้องการแยกแยะอย่างรวดเร็วระหว่างการรับส่งข้อมูลที่ถูกกฎหมายและน่าสงสัย คุณควรเรียนรู้ที่จะจดจำ 20 อันดับแรก ที่ใช้กันทั่วไปในพอร์ต TCP และ UDP ขององค์กร

การเรียนรู้ที่จะจดจำและทำความคุ้นเคยกับพอร์ตเครือข่ายเป็นมากกว่าการกำหนดกฎไฟร์วอลล์ ตัวอย่างเช่น โปรแกรมปรับปรุงความปลอดภัยของ Microsoft บางตัวจะอธิบายวิธีปิดพอร์ต NetBIOS มาตรการนี้ช่วยจำกัดการแพร่กระจายของเวิร์มที่เจาะผ่านช่องโหว่ในระบบปฏิบัติการ การทราบวิธีการและตำแหน่งที่จะปิดพอร์ตเหล่านี้สามารถช่วยลดความเสี่ยงด้านความปลอดภัยของเครือข่ายในขณะที่เตรียมปรับใช้แพตช์ที่สำคัญได้

และตรงไปที่ระดับ 7

ไม่ค่อยได้ยินเกี่ยวกับเลเยอร์ 5 (เซสชัน) และเลเยอร์ 6 (การนำเสนอ) ในปัจจุบัน แต่เลเยอร์ 7 (แอปพลิเคชัน) เป็นประเด็นร้อนในหมู่ผู้จำหน่ายไฟร์วอลล์ เทรนด์ใหม่ล่าสุดในไฟร์วอลล์เครือข่ายคือการตรวจสอบเลเยอร์ 7 ซึ่งอธิบายเทคนิคที่ใช้ในการวิเคราะห์ว่าแอปพลิเคชันโต้ตอบกับโปรโตคอลเครือข่ายอย่างไร ด้วยการวิเคราะห์เพย์โหลดของแพ็คเก็ตเครือข่าย ไฟร์วอลล์สามารถระบุได้ว่าการรับส่งข้อมูลที่ผ่านนั้นถูกต้องหรือไม่ ตัวอย่างเช่น คำขอเว็บมีคำสั่ง GET ภายในแพ็กเก็ตเลเยอร์ 4 (พอร์ต TCP 80) หากไฟร์วอลล์ของคุณมีฟังก์ชันการทำงานของเลเยอร์ 7 คุณสามารถตรวจสอบว่าคำสั่ง GET ถูกต้องหรือไม่ อีกตัวอย่างหนึ่งคือโปรแกรมแชร์ไฟล์แบบ peer-to-peer (P2P) จำนวนมากสามารถแย่งชิงพอร์ต 80 ได้ ผลก็คือ บุคคลภายนอกสามารถกำหนดค่าโปรแกรมให้ใช้พอร์ตที่พวกเขาเลือกเองได้ ซึ่งส่วนใหญ่แล้วจะเป็นพอร์ตที่ควรเปิดทิ้งไว้ในนั้น ไฟร์วอลล์ที่กำหนด หากพนักงานของบริษัทจำเป็นต้องเข้าถึงอินเทอร์เน็ต จะต้องเปิดพอร์ต 80 แต่หากต้องการแยกการรับส่งข้อมูลเว็บที่ถูกต้องออกจากการรับส่งข้อมูล P2P ที่ควบคุมโดยบุคคลอื่นไปยังพอร์ต 80 ไฟร์วอลล์จะต้องมีการควบคุมเลเยอร์ 7

บทบาทของไฟร์วอลล์

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

ไฟร์วอลล์อินเทอร์เน็ตส่วนใหญ่ทำงานที่เลเยอร์ 3 และ 4 เพื่อตรวจสอบแล้วอนุญาตหรือบล็อกการรับส่งข้อมูลเครือข่ายขาเข้าและขาออก โดยทั่วไป ผู้ดูแลระบบจะเขียนรายการควบคุมการเข้าถึง (ACL) ที่กำหนดที่อยู่ IP และพอร์ตเครือข่ายของการรับส่งข้อมูลที่ถูกบล็อกหรืออนุญาต ตัวอย่างเช่น ในการเข้าถึงเว็บ คุณต้องเปิดเบราว์เซอร์และชี้ไปที่เว็บไซต์ คอมพิวเตอร์เริ่มต้นการเชื่อมต่อขาออกโดยการส่งลำดับของแพ็กเก็ต IP ซึ่งประกอบด้วยส่วนหัวและข้อมูลเพย์โหลด ส่วนหัวประกอบด้วยข้อมูลเส้นทางและคุณลักษณะแพ็กเก็ตอื่นๆ กฎไฟร์วอลล์มักเขียนโดยคำนึงถึงข้อมูลเส้นทาง และโดยทั่วไปจะมีที่อยู่ IP ต้นทางและปลายทาง (เลเยอร์ 3) และโปรโตคอลแพ็คเก็ต (เลเยอร์ 4) เมื่อเรียกดูเว็บ ที่อยู่ IP ปลายทางจะเป็นของเว็บเซิร์ฟเวอร์ และโปรโตคอลและพอร์ตปลายทาง (ตามค่าเริ่มต้น) คือ TCP 80 ที่อยู่ IP ต้นทางคือที่อยู่ของคอมพิวเตอร์ที่ผู้ใช้เข้าถึงเว็บ และแหล่งที่มา โดยปกติแล้วพอร์ตจะเป็นหมายเลขที่กำหนดแบบไดนามิก มากกว่า 1,024 ข้อมูลที่เป็นประโยชน์ไม่ขึ้นอยู่กับส่วนหัวและสร้างขึ้นโดยแอปพลิเคชันผู้ใช้ ในกรณีนี้เป็นการร้องขอไปยังเว็บเซิร์ฟเวอร์เพื่อจัดเตรียมเว็บเพจ

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

ตรงกันข้ามกับวิธีขาออกของไฟร์วอลล์ส่วนใหญ่ ส่วนใหญ่ได้รับการกำหนดค่าให้บล็อกการรับส่งข้อมูลขาเข้า โดยทั่วไปแล้ว ไฟร์วอลล์จะอนุญาตการรับส่งข้อมูลขาเข้าในสองสถานการณ์เท่านั้น อย่างแรกคือการรับส่งข้อมูลที่มาถึงเพื่อตอบสนองต่อคำขอขาออกที่ผู้ใช้ส่งมาก่อนหน้านี้ ตัวอย่างเช่น หากคุณชี้เบราว์เซอร์ของคุณไปยังที่อยู่ของเว็บเพจ ไฟร์วอลล์จะอนุญาตให้โค้ด HTML และส่วนประกอบอื่นๆ ของเว็บเพจเข้าสู่เครือข่ายได้ กรณีที่สองคือการโฮสต์บริการภายในบนอินเทอร์เน็ต เช่น เมลเซิร์ฟเวอร์ เว็บ หรือไซต์ FTP การโฮสต์บริการดังกล่าวมักเรียกว่าการแปลพอร์ตหรือการเผยแพร่เซิร์ฟเวอร์ การใช้งานการแปลพอร์ตจะแตกต่างกันไปตามผู้จำหน่ายไฟร์วอลล์แต่ละราย แต่หลักการพื้นฐานก็เหมือนกัน ผู้ดูแลระบบกำหนดบริการ เช่น พอร์ต TCP 80 สำหรับเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ส่วนหลังเพื่อโฮสต์บริการ หากแพ็กเก็ตเข้าสู่ไฟร์วอลล์ผ่านอินเทอร์เฟซภายนอกที่สอดคล้องกับบริการนี้ กลไกการแปลพอร์ตจะส่งต่อไปยังคอมพิวเตอร์เฉพาะบนเครือข่ายที่ซ่อนอยู่หลังไฟร์วอลล์ การแปลพอร์ตใช้ร่วมกับบริการ NAT ที่อธิบายไว้ด้านล่าง

ข้อมูลพื้นฐานเกี่ยวกับ NAT

ด้วย NAT คอมพิวเตอร์หลายเครื่องในบริษัทสามารถแชร์พื้นที่ที่อยู่ IP สาธารณะขนาดเล็กได้ เซิร์ฟเวอร์ DHCP ของบริษัทสามารถจัดสรรที่อยู่ IP จากหนึ่งในบล็อกที่อยู่ IP ส่วนตัวที่อินเทอร์เน็ตไม่สามารถกำหนดเส้นทางได้ ซึ่งกำหนดไว้ในคำขอความคิดเห็น (RFC) หมายเลข 1918 บริษัทหลายแห่งยังสามารถแชร์พื้นที่ที่อยู่ IP ส่วนตัวเดียวกันได้ ตัวอย่างของซับเน็ต IP ส่วนตัวคือ 10.0.0.0/8, 172.16.0.0/12 และ 192.168.0.0/16 เราเตอร์อินเทอร์เน็ตบล็อกแพ็กเก็ตใด ๆ ที่ส่งไปยังที่อยู่ส่วนตัวอันใดอันหนึ่ง NAT เป็นคุณลักษณะไฟร์วอลล์ที่ช่วยให้บริษัทต่างๆ ที่ใช้ที่อยู่ IP ส่วนตัวสามารถสื่อสารกับคอมพิวเตอร์เครื่องอื่นบนอินเทอร์เน็ตได้ ไฟร์วอลล์รู้วิธีแปลการรับส่งข้อมูลเข้าและออกไปยังที่อยู่ IP ภายในส่วนตัว เพื่อให้คอมพิวเตอร์ทุกเครื่องสามารถเข้าถึงอินเทอร์เน็ต

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

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

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

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

เพื่อให้เข้าใจเทคโนโลยีพอร์ตได้ดีขึ้น ลองจินตนาการว่าคุณไปที่ธนาคารเพื่อฝากเงิน ในการดำเนินการนี้ คุณต้องไปที่หน้าต่างใดหน้าต่างหนึ่ง ซึ่งผู้ดำเนินการจะกรอกเอกสารและคุณจะเปิดบัญชี ในตัวอย่างนี้ ธนาคารเป็นตัวแทนของคอมพิวเตอร์ และผู้ดำเนินการธนาคารคือโปรแกรมที่ทำงานเฉพาะเจาะจง แต่หน้าต่างคือพอร์ต และแต่ละหน้าต่างในธนาคารมักจะมีหมายเลข (1, 2,3 ...)

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

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

พอร์ต TCP/IP 1023 ถึง 65535 ไม่มีสิทธิพิเศษ และถูกใช้โดยโปรแกรมไคลเอนต์เพื่อรับการตอบสนองจากเซิร์ฟเวอร์ ตัวอย่างเช่น เว็บเบราว์เซอร์ของผู้ใช้เมื่อเข้าถึงเว็บเซิร์ฟเวอร์ จะใช้พอร์ต 44587 ของคอมพิวเตอร์ของเขา แต่จะเข้าถึงพอร์ต 80 ของเว็บเซิร์ฟเวอร์ หลังจากได้รับคำขอแล้ว เว็บเซิร์ฟเวอร์จะส่งการตอบกลับไปยังพอร์ต 44587 ซึ่งเว็บเบราว์เซอร์ใช้

แอปพลิเคชัน UDP

UDP ยังรองรับ Trivial File Transfer Protocol (TFTP), Simple Network Management Protocol (SNMP) และ Routing Information Protocol (RIP) รวมถึงแอปพลิเคชันอื่นๆ อีกมากมาย
TFTP (โปรโตคอลการถ่ายโอนไฟล์ทั่วไป) ส่วนใหญ่จะใช้สำหรับคัดลอกและติดตั้งระบบปฏิบัติการบนคอมพิวเตอร์จากไฟล์เซิร์ฟเวอร์

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

SNMP (Simple Network Management Protocol) ตรวจสอบและจัดการเครือข่ายและอุปกรณ์ที่เชื่อมต่ออยู่ และรวบรวมข้อมูลเกี่ยวกับประสิทธิภาพของเครือข่าย SNMP ส่งข้อความ PDU ที่อนุญาตให้ซอฟต์แวร์การจัดการเครือข่ายตรวจสอบอุปกรณ์บนเครือข่าย

RIP (Routing Information Protocol) เป็นโปรโตคอลการกำหนดเส้นทางภายใน ซึ่งหมายความว่าถูกใช้ภายในองค์กร แต่ไม่ใช่บนอินเทอร์เน็ต

แอปพลิเคชัน TCP

TCP ยังรองรับ FTP, Telnet และ Simple Mail Transfer Protocol (SMTP) รวมถึงแอปพลิเคชันอื่นๆ อีกมากมาย

FTP (File Transfer Protocol) เป็นแอปพลิเคชันที่มีคุณสมบัติครบถ้วนที่ใช้ในการคัดลอกไฟล์โดยใช้แอปพลิเคชันไคลเอนต์ที่ทำงานอยู่บนคอมพิวเตอร์เครื่องหนึ่งที่เชื่อมโยงกับแอปพลิเคชันเซิร์ฟเวอร์ FTP บนคอมพิวเตอร์ระยะไกลอีกเครื่องหนึ่ง เมื่อใช้แอปพลิเคชันนี้ สามารถรับและส่งไฟล์ได้

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

SMTP (Simple Mail Transfer Protocol) เป็นโปรโตคอลการถ่ายโอนเมลสำหรับอินเทอร์เน็ต รองรับการถ่ายโอนข้อความอีเมลระหว่างไคลเอนต์อีเมลและเซิร์ฟเวอร์อีเมล

พอร์ตที่รู้จักกันดี
พอร์ตที่รู้จักกันดีถูกกำหนดโดย IANA และอยู่ในช่วงตั้งแต่ 1,023 และต่ำกว่า สิ่งเหล่านี้ถูกกำหนดให้กับแอปพลิเคชันที่เป็นแกนหลักของอินเทอร์เน็ต

พอร์ตที่ลงทะเบียน
พอร์ตที่ลงทะเบียนได้รับการจัดทำแค็ตตาล็อกโดย IANA และอยู่ในช่วงตั้งแต่ 1024 ถึง 49151 พอร์ตเหล่านี้ถูกใช้โดยแอปพลิเคชันที่ได้รับลิขสิทธิ์ เช่น Lotus Mail

พอร์ตที่ได้รับมอบหมายแบบไดนามิก
พอร์ตที่กำหนดแบบไดนามิกจะมีหมายเลขตั้งแต่ 49152 ถึง 65535 หมายเลขสำหรับพอร์ตเหล่านี้ได้รับการกำหนดแบบไดนามิกตามระยะเวลาของเซสชันที่ระบุ