Ai đã chọn 127.0.0.1 làm localhost và tại sao? Nó có ý nghĩa gì?


21

Tôi gần như tích cực mọi người ở đây đều biết ý nghĩa của 127.0.0.1. Nhưng, tại sao đó LUÔN là localhost? Ai chọn IP tùy ý? Tại sao IP đó được chọn? Tại sao không phải là một cái gì đó đơn giản hơn như 1.0.0.0? Có một số ý nghĩa đặc biệt đối với 127.0.0.1?


3
Tìm kiếm và các ngươi sẽ tìm thấy RFC
SpacemanSpiff

@SpacemanSpiff RFC?
James Graham

4
RFC ( Yêu cầu Nhận xét ) là các khối xây dựng cơ bản của Internet. Xem câu trả lời của tôi dưới đây để biết thêm.
Michael Hampton

Câu trả lời:


41

Jon Postel chọn 127.

Trước khi Cơ quan cấp số được gán Internet ( RFC 3232 ) vào khoảng thời gian ông qua đời ( RFC 2468 ), ông là "hoàng đế" của địa chỉ Internet và các nhiệm vụ của cảng, về cơ bản đã tự đề cử cho nhiệm vụ này. ( RFC 349 )

Quay trở lại đầu những năm 1980, khi IPv4 như chúng ta biết lần đầu tiên được băm ra, các mạng hiện tại đã được cung cấp các khối địa chỉ "lớp A" trong không gian địa chỉ 32 bit sẽ có hiệu lực vào năm 1983 ( RFC 801 ). Cả bài tập ban đầu và bài tập 127 mà bạn hỏi, cũng như các định nghĩa đầu tiên về địa chỉ IP "lớp A", "lớp B" và "lớp C", lần đầu tiên được xuất bản trong RFC 790 của Postel . (Lưu ý rằng "các lớp" đã được thay thế bởi CIDR trong RFC 1519 , giờ là RFC 4632. )

Trong RFC 790, Postel định nghĩa 127 là "dành riêng".

      127.rrr.rrr.rrr                 Reserved                     [JBP]

Định nghĩa chính thức đầu tiên của nó xuất hiện trong RFC 990 , trong đó nó được định nghĩa như sau:

Lớp mạng số 127 được gán chức năng "loopback", nghĩa là một datagram được gửi bởi giao thức cấp cao hơn tới địa chỉ mạng 127 sẽ lặp lại bên trong máy chủ. Không có datagram "được gửi" đến một địa chỉ mạng 127 sẽ xuất hiện trên bất kỳ mạng nào ở bất cứ đâu.

Và một lần nữa trong RFC 1060 :

(g) {127, <bất kỳ>}

Địa chỉ loopback máy chủ nội bộ. Không bao giờ nên xuất hiện bên ngoài một máy chủ.

Do đó, bất kỳ địa chỉ nào trong 127.0.0.0/8 sẽ được coi là loopback và được chuyển trở lại máy chủ cục bộ.

Danh sách hiện tại của các địa chỉ IPv4 được sử dụng đặc biệt là RFC 6890 , đã bị lỗi RFC 5735 , đến lượt RFC 3330 bị lỗi thời . RFC 5735 tuyên bố:

127.0.0.0/8 - Khối này được chỉ định để sử dụng làm địa chỉ vòng lặp máy chủ Internet. Một datagram được gửi bởi một giao thức cấp cao hơn tới một địa chỉ ở bất cứ đâu trong khối này lặp lại bên trong máy chủ. Điều này thường được thực hiện bằng cách chỉ sử dụng 127.0.0.1 / 32 cho loopback. Như được mô tả trong [RFC1122], Mục 3.2.1.3 , các địa chỉ trong toàn bộ khối 127.0.0.0/8 không xuất hiện hợp pháp trên bất kỳ mạng nào ở bất kỳ đâu.

Cuối cùng, trong bất kỳ mạng con IPv4 nào , địa chỉ thấp nhất không thể sử dụng được vì nó đại diện cho tuyến mạng. Vì vậy, địa chỉ có thể sử dụng đầu tiên trong mạng con, và do đó, thường thấy nhất, là 127.0.0.1.


28

Từ RFC :

127.0.0.0/8 - Khối này được chỉ định để sử dụng làm địa chỉ vòng lặp máy chủ Internet. Một datagram được gửi bởi một giao thức cấp cao hơn tới một địa chỉ ở bất kỳ đâu trong khối này sẽ lặp lại bên trong máy chủ. Điều này thường được triển khai bằng cách chỉ sử dụng 127.0.0.1 / 32 cho loopback, nhưng không có địa chỉ nào trong khối này sẽ xuất hiện trên bất kỳ mạng nào ở bất cứ đâu [RFC1700, trang 5].

Từ wikipedia :

Như với tất cả các địa chỉ IP, việc xác định tên máy chủ đồng nghĩa chỉ đơn giản giúp cuộc sống của người dùng dễ dàng hơn - và localhost là nhà tiên phong kết nối mạng bí danh.

Cũng lưu ý rằng 127 trong nhị phân là 01111111 , giá trị đảo ngược và đảo ngược của 1 ( 00000001 )


4
Cảm ơn bạn! Tôi sẽ bỏ phiếu lên. Nhưng, than ôi, danh tiếng của tôi là của một đứa trẻ.
James Graham

7
Er, 10000000 (128)notcủa 01111111 (127). "Đối diện" không phải là một hoạt động khôn ngoan và không có ý nghĩa trong bối cảnh như vậy.
Chris S

Tôi nghi ngờ các giá trị bitwise của các địa chỉ là hoàn cảnh và không có ý nghĩa chính thức trong việc lựa chọn 127 là khối mạng loopback.
Matthew Ife

6
@Mlfe giá trị bitwise của 127 không phải là hoàn cảnh: đó là địa chỉ lớp A "cuối cùng", tất cả đều có bit dẫn đầu là 0.
KutuluMike
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.