######### UNSEKURITY SCENE ######### # http://unsekurity.virtualave.net # #################################### Entenda a comunicação em Uma Rede IP 1 Introduçao 1.1 A API de programacao do TCP/IP 1.1.2 A interface Socket 2 Comparacao entre UDP e TCP 2.1 TCP 2.2 UDP 3 Estrutura e funcao do protocolo de rede IP. 3.1 IP 4 ARP 5 ICMP Texto indicado para iniciantes ou seja newbies mesmo, nem falo o seguinte: "elite nao leia" pois ja' disse que esse texto e' dirigido a newbies que querem entender um pouquinho de TCP/IP e rede. Espero que gostem se nao gostarem , tem muitos outros textos ai na internet apenas quis dar minha contribuicao fiz esse texto com muito gosto ficarei muito feliz se alguem conseguir aprender algo com ele :-). Em breve estarei dando continuidade a esse texto pois TCP/IP e' um assunto muito abrangente e quem quer ser um fucador tem que entender muito bem TCP/IP, bom nao vou me alongar mais leiam e torco para que entendam. # 1 Aqui escreverei uma visao geral do TCP/IP, depois explicarei a "mecanica" da comunicação IP. # 1.1 A API de programacao do TCP/IP Observando uma rede podemos pensar que existe muitos aplicativos de comunicacao, desempenhando funcoes misteriosas, Mas na realidade na maioria das redes sao executadas tarefas simples como: # transferencia de arquivo # simulacao de terminal # e-mail # execucao de programas remotamente # gerenciamento de rede Tudo que se pode fazer numa rede e necessario a execucao de algum software, e esse software precisa entender o funcionamento da rede, e para isso foi criada uma API (Interface para programacao de aplicacao) ,de programacao para softwares de rede. As diversas implementacoes do TCP/IP estao disponiveis para DOS, UNIX, e muitos outros sistemas. Sera que todos esses sistemas usam a mesma API? Nao, Sabemos que o TCP/IP foi desenvolvido para UNIX, para UNIX foi desenvolvida uma API chamada Socket Interface. O TCP/IP foi portado para diversos ambientes, o mais recente porte de TCP/IP foi para Windows, e essa API chama-se winsock. # 1.1.2 A Interface Socket A interface socket, foi implementada primeiramente no sistema BSD 4.1c do UNIX em 1982.Foram feitas muitas modificacoes nesta API, A primeira versao da Interface Socket nao era dedicada a TCP/IP. Bom vou acabar com essa babozeira de contar estorias, agora vo mostrar uma figura ilustrando os servicos da interface socket oferece 3 servicos TCP/IP: #cadeias TCP #Datagramas UDP #conexao direta de datagrama para IP. Fig 1. ###Cadeias Abrir------| Enviar-----| Receber----| Status-----| Fechar-----| Datagrama Datagrama Abortar----| | | | | | _______________________ | TCP | UDP | RAW | |_______|_______|_______| | IP | |_______________________| |Software Driver de Rede| |_______________________| | Hardware de rede | |_______________________| APIs Socket. # 1.2 Comparacao entre TCP e UDP. 1.2.1 TCP O servico socket mais complexo e' o TCP Streams. TCP e' um servico de conexao multiesta'gio que tem como vantagem conexao de ser um servico que verifica erros, assim transfere dados de maneira confiavel, e termina a conexao de forma "limpa".Durante a transferencia de dados, ha um controle do fluxo de dados assim ela verifica e corrige erros. Quem desenvolver aplicativos evolvendo o TCP devem usar o TCP se quiserem uma tranferencia de de dados "confiavel". 1.2.2 UDP UDP e' um servico simples e basico, protocolo que nao necessita de comunicacao fisica.Por que UDP e' simples? Por que UDP simplesmente recebe e envia dados nao faz correcao de erros.mas pode-se desenvolver correcao de erros no UDP , implentar todas as vantagens do TCP, fica a criterio. Porem UDP e' mais rapido que UDP o desenvolvedor que quiser ganhar perfomance usaram UDP # 1.3 Estrutura e funcao dos principais protocolos de rede: IP e ICMP O protocolo ip foi desenhado pra transportar informacoes de 1 maquina pra outra, supondo que a rede de computadores possa envolver todas as partes da rede dando suporte a diferentes tecnologias. O protocolo ip basico oferece 3 servicos: # Entrega sem conexao fisica, pode ser chamado de datagrama. # Mecanismo de fragmentacao e remontagem. # Enderecamento e rota dos pacotes. O trafego orientado a sessao que usa IP nao terao como certo que os datagramas chegarao na mesma em que foram transmitidos, ou que os datagramas nao chegaram corrompidos.As redes IP podem cobrir o mundo passando por diferentes tecnologias com FDDi, Ethernets Token Rings, roteadores etc. fig. 2 O endereco IP Pegue 32bits # # * * # * # * * * # * * * # * * * * # * * # # * * * * # * * * # # * * # * # * * * # * * * # * * * * # * * # # * * * * # * * * # # * * # * # * * * # * * * # * * * * # * * # # * * * * # * * * Separe 4 octetos # # * * # * # * # # * * # * # * # # * * # * # * ai va dividindo em sequencias como o 1 acima. Os enderec,os IP tem sempre 32bits de comprimento, mas nem sempre ele aparece dessa forma isso por causa de uma convencao a chamada "dotted decimal notation" ( notacao decimal com ponto) com essa convencao ele aparecem assim 200.200.200.200 . Identificacao de rede e computador Quando os enderecos IP usados pelo software soao usados e sua forma binaria As classes do enderecamento *Enderecos de Classe A tem como identificacao de rede 8 bits *Enderecos de Classe B tem como identificacao de rede 16 bits *Enderecos de Classe C tem como identificacao de rede 24 bits Como todo endereco IP tem 32 bits sendo assim a subtracao da identificacao de rede por 32 bits resulta na Identificacao de Computador na rede por exemplo *Enderecos Classe A tem identificacao de computador de 28 bits Determinando Classes de enderecos Para se dizer que um endereco IP e de classe A, B,C e' necessario usar uma tecnica para que o software possa determinar rapidamente existe Tipo uma lei assim o', pega-se os primeiros bits, ou seja os mais significativos do endereco IP.Vejam como e feita a divisao Valor do primeiro Byte (decimal) 1.... 127 Classe A 128... 191 Classe B 192....223 Classe C 224...239 Classe D E' assim que se divide A voce viu ai que apareceu a Classe D nao, e' essa e usada para multidifusao IP algo que falarei mas a frente. # 1.3.1 Formato dos Pacotes IP A camada de rede IP e independente de qualquer tecnologia que se use para transferencia seja ela, Ethernet,Token ring, FDDI e etc. Mas o pacote ip tem que ter uma representacao correta na Camada de Enlace para que possam existir na tecnologia LAN especifica olhem o encapsulamento Generico do endereco IP fig. 3 ____________________________________________________________ |Cabecalho do | Multiplexacao|Pacote IP| Fechamento | |Enlace de Dados| do Protocolo | |do enlace de Dados| |_______________|______________|_________|__________________| Encapsulamento Gene'rico do Pacote IP. *O cabecalho e o fechamento do Enlace de dados existe pra permitir que o datagrama IP seja conduzido num LAN WAN, Essa figura acima mostra o pacote para uma rede LAN, e isso mudara para uma rede Ethernet, Token Ring e etc mas o conceito e' parecido. Um pacote IP , ou datagrama tem pelo menos 20 bytes e ele e' mais ou menos assim: 0 4 8 16 32 |---------|--------|--------------|--------------------------| | VERS | LEN | TOS | Comprimento Total | |---------|--------|--------------|----------|---------------| | Identificacao |Marcadores|Conpensacao de | | | | fragmentos | |---------------|-----------------|----------|---------------| | TTL | Protocolo | Cabecalho da soma | | | | Controle | |---------------|-----------------|--------------------------| | Endereco IP de Origem | |------------------------------------------------------------| | Endereco IP de Destino | |------------------------------------------------------------| | Opcoes de Preenchimento | |------------------------------------------------------------| Formato do Datagrama IP Formato do Datagrama IPEncapsulamento Gene'rico do Pacote IP. VERS: Numero da versao LEN: O comprimento do Cabecalho IP medido em unidades de 32 bits, este campo nao inclui dados, server para medir o comprimento do campo opcoes, e os outros campos ja tem tamanhos definidos TOS: Tipo de servico, campo que tem uma estrutura muito complexa e ainda nao esta implementada pelo software IP do computador, o computador pode usar esse campo para especificar o Retardo, Rendimento e comfiabilidade do caminho da comunicacao. Comprimento Total: Como o nome diz e o comprimento total do datagrama IP medido em bytes, e este comprimento inclui os campos de cabecealho e de dados Identificacao: Usado na fragmentacao e remontagem de pacotes Marcadores: Marcadores de controle que sao usados para indicar se um datagrama pode ou nao ser fragmentado e se ele e' o ultimo na sequencia de datagramas fragmentados. Compensacao de Fragmentos: Contem o numero de pedacos de 64 bits incluindo bytes do cabecalho IP dos fragmentos anteriores, este campo permite que os fragmentos possam chegar ao ponto de montagem fora da sequencias e serem armazenados num buffer pra aguardarem o resto dos fragmentos restantes. Tempo de Vida ( Time to live - TTL ): Campo que e' usado para eliminar os loops permanentes de pacote, e' nesse campo que se determina o numero de segundos que o pacote pode existir na rede. O roteadores descartaram pacotes cujo tamanho seja igual a 0 e valor inicial recomendado e' 32 Protocolo: Indica o protocolo de nivel nu'mero mais elevado por exemplo TCP=6, UDP=17, para qual o software deve entregar o datagrama, a lista completa dos valores pode ser encontrada no RFC1060 . Soma de Controle do cabec,alho: esta soma de controle so'e' calculada no cabec,alho IP, sendo que uma vez que o processo de soma de controle nao pode incluir a propria soma de controle entao logo esse campo seja zero. Endereco IP de Origem: Como o nome diz e'o endereco IP de 32 bits do remetente. Endereco IP de Destino: Como o nome diz tambem e' o endereco IP de 32 bits para onde o datagrama vai Opc,oes: O campo de opcioes e' opcional , as principais opc,oes sao de seguranca que incluem Kerberos Security, Loose Source Routing, Strict Source Routing e Record Route. Preenchimento: Como o preenchimento do campo Opcoes do IP e' variavel sao usados zeros para preencher o datagram ate completar-se os 32 bits. ### ARP Protocolo para resolucao de endereco O objetivo do ARP e' recolher o endereco MAC de uma estacao que esteja no mesmo segmento de rede , o funcionamento do ARP O ARP funciona de maneira bem simples e' o seguinte , a uma troca de 2 informacoes em 2 estagios: 1. A uma solicitacao ARP por parte do REMETENTE que conhece o endereco IP do RECPTOR e para determinar o endereco MAC do receptor , o REMETENTE transmite uma solicitacao ARP. 2 O RECEPTOR recebe a solicitacao ARP, reconhece seu proprio IP dentro da solicitacao em envia uma resposta ARP Depois disso o computador armazena todas as informacoes em uma tabela de enderecos IP e enderecos MAC essa tabela se chama CACHE ARP, funcionando assim como o cache do seu browser internet . O envelhecimento do cache ARP O ARP da a possibilidade para que os computadores aprendam a relacao entre endercos IP e MAC, e se algum dia o computador que aramazenou essas informacoes , sera' possivel algum dia ele esquecer essas informacoes? claro que sim no caso de uma falha na interface de rede LAN por exemplo, em um computador em particular? a interface e' substituida por uma nova diferente da anterior, ai os computadores que tem o cache da interface antiga nao conseguiram achar a interface velha . Este e' um problema que pode ser facilmente resolvido usando o seguiente procedimento , o procedimento de envelhecimento, acontece o seguinte nesse procedimento, o cache e'envelhecido a cada 5 minutos por exemplo dependendo do programa usado na sua rede por exemplo o OSS/2 LAN Manager, assim a 5 min o cache e' novamente processado. Os caches ARP permitem entradas esta'ticas ( entradas que sao inseridas manualmente ), que nao sao envelhecidas este tipo de entrada e' u'til para reduzir a quantidadede tra'fego ARP na rede, outra maneira de conseguir isso e' aumentando o tempo de envelhecimento para horas ou mesmo dias, para que uma entrada ARP seja removida. So se deve fazer isso se sua rede estiver bem estruturada e ocorram poucas falhas nas interfaces. ###ICMP ( internet control message protocol ) Protocolo muito importante para diagnostico na rede e' esse o protolo que o programa ping usa para determinar se o computador que ele manda a requisicao responde. Voce pode ler algo sobre ICMP na RFC 792, o ICMP penso que obrigatoria em quar implementacao IP, no inicio o ICMP foi projetado somente para relacionar erros e informar aos sistemas terminais que determinado roteado, computador ou rede, nao pode ser encrontada, de uns tempos pra ca' o ICMP cresceu muito e assim foi se aumentando a funcionalidade e oferecendo muitos outros servicos numa rede, algumas funcionalidades mais comuns do ICMP: # Informar que determinada rede, roteador ou computador nao foi encontrado ai aparece a seguinte mensagem (HOST UNREACHABLE, NETWORK UNREACHABLE) # No programa ping testa roteadores pela rede: (ECHO REQUEST, ECHO REPLY). # Solicitar controle de fluxo do computador que envia (SOURCE QUENCH). # Informar ao computador que a uma rota melhor (REDIRECT). # Informar ao computador qual e' a mascara de subrede para o segmento (ADDRESS MASK REQUEST). # Permitir que computadores,roteadores se descubram dinamicamente (ROUTER DISCOVERY). Continuacao do texto em Breve # bibliografia: Internet, Internetworking Com TCP/IP ## contato: klogdbr@yahoo.com.br ##Beijinhos e agradecimentos: pro meu pai, pra minha mae, e especialmente pra vc xuxa, hehhehehhehe, Unsekurity Scene, Emmanuele :-*, LoLLabuny :-*, e tambem para meus amigos: xf86config, module, slater, nashleon, meleu, luis_ifer hehehe, esc2, e muitos outros mais. ##Links: ftp://ftp.ietf.rnp.br/rfc http://www.absoluta.org http://www.rnp.br http://www.unsecurity.org http://shadowpenguin.backsection.net http://core.defusion.org http://www.jonathas.com.br http://coracaodeleao.virtualave.net