Você está na página 1de 8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof.

Alexsander Loula

1 - O protocolo IP (Internet Protocol): Um datagrama IP (fig. 1) consiste em uma parte de cabealho e uma parte de texto. O cabealho tem uma parte fixa de 20 bytes e uma parte opcional de tamanho varivel. Ele transmitido em uma ordem big endian (da esquerda para a direita, com o bit de mais alta ordem do campo Version aparecendo primeiro). A arquitetura SPARC (da Sun) um big endian; o Pentium (da Intel) um little endian. Nas mquinas little endian, necessria a converso de software na transmisso e na recepo.
32 bit s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Version

IHL

Type of Service D M F F

Tot al Lengt h Fragment Of f set Header Checksum

Ident if icat ion Time t o Live Prot ocol

Source Address Dest inat ion Address Opt ions (0 ou mais palavras)

Fig.1 (Formato datagrama IP) 1.1 - Descrio dos campos:

Version: O campo Verso (Version) controla a verso do protocolo qual o datagrama pertence. Incluindo-se a verso de cada datagrama, possvel verificar a transio entre as verses, o que pode levar meses ou at anos, com algumas mquinas executando a verso antiga e outras executando a nova verso. IHL: Como o tamanho do cabealho no constante, existe um campo no cabealho, IHL (Internet Header Length), que informa seu tamanho em palavras de 32 bits. O valor mnimo 5, quando no h nenhuma opo presente. O valor mximo desse campo de 4 bits 15, o que limita o cabealho a 60 bytes, e o campo Options a 40 bytes. Para alguma opes, como a que registra a rota percorrida pelo pacote, 40 bytes muito pouco, o que torna a opo intil. Type of Service: O campo Type of Service um dos poucos campos que tiveram seu significado (ligeiramente) modificado ao longo dos anos. Ele foi e ainda destinado a distinguir entre diferentes classes de servio. So possveis vrias combinaes de confiabilidade e velocidade. Em se tratando de voz digitalizada, a entrega rpida vence a entrega segura. Para a transferncia de arquivos, uma transmisso sem erros mais importante do que uma transmisso rpida. Total Length: O campo Total Length inclui tudo que h no datagrama (cabealho e dados). O tamanho mximo de 65.535 bytes. Atualmente, esse limite superior tolervel, mas com as futuras redes de gigabits sero necessrios datagramas maiores.
1/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

Identification: O campo Identification necessrio para permitir que o host de destino determine a qual datagrama pertence o fragmento recm-chegado. Todos os fragmentos de um datagrama contm o mesmo valor Identification. DF: O campo DF significa Don't Fragment (no fragmentar). Trata-se de uma ordem para os roteadores no fragmentarem o datagrama, porque a mquina de destino incapaz de juntar os fragmentos novamente. Por exemplo, quando um computador reinicializado, sua ROM solicita que uma imagem de memria seja enviada a ela com um nico datagrama. Marcando-se o datagrama com o bit DF, o transmissor sabe que ele chegar em um nico fragmento, mesmo que isso signifique que o datagrama deve evitar uma rede de pacotes pequenos que esteja no melhor caminho, e seguir por uma rota menos adequada. Todas a mquinas so obrigadas a aceitar fragmentos de 576 bytes ou menos. MS: O campo MS significa More Fragments (mais fragmentos). Todos os fragmentos, exceto o ltimo, tm esse conjunto de bits, necessrio para se saber quando chegaram todos os fragmentos de um datagrama. Fragment Offset: O campo Fragment Offset informa a que ponto do datagrama atual o fragmento pertence. Todos os fragmentos de um datagrama, com exceo do ltimo, devem ser mltiplos de 8 bytes, a unidade elementar de fragmento. Como so fornecidos 13 bits, existem no mximo 8.192 fragmentos por datagrama, resultando em um tamanho mximo de datagrama igual a 65.536 bytes, um a mais que o campo Total Length. Time to Live: um contador usado para limitar a vida til dos pacotes. Esse campo conta o tempo em segundos, permitindo uma vida til mxima de 255s. Esse contador deve ser decrementado a cada hop e supe-se que ele seja decrementado diversas vezes quando estiver enfileirado durante um longo tempo em um roteador. Na prtica, ele simplesmente conta os hops. Quando o contador chega a zero, o pacote descartado e um pacote de advertncia enviado ao host de origem. Esse recurso evita que os datagramas fiquem vagando indefinidamente, algo que aconteceria se as tabelas de roteamento fossem danificadas. Protocol: Quando tiver montado um datagrama completo, a camada de rede precisar saber o que fazer com ele. O campo Protocol informa a que processo de transporte o datagrama deve ser entregue. O TCP uma possibilidade, mas h tambm o UDP e alguns outros. A numerao dos protocolos se aplica a toda Internet. Os protocolos e outros nmeros atribudos foram listados inicialmente na RFC 1700, mas hoje eles esto contidos em um banco de dados online localizado em http://www.iana.org/. Header Checksum: O campo Header Checksum confere apenas o cabealho. Esse total de verificao til para a deteco de erros gerados por palavras de memria incorretas em um roteador. O algoritmo tem como objetivo somar todas as meias palavras de 16 bits medida que elas chegam, utilizando aritmtica de complemento de 1 e depois calculando o complemento de 1 do resultado. Para os propsitos desse algoritmo, supomos que o campo Header Checksum seja zero no momento da chegada. O uso do algoritmo mais eficaz do que uma soma normal. Observe que Header Checksum deve ser recontado a cada hop, porque pelo menos um campo sempre se altera (o campo Time do Live), mas existem artifcios que podem ser usados para acelerar o clculo.

