Protocolos ICMP, UDP, TCP
Camada de transporte, que tanto no Modelo OSI quanto no Modelo TCP/IP,
é a camada responsável pela transferência eficiente, confiável e económica dos
dados entre a máquina de origem e a máquina de destino, independente do
tipo, topologia ou configuração das redes físicas existentes entre elas,
garantindo ainda que os dados cheguem sem erros e na sequência correcta.
A camada de transporte possui dois protocolos que são o UDP ( User
Datagram Protocol) e TCP (Transmission Control Protocol).
 Camada de rede do modelo OSI que é responsável por controlar a
operação da rede de um modo geral. Suas principais funções são o
roteamento dos pacotes entre fonte e destino, o controle de
congestionamento e a contabilização do número de pacotes ou bytes
utilizados pelo usuário, para fins de tarifação.
 O protocolo da camada de rede que iremos detalhar é o ICMP ( Internet
Control Message Protocol).
 2. ICMP (Internet Control Message Protocol)
 É um protocolo de mensagem de controlo da Internet (utilizado para envio de
mensagens de controle e mensagens de erro em emissão de bancos de dados do
tipo IP).
 Caso um roteador não consiga passar adiante um datagrama recebido por estar
congestionado demais ou então por ter zerado o campo tempo de vida (ITL, Time
to Live) do datagrama que ocorreu um erro.
 O mecanismo usado pelos roteadores para informar esse tipo de erro è o uso do
protocolo ICMP, Internet Control Message Protocol. Apesar de estarmos tratando
o ICMP como um assunto à parte, ele è parte integrante do protocolo IP.
 Ele não se preocupa em corrigir o erro nem tão pouco em verificar a integridade
dos datagramas que circulam pela rede.
 Como mostramos na figura 1, a mensagem ICMP è transmitida usando um
datagrama IP. Como o IP não verifica se um datagrama chegou ou não ao destino,
pode ocorrer de a própria mensagem ICMP ser perdida no meio caminho!
Figura 1: Encapsulamento de uma mensagem ICMP
È também importante notar que o ICMP, apesar de ser encapsulado em um
datagrama IP, não è considerado um protocolo de alto nível (como o TCP ou o
UDP).
2.1. ESTRUTURA DAS MENSAGENS ICMP
 Cada mensagem ICMP possui uma estrutura própria, mas todas elas
começam da mesma maneira, mostrada na figura 2. O campo tipo informa
justamente o tipo de mensagem ICMP. Sò para se ter uma ideia concreta dos
tipos de mensagens ICMP existentes, na tabela a seguir mostramos alguns
desses tipos e seu valor numérico (entrado no campo Tipo).
Figura2: Cabeçalho do protocolo ICMP
O campo Código prove mais informações sobre a mensagem ICMP, e o campo
Checksum apresenta a soma de todos os valores presentes na mensagem ICMP.
Checksum - é uma conta que consiste em somar todos os bytes presentes no pacote
de dados e enviar o resultado dentro do próprio pacote.
Para entendermos melhor o funcionamento do ICMP, iremos explicar rapidamente o
funcionamento de algumas das mensagens ICMP existentes.
2.2.ECO
A mensagem de eco serve para verificar se o caminho entre o transmissor e o
receptor está bom.
 2.3.DESTINO INALCANÇAVEL
Caso o roteador não consiga entregar um determinado datagrama,ele envia para o
transmissor uma mensagem ICMP de destino inalcançável. Na mensagem de
destino inalcançável, o campo código do cabeçalho ICMP (ver figura 2) e
preenchido com um dos seguintes valores.
 2.4.CONGESTIONAMENTO
 Um roteador pode porventura receber um número maior de datagramas do que ele
e capaz de processar. Caso isso ocorra, dizemos que o roteador esta
congestionado. Neste tipo de situação, o roteador inclusive pode ter de descartar
datagramas por não estar sendo capaz de recebe - los naquele momento. Quando
isso ocorre, o roteador envia uma mensagem de redução da velocidade de
transmissão ao transmissor do datagrama descartado. O transmissor, ao receber
essa mensagem, passa a transmitir datagramas a uma velocidade menor.
2.5.REDIRECIONAMENTO
Caso o roteador verifique que na rede local onde ele está instalado existe uma rota
melhor a ser usada para enviar um datagrama recebido, ele envia uma mensagem
ICMP de solicitação de redireccionamento ao transmissor, enviando também o
datagrama ao destino.
2.6.TEMPO DE VIDA EXCEDIDO
Quando o contador Tempo de Vida (TTL, Time to Live) do datagrama e zerado, o
roteador envia para a maquina transmissora uma mensagem ICMP de tempo de vida
excedido.
Como vimos anteriormente, todo datagrama IP possui um campo tempo de vida,
que possui um valor que e decrementado a cada vez que o datagrama passa por um
roteador.
 2.7.PROBLEMA NOS PARAMETROS
