• Nenhum resultado encontrado

TCP. Essa característica foi mais acentuada na transmissão de 100KB, na qual o QUIC alcançou uma taxa média de recebimento 3,6 vezes maior que a do TCP.

5.2

Validação

Separamos em duas partes a validação deste trabalho: a validação do funcionamento do módulo e a validação dos resultados de simulação.

Entendemos por validação do funcionamento do módulo o fluxo correto de trocas de mensagens entre cliente e servidor e a transferência completa de dados. Ou seja, verificamos que o processo de estabelecimento de conexão, transferência dos dados e encerramento da conexão segue o fluxo esperado e que todos os dados enviados pelo servidor de fato chegam no cliente, respectivamente. Verificamos a comunicação entre cliente e servidor por meio de mensagens de log no código do módulo que nos permitia acompanhar a troca de mensagens entre as duas pontas. Para garantir que todos os dados que o servidor envia chegam no cliente, geramos uma sequência aleatória de caracteres no servidor e verificamos que a sequência que o cliente recebe é igual a que construímos no servidor.

Para validar os resultados de simulação, comparamos os resultados que obtivemos com os resul- tados de medição apresentados em [KJC+17]. Alguns dos resultados que os autores desse trabalho apresentam não se aplicam aos nossos cenários de simulação como, por exemplo, nas medições de qualidade de experiência para streaming de vídeos. Por isso, a seguir citamos apenas aqueles que fazem sentido no contexto dos nossos experimentos.

1. Para ambientes desktop, o desempenho do QUIC é melhor que o do TCP CUBIC em quase todos os cenários e,

2. O QUIC é justo com outros fluxos QUIC. Porém, ao competir com fluxos TCP CUBIC, o QUIC é injusto, consumindo mais do dobro da largura de banda apropriada.

Nossos resultados são consistentes com ambos os resultados citados acima. Em todos nossos cenários de simulação, o QUIC conseguiu desempenho melhor que o TCP CUBIC e apresentou os mesmos problemas de justiça com fluxos TCP CUBIC concorrentes. É importante ressaltar que, em [KJC+17], os autores reportaram que o TCP CUBIC obteve desempenho melhor que o QUIC em alguns cenários específicos: em casos em que há alta reordenação de pacotes e em casos em que o cliente faz download de um grande número de objetos pequenos. Porém, esses dois cenários estão fora do escopo deste trabalho e são apontados como posíveis trabalhos futuros.

Capítulo 6

Conclusão

O protocolo QUIC é um novo método de transporte de dados em redes de computadores de- senvolvido pela Google. Esse protocolo foi construído usando como base pesquisas em protocolos de transporte e tem como objetivo aplicar e testar rapidamente novas técnicas para conseguir de- sempenho melhor que o TCP, o protocolo de transporte mais utilizado na Internet atualmente. O QUIC está em processo de padronização pela IETF e todas as requisições feitas pelo Chrome para serviços da Google já são transportadas por esse protocolo, fazendo com que ele já represente parte significativa do tráfego total de dados na Internet. A Google publicou relatórios de experimentos que fizeram com QUIC alegando que ele possui desempenho melhor que o TCP em diversas situ- ações. Porém, esses experimentos não possuem informações suficientes para serem reproduzidos e possuir a infraestrutura de testes que a Google utilizou para realizar as medições não é plausível. Com a discussão sobre se vale a pena ou não substituir o TCP pelo QUIC, uma maneira para se fazer análises de desempenho cujos resultados sejam reprodutíveis e verificáveis é necessária para se tomar uma decisão informada sobre esse assunto.