2/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

Source / Destination Address: Indica o nmero da rede e o nmero do host. Na internet, cada host e cada roteador tem um endereo IP que codifica ser nmero de rede e seu nmero de host. A combinao exclusiva: em princpio, duas mquinas na Internet nunca tm o mesmo endereo IP. Todos os endereos IP tm 32 bits e so usados nos campos Source Address e Destination Address dos pacotes IP. importante observar que um endereo IP no se refere realmente a um host. Na verdade, ele se refere a uma interface de rede; assim, se um host estiver em duas redes, ele precisar ter dois endereos IP. Porm na prtica, a maioria dos hosts est em uma nica rede e, portanto, s tem um endereo IP. Em geral, os endereos de rede, que so nmeros de 32 bits, so escritos em notao decimal com pontos. Nesse formato, cada um dos 4 bytes escrito em notao decimal, de 0 a 255. Por exemplo, o endereo hexadecimal de 32 bits C0290614 escrito como 192.41.6.20. O endereo IP mais baixo 0.0.0.0 e o mais alto 255.255.255.255. Options: O campo Options foi projetado para permitir que verses posteriores do protocolo incluam informaes inexistentes no projeto original, possibilitando a experimentao de novas idias e evitando a alocao de bits de cabealho para informaes raramente necessrias. Existem opes de tamanhos variveis. Cada uma comea com um cdigo de um byte identificando a opo. Alguma opes so seguidas por um campo de tamanho de opo de 1 byte e depois por um ou mais bytes de dados. O campo Options preenchido at alcanar um mltiplo de quatro bytes. Originalmente, havia cinco opes definidas, como mostra a Fig. 2, mas desde ento foram acrescentadas mais algumas. Agora, a lista completa mantida online em http://www.iana.org/assignments/ip-parameters
Descrio Especifica o nvel de segurana do datagrama Mostra o caminho completo a ser seguido Apresenta uma lista de roteadores que no devem ser esquecidos Faz com que cada roteador anexe seu endereo IP Faz com que cada roteador anexe seu endereo IP e sua indicao de hora

Opo Security Strict Source Routing Loose Source Routing Record Route Timestamp

Fig. 2 (Algumas opes do IP) A opo Security mostra o nvel de segurana da informao. Teoricamente, um roteador militar poderia usar esse campo para especificar que no se deve seguir rotas que passem por certos pases que os militares considerem mal comportados. Na prtica, todos os roteadores a ignoram, pois sua nica funo prtica ajudar os espies a descobrirem mais facilmente onde esto as melhores informaes. A opo Strict Source Routing fornece o caminho completo da origem ao destino como uma sequncia de endereos IP. O datagrama obrigado a seguir exatamente essa rota. Essa opo mais til principalmente para os gerentes de sistemas enviarem pacotes de emergncia quando as tabelas de roteamento esto danificadas ou para fazer medies de sincronizao. A opo Loose Source Routing exige que o pacote percorra uma lista de roteadores especficos, na ordem determinada, mas permite que ele passe por outros roteadores durante o percurso. Normalmente, essa opo forneceria um pequeno nmero de roteadores, a fim de forar um determinado caminho. Por exemplo, se for necessrio forar um pacote a ir de Londres at Sydney pelo oeste e no pelo leste, essa opo poderia
3/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

especificar roteadores de Nova York, Los Angeles e Honolulu. Essa opo til principalmente quando consideraes polticas ou econmicas exigem a passagem por certos pases ou que eles sejam evitados. A opo Record Route informa aos roteadores ao longo do caminho que eles devem anexar seu endereo IP ao campo opes. Isso permite que administradores de sistemas depurem algoritmos de roteamento (Por que os pacotes de Houston para Dallas esto passando primeiro por Tquio?). Quando a ARPA-NET foi criada, nenhum pacote passava por mais de nove roteadores; por isso, 40 bytes de opo eram suficientes. Como mencionamos antes, agora esse espao pequeno. A opo Timestamp semelhante opo Record Route, exceto pelo fato de que, alm de registrar seu endereo IP de 32 bits, cada roteador tambm registra um timbre de hora de 32 bits. Essa opo tambm se destina, principalmente, depurao de algoritmos de roteamento.

