ใครเลือก 127.0.0.1 เป็น localhost และเพราะเหตุใด มันมีความหมายอะไร?


21

ฉันเกือบจะเป็นบวกทุกคนที่นี่รู้ความหมายของ 127.0.0.1 แต่ทำไมโฮสต์ท้องถิ่นถึงถูกเสมอ ใครเลือก IP โดยพลการ ทำไม IP ถึงถูกเลือก? ทำไมไม่ลองอะไรง่าย ๆ เช่น 1.0.0.0 ล่ะ 127.0.0.1 มีความหมายพิเศษไหม?


3
แสวงหาและเจ้าจะพบ RFC
SpacemanSpiff

@SpacemanSpiff RFC?
James Graham

4
RFCs ( ขอความคิดเห็น ) เป็นหน่วยการสร้างพื้นฐานของอินเทอร์เน็ต ดูคำตอบของฉันด้านล่างสำหรับข้อมูลเพิ่มเติม
Michael Hampton

คำตอบ:


41

Jon Postelเลือก 127

ก่อนที่Internet Assigned Numbers Authority จะเข้าครอบครอง ( RFC 3232 ) ในช่วงเวลาก่อนที่เขาจะเสียชีวิต ( RFC 2468 ) เขาเป็น "จักรพรรดิ" ของที่อยู่อินเทอร์เน็ตและการมอบหมายพอร์ตโดยได้รับการเสนอชื่อเข้าชิงภารกิจ ( RFC 349 )

ย้อนกลับไปในช่วงต้นทศวรรษ 1980 เมื่อ IPv4 ที่เรารู้ว่ามันถูกแฮ็กครั้งแรกเครือข่ายที่มีอยู่จะได้รับบล็อกที่อยู่ "class A" ในพื้นที่ที่อยู่แบบ 32 บิตที่จะมีผลบังคับใช้ในปี 1983 ( RFC 801 ) ทั้งการกำหนดเริ่มต้นและการกำหนด 127 คุณถามเกี่ยวกับการเช่นเดียวกับคำจำกัดความแรกของ "ระดับ A", "คลาส B" และ "C ชั้น" ที่อยู่ IP ถูกตีพิมพ์ครั้งแรกในพอของRFC 790 (โปรดทราบว่า "คลาส" ถูกแทนที่โดยCIDRในRFC 1519ตอนนี้RFC 4632 )

ใน RFC 790 Postel ให้นิยาม 127 เป็น "สงวน"

      127.rrr.rrr.rrr                 Reserved                     [JBP]

คำจำกัดความที่เป็นทางการครั้งแรกของมันปรากฏในRFC 990ซึ่งมีการกำหนดดังต่อไปนี้:

คลาสเครือข่ายหมายเลข 127 ได้รับการกำหนดฟังก์ชั่น "วนกลับ" นั่นคือดาตาแกรมที่ส่งโดยโพรโทคอลระดับสูงกว่าไปยังที่อยู่เครือข่าย 127 ที่อยู่ควรวนกลับภายในโฮสต์ ไม่มีดาตาแกรม "ส่ง" ไปยังเครือข่ายที่อยู่ 127 ไม่ควรปรากฏบนเครือข่ายใด ๆ

และอีกครั้งในRFC 1060 :

(g) {127, <any>}

ที่อยู่ลูปแบ็คของโฮสต์ภายใน ไม่ควรปรากฏนอกโฮสต์

ดังนั้นที่อยู่ใด ๆ ภายใน 127.0.0.0/8 จะถือว่าเป็นลูปแบ็คและถูกส่งกลับไปที่โลคัลโฮสต์

รายการปัจจุบันของที่อยู่ IPv4 ที่ใช้งานพิเศษคือRFC 6890ซึ่งล้าสมัยแล้วRFC 5735ซึ่งจะยกเลิกRFC 3330 ที่ล้าสมัยแล้ว RFC 5735 ฯ :

127.0.0.0/8 - บล็อกนี้ถูกกำหนดให้ใช้เป็นที่อยู่ลูปแบ็คโฮสต์อินเทอร์เน็ต ดาตาแกรมที่โปรโตคอลระดับสูงกว่าส่งไปยังที่อยู่ที่ใดก็ได้ภายในบล็อกนี้จะวนกลับเข้าไปในโฮสต์ โดยปกติจะมีการใช้งานโดยใช้เพียง 127.0.0.1/32 สำหรับลูปแบ็ค ตามที่อธิบายไว้ใน[RFC1122], ส่วน 3.2.1.3 , ที่อยู่ภายในบล็อค 127.0.0.0/8 ทั้งหมดจะไม่ปรากฏในเครือข่ายใด ๆ อย่างถูกต้องตามกฎหมาย

ในที่สุดในเครือข่ายย่อย IPv4ใด ๆที่อยู่ต่ำสุดไม่สามารถใช้งานได้เพราะมันหมายถึงเส้นทางเครือข่าย ดังนั้นที่อยู่ที่ใช้งานได้ครั้งแรกในซับเน็ตและที่เห็นได้บ่อยที่สุดคือ 127.0.0.1


28

จากRFC :

127.0.0.0/8 - บล็อกนี้ถูกกำหนดให้ใช้เป็นที่อยู่ลูปแบ็คโฮสต์อินเทอร์เน็ต ดาตาแกรมที่โปรโตคอลระดับสูงกว่าส่งไปยังที่อยู่ที่ใดก็ได้ภายในบล็อกนี้ควรวนกลับเข้าไปในโฮสต์ โดยปกติจะมีการใช้งานโดยใช้เพียง 127.0.0.1/32 สำหรับลูปแบ็ค แต่ไม่ควรมีที่อยู่ในบล็อกนี้ในเครือข่ายใด ๆ [RFC1700, หน้า 5]

จากวิกิพีเดีย :

เช่นเดียวกับที่อยู่ IP ทั้งหมดการกำหนดชื่อโฮสต์ที่เหมือนกันจะทำให้ชีวิตของผู้ใช้เป็นเรื่องง่ายขึ้นและ localhost คือผู้บุกเบิกเครือข่ายนามแฝง

โปรดทราบว่า 127 ในไบนารีคือ01111111ค่าย้อนกลับและกลับด้านที่ 1 ( 00000001 )


4
ขอขอบคุณ! ฉันจะลงคะแนน แต่อนิจจาชื่อเสียงของฉันเป็นของเด็ก
James Graham

7
เอ้อ10000000 (128)เป็นของnot 01111111 (127)"ตรงกันข้าม" ไม่ใช่การดำเนินการที่ชาญฉลาดและไม่สมเหตุสมผลในบริบทดังกล่าว
Chris S

ฉันสงสัยว่าค่าบิตของที่อยู่นั้นมีอยู่จริงและไม่มีความหมายที่เชื่อถือได้ในการเลือก 127 เป็นบล็อกเครือข่ายลูปแบ็ค
Matthew Ife

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