Quando um roteador ou uma máquina encontra problemas para processar um
datagrama e não há nenhuma outra mensagem ICMP que cubra o problema
encontrado, o roteador (ou máquina) envia uma mensagem de problema nos
parâmetros para o transmissor. Normalmente essa mensagem è usada quando o
roteador não consegue decodificar correctamente as informações presentes no
cabeçalho IP do datagrama, isto è, quando há algum problema no cabeçalho do
datagrama.
 2.8.SOLICITAÇÃO DE HORÀRIO
Através dessa mensagem de controlo uma máquina pode pedir o horário do
relógio de outra máquina que esteja conectada na rede. A máquina transmissora
envia um comando de solicitação de horário (mensagem ICMP tipo 13) a máquina
da qual quer saber o horário, incluindo no datagrama a hora do envio do
datagrama. A máquina receptora responde ao comando de solicitação de horário
(mensagem ICMP tipo 14) incluindo o horário que o datagrama chegou atè ela e o
horário em que o datagrama de resposta foi enviado.
 3. UDP (USER DATAGRAM PROTOCOL)
O User Datagram Protocol (UDP) que significa protocolo de datagramas de
utilizador (ou usuário)- é um protocolo de transporte não orientado á conexão. O
UDP é pouco confiável, não existem técnicas no protocolo para confirmar que os
dados chegaram ao destino correctamente. Por esse motivo esse protocolo não é
usado no transporte de dados importantes como arquivos e e-mails.
Na verdade as aplicações que usam o UDP deverão criar mecanismos para
verificar se os dados chegaram ao destino correctamente e para colocar os
datagramas recebidos em ordem.
3.1. Vantagens do UDP
 A vantagem de os programas usarem o UDP em vez do TCP em dados pequenos é
que a transmissão de dados fica mais rápida.
 Em redes locais confiáveis, onde não há quase perda de pacotes, o uso do protocolo
UDP é atè viável.
 3.2. Desvantagens do UDP
 Em redes grandes,e principalmente na internet a taxa de perdas de pacotes pode ser
grande de mais e acabar dando mais trabalho a aplicação ,tornando o envio de
pacotes através do UDP inviável do ponto de vista prático .Por esse motivo o
protocolo UDP so é usado para o envio de dados pequenos e onde a taxa de perda
de pacotes não é problema, isto é, não vai dar muito trabalho a aplicação.
 3.3. Protocolos que Utilizam o UDP
 SNMP-(Simple Network Managment)É utilizado para configurar dispositivos
como switches ou roteadores e permite que estes enviem o seu status. O problema é
que os hackers, utilizam este protocolo para obter informações sobre o sistema,
como as tabelas de roteamento. As últimas versões do SNMP podem fazer
criptografia md5, porém a maioria ainda usa versões antigas que passa o password
em formato de texto.
 TFTP - (Trivial File TranferProtocol) - Esse protocolo é um dos mais elementares
que existem, pois apresenta poucos utilitários, como controle temporal e de
integridade. Ele é um modelo mais simples de FTP, pois não possui nenhum tipo de
mecanismo de segurança e como é baseado no protocolo UDP, não se pode confiar
na integridade de suas transmissões.
 DHCP-(Dynamic Host Configuration Protocol) É utilizado em redes que sofrem
constantes alterações na topologia e o administrador não pode verificar o IP
(Internet Protocol) de cada máquina devido a enorme quantidade, então o roteador
distribui IPs automaticamente para as estações. Como esta atribuição é feita com a
utilização do UDP, caso haja algum problema o usuário terá que pedir o reenvio
ou reiniciar a máquina. O único problema técnico deste protocolo é que como os
IPs são atribuídos aleatoriamente, fica mais difícil para o administrador ter
controle sobre o que cada host está fazendo.
 DNS –(Domain Name System) Um tradutor dos nomes na rede, na qual cada IP