2 - O protocolo TCP(Transmission Control Protocol): A fig. 3 mostra o layout de um segmento TCP. Cada segmento comea com um cabealho de formato fixo de 20 bytes. O cabealho fixo pode ser seguido por opes de cabealho. Depois das opes, se for o caso, pode haver at 65.535 20 20 = 65.485 bytes de dados, onde o primeiro valos 20 se refere ao cabealho IP e o segundo ao cabealho TCP. Segmentos sem quaisquer dados so vlidos e so comumente usados para confirmaes e mensagens de controle.
32 bit s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Source Port Sequence Number

Dest inat ion Port

Acknowledgement Number TCP Header Lengt h Checksum U A P P S F R C S S Y I G K H T N N

Window Siz e

Urgent Point er

Opt ions (0 ou mais palavras de 32 bit s) Dados (campo opcional)

Fig. 3 (Layout de um segmento TCP)

4/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

2.1 - Descrio dos campos:

Souce / Destination Port: Identificam os pontos terminais locais de conexo. As portas conhecidas so definidas em http://www.iana.org, mas cada host pode alocar as outras portas como desejar. Uma porta e o endereo IP de seu host formam um nico ponto terminal de 48 bits. Os nmeros dos pontos terminais de origem e destino identificam a conexo. Sequence Number: Todo byte tem um nmero de sequncia (Sequence Number), portanto, pode ter um acknowledge relativo a ele. Esse campo permite a remontagem dos dados no destino. Possui 32 bits, pois cada byte de dados numerado em um fluxo TCP. Acknowledgement Number: Especifica o prximo byte aguardado pelo destino, informando tambm que at o byte anterior foi recebido corretamente. S vlido se o bit ACK do campo flags estiver setado. Assim como o Sequence Number, tambm possui 32 bits para enumerao do fluxo TCP. TCP Header Length: Informa quantas palavras de 32 bits existem no cabealho TCP. Essa informao necessria, porque o campo Options tem tamanho varivel; assim, o mesmo acontece com o cabealho. Tecnicamente, na verdade, esse campo indica o incio dos dados dentro do segmento com base em palavras de 32 bits, mas esse nmero apenas o tamanho do cabealho em palavras e, portanto, o efeito o mesmo. Em seguida, temos um campo de 6 bits que no utilizado. O fato de esse campo ter sobrevivido intacto por mais de um quarto de sculo a prova de como o TCP bem organizado. Protocolos menores teriam precisado dele para corrigir bugs no projeto original. URG: O valor 1 atribudo a URG (Urgent Pointer), se ele estiver sendo usado. Urgent Pointer usado para indicar um deslocamento de bytes a partir do nmero de sequncia atual em que os dados urgentes devem ser encontrados. Esse recurso substitui as mensagens de interrupo. Ele tambm representa uma forma estruturada de permitir que o transmissor envie um sinal ao receptor sem envolver o servio TCP no motivo da interrupo. ACK: Ao bit ACK atribudo o valor 1 para indicar que Acknowledgement Number vlido. Se ACK for igual a zero, isso significa que o segmento no contm uma confirmao e assim o campo Acknowledgement Number ignorado. PSH: O bit PSH indica dados com o flag PUSH. Com ele, o receptor solicitado a entregar os dados aplicao mediante sua chegada, em vez de armazen-los at que um buffer completo tenha sido recebido (o que ele poderia fazer para manter a eficincia). RST: O bit RST utilizado para reinicializar uma conexo que tenha ficado confusa devido a uma falha no host ou por qualquer outra razo. Ele tambm utilizado para rejeitar um segmento invlido ou para recusar uma tentativa de conexo. Em geral, se receber um segmento com o bit RST ativado, isso significa que voc tem um problema. SYN: O bit SYN usado para estabelecer conexes. A solicitao de conexo tem SYN=1 e ACK=0 para indicar que o campo de confirmao de piggyback no est sendo utilizado. A resposta contm uma confirmao e, portanto, tem SYN=1 e ACK=1. Basicamente, o bit SYN usado para denotar CONNECTION REQUEST e

5/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

