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?
fuente
640 kB ought to be enough for anybody.
Nadie esperaba que las tostadoras y las neveras tuvieran acceso a internet.Respuestas:
Aquí hay un enlace a un Hangout con Vint Cerf (Abril 2014) donde explica cómo pensaba que esto de Internet se suponía que era solamente un experimento:
Ya había publicado esto como un comentario a la respuesta de Jens Link, pero sentí que debería aparecer un poco más.
fuente
Respuesta fácil: porque Vint Cerf lo decidió . Pensó que estaba diseñando un protocolo experimental y consideró que 32 bits era más que suficiente para ese propósito; no esperaba que se usara IPv4 en los sistemas de producción y, por lo tanto, no se pensó más en el tamaño del espacio de direcciones.
En la Conferencia IPv6 de Google 2008, organizó un panel de discusión titulado ¿Cómo será la Internet IPv6? durante el cual contó :
Transcripción de Peter E. Murray .
fuente
Tamaño de palabra Estaban escribiendo software, no diseñando hardware de computadora, aunque estoy seguro de que tenían en mente el rendimiento y la portabilidad. En ese momento, era el de 32 bits
word
, ellongword
oint
olongInt
o lo que sea. Ver Word Size Choice .Escribieron este software "durante las primeras décadas de las arquitecturas de 32 bits (de 1960 a 1980)". - Wikipedia
fuente