Hace muchas lunas, cuando era sólo un wee bairn comenzando mi carrera, tuve una entrevista de trabajo para un papel revelador de bajo nivel. Habiendo aprendido en ese momento cómo se implementó CIDR, estaba ansioso por mostrar mi conocimiento.
Lamentablemente, esa táctica no funcionó demasiado bien para mí. Recuerdo haber quedado completamente anonadado por la primera pregunta que se hizo (y luego, alborotada, todo fue cuesta abajo). La pregunta fue:
¿Por qué las direcciones IPv4 son de 32 bits?
Admití fácilmente que no sabía la respuesta, pero sí sabía que el diseño del protocolo original dividía el espacio de direcciones en un número de red de 8 bits y un identificador de host de 24 bits, así que traté de racionalizarlo porque Los diseñadores de protocolos imaginaron un Internet de unas pocas redes (después de todo, originalmente estaba destinado a vincular unas pocas específicas ), cada una de las cuales comprendía muchos hosts y, por simplicidad de programación, mantenía todo alineado con los límites de bytes.
Recuerdo que el entrevistador no estaba satisfecho con mi respuesta y me sugirió que la verdadera razón es que está garantizado que cabe dentro de una long int
en C, por lo que simplifica los detalles de implementación. Siendo joven y verde en ese momento, acepté eso como una respuesta razonable y (antes de hoy) no había pensado más en ello.
Por alguna razón, esa conversación acaba de regresar a mí y, ahora que reflexiono sobre ella, no parece del todo posible:
Según el esquema de direccionamiento original que comprende campos de host y de red de tamaño fijo, es poco probable que un desarrollador haya querido asignar la concatenación de los dos campos a una sola variable (no tengo acceso a ninguna de las primeras implementaciones de IP para verificar qué en realidad lo hizo en la práctica); y
En el momento en que comenzaron los trabajos en TCP / IP, C no estaba estandarizada ni era la "lengua franca" de facto del desarrollo de software de bajo nivel en el que se ha convertido hoy.
¿La sugerencia del entrevistador fue realmente fundada? Si no, ¿cuáles fueron las razones reales por las que los diseñadores de protocolos eligieron el direccionamiento de 32 bits?
640 kB ought to be enough for anybody.
Nadie esperaba que las tostadoras y las neveras tuvieran acceso a internet.