Como os aplicativos sabem qual adaptador de rede usar?

0

Digamos que eu tenha wifi, ethernet lan e o Hamachi ativado no meu PC.

Eles estão todos conectados.

Meus aplicativos enviam dados por meio deles.

Pergunta sobre terminologia: Meus aplicativos enviam dados para esses adaptadores de rede , ou controladores de interface de rede ou interfaces de rede . Ou seja, essas 3 tecnologias criam adaptadores de rede ( NIC ) para meus aplicativos se comunicarem com a rede? Qual é o termo correto ( adaptador de rede , interface de rede , NIC )?

Cada um desses adaptadores de rede (?) recebe um endereço IP (um ou mais).

Como meu aplicativo sabe para qual adaptador enviar dados? Existe um adaptador padrão selecionado pelo sistema operacional, mas o aplicativo também pode escolher o adaptador. Eu acho que em Java (e outras linguagens de programação) quando você cria um soquete, você pode especificar o endereço IP local, e este deve ser um dos adaptadores atribuídos aos addapters?

Isso também significa que os dados enviados usarão o respectivo endereço de origem IP no pacote IP, dependendo do adaptador usado?

    
por croraf 26.04.2018 / 18:08

1 resposta

1

Fora de casos muito específicos que lidam com protocolos abaixo de TCP ou UDP, os aplicativos não enviam dados para um adaptador de rede específico, eles enviam os dados para um endereço de rede específico remoto . Cabe então ao SO descobrir de qual adaptador o pacote resultante precisa ser enviado para chegar ao seu destino, embora cada SO faça isso de maneira um pouco diferente (embora a terminologia geral seja basicamente a mesma, você pode procurar informações sobre ' tabelas de roteamento 'para o seu sistema operacional de escolha para mais informações).

Na maioria das linguagens de programação, você pode vincular explicitamente um soquete a um determinado endereço. Na maioria das vezes, isso precisa ser um endereço atribuído a um adaptador de rede local (nesse caso, todo o tráfego desse soquete sairá por esse adaptador), embora em alguns casos seja possível vincular a um endereço não local (isso é usado em algumas situações para certos tipos de proxy transparente ou portal cativo).

    
por 26.04.2018 / 21:43