pode ser correspondido com um nome. Neste caso, imaginemos que um usuário
esteja acessando a internet e deseja ir para outra página. Ele digita o endereço no
campo apropriado e entra. Se a página, por acaso, não abrir por não ter
reconhecido o endereço, o problema poderá ter sido no envio ou resposta do
servidor de nomes utilizando o UDP, e então o usuário tentará de novo acessar a
página e provavelmente conseguirá.
Encapsulamento de um datagrama UDP
Figura 3: Encapsulamento de um datagrama UDP
3.4.Estrutura do Datagrama UDP
Como foi visto no TCP/IP as aplicações comunicam-se com os protocolos da
camada de transporte (o UDP e o TCP) através de portas.
Figura 4: Estrutura do datagrama UDP
Os campos porta de origem e porta de destino especificam a aplicação que
originou o datagrama e para cuja aplicação o datagrama deverá ser entregue na
máquina de destino. Mesmo que a máquina de destino receba vários datagramas
UDP vindo de várias aplicações diferentes, ela tem como saber para qual
aplicação deve entregar o conteúdo do datagrama por causa da existência do
campo Porta de Destino.
O campo tamanho especifica o tamanho do datagrama UDP em bites, incluindo
o seu cabeçalho e sua área de dados. O valor mínimo para esse campo é oito que é
o tamanho do próprio cabeçalho.
Já o checksum é calculado de forma não convencional. O protocolo UDP cria um
pseudo - cabeçalho esse pseudo - cabeçalho é formado apenas para ser utilizado
na soma que resultara no checksum do datagrama, não sendo transmitido junto
com o datagrama. Esse pseudo - cabeçalho é formado pelo endereço IP de origem
e pelo endereço IP de destino, pelo conjunto de oito zeros (campo zeros) pelo
numero que o protocolo UDP representa no protocolo IP( 17 campo protocolo) e
novamente o tamanho do datagrama UDP ( mesmo valor presente no campo
tamanho do datagrama do verdadeiro cabeçalho UDP).
Para formar o seu checksum, o UDP faz a soma usando os valores desse pseudo -
cabeçalho ( que não é transmitido) os valores do seu cabeçalho verdadeiro ( este
sim é transmitido), e os valores presentes em seu campo de dados.
Figura 5: Pseudo - cabeçalho UDP, usando apenas o checksum
Teoricamente o campo checksum é opcional (para não usar o checksum, basta
preencher esse campo com todos os bits em um). Entretanto, sem o uso do
checksum torna-se impossível saber se o dado recebido está corrompido ou não, isto
é se ele sofreu ou não alterações durante o caminho entre o transmissor e o receptor.
Por isso, a maioria das aplicações que usam o UDP prefere realizar o checksum.
3.5. Vulnerabilidades do Protocolo UDP
O protocolo UDP assim como o TCP utilizam portas para a comunicação. Um dos
primeiros passos que um hacker pode explorar é fazer a verificação das portas que
estão abertas para comunicação. Caso, o administrador da rede queira impedir a
invasão no sistema ele poderá fechar as portas mais isso significa ficar sem
comunicação, então esta não é a melhor solução.
 4. TCP (Transmission Control Protocol) – Protocolo de Controle de
Transmissão
 É o protocolo TCP que faz a comunicação fim - a - fim da rede. É orientado à
conexão e altamente confiável independente da qualidade de serviços das sub-
redes que lhe servem de caminho. Para a confiabilidade de transmissão, garante a
entrega das informações na sequência em que lhe foram fornecidas, sem perda
nem duplicação.
 Esse protocolo tem como principal objectivo realizar a comunicação entre
aplicações de dois hosts diferentes. O protocolo TCP é um protocolo de nível de
transporte muito utilizado que trabalha com mensagens de reconhecimento,
especificação do formato da informação e mecanismos de segurança. Ele garante
que todos os PDU's (Protocol data Unit) serão enviados com sucesso, pois realiza
transmissões orientadas à conexão.
 Quando executado, utiliza o protocolo IP, não orientado à conexão. O TCP então
fica responsável pelo controle dos procedimentos da transferência segura de
dados. Cabe salientar que o IP não é o único protocolo não orientado à conexão
que pode ser utilizado pelo TCP.
 Para maior eficiência nas comunicações, o TCP engloba várias funções que
poderiam estar nas próprias aplicações, como processador de texto, base de dados
e correio electrónico. Ele foi criado com o intuito de ser um software universal
contendo essas funções.
 Existem ainda outros serviços do TCP:
 Controle de fluxo - O controle de fluxo atribui uma janela de transmissão ao host
de origem. Essa janela limita o número de bytes transmitidos por vez. O controlo
de fluxo em si está na possibilidade de atribuir diferentes valores às janelas.
 Segurança na transmissão - A confiabilidade nas transmissões via TCP está
baseada no fato de que esse protocolo é orientado à conexão e trabalha com
números de reconhecimento sequenciais e positivos.
 Comando de OPEN/CLOSE -Por meio de todos os dispositivos físicos, o TCP
pode estabelecer uma conexão virtual, a partir do comando OPEN. Nesse
momento, o TCP realiza o "three - way handshake", que é um processo onde os
TCP's origem e destino trocam mensagens de reconhecimento que possibilitam a
conexão.
No momento em que a transferência de informações terminar, qualquer host (origem ou
destino) poderá fechar a conexão virtual, a partir do comando CLOSE.
 Gerenciamento da informação nas transmissões orientadas a conexão - O
protocolo TCP pode controlar todos os aspectos da informação que esta sendo
transmitida, pois é um protocolo de transmissão orientada à conexão. A acção do
TCP se estende a toda a trajectória da informação, onde ele procura garantir o
sucesso da transmissão.
 Prioridade e segurança - O protocolo TCP permite que o administrador do host
controle os níveis de segurança e permissão de acesso, bem como as prioridades
nas conexões. Essas características não estão presentes em todas as versões, embora
estejam definidas nos padrões TCP.
 Transferências orientadas a “stream” - Os aplicativos de nível de interface em