Neste trabalho, estudamos as 3 técnicas de análise de desempenho: modelagem analítica, simula- ção e medição. Com essa base e porque, até onde sabemos, não existe um outro trabalho que avalia o desempenho do QUIC por meio de simulações, decidimos usar essa técnica para a nossa análise. Também pesquisamos na literatura como são feitas análises de desempenho de protocolos de trans- porte, especificamente do TCP e do QUIC, e reunimos informações relevantes para essas análises: qual técnica é utilizada, quais topologias e configurações de parâmetros de rede são normalmente escolhidas, quais métricas são geralmente calculadas e como os resultados são validados. Escrevemos um módulo que implementa o protocolo QUIC no simulador de redes NS-3 e fizemos experimentos em diversos cenários de rede. Avaliamos o protocolo QUIC em termos do tempo total de transmissão de dados e do índice de justiça entre fluxos, comparando seu desempenho principalmente com o TCP CUBIC. Dessa forma, atingimos todos os objetivos listados na seção 1.2.

Nossa principal conclusão desta análise foi que o QUIC apresenta desempenho melhor que o TCP CUBIC, em termos do tempo total de transmissão de dados, em todos os cenários de rede simulados. Além disso, também concluímos que o QUIC apresenta justiça entre fluxos QUIC mas que um fluxo QUIC não é justo com um fluxo TCP CUBIC. Esses resultados foram validados e estão em conformidade com os resultados de medição apresentados por [KJC+17].

6.1

Contribuições

Como citado na subseção1.3, as contribuições deste trabalho são a análise inédita de desempenho do protocolo QUIC por meio de simulações, que também serve para validação de resultados de medição ou de modelagem analítica e a implementação de um módulo do QUIC para o NS-3. Por fim, publicamos como foi feita essa implementação e apresentamos resultados preliminares no artigo Y. Couto, D. Camarinha, D. M. Batista, “nsQUIC: Uma Extensão para Simulação do Protocolo QUIC no NS-3”. In: Salão de Ferramentas do SBRC 2018, 2018. Anais do Salão de Ferramentas do SBRC 2018, 2018.

50 CONCLUSÃO

6.2

Limitações

As principais limitações deste trabalho são:

1. O módulo do QUIC para o NS-3 ainda não dá suporte para estabelecimento de conexão em 0-RTT. Em [KJC+17], os autores relatam que a funcionalidade de 0-RTT do QUIC acarreta em ganhos significativos de desempenho, principalmente em transferências de pequenas quan- tidades de dados. Apesar disso, essa funcionalidade não deve mudar nossos resultados porque o QUIC já apresentou desempenho melhor em todos os cenários de rede simulados e,

2. A implementação do CUBIC no NS-3 é baseada no artigo do CUBIC e em uma implementação antiga do CUBIC no kernel do Linux. Desde então, a própria Google descobriu e corrigiu um erro no algoritmo que impactava diretamente o desempenho do CUBIC em certas situações. É possível que a versão mais atualizada do CUBIC tenha desempenho melhor que o QUIC em algum cenário de rede.

6.3

Trabalhos Futuros

Para aprimorar a análise de desempenho do QUIC, muito trabalho ainda pode ser feito:

• Utilizar o módulo para calcular métricas de desempenho que ainda não foram calculadas em outros trabalhos relacionados ao desempenho do QUIC como a capacidade de utilização dos enlaces e o goodput, por exemplo;

• Habilitar a funcionalidade de 0-RTT no módulo do QUIC e verificar se ganhos de desempenho similares aos reportados por [KJC+17] são observados;

• Atualizar a implementação do CUBIC no NS-3 com novas alterações e correções de erro existentes no kernel do Linux e rodar as simulações novamente para verificar se os resultados mudam;

• Implementar o BBR no NS-3 e rodar as simulações para comparar seu desempenho com o do TCP CUBIC e o do QUIC;

• Em [KJC+17], os autores relatam que, em situações em que acontecem reordenação de paco- tes, o desempenho do QUIC é pior que o do TCP CUBIC em diversos cenários. Criar uma simulação que apresente essa situação é importante para que propostas de soluções para esse problema possam verificar que o desempenho do protocolo de fato melhora;

• Outro resultado de [KJC+17] é que o QUIC tem desempenho ruim no tempo total de trans- missão em cenários nos quais um cliente faz o download de um grande número de objetos pequenos. Pelo mesmo motivo que no item anterior, é importante criar um cenário que simule essa situação;

