Ir al contenido

Usuario:GaalNickDor/Taller/P4 (lenguaje de programación)

De Wikipedia, la enciclopedia libre

Esto es una página para pruebas GaalNickDor. Esto es una página de usuario de Wikipedia. Esto no es un artículo enciclopédico.


 Vaciar esta subpágina de usuario 

Haga clic aquí y agregue en la parte superior de la página:
#REDIRECCIÓN [[Usuario:GaalNickDor/Taller]]

P4
Desarrollador(es)
The P4 Language Consortium
Información general
Extensiones comunes .p4
Paradigma Compilado, Dominio específico, Imperativo
Apareció en 2013
Última versión estable versión 1.2[1](17 de Mayo de 2021)
Sistema operativo multiplataforma
Licencia Apache-style

P4 es un lenguaje de programación que permite la configuración del plano de reenvío para el reenvío de paquetes en dispositivos de red, como routers y switches. A diferencia de otros lenguajes populares como Python, Haskell o Java, P4 es un lenguaje de dominio específico que contiene una serie de construcciones específicas y optimizadas para el reenvío de paquetes. P4 es desarrollado por el consorcio P4 Language Consortium, una organización sin ánimo de lucro amparada por la fundación Open Networking Foundation, que mantiene el software y lo distribuye bajo una licencia open-source permisiva.

Historia[editar]

El nombre del lenguaje nace sale del nombre del artículo en inglés "Programming Protocol-Independent Packet Processors" (Programando Procesadores de Paquetes Independientes del Protocolo) publicado en 2014 en SIGCOMM.[2]​ El primer taller de P4 tuvo lugar en la Universidad Stanford en junio de 2015.[3]​ Entre 2016 y 2017 se publicó una versión actualizada de P4 llamada P4-16,[4]​ que reemplazó la especificación original, llamada P4-14.[5]

Diseño[editar]

Dado que el lenguaje está orientado al desarrollo de aplicaciones de reenvío de paquetes, las opciones de diseño y lista de requisitos es distinta a la de un lenguaje de propósito general. Sus principales objetivos son:

Independencia de plataforma de destino[editar]

Los programas de P4 está diseñados para ser independientes de su implementación. Estos programas, pueden ser compilados para múltiples arquitecturas, como CPUs de propósito general, Linux[6]​, FPGAs,[7]system-on-chip (SoC), procesadores de red (NPU) y ASICs. Cada una de estas arquitecturas es conocida como un target de P4, que, para poder ser utilizadas, necesitan un compilador que transforme el código en el formato específico para poder ser ejecutado por la arquitectura. Además, también se precisa de un runtime que proporcione las abstracciones necesarias para el reenvío de paquetes.[8]​ El compilador puede estar empotrado en el dispositivo de destino, en un software externo, o en un servicio de nube. Muchos de los programas iniciales de P4 eran compilados para tareas simples de reenvío de paquetes y es por ello que es común usar el término "P4 switch" (conmutador de P4) en vez de "P4 target", aun siendo el último formalmente más correcto.

Independencia de protocolo[editar]

P4 está diseñado para ser independiente del protocolo. No tiene un soporte nativo para ningún protocolo, ni siquiera IP ni Ethernet ni TCP. Para procesar los protocolos, se describe el formato de las cabeceras en el lenguaje para que luego pueda ser utilizado por el programa.

Reconfiguración[editar]

Al ser independiente del protocolo y además tener un modelo de lenguaje abstracto que permite la reconfiguración, los targets de P4 deberían de permitir el cambio de la forma en la que procesan los paquetes después de haber sido desplegados.

El artículo termina aquí.


Véase también[editar]

Referencias[editar]

  1. «P4_16 Language Specification» (en inglés). 17 de mayo de 2021. Consultado el 18 de octubre de 2021. 
  2. Bosshart, Pat; Daly, Dan; Gibb, Glen; Izzard, Martin; McKeown, Nick; Rexford, Jennifer; Schlesinger, Cole; Talayco, Dan et al. (28 de julio de 2014). «P4: programming protocol-independent packet processors». ACM SIGCOMM Computer Communication Review 44 (3): 87-95. ISSN 0146-4833. doi:10.1145/2656877.2656890. Consultado el 18 de octubre de 2021. 
  3. «1st P4 Workshop». Open Networking Foundation (en inglés estadounidense). 4 de junio de 2015. Consultado el 18 de octubre de 2021. 
  4. «P4~16~ Language Specification». p4.org. Consultado el 18 de octubre de 2021. 
  5. The P4 Language Specification. 3 de marzo de 2015. Consultado el 18 de octubre de 2021. 
  6. Tu, William; Ruffy, Fabian; Budiu, Mihai (2018). «Linux Network Programming with P4». Linux Plumbers Conference. Consultado el 13 de noviembre de 2021. 
  7. Yazdinejad, Abbas; Parizi, Reza M.; Bohlooli, Ali; Dehghantanha, Ali; Choo, Kim-Kwang Raymond (15 de abril de 2020). «A high-performance framework for a network programmable packet processor using P4 and FPGA». Journal of Network and Computer Applications (en inglés) 156: 102564. ISSN 1084-8045. doi:10.1016/j.jnca.2020.102564. Consultado el 13 de noviembre de 2021. 
  8. «P4Runtime Specification». 

Bibliografía[editar]

  • título. 
  • título. 

Enlaces externos[editar]