Que camada de rede as mensagens recebidas via TCP ou comunicação de soquete ocupam?

1

Estou tentando entender as camadas de abstração de rede.

Acho que entendo que o TCP está na camada de rede e o HTTP está na camada de aplicativo. Assim, o HTTP pode ser feito 'sobre' o TCP.

No entanto, também posso fazer programação 'socket', que por exemplo em um servidor permite escutar e responder em determinados soquetes.

Em tal situação, eu poderia responder com XML em um determinado soquete, não definindo nada especificamente na camada de aplicativo. Estou passando o XML como texto ASCII no formato de matriz de bytes. A resposta XML seria considerada não uma parte da camada de aplicação, ou apenas um protocolo 'personalizado' na camada de aplicação?

    
por Aaron Thomas 10.04.2018 / 00:31

1 resposta

0

O TCP está na camada TRANSPORT, camada 4. O HTTP está na camada APPLICATION, camada 7.

As 7 camadas do modelo OSI

No modelo OSI, as camadas superiores (5-7) e as camadas inferiores (1-4) têm papéis específicos. Muitas vezes, as camadas superiores são combinadas em uma camada e, portanto, o modelo OSI se torna um TCP de 5 camadas modelo . As camadas inferiores fornecem conectividade e confiabilidade de rede. A camada superior fornece serviços de aplicativos para usuários e programas. Tudo o que você vê ou toca, como aplicativo ou desenvolvedor, está em algum lugar nas camadas superiores.

O que você está chamando de "programação de soquetes" não é diferente do que qualquer aplicativo precisa para se comunicar em uma rede. Um soquete não pode ser aberto a menos que um aplicativo da camada superior solicite que isso aconteça. Ele está solicitando que o sistema operacional crie um soquete de rede específico e envie ou receba dados. Portanto, até mesmo um aplicativo básico que você cria para enviar ou receber dados em um soquete é considerado um processo de camada superior.

É discutível se o seu aplicativo XML opera na Camada 5, 6 ou 7 porque realmente depende do que você faz com os dados de lá. A requisição para abrir um socket tecnicamente acontece na Layer 5 (Então o socket é aberto e mantido nas camadas inferiores). Mas, dependendo de quais dados você enviar ou receber, e o que você faz com esses dados, você começará a operar na Camada 6 ou 7. Devido a essa ambigüidade, é muito mais fácil combinar as camadas superiores em uma única camada, porque realmente faz pouca diferença do ponto de vista do aplicativo.

    
por 10.04.2018 / 15:49