Como desarrollador, ¿qué capa OSI necesito entender?

Todos ellos, incluido el usuario discutible y las capas de políticas.

Tener un conocimiento profundo de toda la pila ayudará enormemente a su producto. Por ejemplo, recientemente tuve un cliente de atención médica con un sitio web altamente vulnerable. Al desarrollador del sitio le llevó 4 meses comprender que hay vulnerabilidades fuera de la capa de aplicación en las que están acostumbrados a trabajar. 4 meses para que acuerden que POODLE y SSL3 son vulnerables. Incluso a pesar de todo esto, se mantuvieron firmes en que nunca se violaron datos … a pesar de que no tenían idea de cómo probarlo.

Tener un conocimiento práctico de cómo se mueven los electrones en un cable o cómo estandarizar una política de registro de cambios del firewall siempre será un beneficio para un proyecto de desarrollo. Saber en qué parte se encuentra en la pila es clave para hacerlo bien.

Recuerde, limitar la visibilidad de cada miembro del equipo generalmente hace que las personas hagan lo que creen que es correcto …

Eso depende de lo que estés desarrollando.

Si está escribiendo aplicaciones de Internet, la pila TCP / IP es útil, pero solo si planea usar algo más que un socket básico. Si necesita IGMPv3 más multidifusión sobre UDP, necesita un poco de conocimiento. Por otro lado, si está abriendo un socket TCP o SCTP básico y usándolo como un volcado de datos, no le importan los mecanismos subyacentes.

Si está escribiendo aplicaciones X.25, debe comprender todo el OSI.

Si está escribiendo programas que usan la interfaz kDAPL para InfiniBand, es un idiota si pierde el tiempo en cualquiera de los anteriores.

Si está escribiendo aplicaciones CORBA, DCE o RPC, no le importan las capas, todo está a su cargo.

Si está escribiendo para Fieldbus o RS232, pase su tiempo estudiando protocolos serie punto a punto, no protocolos de paquetes.

Si tiene interés en MPI-3 o HTTP, aprenda MPI-3 y HTTP, son independientes de las capas en las que trabajan.

Si está escribiendo una pila BACNET para el kernel de Linux, no está basada en OSI. Es un protocolo básico donde se transmite un datagrama y se obtiene un datagrama.

¿Escribir un juego? Use una biblioteca que oculte los detalles. De esa manera, no estás atado a ninguna tecnología. Recuerde, los buenos ingenieros de software NUNCA mezclan E / S con lógica. Aislar. Su código no debe saber NADA sobre ningún aspecto de ninguna de las E / S. Hay bibliotecas de E / S portátiles para este propósito. Usalos, usalos a ellos. Reinventar la rueda casi siempre resulta en una rueda peor.

Casi siempre es mucho, mucho más importante saber si un componente tiene una interfaz abierta, intermedia o cerrada, si los componentes están acoplados sin apretar o están estrechamente acoplados, sincrónicos o asincrónicos, en tiempo real o por lotes.

Debe comprender que OSI no se aplica. Como, en absoluto.

Más allá de eso, debe comprender cómo funciona la red real utilizada en el mundo real. Comience con la pila TCP / IP, para servicios orientados a la conexión. Eso es bastante pesado, pero funciona universalmente.

Puede seguir eso con protocolos orientados a conexiones más livianos, cosas como WebSockets, y también debe familiarizarse con el funcionamiento de UDP sobre IP, aunque solo sea para no intentar usarlo en lugares donde se requieren conexiones en lugar de datagramas

Pero esta tontería OSI? Solo olvida que incluso existe. Casi todos los que trabajan en el mundo real lo hicieron, hace mucho tiempo.

Todos ellos … por alguien que dice que un Modelo no se aplica, entonces intente construir una casa con una impresión azul o un Modelo.

La capa OSI es solo un modelo y sí, no todas las 7 capas se utilizan en todas las comunicaciones, pero a veces es …
Si un usuario va a estar en el otro extremo … Sí, se deben usar todas las capas.
Si un sistema va a ser el otro extremo … No, no se utilizarán todas las capas.
Incluso en el modelo TCP-IP no se usan los 4 … pero 3 con seguridad … 1, 2 y 4
A menos que su Esperanza de enrutador a enrutador de capa 3 no sea necesaria … es decir, en la misma LAN … no se necesita capa de red.