geral enviam dados ao TCP de forma orientada a "stream", onde a informação é
transmitida byte a byte, um após o outro. Quando a informação chega ao TCP, é
então agrupada em pacotes e assim enviada aos demais níveis de transmissão.
As aplicações enviam dados a serem transmitidos pela rede ao protocolo TCP,
através de canais virtuais de comunicação chamados de portas. As portas mais
usadas pelo protocolo TCP são:
As portas mais usadas pelo protocolo TCP
Porta Uso
11 Systat
15 Netsat
20 FTP(dados)
21 FTP(controle)
23 Telnet
25 SMTP
43 Whois
79 Finger
80 HTTP
O TCP empacota os dados recebidos adicionando as informações da porta de
origem e da porta destino, entre outras, passando o pacote de dados ao
protocolo e ao IP.
A figura a seguir mostra o encapsulamento do pacote de dados TCP.
Figura 6: Encapsulamento de pacote de dados TCP.
Ao receber um quadro, a camada de interface com a rede da máquina receptora
(o driver e a placa de rede) ira passar os dados para a camada IP, que por sua vez
passará os dados para a camada TCP, que passará os dados para a aplicação
correcta. A camada TCP sabe para qual aplicação ela deve entregar os dados por
causa do uso do conceito de portas.
4.2. Transmissão e recepção de pacotes
O protocolo TCP envia uma mensagem de confirmação de recebimento a máquina
transmissora chamada acknowledge (também chamada ack).
Se o transmissor não receber uma confirmação de recebimento dentro de um
determinado tempo, o pacote é retransmitido, já que isso significa que datagrama
IP carregando informações inseridas pelo protocolo TCP foram desgastados no
meio do caminho por algum motivo.
Esse determinado tempo a que nos referimos no parágrafo anterior, chamado RTT
(Round trip time), tempo aproximado de viagem é calculado dinamicamente pelo
protocolo TCP.
 4.3. Conexão
 É comunicação entre duas aplicações em duas diferentes maquinas.
 O protocolo TCP é responsável por abrir uma conexão, mantê-la e fecha-la e é
mantida através do envio de dados do transmissor ao receptor.
 4.4. Socket
Cada porta permite o uso de um conceito chamado socket. O socket define uma
conexão dentro de uma porta. Com o uso deste conceito, pode-se ter várias
conexões diferentes em uma mesma porta.
Os sockets podem ser classificados em activos ou passivos. Um socket activo é
aquele que envia dados e um passivo é aquele que recebe dados.
 4.5. Janelas
Para aumentar o desempenho do envio do pacote, o protocolo TCP trabalha com
o conceito de janela. Com esse conceito, o transmissor pode enviar outros antes de
ter recebido a confirmação de recebimento do primeiro pacote enviado.
ESTRUTURA DO SEGMENTO TCP
Figura 07: Estrutura do segmento TCP
Onde꞉
•Porta de origem: indica a aplicação que origina os dados.
•Porta do destino: indica a aplicação para a qual os dados serão entregues no
receptor.
•Número de sequência: identifica o número do primeiro byte presente no segmento
dentro do fluxo de dados gerados pela aplicação.
•Número de confirmação: é o acknowledge (ack). Aqui é colocado o número de
sequência do próximo segmento que o receptor espera receber.
•HLEN ou Offset: Esse campo (header lenght) especifica o tamanho do cabeçalho
do pacote TCP, contado em número de 32 bits, isto é, o número de linhas existentes
na figura xxx (em outras palavras o numero de bits existentes no cabeçalho dividido
por 32).
•Bits de controlo ou bits de código: esses bits são usados para controle, conforme
mostra a próxima tabela (os seis bits deste campo são contados da esquerda para a
direita, isto é, o bit URG é o primeiro da esquerda e assim por diante).
Bit Significado
URG O campo ponteiro
ACK O campo numero de confirmação e valido
PSH Força a entrada dos dados ( push )
RST Reiniciar a conexão
SYS Sincronismo ,determina o número de sequência inicial
FIN O transmissor chegou ao fim dos seus dados
 Tamanho da janela: define o tamanho da janela, em bytes, que será usada
na conexão.
 Checksum: é calculado de forma similar ao checksum do protocolo UDP,
com a criação de um pseudo - cabeçalho.
 Ponteiro urgente: caso existam casos que precisem serem processados
antes de a conexão chegar ao fim, dentro de uma mesma conexão, o bit
URG é activado e este campo é usado para informar a posição, dentro do
segmento, em que os dados urgentes terminam.
 Opções + pad: Esse campo é opcional e possui tamanho variável. Se não
for usado, o tamanho do cabeçalho TCP é de 20 bytes. Caso seja usado, o
tamanho do cabeçalho passa a ter 24bytes. Se o campo opções for menor
que 32 bits, então são adicionados zeros (chamados pad) ate que tamanho
desse campo tenha 32 bits (4 bytes).

