Software para suporte TCP/IP

O software TCP/IP segue a filosofia de particionamento em múltiplos processos concorrentes. Isso permite a simplificação de projeto, implementação e manipulação de software para ambientes distribuídos, assim como a gerência independente de protocolos em diversos níveis.

O software é organizado na forma de processos independentes. No nível mais próximo da máquina, isso permite o isolamento dos dispositivos físicos através da utilização de device drivers. No nível da camada de transporte, dois tipos de processos são suportados. O primeiro tipo manipula a informação em processos TCP (entrada ou saída), oferecendo uma abstração de uma conexão contínua (streams). O segundo tipo manipula a informação representada como o conteúdo de pacotes independentes (datagramas).

[Processos TCP/IP]

O processo IP atua como chaveador de datagramas. Se a aplicação aguarda datagramas, este processo envia-os diretamente à ela. Se a aplicação opera com o conceito de stream, então o processo de entrada TCP é responsável por receber os datagramas e realizar as verificações necessárias para que a aplicação receba os dados de forma contínua.

As portas estabelecem a ligação entre o processo da aplicação e os processos IP, estando associadas a buffers finitos com acesso controlado. Como em um processo concorrente ao estilo produtor-consumidor, o acesso a portas pode sofrer bloqueio por tentar ler de uma porta com buffer vazio ou por tentar escrever para porta com buffer cheio.