TCP / IP no nível de transporte

3

Estou tentando entender o que acontece quando envio um pacote usando um soquete no nível de transporte. Todos os pacotes que saem do meu computador vão primeiro para uma localização geográfica designada pelo meu provedor? Então meu pacote é transferido por túneis pertencentes ao meu provedor até que ele chegue a um link diretamente para o servidor de origem? Em que estágio ele alcança um DNS? Se o domínio não for convertido em um IP até sair de minha casa, como meu roteador saberá conter pacotes destinados a uma transferência de LAN?

Por favor, me desculpe se eu pareço ingênuo, só estou lendo a especificação RFC do HTTP e estou tentando amarrar os personagens na minha tela com eventos reais. Todas as suposições que estou fazendo são inferências sem base na compreensão real. Linguagem simples seria preferida, metáforas seria excelente:)

    
por hedgehogrider 01.12.2011 / 22:57

4 respostas

3

Esta é mais uma questão de camada de transporte. Os detalhes podem ser explicados um pouco mais, entendendo o modelo OSI . Eu faço essa distinção porque o modelo OSI tem um physical layer , então quando você pergunta "... em um nível físico", essas palavras têm um significado específico na tecnologia de rede que talvez você não conheça e possa levar a alguma confusão se você fez essa pergunta para, digamos, um administrador de rede.

A resposta curta à sua pergunta é que ela sai de sua casa e viaja por uma série de roteadores (o primeiro em sua casa, seguido por alguns em seu ISP e alguns em outras redes), finalmente chegando ao seu destino. São praticamente todos os roteadores entre você e seu destino, como uma série de paradas ao longo de uma entrega de pacotes da UPS, colocando o seu pacote "mais próximo" ao seu destino, um passo (ou "salto") de cada vez. Precisamente quais roteadores manipulam e ajudam a entregar um determinado pacote são determinados conforme o pacote está sendo transmitido e podem ser alterados a qualquer momento. Também deve ser dito que o significado de "colocar o seu pacote mais perto em cada salto" é apenas um tipo de esforço, e não é necessariamente garantido - o TCP apenas tenta ser tão eficiente quanto possível durante a transmissão. / p>

Agora, essa é uma simplificação excessiva de como ela realmente funciona, mas há muito mais sobre esse tópico do que o que pode ser facilmente respondido dentro de alguns parágrafos.

Portanto, aponto-lhe uma excelente e bem detalhada (não assume conhecimento) explicação do TCP como uma série de segurança agora! episódios, que eu recomendaria como uma ótima introdução e visão geral sobre o assunto:

Esses episódios começam com uma explicação de como o TCP funciona, seguido por alguns dos problemas, desafios e possíveis mudanças / refinamentos futuros que talvez precisem ser feitos. Todos os três episódios juntos são um bom 3-5 horas de audição, mas eu diria que é o que vai demorar para realmente responder à sua pergunta um pouco em profundidade. Ouça o quanto você julgar interessante (ou tão pouco).

    
por 01.12.2011 / 23:06
2

O DNS se envolve principalmente em responder algo como gethostbyname (ou seja, encontrar o endereço numérico que acompanha um determinado nome de host). Em alguns casos, a pilha de IP do seu computador responderá a essas perguntas sem consultar um DNS, geralmente obtendo o endereço do arquivo HOSTS local. Isso era comum ao mesmo tempo, mas há muito tempo se tornou relativamente raro (os arquivos HOSTS ainda são de alguma utilidade nos testes, além de serem usados por alguns malwares para redirecionar algumas solicitações para uma máquina de escolha do autor do malware). / p>

Quando você envia para esse endereço, a pilha de IP do seu computador determinará para onde ela foi enviada. Primeiro, ele usa a máscara de sub-rede para descobrir se o endereço é "local" ou não. Se for local, ele usará o ARP para encontrar o endereço MAC Ethernet (ou qualquer outro, mas hoje em dia principalmente Ethernet) para o qual enviar o pacote. Se o endereço não for local, ele será enviado para o endereço do gateway padrão.

