VinBR

Virtualização 07/03/2012

Mar 12th, 2012
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.98 KB | None | 0 0
  1.  
  2. # # # # # # # # # # # # #
  3. # Virtualização #
  4. # Professor Dorgival #
  5. # notasdogarcia.blog.com #
  6. # # # # # # # # # # # # #
  7.  
  8. // O objetivo da aula de hoje é cobrir os conceitos gerais de redes.
  9. // (apesar de redes ser um pré-requesito do curso)
  10.  
  11. A idéia da aula de hoje é criar um vocabulário comum.
  12.  
  13. Modelando com um grafo, nos entenderemos os nodos como os servidores, ou elementos de interconecções.
  14.  
  15. Arestas serão os canais de comunicação de ponto a ponto.
  16.  
  17. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  18.  
  19. Protocolo é o conceito mais mal definido em redes de computadores.
  20.  
  21. CONCEITO:
  22. Protocolo é o que define a comunicação entre dois hosts.
  23.  
  24. Pode ser as menssagens, os códigos que implementam o TCP, ou ao conjunto de funcionalidades de abrir conecção, fechar conecção e enviar dados.
  25.  
  26. A vantagem é que normalmente a palavra não fica ambigua inserida em um contexto.
  27.  
  28. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  29.  
  30. // O professor mostrou um diagrama:
  31. Redes são trabalhadas em camadas,
  32. A mais básica é o aplicativo, ou seja o programa em execução,
  33. seguida pelo roteamento RRP e então pela conecção de host à host HHP.
  34.  
  35. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  36.  
  37. Passos para comunicação em rede.
  38.  
  39. Ao digitar uma URL na interface do seu navegador, quais os passos para que o site seja carregado no seu computador?
  40. Esse vai ser o tema da aula de hoje.
  41.  
  42. - Comunicação entre processos.
  43. - DNS
  44. - Roteamento
  45. - Serviço (HTTP)
  46. - ARP -> Fica por baixo do roteamento.
  47. - UDP -> Isso fica embaixo do DNS
  48. - TCP -> embaixo do HTTP
  49. - IP -> Embaixo do TCP
  50. - TCP gerencia da conecção
  51. - Caches
  52.  
  53. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  54.  
  55. Comunicação entre processos:
  56.  
  57. Quem espera é chamado de Servidor.
  58. Quem faz a comunicação ativamente é o Cliente.
  59.  
  60. Servidor:
  61. - Inicio
  62. - Abertura passiva -> Avisa pro sistema operacional que ele está pronto para trabalhar.
  63. - Abertura completa -> É quando ele recebe uma menssagem da abertura ativa do Cliente.
  64. - Recepção do pedido -> Aguarda um pedido de um Cliente.
  65. - Envio de resposta -> É quando a resposta é enviada ao Cliente.
  66. - Termino -> O término pode envolver um processamento por ambas as partes, ou apenas por uma delas.
  67.  
  68. Cliente
  69. - Inicio
  70. - Abertura ativa -> É quando ele envia uma menssagem de abertura ativa para o Servidor.
  71. - Envio de pedido
  72. - Recepção da resposta
  73. - Término
  74.  
  75. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  76.  
  77. De forma mais detalhada:
  78.  
  79. //xxx
  80. Servidor:
  81. - Inicio -> Chama o processo socket() que cria a estrutura de dados (é um bufferzinho de espera).
  82. - Abertura passiva -> bind() avisa que está aqui, listen() reserva a conecção para o Servidor.
  83. - Abertura completa -> accept() é feito para aceitar o pedido de conecção do connect() do Cliente.
  84. - Recepção do pedido -> recv() recebe os dados
  85. - Envio de resposta -> send() envia os dados
  86. - Termino -> close() encerra a comunicação
  87.  
  88. Cliente
  89. - Inicio -> socket()
  90. - Abertura ativa -> connect()
  91. - Envio de pedido -> send()
  92. - Recepção da resposta -> recv()
  93. - Término -> close()
  94.  
  95. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  96.  
  97. 2 - Qual a máquina onde está o serviço? DNS (Domain Name Service).
  98.  
  99. O documento de definição do protocolo da internet não é mais o identificador usado, hoje usa-se o DNS para se traduzir os endereços para palavras:
  100. www.google.com ou minha.ufmg.br etc.
  101.  
  102. como existem os pontos, as coisas são feitas com uma hierarquia. A raiz são coisas do tipo: .org, .net .com etc.
  103.  
  104. A cada acesso o Cliente pergunta à raiz se ele conhece o ip do servidor desejado.
  105.  
  106. no caso de minha.ufmg.br, o servidor br redireciona o pedido para o servidor ufmg que informa ao cliente o endereço do servidor "minha"
  107.  
  108. Uma outra possibilidade é o servidor retornar o endereço do membro imediatamente abaixo da hierarquia
  109. para o Cliente e deixar o cliente falar com os demais servidores. (esse foi o caso que o professor exemplificou)
  110.  
  111. Uma fonte de otimização para o DNS é que a resposta do servidor pode mudar dependendo do dia horário etc, o servidor redireciona o cliente para
  112. o servidor que ele achar mais inteligente, ou mais eficiente.
  113.  
  114. Então existem um conjunto de servidores centrais pelo mundo (são um total de 13 por questões tecnicas)
  115. // (a questão técnica é que as informações de 13 servidores ocupavam cerca de 512 bytes que é o mínimo necessário para se acessar a internet)
  116. // 6 fev 2007
  117. // teve outro em 2002
  118. // também acho que em 31 de março de 2012 vai ter outro ataque xP
  119.  
  120. Hoje não existem mais 13 máquinas porque houve um ataque a um tempo atraz que derrubou alguns dos servidores (não derrubou todos porque ele foi bem feito)
  121.  
  122. Hoje ainda temos 13 endereços, porém existem vários e vários servidores expalhados pelo mundo que respondem a estes endereços, porque? mais seguro.
  123. Mas praticamente todos eles tem o mesmo endereço IP. E dependendo de onde voce está no mundo voce é redirecionado para uma máquina diferente.
  124.  
  125. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  126.  
  127. 3 Consulta DNS usa UDP
  128.  
  129. As menssagens chegam, são jogados em um porto via UDP e então aguardando um "bind()" de um programa para le-las.
  130.  
  131. CONCEITO:
  132. Porto ou Porta (port em ingles) é uma fila de menssagens que ficam aguardadndo para serem lidas em um roteador.
  133.  
  134. // Existe um tal de pacote UDP pesquise isso, parece que isso carrega um conjunto de dados.
  135. // esse pacote fica dentro do pacote IP
  136.  
  137. Se voce tem vários computadores voce tem vários endereços.
  138.  
  139. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  140.  
  141. O endereço de IP pode ser divido em:
  142.  
  143. rede | sub-rede | maquina
  144.  
  145. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  146.  
  147. Pacote IP deve usar a rede local -> para identificar qual pc é qual em uma rede local usamos o ARP que fica dentro do roteador.
  148.  
  149. Address Resolution Protocol.
  150. O endereço da rede interna é chamado de endereço MAC
  151.  
  152. O protocolo básicamente é enviar uma menssagem pra todo mundo, e esperar que a máquina procurada responda qual seu endereço MAC
  153.  
  154. Isso é mto importante em núvem, porque se voce considera uma rede local com centenas de computadores, se todos perguntarem a todos para encontrar uma maquina,
  155. voce ganha uma rede local congestionada.
  156.  
  157. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  158.  
  159. Agora que já temos acesso ao endereço IP e endereço MAC vamos falar do:
  160. HTTP
  161. Ele funciona com o TCP:
  162.  
  163. Transmission Control Protocol (TCP)
  164.  
  165. Ele serve como o UDP, porém ele dá garantia de que os dados enviados serão recebidos sem erros.
  166. Porque não usar somente ele? Porque ele é mais lento.
  167.  
  168. Segmento TCP
  169.  
  170. Esse segmento contem vários dados em palavras de 32 bits:
  171.  
  172. 16 bits: source port, 16 bits destination
  173. 32: sequence number (pra chegar na ordem)
  174. 32 ACK Number
  175. HLEN Reserved coisas Window Advertisement
  176. 16: Checksum 16 urgent pointer
  177. Opition (if any) padding
  178. data
  179.  
  180. // Coisas são protocolos.
  181.  
  182. Three-way handshake
  183. A comunicação só é estabelecida quando voce já conseguiu enviar 3 menssagens.
  184. Essas menssagens tem contadores, para garantir que elas não foram enviadas duas vezes.
  185.  
  186. // TCP tenta permitir uma unica conecção por vez.
  187. // Mas é previsto que se duas pessoas apertarem enter exatamente no mesmo instante e o sinal chegasse juntinho, o sistema aceitaria duas conecções.
  188.  
  189. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  190.  
  191. 7 - Segmento SYN viaja pela rede (roteamento)
  192. Qual o menor caminho entre dois endereços?
  193. Cada roteador no meio do caminho tem que redirecionar a menssagem pra um lado.
  194.  
  195. Protocolos de encontrar o menor caminho entre dois pontos são
  196. o RIP: Rout Information Protocol - simples mas lento, OSPF Open Shortest Path First complexo mas rápido
  197.  
  198. Esses pacotes são publicados na internet para que se saiba o que mandar para determinado roteador.
  199.  
  200. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  201.  
  202. TCP identifica não só o ip como também o porto de origem e de destino.
  203. diferente do UDP (o udp só identifica os roteadores, não as redes locais)
  204.  
  205. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  206.  
  207. Controle de conecxão
  208.  
  209. ele controla bem congestionamentos, e detecta qual a fração justa de conecção para cada máquina de forma que fica bem dividido, o que é muito legal.
  210.  
  211. é um sistema que vai testando, ele vai aumentando a velocidade até um pacote ser perdido aí ele diminui dransticamente a conecção, e assim ele continuar o tempo todo, o grafico fica um sobe dece doido.
  212.  
  213. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  214.  
  215. Caches
  216.  
  217. Existem caches no servidro na rede e no seu computador.
  218.  
  219. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  220.  
  221. É dentro da rede complexa de hoje que veremos o conceito de núvem, e os problemas citados sobre como evitar esse problema.
Advertisement
Add Comment
Please, Sign In to add comment