CONNECTION ACCEPT, enquanto o bit ACK usado para distinguir entre essas duas possibilidades. FIN: O bit FIN utilizado para encerrar uma conexo. Ele indica que o transmissor no tem mais dados para enviar. Entretanto, um processo pode continuar a receber dados indefinidamente, mesmo depois de a conexo ter sido encerrada. Tanto o segmento SYN quando o segmento FIN tm nmeros de sequncia e, portanto, so processados na ordem correta. Window Size: O controle de fluxo no TCP administrado por meio de uma janela deslizante de tamanho varivel. O campo Window Size indica quantos bytes podem ser enviados a partir do byte confirmado. Um campo Window Size igual a 0 vlido e informa que todos os bytes at Acknowledgement Number 1 inclusive foram recebidos, mas que o receptor precisa de um descanso no momento e agradeceria muito se nenhum outro fosse enviado. A permisso para retomar a transmisso de dados pode ser enviada mais tarde com o mesmo Acknowledgement Number e com uma campo Window Size diferente de zero. Checksum: Esse campo fornecido para aumentar a confiabilidade. Ele confere o total de verificao do cabealho, dos dados e do pseudocabealho ilustrado na fig. 4. Ao efetuar esse clculo, o campo Checksum do TCP definido como zero, e o campo de dados preenchido com um byte zero adicional, caso seu tamanho seja um nmero mpar. O algoritmo de total de verificao simplesmente soma todas a palavras de 16 bits em complementos de 1 e depois tira o complemento de 1 da soma. Desse modo, quando o receptor efetuar o clculo no segmento inteiro, incluindo o campo Checksum, o resultado dever ser 0.
32 bit s

2 3

5 6

7 8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Source Address Dest inat ion Address 00000000 Prot ocol = 6 TCP Segment Lengt h

Fig. 4 (Pseudocabealho includo no total da verificao do TCP) O pseudocabealho contm os endereos IP de 32 bits da mquinas de origem e destino, o nmero do protocolo para TCP (6) e a contagem de bytes para o segmento TCP (incluindo o cabealho). Incluir o pseudocabealho no clculo do total da verificao ajuda detectar a detectar pacotes extraviados; no entanto, essa estratgia viola a hierarquia do protocolo, pois os endereos IP nele contidos deveriam estar na camada IP e no na camada TCP. O UDP utiliza o mesmo pseudocabealho em seu total de verificao. Options: Foi projetado como uma forma de oferecer recursos extras, ou seja, recursos que no foram previstos pelo cabealho comum. A opo mais importante aquela que permite a cada host estipular o mximo de carga til do TCP que est disposto a receber. O uso de segmentos grandes mais eficiente do que a utilizao de segmentos pequenos, pois o cabealho de 20 bytes pode ser diludo em um maior
6/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

volume de dados; porm, possvel que hosts pequenos no sejam capazes de administrar segmentos muito grandes. Durante a configurao da conexo, cada lado pode anunciar sua capacidade mxima e avaliar a capacidade de seu parceiro. Se um host no usar essa opo, o valor padro de 536 bytes ser estipulado para a carga til. Todos os hosts da Internet so obrigados a aceitar segmentos TCD de 536 + 20 = 556 bytes. O tamanho mximo de segmento nos dois sentidos no precisa ser o mesmo.

3 - O protocolo UDP (User Datagram Protocol): O conjunto de protocolos da Internet admite um protocolo de transporte sem conexes, o UDP (User Datagram Protocol). O UDP oferece um meio para aplicaes enviarem datagramas IP encapsulados sem que seja necessrio estabelecer uma conexo. O UDP transmite segmentos que consistem em um cabealho de 8 bytes, seguido pela carga til. O cabealho mostrado na fig. 5:
32 bit s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Source Port UDP Lengt h

Dest inat ion Port UDP Checksum

Fig. 5 (Cabealho do UDP) 3.1 - Descrio dos campos:

Source / Destination Port: As duas portas servem para identificar os pontos extremos nas mquinas de origem e destino. Quando um pacote UDP chega, sua carga til entregue ao processo associado porta de destino. Essa associao ocorre quando a primitiva BIND ou algo semelhante usado. De fato, o principal valor de se ter o UDP em relao ao uso do IP bruto a adio das portas de origem e destino. Sem os campos de portas, a camada de transporte no saberia o que fazer com o pacote. Com eles, a camada entrega os segmentos corretamente. A porta de origem usada principalmente quando uma resposta dever ser devolvida origem. Copiando o campo Source Port do segmento de entrada no campo Destination Port do segmento de sada, o processo que transmite a resposta pode especificar qual processo na mquina transmissora deve receb-lo. UDP Length: O campo UDP Length inclui o cabealho de 8 bytes e os dados. UDP Checksum: Esse campo opcional e armazenado como 0 se no for calculado (um valor 0 verdadeiro calculado armazenado com todos os bits iguais a 1). tolice desativ-lo, a menos que a qualidade dos dados no tenha importncia (por exemplo, no caso de voz digitalizada).

7/8

Descrio de Campos dos Protocolo IP, TCP e UDP Prof. Alexsander Loula

Referncia: Redes de Computadores Andrew S. Tanenbaum (Editora Campus - Quarta Edio)

8/8