Como múltiplas conexões com uma única porta são mantidas

1

Depois de ler sobre pacotes e comutação de circuitos, aprendi que os servidores mantêm várias conexões com uma porta transmitindo uma conexão de cliente estabelecida para um processo filho; e que todos os nós envolvidos na rota de conexão mantêm uma tabela connection-id para que os pacotes possam ser encaminhados corretamente para o próximo nó.

Ainda tenho algumas perguntas sobre isso:

  • Os pacotes precisam de mais dados de cabeçalho que não sejam um número de ID de conexão quando uma conexão é estabelecida com outro programa?

  • Após uma conexão ser feita, digamos, porta 80; os dados ainda passam por essa porta, ou o ID de conexão estabelecido especificou uma nova porta aberta a ser usada para futuras comunicações?

  • Em correspondência com minha pergunta aqui ; Existe uma separação física real entre diferentes conexões? Ou é puramente teórico / virtual?

por Griffin 30.01.2012 / 00:08

2 respostas

4

Você parece estar confundindo ideias de troca de circuitos com o TCP / IP.

A conversa da porta 80 sugere o protocolo HTTP sobre TCP e IP. Com o TCP / IP, os nós intermediários (roteadores) não precisam rastrear os "IDs de conexão". Tabelas de roteamento mantidas dinamicamente de intervalos de endereço IP são usadas para encaminhar pacotes. Não é necessário que pacotes sucessivos sigam o mesmo caminho.

O servidor controla as conexões TCP usando o endereço IP do cliente e o número da porta TCP, bem como o número da porta do servidor (e o endereço IP do servidor, os servidores podem ter vários endereços IP). Uma conexão é identificada pela combinação dessas quatro informações. O número da porta do cliente é geralmente escolhido de forma pseudo-aleatória pelo cliente.

Observe que o UDP é sem conexão, não há conceito de conexão UDP. Muitos protocolos da camada de aplicativos da Internet usam o UDP como um protocolo de camada de transporte.

Do packets need any more header data other than a connection-id number once a connection has been established with another program?

Os cabeçalhos TCP e os cabeçalhos IP nos pacotes TCP / IP não contêm "IDs de conexão" como tal.

After a connection is made through, say port 80; does data still go through that port,

Sim.

or has the connection-id established specified a new open port to use for further communications?

Como eu disse acima, id de conexão, como tal, não existem no TCP / IP. Às vezes, um protocolo de nível mais alto estabelece comunicações em outras portas (por exemplo, portas de controle e dados do FTP).

In correspondence with my question here; Is there an actual physical separation between different connections?

Geralmente não. Um servidor pode ter várias NICs que atendem a diferentes grupos de clientes.

Or is it purely theoretical/virtual?

Números de porta e tais são apenas números nos cabeçalhos de pacotes.

    
por 30.01.2012 / 00:28
0

After reading about packet and circuit-switching, I've learned that servers maintain multiple connections with a port by passing down an established client connection to a child process; and that all nodes involved in the connection route maintain a connection-id table so packets can be correctly forwarded to the next node.

Este parágrafo é realmente confuso . No começo você se refere a ligar a camada de rede. Então você se refere a conexões feitas na camada de transporte. Então você de alguma forma os combina, embora eles sejam camadas realmente diferentes. Considere que a comutação de circuitos pode ser apenas uma ideia e pode ou não ter sido usada no passado. No entanto, uma vez que você se refere a portas, você está se referindo ao TCP / IP, que não usa a comutação de circuitos ...

Do packets need any more header data other than a connection-id number once a connection has been established with another program? After a connection is made through, say port 80; does data still go through that port, or has the connection-id established specified a new open port to use for further communications?

Você está se referindo a uma conexão com um programa, com o uso de portas TCP / IP. Nesse caso, nenhum ID de conexão foi anexado ao pacote. Em caso de comutação de circuitos, isso seria necessário.

Is there an actual physical separation between different connections? Or is it purely theoretical/virtual?

Tudo passa pelo mesmo cabo, por isso pode ser considerado virtual em vez de físico.

Uma conexão estabelecida é apenas um meio de dizer "vou me comunicar por este post neste endereço". Sim, uma conexão é simplesmente um endereço IP e um par de portas ...

Não use a Wikipédia apenas para obter insights sobre isso, tente mergulhar em um livro sobre Redes de Computadores ...

    
por 30.01.2012 / 12:48