Curiosidades sobre o envio do sinal
R ESULTADOS DIFERENTES DO TRACEROUTE
Dificilmente será possível conseguir os mesmos resultados caso esse comando seja executado novamente. Isso pode acontecer devido à localização física da conexão, se estiver sendo executada em uma cidade diferente, por exemplo. Mas não se restringe apenas a isso. A Locaweb pode alterar a forma como entrega a página para a internet sem que haja qualquer problema para o usuário final, mas que poderíamos ver no traceroute. Um exemplo desse tipo de modificação seria uma alteração no link de internet usada por eles. Agora que finalmente chegamos ao servidor que nossa aplicação está hospedada, podemos estudar o que nos espera lá dentro. No próximo capítulo, veremos como os servidores web lidam com as requisições.
Depois de muito estudo, chegou o momento de sair para a internet. Em vez de sair via Ethernet, ou rede cabeada, vamos utilizar Wi-Fi. Nesse estudo, nós estamos usando uma placa da Intel que utiliza um driver chamado iwlwifi . Para que o sinal seja
6.6 RESUMO
enviado para o roteador, ele vai precisar passar por várias partes dentro do kernel, como: socket , af_inet , tcp , ip , driver da
placa e firmware da placa.
Considerando que agora a informação vai efetivamente sair do computador local, ele pode trafegar tanto por uma rede pública e insegura como por uma rede segura configurada com WPA2, por exemplo. O 4-way handshake do WPA2 já foi feito no momento em que o cliente se conectou à rede. Logo, a conexão está estabelecida e pronta para que os dados sejam enviados de forma segura via ondas de rádio. Isso faz com que outros computadores não consigam decifrar os dados que estão trafegando sem que eles tenham acesso a senha da rede sem fio. A conexão vai trafegar via ondas de rádio brigando com vários aparelhos que ficam na mesma frequência até chegar ao roteador que enviará os pacotes para a internet.
A requisição sai da rede local e atravessa dois estados brasileiros e 17 hops, ou saltos entre dispositivos de rede, até chegar a um dos computadores do Jelastic da Locaweb, onde está hospedado.
1. Especificação da Ethernet —
http://standards.ieee.org/about/get/802/802.3.html
2. ethtool no kernel —
https://www.kernel.org/pub/software/network/ethtool/
3. Especificação do Wi-Fi (802.11) —
http://standards.ieee.org/about/get/802/802.11.html
4. Especificação do 802.11ac —
http://standards.ieee.org/getieee802/download/802.11ac-
6.7 REFERÊNCIAS
2013.pdf
5. Referência da placa wireless no site da Intel —
http://www.intel.com/content/www/us/en/wireless- products/dual-band-wireless-ac-7260-bluetooth.html
6. Paper sobre a saída de um pacote do kernel —
http://www.hsnlab.hu/twiki/pub/Targyak/Mar11Cikkek/Netw ork_stack.pdf
7. Código do socket no kernel —
https://github.com/torvalds/linux/blob/master/net/socket.c
8. Código do AF_INET no kernel —
https://github.com/torvalds/linux/blob/master/net/ipv4/af_in et.c
9. Código do TCP no kernel —
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp.c
10. Código do IP no kernel —
https://github.com/torvalds/linux/blob/master/net/ipv4/ip_ou tput.c
11. Código do driver da placa wireless iwlwifi no kernel —
https://github.com/torvalds/linux/tree/master/drivers/net/wir eless/intel/iwlwifi
12. RFC826 e a definição do protocolo ARP —
https://tools.ietf.org/html/rfc826
13. White paper da Cisco sobre interferência em Wi-Fi —
http://www.cisco.com/c/en/us/products/collateral/wireless/sp ectrum-expert-wi-
fi/prod_white_paper0900aecd807395a9.html
14. Paper sobre latência no uso de CSMA/CA —
http://www.iestcfa.org/bestpaper/etfa08/FH_ET.pdf
15. Paper sobre o uso de wireless g e b em conjunto —
http://www.cise.ufl.edu/~helmy/papers/Shao-Cheng-IPCCC- published.pdf
16. Modo de captura para wireless no Wireshark —
https://wiki.wireshark.org/CaptureSetup/WLAN
17. Site do aircrack-ng — https://www.aircrack-ng.org/
18. Implementação do WPA2 no 802.11 —
http://standards.ieee.org/getieee802/download/802.11i- 2004.pdf
19. Documento da incorporação do WPA2 no 802.11 —
https://standards.ieee.org/findstds/standard/802.11-2007.html
20. Seção 11.4.3 sobre CTR_with_CBC-MAC_Protocol —
http://standards.ieee.org/getieee802/download/802.11- 2012.pdf
21. Seção 4.5.4.4 sobre Data_confidentiality —
http://standards.ieee.org/getieee802/download/802.11- 2012.pdf
22. Jelastic da Locaweb —
http://www.locaweb.com.br/cloud/jelastic/
CAPÍTULO 7
Após trafegar por toda a internet desde sair do nosso roteador Wi-Fi, os pacotes começam a chegar ao servidor de destino. Como vimos em capítulos anteriores, há um servidor web aguardando essa conexão. Neste capítulo, vamos entender como a requisição passa por ele e é entregue para o nosso framework de estudo. Primeiramente, estudaremos o que quer dizer a palavra servidor web, usada para dois casos diferentes aqui no Brasil. Depois veremos o que é um servidor de aplicação, para que serve e qual a sua relação com o servidor web. No primeiro uso da palavra servidor web, vamos nos referir ao computador disponível na infraestrutura de hospedagem que o
desconstruindoaweb.com.br está hospedado. Nesse estudo,
estamos usando um produto vendido pela Locaweb[1] chamado Jelastic.
O Jelastic é um produto de PaaS (Platform as a Service), portanto, ele provê a plataforma pré-provisionada para que o desenvolvedor não tenha tanto trabalho para configurar o servidor da aplicação. A empresa do Jelastic faz parcerias com empresas do mundo para prover sua plataforma em várias localizações, e a Locaweb é uma dessas empresas[2].