A camada de transporte (por exemplo, UDP, TCP) é normalmente tratada pelo sistema operacional? [fechadas]

0

Sou muito novo em redes e estou lutando para entender isso.

Eu sei que a Camada de Transporte no Internet Protocol Suite (pelo menos os protocolos UDP e TCP) contém os números de porta de origem e destino e que há um aplicativo em execução em uma máquina associada a esse número de porta.

Assim, quando um quadro da Internet chega à máquina, é o sistema operacional que executa as funções da Camada de Transporte (entrega garantida, etc.) e, em seguida, encaminha a carga para o aplicativo que registrou com o sistema operacional sob o número de porta de destino especificado na Camada de Transporte do quadro?

Alguém pode fornecer uma explicação um pouco mais detalhada de como o sistema operacional faz isso? (por exemplo, é uma parte do kernel embutido no sistema operacional? Como o sistema operacional obtém controle do quadro? etc.)

    
por Niko Bellic 11.08.2014 / 22:33

2 respostas

1

Resposta breve à pergunta: O hardware / firmware da interface de rede e o sistema operacional fazem tudo isso.

Mais precisamente, há alguns drivers envolvidos. O dispositivo normalmente cobre as camadas 1 (física) e 2 (ligação de dados) OSI, isto é, a tradução entre sinais físicos (elétricos, rádio) e bits e agrupando-os em quadros é feita pelo hardware / firmware. O driver do dispositivo controla as funções correspondentes. As camadas 3 (rede) e 4 (transporte) são cobertas pelo sistema operacional, embora os processos privilegiados possam ter acesso aos dados.

How does the OS get a hold of the frame?

Uma vez que a interface de rede tem um quadro disponível, ele aciona uma interrupção, para que o kernel possa lê-lo na região de memória de E / S.

Os dados do cabeçalho do quadro informam o que fazer com o quadro. Se o kernel (mais precisamente: o driver de rede) conhecer o tipo de carga útil (por exemplo, IPv4 ou IPv6), o pacote (depois de retirar os cabeçalhos e trailers da camada 2) é passado ao driver da camada de rede.

Ele cuidará de todas as peculiaridades do protocolo da camada de rede, como fragmentação e remontagem, cálculo e verificação da soma de verificação, etc. além de todas as tarefas específicas da camada de rede, como roteamento e filtragem de pacotes. Dependendo da carga útil (TCP, UDP, ICMP, ICMPv6, GRE, SCTP, DCCP, etc.), o pacote é transmitido para o segundo driver da camada de transporte. Ele irá lidar com todo o material específico da camada de transporte; para protocolos orientados à conexão, como o TCP, significa, por exemplo, acompanhar o estado da conexão, manter as filas e fazer a contabilidade; outra coisa é o controle de congestionamento.

Uma vez que um pacote tenha passado por essa camada, ele é passado mais adiante (novamente após remover o cabeçalho da camada de transporte), mas desta vez para o processo userland. O processo userland não vê praticamente nada do processamento de nível inferior.

Agora, é possível acessar e processar dados brutos, como frames da userland, você pode fazer isso com um software como o libpcap. No entanto, fazer tudo isso no kernel é mais eficiente.

    
por 11.08.2014 / 23:07
1

Veja Onde a Camada de Transporte opera? no stackoverflow

Responder por EJP:

Is it part of the Operating System?

Sim.

Does it run in its own process or thread?

Não, ele é executado como parte do sistema operacional.

How does it pass information up to other applications

Por meio de chamadas do sistema, por exemplo o Berkeley Sockets API, WinSock, etc.

or down to other layers?

Por meio de APIs internas do kernel.

Veja outras respostas também.

    
por 11.08.2014 / 22:56