Modelo cliente servidor
Uma aplicação necessita escolher um tipo de protocolo da camada de transporte, para que as mensagens sejam entregues a aplicação de destino. Uma vez feito essa escolha, a camada de transporte tem a responsabilidade de levar as mensagens pela rede. A internet oferece dois protocolos para a camada de transporte, o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). Para efetuar uma boa escolha, o desenvolvedor da aplicação deve fazer uma escolha atentando-se a necessidade de sua aplicação. Com relação ao transporte, podemos citar, por exemplo, a necessidade de transporte sem perdas, a necessidade de largura de banda na comunicação, a temporização, no que se refere a aplicações interativas em tempo real, a necessidade de mecanismos de controle de congestionamento e controle de fluxo (ou seja, compatibilidade de velocidades do remetente e do receptor), entre outras.
O protocolo TCP oferece um serviço confiável de transferência de dados, ou seja, ele garante a entrega do dados do socket emissor ao socket receptor, na ordem e sem perdas, ou seja, ao iniciar a comunicação entre dois hosts com esse protocolo, é feito uma "conexão virtual" entre as portas dos hosts. O TCP utiliza o three-way-handshake para iniciar a comunicação. Portanto, aplicações que envolvem transferência de arquivos, como correio eletrônico, aplicações financeiras, visualizador de páginas da Web (browsers) e ate mesmo conexões remotas a computadores e mensagens instantâneas, que necessitam de confiabilidade na entrega dos dados, ou seja, que não haja perdas, utilizam o protocolo TCP. O TCP também oferece um serviço orientado para conexão, ou seja, ele faz com que o cliente e o servidor troquem mensagens sobre informações de controle da camada de transporte, antes da transferência de dados propriamente dita, e isso garante uma transferência orientada para conexão.
O protocolo UDP oferece um transporte simples e menos confiável,