Portas, Conexões e Endpoints

Baseando-se no modelo de referência OSI, o protocolo TCP é um protocolo que reside na camada de transporte como mostra a figura

.

TCP permite que múltiplos programas de aplicação numa determinada máquina se comuniquem concorrentemente . TCP se encarrega de demultiplexar o tráfego TCP entrante entre os programas de aplicação.

TCP usa número de portas para identificar o último destino numa máquina. A cada porta é associado um número inteiro pequeno para identificá-lo.

TCP foi construído sobre a abstração de CONEXÃO, na qual os objetos a serem identificados são conexões de circuitos virtuais e não portas individuais. As conexões são identificadas por um par de "endpoints". Uma conexão consiste de um circuito virtual entre dois programas de aplicações, então pode-se assumir um programa de aplicação como a conexão entre os endpoints, mas isto não é certo, TCP define um endpoint como um par de inteiros (host,port), onde host é o endereço IP para um computador e Port é uma porta TCP nesse computador.

Exemplo: 128.10.2.3.25 especifica a porta TCP número 25 na máquina como o endereço IP 128.10.2.3.

Uma conexão está definida por dois endpoints, assim que se há uma conexão entre as máquinas 192.107.104.12 (na Universidade Nacional de Ingenieria, Nicaragua) e 143.54.2.99 (na Universidade Federal do Rio Grande do Sul, Brasil), a conexão deve ser definida pelos endpoints seguintes:

(192.107.104.12,1069) e (143.54.2.99,25).

Já que TCP identifica uma conexão por um par de endpoints, um número de porta pode ser compartilhado por múltiplas conexões na mesma máquina.