• Incluir mais cenários de simulação em redes sem fio e em redes mistas (uma parte sem fio e uma parte cabeada) para avaliar o desempenho do QUIC nesses ambientes de rede e,

Apêndice A

Outras Publicações

Além da publicação já citada sobre o módulo do QUIC no salão de ferramentas do SBRC, durante o período em que fui aluno de mestrado, também participei das seguintes publicações:

• R. Siqueira, D. Camarinha, M. Wen, P. Meirelles and F. Kon, “Continuous De- livery: Building Trust in a Large-Scale, Complex Government Organization”, in IEEE Software, vol. 35, no. 2, pp. 38-43, March/April 2018. Artigo sobre as experiên- cias que tivemos com entrega contínua de sistemas durante 2 anos de trabalho com o governo federal brasileiro, no contexto do projeto Portal do Software Público Brasileiro.

• D. Guedes, P. Meirelles, R. Manzo, and D. Camarinha, “Mezuro: Understanding source code metrics”. In: The 13th International Conference on Open Source Systems, 2017, Buenos Aires. Poster Proceedings of the 13th International Con- ference on Open Source Systems, 2017. p. 15-18. Pôster sobre a plataforma de análise estática de código fonte, o Mezuro, desenvolvida no Centro de Competência em Software Livre do IME e que é um dos sistemas que compõem o Portal do Software Público Brasileiro.

Referências Bibliográficas

[ASS+16] Nimrod Aviram, Sebastian Schinzel, Juraj Somorovsky, Nadia Heninger, Maik Dankel, Jens Steube, Luke Valenta, David Adrian, J Alex Halderman, Viktor Dukhovni et al. Drown: Breaking tls using sslv2. Em USENIX Security Symposium, páginas 689–706, 2016. 17

[ATRK10] Alexander Afanasyev, Neil Tilley, Peter Reiher e Leonard Kleinrock. Host-to-host congestion control for tcp. IEEE Communications surveys & tutorials, 12(3):304–342, 2010. 12

[BBR] TCP BBR congestion control comes to GCP - your Inter- net just got faster. https://cloudplatform.googleblog.com/2017/07/ TCP-BBR-congestion-control-comes-to-GCP-your-Internet-just-got-faster.html. Acessado em: 17/09/2018. 13

[BG16] Prasenjeet Biswal e Omprakash Gnawali. Does quic make the web faster? Em Global Communications Conference (GLOBECOM), 2016 IEEE, páginas 1–6. IEEE, 2016. 30,32,39

[Bir11] Ian Bird. Computing for the large hadron collider. Annual Review of Nuclear and Particle Science, 61:99–118, 2011. 1

[Bra94] Robert T. Braden. T/TCP – TCP Extensions for Transactions Functional Specifica- tion. RFC 1644, Julho 1994. 9

[CCG+16] Neal Cardwell, Yuchung Cheng, C Stephen Gunn, Soheil Hassas Yeganeh e Van Ja- cobson. Bbr: Congestion-based congestion control. Queue, 14(5):50, 2016. 13

[CDCM15] Gaetano Carlucci, Luca De Cicco e Saverio Mascolo. Http over udp: an experimental investigation of quic. Em Proceedings of the 30th Annual ACM Symposium on Applied Computing, páginas 609–614. ACM, 2015. 21,30,32,39

[CFR09] Gustavo Carneiro, Pedro Fortuna e Manuel Ricardo. Flowmonitor: a network moni- toring framework for the network simulator 3 (ns-3). Em Proceedings of the Fourth International ICST Conference on Performance Evaluation Methodologies and Tools, página 1. ICST (Institute for Computer Sciences, Social-Informatics and Telecommu- nications Engineering), 2009. 38,39

[CGM+02] Claudio Casetti, Mario Gerla, Saverio Mascolo, Medy Y Sanadidi e Ren Wang. Tcp westwood: end-to-end congestion control for wired/wireless networks. Wireless Networks, 8(5):467–479, 2002. 27,29,30

