nsQUIC: Uma Extensão para Simulação do Protocolo QUIC no NS-3
Resumo
Apesar do TCP fornecer muitas garantias em relação ao UDP, adaptá-lo para novas aplicações pode levar muitos anos. Nesse contexto, o Google desenvolveu o protocolo QUIC, a fim de implementar evoluções mais rapidamente. O Google já vem usando o QUIC sob o HTTP e realizando experimentos de medição, mas estes experimentos são difíceis de serem reproduzidos por diversas razões. Neste artigo, mostramos como contornar essas dificuldades por meio de uma nova extensão, não trivial de ser desenvolvida, que adiciona o QUIC ao NS-3. A extensão integra o QUIC como uma nova aplicação do NS-3, substituindo sockets do sistema pelos do simulador e alterando seu comportamento para lidar com passagem de tempo discreta ao invés de contínua.
Referências
Casetti, C., Gerla, M., Mascolo, S., Sanadidi, M. Y., and Wang, R. (2002). TCP Westwood: End-to-End Congestion Control for Wired/Wireless Networks. Wireless Networks, 8(5):467–479.
Floyd, S., Henderson, T., and Gurtov, A. (2004). The NewReno Modification to TCP’s Fast Recovery Algorithm. https://tools.ietf.org/html/rfc3782. Acessado em 18 de Março de 2018.
Google (2017a). GitHub - google/proto-quic. https://github.com/google/proto-quic/. Acessado em 15 de Setembro de 2017.
Google (2017b). QUIC Transport Protocol. https://chromium.org/quic. Acessado em 15 de Setembro de 2017.
Google (2017c). The gn Meta-Build System. https://chromium.googlesource.com/chromium/src/tools/gn/. Acessado em 15 de Setembro de 2017.
Ha, S., Rhee, I., and Xu, L. (2008). CUBIC: a New TCP-friendly High-Speed TCP Variant. ACM SIGOPS Operating Systems Review, 42(5):64–74.
Kakhki, A. M., Jero, S., Choffnes, D., Nita-Rotaru, C., and Mislove, A. (2017). Taking a Long Look at QUIC: An Approach for Rigorous Evaluation of Rapidly Evolving Transport Protocols. In Proceedings of the IMC’17, pages 290–303.
Langley, A., Riddoch, A., Wilk, A., Vicente, A., Krasic, C., Zhang, D., Yang, F., Kouranov, F., Swett, I., Iyengar, J., et al. (2017). The QUIC transport protocol: Design and Internet-scale deployment. In Proceedings of the ACM SIGCOMM, pages 183–196.
Ninja (2017). The Ninja Build System. https://ninja-build.org/. Acessado em 15 de Setembro de 2017.
Radhakrishnan, S., Cheng, Y., Chu, J., Jain, A., and Raghavan, B. (2011). TCP Fast Open. In Proceedings of CoNEXT ’11, pages 21:1–21:12.
Riley, G. F. and Henderson, T. R. (2010). The ns-3 network simulator. In Modeling and tools for network simulation, pages 15–34. Springer.
Thomas Nagy (2017). Waf: the Meta Build System. https://waf.io/. Acessado em 15 de Setembro de 2017.
Wilk, A., Hamilton, R., and Swett, I. (2015). A QUIC Update on Google’s Experimental Transport. https://blog.chromium.org/2015/04/a-quic-update-on-googles-experimental.html. Acessado em 18 de Março de 2018.