พอร์ตทำงานกับ IPv6 ได้อย่างไร


143

สัญกรณ์รูปสี่เหลี่ยม IPv4 ประจุดแยกที่อยู่จากพอร์ตกับโคลอนดังตัวอย่างของเว็บเซิร์ฟเวอร์บนอินเตอร์เฟสวนย้อนกลับ:

127.0.0.1:80

แต่ด้วยสัญกรณ์ IPv6 ที่อยู่นั้นสามารถมีโคลอนได้ ตัวอย่างเช่นนี่เป็นรูปแบบย่อของที่อยู่ลูปแบ็ค:

::1

พอร์ต (หรือหน้าที่เทียบเท่า) แสดงในการแสดงข้อความของจุดสิ้นสุดที่อยู่ IPv6 / พอร์ตอย่างไร

คำตอบ:



33

โปรโตคอลที่ใช้ใน IPv6 จะเหมือนกับโปรโตคอลใน IPv4 สิ่งเดียวที่เปลี่ยนไประหว่างสองรุ่นนี้คือรูปแบบการกำหนดแอดเดรส DHCP [DHCPv6] และ ICMP [ICMPv6] โดยทั่วไปแล้วอะไรก็ตามที่เกี่ยวข้องกับ TCP / UDP รวมถึงช่วงพอร์ต (0-65535) ยังคงไม่เปลี่ยนแปลง

แก้ไข:พอร์ต 0 เป็นพอร์ตที่สงวนไว้ใน TCP แต่มีอยู่จริง ดูRFC793


6

พวกเขาเหมือนกันใช่ไหม ตอนนี้ฉันหมดความมั่นใจในตัวเอง แต่ฉันคิดว่า IPv6 เป็นเพียงการเปลี่ยนแปลงที่อยู่ TCP และ UDP ยังคงรับการแก้ไขเนื่องจากอยู่ภายใต้ IPv4


3
มันไม่ได้เป็นเพียงการเปลี่ยนที่อยู่ มันควรที่จะนำคุณสมบัติเจ๋ง ๆ (เช่นมัลติคาสต์ส่วนกลาง) แต่ใช่มันโปร่งใสสำหรับเลเยอร์ด้านบน
Tarnay Kálmán

4
มันคือ "เพียงแค่" การเปลี่ยนแปลงที่อยู่ สิ่งที่คุณกำลังพูดถึงคือการพูดถึง :) แต่เหตุผลที่ผู้คนกังวล / สับสนคือการออกแบบระบบเครือข่ายจะถือว่า "ที่อยู่" เป็นที่อยู่และ "บริการ" เป็นหมายเลขพอร์ต แต่คุณไม่สามารถทำอะไรใน TCP หรือ UDP หากไม่มีทั้งคู่ดังนั้นคนส่วนใหญ่จึงพยายามหาที่อยู่ระดับซ็อกเก็ตเพื่อทำงานและไม่สามารถเข้าใจได้ว่าทำไมผู้คนถึงทำหรือเปลี่ยนตัวคั่น: ช่องว่างจากนั้นก็จุด เครื่องหมายโคลอนแล้วสัญญาณปอนด์? ใช่ฉันเห็น IPv6 ทำให้ผู้คนกังวล
benc

6

ฉันค่อนข้างแน่ใจว่าพอร์ตมีส่วนร่วมใน tcp และ udp เท่านั้น ดังนั้นจึงเหมือนกันแม้ว่าคุณจะใช้โปรโตคอล IP ใหม่


1
DCCP และ SCTP ยังมีพอร์ต แต่พอร์ตใน SCTP นั้นแตกต่างกันเล็กน้อยเนื่องจากตัวระบุการเชื่อมโยงเพิ่มเติม
james woodyatt

6

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

(นำมาจากการแก้ไข Peter Wone ที่ทำกับคำถามเดิม)


5

ฉันจะบอกว่าการอ้างอิงที่ดีที่สุดคือรูปแบบสำหรับที่อยู่ IPv6 ที่แท้จริงใน URLที่มีการใช้ [] ถูกกำหนด

นอกจากนี้หากเป็นการเขียนโปรแกรมและรหัสโดยเฉพาะ Java ฉันขอแนะนำให้อ่านClass สำหรับคำจำกัดความ Inet6Address java / net / URLที่การใช้ที่อยู่ Inet4 ใน Inet6 connotation และกรณีอื่น ๆ จะแสดงรายละเอียด สำหรับกรณีของฉันที่อยู่ที่แมป IPv4 ของแบบฟอร์ม :: ffff: wxyz สำหรับที่อยู่ IPv6 ถูกใช้เพื่อแสดงที่อยู่ IPv4 ก็แก้ปัญหาของฉันได้เช่นกัน อนุญาตให้โปรแกรมเนทีฟใช้โครงสร้างข้อมูลที่อยู่เดียวกันและซ็อกเก็ตเดียวกันเมื่อสื่อสารกับทั้งโหนด IPv4 และ IPv6 นี่เป็นกรณีบน Amazon cloud Linux กล่องการตั้งค่าเริ่มต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.