[DCCM13] Nandita Dukkipati, Neal Cardwell, Yuchung Cheng e Matt Mathis. Tail Loss Probe (TLP): An Algorithm for Fast Recovery of Tail Losses. Internet-Draft draft-dukkipati- tcpm-tcp-loss-probe-01, Internet Engineering Task Force, Fevereiro 2013. Work in Progress. 21

54 REFERÊNCIAS BIBLIOGRÁFICAS

[DR06] Tim Dierks e Eric Rescorla. The Transport Layer Security (TLS) Protocol Version 1.1. RFC 4346, Abril 2006. 10

[DVdVKI99] Marco De Vivo, Gabriela O de Vivo, Roberto Koeneke e Germinal Isern. Internet vul- nerabilities related to tcp/ip and t/tcp. ACM SIGCOMM Computer Communication Review, 29(1):81–85, 1999. 9

[FMMR13] Sally Floyd, Jamshid Mahdavi, Matt Mathis e Dr. Allyn Romanow. TCP Selective Acknowledgment Options. RFC 2018, Março 2013. 23

[GN] GN Build Configuration. https://www.chromium.org/developers/ gn-build-configuration. Acessado em: 17/09/2018. 34

[GNUS13] Siddharth Gangadhar, Truc Anh N Nguyen, Greeshma Umapathi e James PG Ster- benz. Tcp westwood (+) protocol implementation in ns-3. Em Proceedings of the 6th International ICST Conference on Simulation Tools and Techniques, páginas 167–175. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2013. 27,29,30

[HBZ17] Mario Hock, Roland Bless e Martina Zitterbart. Experimental evaluation of bbr congestion control. Em Network Protocols (ICNP), 2017 IEEE 25th International Conference on, páginas 1–10. IEEE, 2017. 28,29,30

[HRX08] Sangtae Ha, Injong Rhee e Lisong Xu. Cubic: a new tcp-friendly high-speed tcp variant. ACM SIGOPS Operating Systems Review, 42(5):64–74, 2008. 12,26,29,30

[Ind17] Cisco Visual Networking Index. The zettabyte era–trends and analysis. Cisco white paper, 2017. 1

[IWS] Internet world stats - usage and population statistics.http://www.internetworldstats. com/stats.htm. Acessado em: 17/09/2018. 1

[Iye] Jana Iyengar. Quic. redefining internet transport. https://docs.google.com/ presentation/d/15e1bLKYeN56GL1oTJSF9OZiUsI-rcxisLo9dEyDkWQs/edit?usp= sharing. Acessado em: 12/04/2016. ix,14

[Jac88] Van Jacobson. Congestion avoidance and control. Em ACM SIGCOMM computer communication review, volume 18, páginas 314–329. ACM, 1988. 11

[Jai90] Raj Jain. The art of computer systems performance analysis: techniques for experi- mental design, measurement, simulation, and modeling. John Wiley & Sons, 1990. xi, 5,6,29,32,38

[JRT02] Andreas Jungmaier, Eric Rescorla e Michael Tuexen. Transport layer security over stream control transmission protocol. IETF, Standards Track RFC, 3436, 2002. 23

[Kau05] Charlie Kaufman. Internet Key Exchange (IKEv2) Protocol. RFC 4306, Dezembro 2005. 19

[KJC+17] Arash Molavi Kakhki, Samuel Jero, David Choffnes, Cristina Nita-Rotaru e Alan Mis- love. Taking a Long Look at QUIC: An Approach for Rigorous Evaluation of Rapidly Evolving Transport Protocols. Em Proceedings of the 2017 Internet Measurement Conference, IMC ’17, páginas 290–303. ACM, 2017. 7,29,31,32,37,39,47,49,50

[KK16] J Kurose e W Keith. Computer networking: a top down approach, 7th Edition. Pearson, 2016. 10,11

REFERÊNCIAS BIBLIOGRÁFICAS 55

