from matplotlib import pyplot as plt
import pandas as pd
# Datos del cuadro comparativo
data = {
"Aspecto": [
"Definición",
"N° de capas",
"Capa 7: Aplicación",
"Capa 6: Presentación",
"Capa 5: Sesión",
"Capa 4: Transporte",
"Capa 3: Red",
"Capa 2: Enlace de datos",
"Capa 1: Física",
"Uso actual",
"Protocolos comunes"
],
"Modelo OSI": [
"Modelo de referencia de 7 capas que estandariza funciones de redes.",
"7 capas",
"Interacción directa con el usuario y aplicaciones.",
"Traducción de datos, cifrado, compresión.",
"Establece, mantiene y termina sesiones entre dispositivos.",
"Control de flujo, segmentación, confiabilidad (TCP/UDP).",
"Enrutamiento de datos, direcciones IP.",
"Control de acceso al medio físico, direcciones MAC.",
"Transmisión de bits por el medio físico (cables, señales).",
"Más educativo y teórico.",
"No define protocolos específicos."
],
"Modelo TCP/IP": [
"Modelo práctico de 4 capas que describe cómo se comunican los datos en internet.",
"4 capas",
"Aplicación: Combina las capas 5, 6 y 7 de OSI.",
"Incluida en la capa de Aplicación.",
"Incluida en la capa de Aplicación.",
"Transporte: También usa TCP y UDP.",
"Internet: Maneja direccionamiento y enrutamiento.",
"Acceso a la red: Combina las capas 1 y 2 de OSI.",
"Incluida en Acceso a la red.",
"Base real de las redes y comunicaciones en internet.",
"TCP, IP, HTTP, FTP, DNS, etc."
]
}
# Crear DataFrame
df = pd.DataFrame(data)
# Ajustar el tamaño de la figura
fig, ax = plt.subplots(figsize=(14, 8))
ax.axis('off')
table = ax.table(cellText=df.values, colLabels=df.columns, loc='center', cellLoc='left', colColours=['#cce5ff']*3)
table.auto_set_font_size(False)
table.set_fontsize(9)
table.scale(1.2, 2.0)
plt.tight_layout()
plt.savefig("cuadro_comparativo_osi_tcpip.png", dpi=300)
plt.show()