TY - JOUR
T1 - Programming Network Stack for Physical Middleboxes and Virtualized Network Functions
AU - Li, Hao
AU - Dang, Yihan
AU - Sun, Guangda
AU - Wu, Changhao
AU - Zhang, Peng
AU - Shan, Danfeng
AU - Pan, Tian
AU - Hu, Chengchen
N1 - Publisher Copyright:
© 1993-2012 IEEE.
PY - 2024/4/1
Y1 - 2024/4/1
N2 - Middleboxes are becoming indispensable in modern networks. However, programming the network stack of middleboxes to support emerging transport protocols and flexible stack hierarchy is still a daunting task. To this end, we propose Rubik, a language that greatly facilitates the task of middlebox stack programming. Different from existing hand-written approaches, Rubik offers various high-level constructs for relieving the operators from dealing with massive native code, so that they can focus on specifying their processing intents. We show that using Rubik one can program the middlebox stack with minor effort, e.g., 250 lines of code for a complete TCP/IP stack, which is a reduction of 2 orders of magnitude compared to the hand-written versions. To maintain a high performance, we conduct extensive optimizations at the middle- and back-end of the compiler. Experiments show that the stacks generated by Rubik outperform the mature hand-written stacks by at least 30% in throughput.
AB - Middleboxes are becoming indispensable in modern networks. However, programming the network stack of middleboxes to support emerging transport protocols and flexible stack hierarchy is still a daunting task. To this end, we propose Rubik, a language that greatly facilitates the task of middlebox stack programming. Different from existing hand-written approaches, Rubik offers various high-level constructs for relieving the operators from dealing with massive native code, so that they can focus on specifying their processing intents. We show that using Rubik one can program the middlebox stack with minor effort, e.g., 250 lines of code for a complete TCP/IP stack, which is a reduction of 2 orders of magnitude compared to the hand-written versions. To maintain a high performance, we conduct extensive optimizations at the middle- and back-end of the compiler. Experiments show that the stacks generated by Rubik outperform the mature hand-written stacks by at least 30% in throughput.
KW - Middleboxes
KW - network function virtualization (NFV)
KW - software defined networking
UR - https://www.scopus.com/pages/publications/85174839120
U2 - 10.1109/TNET.2023.3307641
DO - 10.1109/TNET.2023.3307641
M3 - 文章
AN - SCOPUS:85174839120
SN - 1063-6692
VL - 32
SP - 971
EP - 986
JO - IEEE/ACM Transactions on Networking
JF - IEEE/ACM Transactions on Networking
IS - 2
ER -