Supondo que não seja local, o gateway padrão normalmente será o seu roteador. Seu roteador irá enviá-lo para o roteador do ISP, que irá então enviá-lo para outro e outro até chegar onde deveria estar indo. Existem alguns protocolos (RIP, RIPv2, etc.) para os roteadores informarem uns aos outros como obter pacotes de um lugar para outro. Para um roteador doméstico típico, as coisas são simples: qualquer coisa que não seja local vai para um lugar. Para um roteador maior em um ISP, as coisas são um pouco mais complexas - com frequência, ele terá vários outros locais para enviar seu pacote. RIP (e amigos) fornecem informações suficientes para escolher a "correta" (isto é, aquela que é provavelmente a melhor escolha).

Se você quiser ver onde seus pacotes vão, a maioria dos sistemas fornece um programa chamado tracert que irá rastrear a rota da sua máquina para outra que você especificar.

Eu vejo @normalocity postou uma resposta já. Eu seria cauteloso sobre uma coisa: ele menciona o roteador levando seu pacote para mais perto de seu destino. Isso é verdade, mas somente em um sentido bastante virtual, não físico. Só por exemplo, certa vez eu usei o tracert para traçar a rota da minha máquina em casa até uma máquina no centro da cidade, a cerca de 8 km de distância. Embora ambas as máquinas estivessem em Colorado Springs, Colorado, meus pacotes foram encaminhados para Denver e depois para San Jose antes de voltar e chegar a outra máquina razoavelmente local.

    
por 01.12.2011 / 23:19
1

Há muitas partes para sua pergunta. Vou tentar responder a cada um brevemente. Você terá que cavar mais fundo em cada um deles para entender mais.

DNS : todos os pacotes não vão para um DNS. Seu sistema operacional já conhece o endereço IP de um servidor DNS (por meio da configuração do seu provedor) e traduz os FQDNs para endereços IP entrando em contato com esse servidor DNS.

HTTP : Então, quando você digita www.foo.com no seu navegador,

  1. Seu sistema operacional resolve www.foo.com para um endereço IP, contatando seu endereço IP do servidor DNS conhecido
  2. Conecta-se ao endereço IP de www.foo.com pela porta TCP 80 e envia uma solicitação HTTP

Roteamento : como um pacote atinge outro endereço IP é o roteamento IP. Leia sobre redes comutadas por pacote para entender o roteamento hop-by-hop. O tráfego HTTP (TCP) e DNS são roteados de forma idêntica (os roteadores não se importam com a carga útil). Só que os destinos seriam diferentes.

    
por 01.12.2011 / 23:13
0

Como funciona o roteamento

  • Receber ou gerar pacote, obter seu IP de destino
  • Analise cada entrada na base de informações de encaminhamento (FIB) (por exemplo, tabela de rotas) e encontre a entrada mais específica correspondente. mais específico aqui significa a mais alta notação de sub-rede do CIDR. ou seja, a entrada FIB 192.168.2.1/28 será escolhida em 192.168.2.1/24 se ambas existirem.
  • Se houver duas entradas exatas no FIB, aquela com a menor métrica será escolhida.
  • Se encontrarmos uma entrada que corresponda, obtenha o IP do gateway dessa entrada e envie o pacote para esse IP.
  • não encontrou nenhum? Envie o pacote para o IP que é o gateway padrão.
  • Mais de um gateway padrão? Rodar robin entre eles, ou usar o primeiro e continuar usando até descobrirmos que não funciona, então use o segundo (failover)
  • Não há gateway padrão? Solte o pacote.

Observe que:

  • Se um pacote for destinado a algo na mesma sub-rede, não será necessário rotear. Portanto, se o seu PC em 192.168.2.1/24 enviar um pacote para 192.168.2.2/24, ele não o enviará através do gateway padrão ou de qualquer roteador.
  • Qualquer interface nos fornece uma rota gratuita por meio de conexão direta. Portanto, se você tiver uma interface definida como 192.168.2.1/24 (ou seja, máscara de sub-rede 255.255.255.0), você obtém uma rota gratuita.
  • O host local está diretamente conectado para os fins deste processo.
  • Se você executar coisas como RIP, OSPF, BGP, elas podem atualizar seu FIB.

Os roteadores de nível de operadora do seu ISP têm FIBs e o processo é o mesmo. Saltar roteador para roteador, passando pelo mesmo processo, até que o destino seja atingido ou o pacote seja descartado. Normalmente, quanto mais alto você for, maior será o FIB, e mais rotas virão de coisas como o BGP e tal.

    
por 17.07.2013 / 00:25