Questão nº 44
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 44)
No que se refere ao funcionamento de uma conexão TCP, é correto afirmar que:
- Adurante a apresentação de três vias, o processo cliente bate na porta de entrada do processo servidor. Quando o servidor "ouve" a batida, aloca uma porta (mais precisamente, um socket) compartilhada entre diversos clientes;
- Bao criar a conexão TCP, associamos a ela o endereço de socket (apenas o número de porta) do cliente e do servidor. Com a conexão estabelecida, quando um lado quer enviar dados para o outro, basta deixá-los na conexão TCP por meio de seu socket;
- Ccom o processo servidor em execução, ele pode iniciar uma conexão TCP com o cliente, o que é feito no programa cliente pela criação de um socket TCP. Quando cria seu socket TCP, o servidor especifica o endereço do socket receptivo do cliente;
- Dcomo acontece no UDP, o programa servidor TCP precisa rodar como um processo antes de o cliente tentar iniciar contato, e o programa servidor tem de ter algum socket especial que acolha algum contato inicial de um processo cliente que esteja rodando em um hospedeiro qualquer; (alternativa correta)
- Edo ponto de vista da aplicação, o socket do cliente e o de conexão do servidor estão conectados diretamente, e o processo servidor pode enviar bytes para seu socket de modo arbitrário; entretanto, o TCP não garante que o processo servidor receberá cada byte na ordem em que foram enviados.
Resposta comentada
Gabarito Alternativa D
O TCP (Transmission Control Protocol) é um protocolo da camada de transporte que estabelece uma conexão confiável e orientada a fluxo de bytes entre dois programas (cliente e servidor), garantindo que os dados cheguem na ordem correta, sem perdas ou duplicações.
(A) Incorreta: O servidor, ao aceitar uma conexão, aloca um novo socket (o socket de conexão) para aquele cliente específico, enquanto o socket original (o socket de escuta) permanece disponível para aceitar novas conexões de outros clientes. O socket de conexão não é compartilhado entre diversos clientes.
(B) Incorreta: Um endereço de socket é composto pelo endereço IP e pelo número de porta (ex: 192.168.1.1:80). Apenas o número de porta não é suficiente para identificar unicamente um endpoint da conexão, pois diferentes máquinas (IPs) podem usar a mesma porta. Uma conexão TCP é identificada por uma quádrupla (IP de origem, Porta de origem, IP de destino, Porta de destino).
(C) Incorreta: No modelo cliente-servidor padrão, é o cliente quem inicia a conexão TCP com o servidor, e não o contrário. O servidor fica em estado de escuta (listening) aguardando as requisições de conexão dos clientes.
(D) Correta: Assim como no UDP, para que um cliente possa se comunicar com um servidor TCP, o programa servidor precisa estar em execução e "escutando" em uma porta específica. Ele utiliza um socket de escuta (também conhecido como "welcome socket") para acolher as solicitações iniciais de conexão de qualquer cliente.
(E) Incorreta: A principal garantia do TCP é justamente a entrega ordenada dos bytes. Embora o processo servidor possa enviar bytes de modo arbitrário para seu socket, o TCP garante que o processo receptor receberá cada byte na mesma ordem em que foram enviados, além de garantir a confiabilidade e a integridade dos dados. Essa é a armadilha da banca, pois inverte uma das características mais fundamentais do TCP.
Fonte: FGV CVM 2024 Analista CVM - TI Infraestrutura e Segurança (Perfil 9) (Caderno Tipo 1). Reproduzida para fins de estudo.