Trabalho de Implementação TCP/IP
Voltar para Comunicação de Dados
A biblioteca OverIPSim, desenvolvida em linguagem de programação Java, simula o protocolo IP para o envio de mensagens de um computador a outro. Essa biblioteca simula a perda de pacotes e o atraso de algumas mensagens. Quem deve garantir mais a cima que o conteúdo recebido esteja consistente, é o protocolo TCP.
Neste trabalho, os alunos devem implementar a troca de informações em formato texto entre computadores (no mínimo 1000 caracteres) . É necessário que a informação que chegue do outro lado esteja consistente com a informação enviada. Neste trabalho, os alunos devem estudar o protocolo TCP e implementá-lo (utilizando o OverIPSim) a baixo da aplicação. Deve-se implementar pacotes no formato do pacote TCP e deve-se efetuar todos os testes de envio, confirmação, etc.
TCP
+ | Bits 0 - 3 | 4 - 9 | 10 - 15 | 16 - 31 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Porta na origem | Porta no destino | ||||||||||||||||||||||||||||||||||||||||||||
32 | Número de sequência | |||||||||||||||||||||||||||||||||||||||||||||
64 | Número de confirmação (ACK) | |||||||||||||||||||||||||||||||||||||||||||||
96 | Offset | Reservados | Flags | Janela Window | ||||||||||||||||||||||||||||||||||||||||||
128 | Checksum | Ponteiro de urgência | ||||||||||||||||||||||||||||||||||||||||||||
160 | Opções (opcional) | |||||||||||||||||||||||||||||||||||||||||||||
Padding (até 32) | ||||||||||||||||||||||||||||||||||||||||||||||
224 | Dados | |||||||||||||||||||||||||||||||||||||||||||||
|
O pacote TCP é considerado conexão garantida devido seu processo de conexão conhecido como 3 way handshake connection. A conexão TCP passa a ser monitorada desde que o primeiro pacote entra na rede para ser entregue.
Isto significa que o protocolo TCP necessita fazer o acompanhamento do numero de seqüência do pacote, checksums etc. Segue na Figura 2 um exemplo de como funciona uma conexão TCP entre cliente e servidor.
Quando se inicia uma conexão, o processo Three-way handshake entra em jogo para garantir a conexão. O cliente (client) envia um pacote com o flag SYN marcado. O servidor (server) recebe o pacote e responde com um pacote com o flag ACKnowledge/SYN marcado. Então o cliente recebe e envia outro pacote com o flag ACK marcado. Pronta a conexão foi estabelecida entre o cliente e o servidor. Para terminar a conexão o cliente envia um pacote com flag FIN marcado. O servidor ao receber o pacote de flag FIN do cliente responde com um pacote com o flag também marcado FIN.
Tabela de sinais TCP
- URG - O pacote contem dados importantes
- ACK - Certificação que recebeu o ultimo pacote ou outra resposta.
- PSH - Envia imediatamente mesmo se o buffer não estiver cheio.
- RST - Reseta a conexão ( ocorreu erro ou coisa parecida ).
- SYN - Inicia conexão.
- FIN - Termina conexão.