Nhiều vệ tinh trước đây, khi tôi chỉ là một wee con nít bắt đầu sự nghiệp của tôi, tôi đã có một cuộc phỏng vấn việc làm cho một vai trò nhà phát triển ở mức độ thấp. Vào thời điểm đó chỉ cần học cách CIDR được triển khai, tôi rất muốn thể hiện kiến thức của mình.
Đáng buồn thay, chiến thuật đó đã không làm việc quá tốt cho tôi. Tôi nhớ rằng đã hoàn toàn bị cuốn hút bởi câu hỏi đầu tiên được hỏi (và, sau đó xù lông, tất cả đã xuống dốc). Câu hỏi là:
Tại sao địa chỉ IPv4 là 32 bit?
Tôi sẵn sàng thừa nhận rằng tôi không biết câu trả lời, nhưng tôi đã biết rằng việc thiết kế giao thức gốc chia không gian địa chỉ vào một số mạng 8-bit và 24-bit máy chủ định danh-vì vậy tôi đã cố gắng để hợp lý hóa nó với lý do các nhà thiết kế giao thức đã tưởng tượng ra Internet của một vài mạng (rốt cuộc, nó ban đầu được dự định liên kết với một số mạng cụ thể ), mỗi mạng bao gồm nhiều máy chủ và, để đơn giản hóa việc lập trình, giữ mọi thứ được căn chỉnh theo ranh giới byte.
Tôi nhớ lại rằng người phỏng vấn không hài lòng với câu trả lời của tôi và gợi ý cho tôi rằng lý do thực sự là nó được đảm bảo phù hợp với một chữ long int
C, vì vậy đơn giản hóa các chi tiết thực hiện. Lúc còn trẻ và xanh, tôi chấp nhận rằng đó là một câu trả lời hợp lý và (trước ngày hôm nay) đã không nghĩ gì thêm về nó.
Vì một số lý do mà cuộc trò chuyện vừa trở lại với tôi và, bây giờ khi tôi suy nghĩ về nó, nó dường như không hoàn toàn hợp lý:
Theo sơ đồ địa chỉ ban đầu bao gồm các trường máy chủ và mạng có kích thước cố định, không có khả năng nhà phát triển muốn gán phép nối hai trường cho một biến duy nhất (Tôi không có quyền truy cập vào bất kỳ triển khai IP sớm nào để xác minh xem chúng là gì thực tế đã làm trong thực tế); và
Tại thời điểm đó công trình trên giao thức TCP / IP bắt đầu, C được không phải tiêu chuẩn hóa cũng không phải là de facto "lingua franca" của phát triển phần mềm ở mức độ thấp mà nó đã trở thành ngày hôm nay.
Là đề nghị của người phỏng vấn thực sự được thành lập trên thực tế? Nếu không, những gì là những lý do thực sự mà các nhà thiết kế giao thức chọn 32-bit địa chỉ?
640 kB ought to be enough for anybody.
Không ai mong muốn lò nướng bánh và tủ lạnh có quyền truy cập internet.