Protocolos

  • 1.
  • 2.
    Camada de transporte,que tanto no Modelo OSI quanto no Modelo TCP/IP, é a camada responsável pela transferência eficiente, confiável e económica dos dados entre a máquina de origem e a máquina de destino, independente do tipo, topologia ou configuração das redes físicas existentes entre elas, garantindo ainda que os dados cheguem sem erros e na sequência correcta. A camada de transporte possui dois protocolos que são o UDP ( User Datagram Protocol) e TCP (Transmission Control Protocol).  Camada de rede do modelo OSI que é responsável por controlar a operação da rede de um modo geral. Suas principais funções são o roteamento dos pacotes entre fonte e destino, o controle de congestionamento e a contabilização do número de pacotes ou bytes utilizados pelo usuário, para fins de tarifação.  O protocolo da camada de rede que iremos detalhar é o ICMP ( Internet Control Message Protocol).
  • 3.
     2. ICMP(Internet Control Message Protocol)  É um protocolo de mensagem de controlo da Internet (utilizado para envio de mensagens de controle e mensagens de erro em emissão de bancos de dados do tipo IP).  Caso um roteador não consiga passar adiante um datagrama recebido por estar congestionado demais ou então por ter zerado o campo tempo de vida (ITL, Time to Live) do datagrama que ocorreu um erro.  O mecanismo usado pelos roteadores para informar esse tipo de erro è o uso do protocolo ICMP, Internet Control Message Protocol. Apesar de estarmos tratando o ICMP como um assunto à parte, ele è parte integrante do protocolo IP.  Ele não se preocupa em corrigir o erro nem tão pouco em verificar a integridade dos datagramas que circulam pela rede.
  • 4.
     Como mostramosna figura 1, a mensagem ICMP è transmitida usando um datagrama IP. Como o IP não verifica se um datagrama chegou ou não ao destino, pode ocorrer de a própria mensagem ICMP ser perdida no meio caminho! Figura 1: Encapsulamento de uma mensagem ICMP È também importante notar que o ICMP, apesar de ser encapsulado em um datagrama IP, não è considerado um protocolo de alto nível (como o TCP ou o UDP).
  • 5.
    2.1. ESTRUTURA DASMENSAGENS ICMP  Cada mensagem ICMP possui uma estrutura própria, mas todas elas começam da mesma maneira, mostrada na figura 2. O campo tipo informa justamente o tipo de mensagem ICMP. Sò para se ter uma ideia concreta dos tipos de mensagens ICMP existentes, na tabela a seguir mostramos alguns desses tipos e seu valor numérico (entrado no campo Tipo). Figura2: Cabeçalho do protocolo ICMP
  • 6.
    O campo Códigoprove mais informações sobre a mensagem ICMP, e o campo Checksum apresenta a soma de todos os valores presentes na mensagem ICMP. Checksum - é uma conta que consiste em somar todos os bytes presentes no pacote de dados e enviar o resultado dentro do próprio pacote. Para entendermos melhor o funcionamento do ICMP, iremos explicar rapidamente o funcionamento de algumas das mensagens ICMP existentes.
  • 7.
    2.2.ECO A mensagem deeco serve para verificar se o caminho entre o transmissor e o receptor está bom.  2.3.DESTINO INALCANÇAVEL Caso o roteador não consiga entregar um determinado datagrama,ele envia para o transmissor uma mensagem ICMP de destino inalcançável. Na mensagem de destino inalcançável, o campo código do cabeçalho ICMP (ver figura 2) e preenchido com um dos seguintes valores.  2.4.CONGESTIONAMENTO  Um roteador pode porventura receber um número maior de datagramas do que ele e capaz de processar. Caso isso ocorra, dizemos que o roteador esta congestionado. Neste tipo de situação, o roteador inclusive pode ter de descartar datagramas por não estar sendo capaz de recebe - los naquele momento. Quando isso ocorre, o roteador envia uma mensagem de redução da velocidade de transmissão ao transmissor do datagrama descartado. O transmissor, ao receber essa mensagem, passa a transmitir datagramas a uma velocidade menor.
  • 8.
    2.5.REDIRECIONAMENTO Caso o roteadorverifique que na rede local onde ele está instalado existe uma rota melhor a ser usada para enviar um datagrama recebido, ele envia uma mensagem ICMP de solicitação de redireccionamento ao transmissor, enviando também o datagrama ao destino. 2.6.TEMPO DE VIDA EXCEDIDO Quando o contador Tempo de Vida (TTL, Time to Live) do datagrama e zerado, o roteador envia para a maquina transmissora uma mensagem ICMP de tempo de vida excedido. Como vimos anteriormente, todo datagrama IP possui um campo tempo de vida, que possui um valor que e decrementado a cada vez que o datagrama passa por um roteador.
  • 9.
     2.7.PROBLEMA NOSPARAMETROS Quando um roteador ou uma máquina encontra problemas para processar um datagrama e não há nenhuma outra mensagem ICMP que cubra o problema encontrado, o roteador (ou máquina) envia uma mensagem de problema nos parâmetros para o transmissor. Normalmente essa mensagem è usada quando o roteador não consegue decodificar correctamente as informações presentes no cabeçalho IP do datagrama, isto è, quando há algum problema no cabeçalho do datagrama.  2.8.SOLICITAÇÃO DE HORÀRIO Através dessa mensagem de controlo uma máquina pode pedir o horário do relógio de outra máquina que esteja conectada na rede. A máquina transmissora envia um comando de solicitação de horário (mensagem ICMP tipo 13) a máquina da qual quer saber o horário, incluindo no datagrama a hora do envio do datagrama. A máquina receptora responde ao comando de solicitação de horário (mensagem ICMP tipo 14) incluindo o horário que o datagrama chegou atè ela e o horário em que o datagrama de resposta foi enviado.
  • 10.
     3. UDP(USER DATAGRAM PROTOCOL) O User Datagram Protocol (UDP) que significa protocolo de datagramas de utilizador (ou usuário)- é um protocolo de transporte não orientado á conexão. O UDP é pouco confiável, não existem técnicas no protocolo para confirmar que os dados chegaram ao destino correctamente. Por esse motivo esse protocolo não é usado no transporte de dados importantes como arquivos e e-mails. Na verdade as aplicações que usam o UDP deverão criar mecanismos para verificar se os dados chegaram ao destino correctamente e para colocar os datagramas recebidos em ordem.
  • 11.
    3.1. Vantagens doUDP  A vantagem de os programas usarem o UDP em vez do TCP em dados pequenos é que a transmissão de dados fica mais rápida.  Em redes locais confiáveis, onde não há quase perda de pacotes, o uso do protocolo UDP é atè viável.  3.2. Desvantagens do UDP  Em redes grandes,e principalmente na internet a taxa de perdas de pacotes pode ser grande de mais e acabar dando mais trabalho a aplicação ,tornando o envio de pacotes através do UDP inviável do ponto de vista prático .Por esse motivo o protocolo UDP so é usado para o envio de dados pequenos e onde a taxa de perda de pacotes não é problema, isto é, não vai dar muito trabalho a aplicação.
  • 12.
     3.3. Protocolosque Utilizam o UDP  SNMP-(Simple Network Managment)É utilizado para configurar dispositivos como switches ou roteadores e permite que estes enviem o seu status. O problema é que os hackers, utilizam este protocolo para obter informações sobre o sistema, como as tabelas de roteamento. As últimas versões do SNMP podem fazer criptografia md5, porém a maioria ainda usa versões antigas que passa o password em formato de texto.  TFTP - (Trivial File TranferProtocol) - Esse protocolo é um dos mais elementares que existem, pois apresenta poucos utilitários, como controle temporal e de integridade. Ele é um modelo mais simples de FTP, pois não possui nenhum tipo de mecanismo de segurança e como é baseado no protocolo UDP, não se pode confiar na integridade de suas transmissões.
  • 13.
     DHCP-(Dynamic HostConfiguration Protocol) É utilizado em redes que sofrem constantes alterações na topologia e o administrador não pode verificar o IP (Internet Protocol) de cada máquina devido a enorme quantidade, então o roteador distribui IPs automaticamente para as estações. Como esta atribuição é feita com a utilização do UDP, caso haja algum problema o usuário terá que pedir o reenvio ou reiniciar a máquina. O único problema técnico deste protocolo é que como os IPs são atribuídos aleatoriamente, fica mais difícil para o administrador ter controle sobre o que cada host está fazendo.  DNS –(Domain Name System) Um tradutor dos nomes na rede, na qual cada IP pode ser correspondido com um nome. Neste caso, imaginemos que um usuário esteja acessando a internet e deseja ir para outra página. Ele digita o endereço no campo apropriado e entra. Se a página, por acaso, não abrir por não ter reconhecido o endereço, o problema poderá ter sido no envio ou resposta do servidor de nomes utilizando o UDP, e então o usuário tentará de novo acessar a página e provavelmente conseguirá.
  • 14.
    Encapsulamento de umdatagrama UDP Figura 3: Encapsulamento de um datagrama UDP 3.4.Estrutura do Datagrama UDP Como foi visto no TCP/IP as aplicações comunicam-se com os protocolos da camada de transporte (o UDP e o TCP) através de portas. Figura 4: Estrutura do datagrama UDP
  • 15.
    Os campos portade origem e porta de destino especificam a aplicação que originou o datagrama e para cuja aplicação o datagrama deverá ser entregue na máquina de destino. Mesmo que a máquina de destino receba vários datagramas UDP vindo de várias aplicações diferentes, ela tem como saber para qual aplicação deve entregar o conteúdo do datagrama por causa da existência do campo Porta de Destino. O campo tamanho especifica o tamanho do datagrama UDP em bites, incluindo o seu cabeçalho e sua área de dados. O valor mínimo para esse campo é oito que é o tamanho do próprio cabeçalho. Já o checksum é calculado de forma não convencional. O protocolo UDP cria um pseudo - cabeçalho esse pseudo - cabeçalho é formado apenas para ser utilizado na soma que resultara no checksum do datagrama, não sendo transmitido junto com o datagrama. Esse pseudo - cabeçalho é formado pelo endereço IP de origem e pelo endereço IP de destino, pelo conjunto de oito zeros (campo zeros) pelo numero que o protocolo UDP representa no protocolo IP( 17 campo protocolo) e novamente o tamanho do datagrama UDP ( mesmo valor presente no campo tamanho do datagrama do verdadeiro cabeçalho UDP). Para formar o seu checksum, o UDP faz a soma usando os valores desse pseudo - cabeçalho ( que não é transmitido) os valores do seu cabeçalho verdadeiro ( este sim é transmitido), e os valores presentes em seu campo de dados.
  • 16.
    Figura 5: Pseudo- cabeçalho UDP, usando apenas o checksum Teoricamente o campo checksum é opcional (para não usar o checksum, basta preencher esse campo com todos os bits em um). Entretanto, sem o uso do checksum torna-se impossível saber se o dado recebido está corrompido ou não, isto é se ele sofreu ou não alterações durante o caminho entre o transmissor e o receptor. Por isso, a maioria das aplicações que usam o UDP prefere realizar o checksum. 3.5. Vulnerabilidades do Protocolo UDP O protocolo UDP assim como o TCP utilizam portas para a comunicação. Um dos primeiros passos que um hacker pode explorar é fazer a verificação das portas que estão abertas para comunicação. Caso, o administrador da rede queira impedir a invasão no sistema ele poderá fechar as portas mais isso significa ficar sem comunicação, então esta não é a melhor solução.
  • 17.
     4. TCP(Transmission Control Protocol) – Protocolo de Controle de Transmissão  É o protocolo TCP que faz a comunicação fim - a - fim da rede. É orientado à conexão e altamente confiável independente da qualidade de serviços das sub- redes que lhe servem de caminho. Para a confiabilidade de transmissão, garante a entrega das informações na sequência em que lhe foram fornecidas, sem perda nem duplicação.  Esse protocolo tem como principal objectivo realizar a comunicação entre aplicações de dois hosts diferentes. O protocolo TCP é um protocolo de nível de transporte muito utilizado que trabalha com mensagens de reconhecimento, especificação do formato da informação e mecanismos de segurança. Ele garante que todos os PDU's (Protocol data Unit) serão enviados com sucesso, pois realiza transmissões orientadas à conexão.  Quando executado, utiliza o protocolo IP, não orientado à conexão. O TCP então fica responsável pelo controle dos procedimentos da transferência segura de dados. Cabe salientar que o IP não é o único protocolo não orientado à conexão que pode ser utilizado pelo TCP.  Para maior eficiência nas comunicações, o TCP engloba várias funções que poderiam estar nas próprias aplicações, como processador de texto, base de dados e correio electrónico. Ele foi criado com o intuito de ser um software universal contendo essas funções.
  • 18.
     Existem aindaoutros serviços do TCP:  Controle de fluxo - O controle de fluxo atribui uma janela de transmissão ao host de origem. Essa janela limita o número de bytes transmitidos por vez. O controlo de fluxo em si está na possibilidade de atribuir diferentes valores às janelas.  Segurança na transmissão - A confiabilidade nas transmissões via TCP está baseada no fato de que esse protocolo é orientado à conexão e trabalha com números de reconhecimento sequenciais e positivos.  Comando de OPEN/CLOSE -Por meio de todos os dispositivos físicos, o TCP pode estabelecer uma conexão virtual, a partir do comando OPEN. Nesse momento, o TCP realiza o "three - way handshake", que é um processo onde os TCP's origem e destino trocam mensagens de reconhecimento que possibilitam a conexão. No momento em que a transferência de informações terminar, qualquer host (origem ou destino) poderá fechar a conexão virtual, a partir do comando CLOSE.  Gerenciamento da informação nas transmissões orientadas a conexão - O protocolo TCP pode controlar todos os aspectos da informação que esta sendo transmitida, pois é um protocolo de transmissão orientada à conexão. A acção do TCP se estende a toda a trajectória da informação, onde ele procura garantir o sucesso da transmissão.
  • 19.
     Prioridade esegurança - O protocolo TCP permite que o administrador do host controle os níveis de segurança e permissão de acesso, bem como as prioridades nas conexões. Essas características não estão presentes em todas as versões, embora estejam definidas nos padrões TCP.  Transferências orientadas a “stream” - Os aplicativos de nível de interface em geral enviam dados ao TCP de forma orientada a "stream", onde a informação é transmitida byte a byte, um após o outro. Quando a informação chega ao TCP, é então agrupada em pacotes e assim enviada aos demais níveis de transmissão. As aplicações enviam dados a serem transmitidos pela rede ao protocolo TCP, através de canais virtuais de comunicação chamados de portas. As portas mais usadas pelo protocolo TCP são:
  • 20.
    As portas maisusadas pelo protocolo TCP Porta Uso 11 Systat 15 Netsat 20 FTP(dados) 21 FTP(controle) 23 Telnet 25 SMTP 43 Whois 79 Finger 80 HTTP
  • 21.
    O TCP empacotaos dados recebidos adicionando as informações da porta de origem e da porta destino, entre outras, passando o pacote de dados ao protocolo e ao IP. A figura a seguir mostra o encapsulamento do pacote de dados TCP. Figura 6: Encapsulamento de pacote de dados TCP.
  • 22.
    Ao receber umquadro, a camada de interface com a rede da máquina receptora (o driver e a placa de rede) ira passar os dados para a camada IP, que por sua vez passará os dados para a camada TCP, que passará os dados para a aplicação correcta. A camada TCP sabe para qual aplicação ela deve entregar os dados por causa do uso do conceito de portas. 4.2. Transmissão e recepção de pacotes O protocolo TCP envia uma mensagem de confirmação de recebimento a máquina transmissora chamada acknowledge (também chamada ack). Se o transmissor não receber uma confirmação de recebimento dentro de um determinado tempo, o pacote é retransmitido, já que isso significa que datagrama IP carregando informações inseridas pelo protocolo TCP foram desgastados no meio do caminho por algum motivo. Esse determinado tempo a que nos referimos no parágrafo anterior, chamado RTT (Round trip time), tempo aproximado de viagem é calculado dinamicamente pelo protocolo TCP.
  • 23.
     4.3. Conexão É comunicação entre duas aplicações em duas diferentes maquinas.  O protocolo TCP é responsável por abrir uma conexão, mantê-la e fecha-la e é mantida através do envio de dados do transmissor ao receptor.  4.4. Socket Cada porta permite o uso de um conceito chamado socket. O socket define uma conexão dentro de uma porta. Com o uso deste conceito, pode-se ter várias conexões diferentes em uma mesma porta. Os sockets podem ser classificados em activos ou passivos. Um socket activo é aquele que envia dados e um passivo é aquele que recebe dados.  4.5. Janelas Para aumentar o desempenho do envio do pacote, o protocolo TCP trabalha com o conceito de janela. Com esse conceito, o transmissor pode enviar outros antes de ter recebido a confirmação de recebimento do primeiro pacote enviado.
  • 24.
    ESTRUTURA DO SEGMENTOTCP Figura 07: Estrutura do segmento TCP
  • 25.
    Onde꞉ •Porta de origem:indica a aplicação que origina os dados. •Porta do destino: indica a aplicação para a qual os dados serão entregues no receptor. •Número de sequência: identifica o número do primeiro byte presente no segmento dentro do fluxo de dados gerados pela aplicação. •Número de confirmação: é o acknowledge (ack). Aqui é colocado o número de sequência do próximo segmento que o receptor espera receber. •HLEN ou Offset: Esse campo (header lenght) especifica o tamanho do cabeçalho do pacote TCP, contado em número de 32 bits, isto é, o número de linhas existentes na figura xxx (em outras palavras o numero de bits existentes no cabeçalho dividido por 32). •Bits de controlo ou bits de código: esses bits são usados para controle, conforme mostra a próxima tabela (os seis bits deste campo são contados da esquerda para a direita, isto é, o bit URG é o primeiro da esquerda e assim por diante).
  • 26.
    Bit Significado URG Ocampo ponteiro ACK O campo numero de confirmação e valido PSH Força a entrada dos dados ( push ) RST Reiniciar a conexão SYS Sincronismo ,determina o número de sequência inicial FIN O transmissor chegou ao fim dos seus dados
  • 27.
     Tamanho dajanela: define o tamanho da janela, em bytes, que será usada na conexão.  Checksum: é calculado de forma similar ao checksum do protocolo UDP, com a criação de um pseudo - cabeçalho.  Ponteiro urgente: caso existam casos que precisem serem processados antes de a conexão chegar ao fim, dentro de uma mesma conexão, o bit URG é activado e este campo é usado para informar a posição, dentro do segmento, em que os dados urgentes terminam.  Opções + pad: Esse campo é opcional e possui tamanho variável. Se não for usado, o tamanho do cabeçalho TCP é de 20 bytes. Caso seja usado, o tamanho do cabeçalho passa a ter 24bytes. Se o campo opções for menor que 32 bits, então são adicionados zeros (chamados pad) ate que tamanho desse campo tenha 32 bits (4 bytes).