[KP87] Phil Karn e Craig Partridge. Improving round-trip time estimates in reliable trans- port protocols. Em ACM SIGCOMM Computer Communication Review, volume 17, páginas 2–7. ACM, 1987. 22

[Lan] Wan-Teh Langley, Adam e Chang. QUIC Crypto. https://docs.google.com/ document/d/1g5nIXAIkN_Y-7XJW5K45IblHd_L2f5LTaDUDwvZ5L6g/edit. Aces- sado em: 21/07/2016. ix,18,19

[LCK14] Brett Levasseur, Mark Claypool e Robert Kinicki. A tcp cubic implementation in ns-3. Em Proceedings of the 2014 Workshop on ns-3, página 3. ACM, 2014. 26,29,30

[LHC] The large hadron collider. https://home.cern/topics/large-hadron-collider. Acessado em: 17/09/2018. 1

[LIGa] Gravitational waves detected 100 years after einstein’s prediction. https://www.ligo. caltech.edu/news/ligo20160211. Acessado em: 17/09/2018. 1

[LIGb] Laser interferometer gravitational-wave observatory. https://www.ligo.caltech.edu/. Acessado em: 17/09/2018. 1

[LIGc] LIGO Technology. https://www.ligo.caltech.edu/page/ligo-technology. Acessado em: 17/09/2018. 1

[LLS07] Yee-Ting Li, Douglas Leith e Robert N Shorten. Experimental evaluation of tcp protocols for high-speed networks. IEEE/ACM Transactions on Networking (ToN), 15(5):1109–1122, 2007. 28,29,30

[LM97] TV Lakshman e Upamanyu Madhow. The performance of tcp/ip for networks with high bandwidth-delay products and random loss. Networking, IEEE/ACM Transac- tions on, 5(3):336–350, 1997. 2,12

[LRW+17] Adam Langley, Alistair Riddoch, Alyssa Wilk, Antonio Vicente, Charles Krasic, Dan Zhang, Fan Yang, Fedor Kouranov, Ian Swett, Janardhan Iyengar et al. The QUIC transport protocol: Design and Internet-scale deployment. Em Proceedings of the Conference of the ACM Special Interest Group on Data Communication, páginas 183– 196. ACM, 2017. 2,31,32

[LSM08] Douglas J. Leith, Robert N. Shorten e G. McCullagh. Experimental evaluation of cubic-tcp. Em Proceedings of the 6th International Workshop on Protocols for Fast Long-Distance Networks (PFLDnet 2008), 2008. 26,29,30

[MGF+04] Saverio Mascolo, Luigi Alfredo Grieco, Roberto Ferorelli, Pietro Camarda e Giacomo Piscitelli. Performance evaluation of westwood+ tcp congestion control. Performance Evaluation, 55(1-2):93–111, 2004. 27,29,30

[mpt] Multipath tcp through a strange middlebox. http://blog.multipath-tcp.org/blog/ html/2015/01/30/multipath_tcp_through_a_strange_middlebox.html. Acessado em: 24/03/2016. 20

[Nag84] John Nagle. Congestion Control in IP/TCP Internetworks. RFC 896, Janeiro 1984. 11

[Net] NetEm - Network Emulator. http://man7.org/linux/man-pages/man8/tc-netem.8. html. Acessado em: 17/09/2018. 30

[nin] The Ninja build system. https://ninja-build.org/manual.html. Acessado em: 17/09/2018. 34

56 REFERÊNCIAS BIBLIOGRÁFICAS

[Not10] Mark Nottingham. HTTP Cache-Control Extensions for Stale Content. RFC 5861, Maio 2010. 11

[ns3] QUIC module for NS-3. https://gitlab.com/diegoamc/ns-3-quic-module. Acessado em: 17/09/2018. 33

[Pip] Http pipelining. https://en.wikipedia.org/wiki/HTTP_pipelining. Acessado em: 12/04/2016. ix,15

[pla] Playing with QUIC. https://www.chromium.org/quic/playing-with-quic. Acessado em: 17/09/2018. 39

[Pos81] J. Postel. Transmission Control Protocol. RFC 793, Setembro 1981. 7,9

[pro] Standalone QUIC library. https://gitlab.com/diegoamc/proto-quic. Acessado em: 17/09/2018. 33

[QUI] QUIC, a multiplexed stream transport over UDP. https://www.chromium.org/quic. Acessado em: 17/09/2018. 13

[RCC+11] Sivasankar Radhakrishnan, Yuchung Cheng, Jerry Chu, Arvind Jain e Barath Ragha- van. Tcp fast open. Em Proceedings of the Seventh COnference on emerging Networ- king EXperiments and Technologies, página 21. ACM, 2011. 8,9

[RM15] Eric Rescorla e Nagendra Modadugu. Datagram Transport Layer Security Version 1.2. RFC 6347, Outubro 2015. 23

[Ros] Jim Roskind. QUIC: Design Document and Specifica-

tion Rationale. https://docs.google.com/document/d/1RNHkx_ VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34/edit. Acessado em: 21/07/2016. 2, 14

[RPB+12] Costin Raiciu, Christoph Paasch, Sebastien Barre, Alan Ford, Michio Honda, Fabien Duchene, Olivier Bonaventure e Mark Handley. How hard can it be? designing and implementing a deployable multipath tcp. Em Proceedings of the 9th USENIX con- ference on Networked Systems Design and Implementation, páginas 29–29. USENIX Association, 2012. 20

[Sha] Robbie Shade. Quic. next generation multiplexed transport over udp. http://bit.ly/ 1gqR7WN. Acessado em: 12/04/2016. ix,16,21

[Ste15] Randall R. Stewart. Stream Control Transmission Protocol. RFC 4960, Outubro 2015. 22

[Swe] Ian Swett. QUIC FEC v1. https://docs.google.com/document/d/

1Hg1SaLEl6T4rEU9j-isovCo8VEjjnuCPTcLNJewj7Nk/edit. Acessado em:

21/07/2016. 20

[TC] tc - show / manipulate traffic control settings. https://linux.die.net/man/8/tc. Aces- sado em: 17/09/2018. 31

[TM02] Vassilis Tsaoussidis e Ibrahim Matta. Open issues on tcp for mobile computing. Wireless Communications and Mobile Computing, 2(1):3–20, 2002. 2,12

[waf] The Waf build system. https://gitlab.com/ita1024/waf/. Acessado em: 17/09/2018. 34

REFERÊNCIAS BIBLIOGRÁFICAS 57

[WHS15] Alyssa Wilk, Ryan Hamilton e Ian Swett. A QUIC Update on Go- ogle’s Experimental Transport, 2015. https://blog.chromium.org/2015/04/ a-quic-update-on-googles-experimental.html. Acessado em maio de 2018. 2

[WPY+04] Ren Wang, Giovanni Pau, Kenshin Yamada, MY Sanadidi e Mario Gerla. Tcp startup performance in large bandwidth networks. Em INFOCOM 2004. Twenty-third Annu- alJoint Conference of the IEEE Computer and Communications Societies, volume 2, páginas 796–805. IEEE, 2004. 2,12

[XHR04] Lisong Xu, Khaled Harfoush e Injong Rhee. Binary increase congestion control (bic) for fast long-distance networks. Em INFOCOM 2004. Twenty-third AnnualJoint Con- ference of the IEEE Computer and Communications Societies, volume 4, páginas 2514– 2524. IEEE, 2004. 12

[XPMS01] George Xylomenos, George C Polyzos, Petri Mähönen e Mika Saaranen. Tcp per- formance issues over wireless links. Communications Magazine, IEEE, 39(4):52–58, 2001. 2

[YO02] John Yoakum e Lyndon Ong. An Introduction to the Stream Control Transmission Protocol (SCTP). RFC 3286, Maio 2002. 22

Documentos relacionados