Baixe o app para aproveitar ainda mais
Prévia do material em texto
Pilha de Protocolos TCP/IP e RTP Autor: Sergio Ricardo Magalhães da Silva Mat.: 201501214373 Relatório Redes de Computadores – Dr. Professor Paulo Sampaio Setembro 2018. Índice: Introdução _________________________________________________________ 3 Pequena história da Internet __________________________________________ 4 Breves informações dos principais protocolos em cada camada _____________ 6 O Modelo TCP/IP ___________________________________________________ 8 O Protocolo TCP ___________________________________________________ 11 O Protocolo IP _____________________________________________________ 15 O IPv4 e o IPv6_____________________________________________________ 19 Cabeçalhos: IPv4 e IPv6 _____________________________________________ 20 Protocolo RTP _____________________________________________________ 23 RTCP_____________________________________________________________ 23 Como funcionam os Protocolos RTP e RTCP____________________________23 Desenvolvendo aplicações com RTP____________________________________24 Formato do Cabeçalho RTP__________________________________________24 Conclusão_________________________________________________________ 25 Referencias________________________________________________________ 26 3 INTRODUÇÃO: TCP/IP é um acrônimo para o termo Transmission Control Protocol/Internet Protocol Suite, dois dos mais importantes protocolos que conformam a pilha de protocolos usados na Internet. O protocolo IP, base da estrutura de comunicação da Internet é um protocolo baseado no paradigma de chaveamento de pacotes (packet-switching). Os protocolos TCP/IP podem ser utilizados sobre qualquer estrutura de rede, seja ela simples como uma ligação ponto-a-ponto ou uma rede de pacotes complexa. Como exemplo, pode-se empregar estruturas de rede como Ethernet, Token-Ring, FDDI, PPP, ATM, X.25, Frame-Relay, barramentos SCSI, enlaces de satélite, ligações telefônicas discadas e várias outras. A arquitetura TCP/IP, assim como a OSI, realiza a divisão de funções do sistema de comunicação em estruturas de camadas. 4 Pequena história da Internet A Internet nasceu em 1969, nos Estados Unidos. Inicialmente, interligava os diversos laboratórios de pesquisa e chamava-se ARPAnet (ARPA: Advanced Research Projects Agency). Era uma rede do Departamento de Defesa norte-americano cujo principal objetivo era atender necessidades militares. Assim, a função desta rede era que em caso de ocorrência de guerras ou catástrofes que pudessem afetar os meios de comunicação dos EUA, continuassem ativas as ligações entre universidades e órgãos principais do governo mesmo que parte de rede fosse destruída. Era então necessário a utilização de um protocolo de comunicação que assegurasse tais funcionalidades, foi assim que começou a ser desenvolvida a arquitetura TCP/IP. O nome Internet propriamente dito surgiu bem mais tarde, quando a tecnologia da ARPAnet passou a ser usada para interligar universidades e laboratórios, primeiro nos EUA e depois noutros países. Atualmente a Internet consiste num conjunto de várias dezenas de milhar de redes cuja única semelhança que possuem reside no protocolo de comunicação que partilham, o TCP/IP que permite que umas máquinas comuniquem com outras. Durante cerca de duas décadas a Internet ficou restrita ao ambiente académico e científico, somente a partir de 1987 esta rede passou a ser comercializada nos EUA. Porém, foi em 1992 que a sua utilização passou a ser generalizada. Começaram a aparecer nos EUA várias empresas provedoras de acesso à Internet e centenas de milhar de pessoas passaram a colocar e a consultar informações na Internet, tornando-se talvez na maior fonte de informação de massas. A normalização do protocolo TCP/IP chegou após a utilização em massa da Internet. Algumas datas Importantes no desenvolvimento da Internet: 1968 Foi desenvolvido pela ARPA (Advanced Research Projects Agency) o primeiro backbone. O objetivo desse projeto era interligar várias universidades e a área militar. 1975 A ARPA deu lugar ao DARPA (Defence Advanced Research Projects Agency) e começou a desenvolver os protocolos TCP/IP. 1979 Foi formado comité ICCB (Internet Control and Configuration Board) para gerir o desenvolvimento do TCP/IP. 1983 A DARPA cedeu os direitos do código dos protocolos TCP/IP à Universidade da Califórnia para que fosse distribuído na versão UNIX. A DARPA exigiu que 5 todos os PCs ligados ao ARPANET usassem os protocolos TCP/IP. Esses protocolos difundiram-se rapidamente, visto não serem produtos comerciais. 1985 A Fundação Nacional de Ciência dos Estados Unidos (NSF) criou a NSFNET, que era uma rede de alta capacidade destinada a atender, tanto nos EUA como noutros países, as entidades científicas e de pesquisa. 1987 A Internet passou a ser comercializada nos EUA 1989 A ARPANET deu lugar à NSFNET e o ICCB foi substituído pela IAB (Internet Advisory Board). A IAB possuía dois grupos principais: o IRTF (Internet Research Task Force) e o IETF (Internet Engeneering Task Force). 1992 Começaram a aparecer diversos ISP (Internet Service Provider) dando-se início à massificação da Internet o serviço responsável pela massificação foi o www que surgiu neste ano. A partir de 1992 Muitas redes foram desenvolvidas sobre o TCP/IP, novas aplicações criadas e um conjunto de serviços desenvolvidos de forma a melhorar e a diferenciar o tráfego que circula na Internet. 6 Breves informações dos principais protocolos em cada camada: Camada de Aplicação: A camada de aplicação reúne os protocolos que fornecem serviços de comunicação ao sistema ou ao usuário. Pode-se separar os protocolos de aplicação em protocolos de serviços básicos ou protocolos de serviços para o usuário: Protocolos de serviços básicos, que fornecem serviços para atender as próprias necessidades do sistema de comunicação TCP/IP: DNS, BOOTP, DHCP. Protocolos de serviços para o usuário: FTP, HTTP, Telnet, SMTP, POP3, IMAP, TFTP, NFS, NIS, LPR, LPD, ICQ, RealAudio, Gopher, Archie, Finger, SNMP e outros. Camada de Transporte: Esta camada reúne os protocolos que realizam as funções de transporte de dados fim-a-fim, ou seja, considerando apenas a origem e o destino da comunicação, sem se preocupar com os elementos intermediários. A camada de transporte possui dois protocolos que são o UDP (User Datagram Protocol) e TCP (Transmission Control Protocol). O protocolo UDP realiza apenas a multiplexação para que várias aplicações possam acessar o sistema de comunicação de forma coerente. O protocolo TCP realiza, além da multiplexação, uma série de funções para tornar a comunicação entre origem e destino mais confiável. São responsabilidades desse protocolo: o controle de fluxo, o controle de erro, a sequenciação e a multiplexação de mensagens. Camada de Rede (ou Inter-Rede): Esta camada realiza a comunicação entre máquinas vizinhas através do protocolo IP. Para identificar cada máquina e a própria rede onde essas estão situadas, é definido um identificador, chamado endereço IP, que é independente de outras formas de endereçamento que possam existir nos níveis inferiores. No caso de existir endereçamento nos níveis inferiores é realizado um mapeamento para possibilitar a conversão de um endereço IP em um endereço deste nível. Dentre os vários protocolos existentes nesta camada, tais como o ICMP e o IGMP, o protocolo IP é o mais importante, pois implementa a função mais importante desta camada que é a própria comunicação inter-redes. Para isto ele realiza a função de roteamento que consiste no transporte de mensagens entre redes e na decisão de qual rota uma mensagem deve seguir através da estrutura de rede parachegar ao destino. O protocolo IP utiliza a própria estrutura de rede dos níveis inferiores para entregar uma mensagem destinada a uma máquina que está situada na mesma rede que a máquina origem. Por outro lado, para enviar mensagem para máquinas situadas em redes distintas, ele utiliza a função de roteamento IP. Isto ocorre através do envio da mensagem para uma máquina que executa a função de roteador. Esta, por sua vez, repassa a mensagem para o destino ou a repassa para outros roteadores até chegar ao destino. Camada de Enlace: A camada de enlace é responsável pelo envio de datagramas construídos pela camada de Rede. Esta camada realiza também o mapeamento entre um endereço de identificação do nível de rede para um endereço físico ou lógico. Os protocolos deste nível possuem um esquema de identificação das máquinas interligadas por este protocolo. Por exemplo, cada máquina situada em uma rede Ethernet, Token-Ring ou FDDI possui um identificador único chamado endereço MAC ou endereço físico que 7 permite distinguir uma máquina de outra, possibilitando o envio de mensagens específicas para cada uma delas. Tais redes são chamadas redes locais de computadores. Camada Física: A Camada Física define as características mecânicas, elétricas, funcionais e os procedimentos para ativar, manter e desativar conexões físicas para a transmissão de bits. As características mecânicas dizem respeito ao tamanho e forma de conectores, pinos, cabos, etc. que compõem um circuito de transmissão. As características elétricas especificam os valores dos sinais elétricos (nível de tensão e corrente) usados. As características funcionais definem o significado dado aos sinais transmitidos na camada física (por exemplo, transmissão, recepção, terra, etc.). Os procedimentos especificam as funções e protocolos necessários para a transmissão de bits. O bit é considerado, na transmissão serial, como a unidade de dados básica da Camada Física. Os protocolos da Camada Física devem ser independentes do meio de transmissão de modo que um dado terminal possa ser utilizado em diversos meios, como pares metálicos, fibra óptica ou rádio, por exemplo. 8 O Modelo TCP/IP Antes da internet se tornar tão popular os protocolos de comunicação mais importantes eram o TCP/IP, NETBEUI, IPX/SPX, Xerox Network System (XNS) e a Apple Talk. De salientar que para dois equipamentos de redes poderem comunicar entre si é essencial que ambos entendam as mesmas regras, ou seja, ambos têm de usar o mesmo protocolo de comunicação. Com o acesso crescimento e vulgarização da Internet e com a necessidade de as redes internas das empresas se ligarem cada vez com mais frequência à Internet e de serem obrigadas a utilizar o protocolo já usado na internet, o protocolo TCP/IP expandiu-se também a estas redes empresariais tornando-se atualmente no protocolo padrão de comunicação. O TCP/IP (Transmission Control Protocol/Internet Protocol) representa um conjunto de protocolos que permitem que diversos equipamentos que constituem uma rede possam comunicar entre si. É um protocolo estruturado por camadas na qual cada camada utiliza e presta serviços às camadas adjacentes. Cada camada apenas trata das informações que correspondem à sua função. O modelo TCP/IP quando comparado com o modelo OSI, tem duas camadas que se formam a partir da fusão de algumas camadas do modelo OSI, elas são: as camadas de Aplicação (Aplicação, Apresentação e Sessão) e Acesso à Rede (Ligação de dados e Física). Existem 5 camadas distintas que formam o TCP/IP: 9 APLICAÇÃO: Esta camada é formada por um vasto conjunto de protocolos os quais permitem o correto funcionamento dos diversos Serviços/Aplicações do modelo TCP/IP. Esta camada não possui um padrão comum para todas as aplicações, ou seja, consoante o serviço em questão irá depender também o protocolo que o vai atender. Por exemplo, o serviço e-mail utiliza o protocolo SMTP, sempre que este serviço é solicitado ao TCP/IP (envio ou recepção de e- mail), é este protocolo que se encarrega do atender. De igual modo sempre que é solicitado ao TCP/IP o serviço www o protocolo que se encarrega de o atender é o HTTP. Ou seja, por trás de cada aplicação existe um protocolo específico seja ele o FTP,TELNET, HTTP, SMTP, POP3, DNS, etc. TRANSPORTE: Pela figura, pode-se verificar que a Camada TCP do Modelo TCP/IP corresponde à Camada de Transporte do Modelo OSI. Desta forma, o TCP é responsável pelas funções de transporte nas quais se incluem os mecanismos necessários que garantem a entrega sequencial de dados, sem erros e sem falhas. O acesso das diversas Aplicações a esta camada é feito através de portas as quais têm associados números inteiros distintos para cada tipo de Aplicação. Podem ser utilizados dois protocolos distintos para o transporte, o TCP e o UDP. O TCP é orientado à conexão enquanto que o UDP não. O UDP funciona como segunda opção da camada de transporte uma vez que não oferece garantias de entrega de pacotes, nem da sua correta sequência de envio. Normalmente o UDP só é utilizado em aplicações que geram elevados volumes de tráfego na Internet. CAMADA IP ou INTERNET: As Funções da “Camada de Rede” do Modelo OSI, são aqui realizadas pela Camada IP e pela consequente utilização do Protocolo IP. A Camada IP é uma camada normalizada em que o único protocolo utilizado é o protocolo IP. Esta camada é responsável pelo endereçamento, roteamento e controlo de envio e recepção dos dados. A comunicação é realizada por datagramas. O protocolo IP é não orientado à conexão, não garantindo que os pacotes IP cheguem ao seu destino nem se chegam pela ordem com que foram enviados. O IP é o protocolo responsável por definir o caminho que um pacote de dados deverá percorrer desde o host de origem até ao host destino, passando por uma ou várias redes onde poderá encontrar protocolos de conexão como o IP, o ICMP, o ARP e o RARP. ACESSO À REDE (Enlace): Esta camada tem como principal função a adaptação do Modelo TCP/IP aos diversos tipos de redes (X.25, ATM, FDDI, Ethernet, Token Ring, Frame Relay, PPP e SLIP). É a camada de abstração de hardware e devido à enorme variedade de tecnologias de rede possíveis, é uma camada não normalizada pelo modelo TCP/IP. É possível a interligação e interoperação com redes heterogéneas. Nesta camada são utilizados gateways ou routers. 10 FÍSICO: Esta camada descreve as características físicas da comunicação tais como a natureza do meio usado para a comunicação (cobre, fibra-óptica ou links de rádio) e todos os detalhes relacionados com os sinais (modulações, comprimentos de onda, níveis de sinal, sincronizações, distâncias máximas, etc) Uma das maiores limitações da arquitectura TCP/IP é quanto a sua capacidade de endereçamento, que já está se tornando limitada, devido ao crescimento exponencial da Internet. 11 O Protocolo TCP O TCP é um protocolo da camada de transporte confiável em que existe a garantia que os dados são integralmente transmitidos para os hosts de destino correctos na sequência pelo qual foram enviados. O TCP segmenta a informação proveniente da Camada Aplicação em pequenos blocos de informação (datagramas) inserindo-lhes um cabeçalho de forma a que seja possível no hoste de destino fazer a reassemblagem dos dados. Este cabeçalho contém um conjunto de bits (checksum) que permite tanto a validação dos dados como do próprio cabeçalho. A utilização do checksum permite muitas vezes no hoste de destino recuperar informação em caso de erros simples na transmissão (nos casos da rede corromper o pacote). Caso a informação seja impossível de recuperar ou o pacote TCP/IP se tenha perdido durante a transmissão, é tarefa do TCP voltar a transmitir o pacote. Para que o hoste de origemtenha a garantia que o pacote chegou isento de erros é necessário que o hoste de destino o informe através do envio de uma mensagem de "acknowledgement". O TCP corresponde a um conjunto de rotinas instaladas nos hosts de origem e destino as quais são utilizadas pelas várias aplicações (e-mail, http, FTP, telnet, etc) quando necessitam de executar o transporte de dados entre hosts. Para que seja possível identificar a que serviço um determinado datagrama pertence, o TCP utiliza o conceito de portas. A cada porta está associado um serviço. Após determinada a porta, toda a comunicação com a aplicação é realizada e endereçada através dela. Características do protocolo TCP: Transferência de dados: transmissão ponto-a-ponto de blocos de dados no modo full-duplex. Transferência de dados com diferentes prioridades: transmite em primeiro lugar os datagramas que contenham sinalização de prioridade superior. Estabelecimento e libertação de conexões Sequenciação: Ordenação dos pacotes recebidos. Segmentação e reassemblagem: O TCP divide os dados a serem transmitidos em pequenos blocos de dados, identificando-os de forma a que no host de destino seja possível reagrupá-los. Controle de fluxo: o TCP é capaz de adaptar a transmissão dos datagramas às condições de transmissões ( velocidade , tráfego ... ) entre os diversos sistemas envolvidos. Controle de erros: A utilização de checksum permite verificar se os dados transmitidos estão livres de erros. É possível, para além da detecção a sua correção. 12 Multiplexagem de IP: Uma vez que é utilizado o conceito de portas, é possível enviar dados de diferentes tipos de serviços (portas diferentes) para o mesmo hoste de destino. Funcionamento de uma Ligação TCP: Uma comunicação utilizando o TCP é realizada em três fases: 1. Estabelecimento da ligação. 2. Troca de dados. 3. Libertação da ligação. 13 O Estabelecimento da ligação é realizado pelo envio de 3 mensagens de acordo com é descrito: Um pacote TCP tem a seguinte estrutura: Significado dos campos: TCP SOURCE PORT: Porta origem da mensagem TCP DESTINATION PORT: Porta destino da mensagem SEQUENCE NUMBER: número de sequência dos dados sendo transmitidos face ao conjunto total de dados já transmitidos. Este número indica a posição do primeiro byte de dados sendo transmitido em relação ao total de bytes já transmitidos nesta conexão. O primeiro número de sequência utilizado não é zero ou um, mas começa de um valor aleatório. O sequence number num sentido da ligação (máquina A para B) é diferente do sequence number do sentido inverso, já que os dados transmitidos por um e outro lado são completamente distintos. ACKNOWLEDGE NUMBER: número que significa o reconhecimento dos dados recebidos até então no sentido inverso. O ACK contém o número do próximo byte do fluxo de dados recebido, que a origem deste pacote espera receber da outra máquina. Este valor leva em 14 consideração o SEQUENCE NUMBER inicial. O valor de ACK informa sempre o próximo byte ainda não recebido do conjunto contíguo de bytes recebidos do transmissor. CODE BITS: São formados por seis bits, URG, ACK, PSH, RST, SYN e FIN, cuja sua utilização é a seguinte: 1. URG "bit de Urgência" : significa que o segmento sendo carregado contém dados urgentes que devem ser lidos com prioridade pela aplicação. A aplicação origem é responsável por ativado este bit e fornecer o valor do URGENT POINTER que indica o fim dos dados urgentes. 2. ACK "bit de Reconhecimento": indica que o valor do campo de reconhecimento está carregando um reconhecimento válido. 3. PSH "bit de PUSH": Este mecanismo pode ser ativado pela aplicação, informa ao TCP a origem e destino que a aplicação solicita a transmissão rápida dos dados enviados, mesmo que ela contenha um número baixo de bytes, não preenchendo o tamanho mínimo do buffer de transmissão. 4. RST "bit de RESET": Informa o destino que a ligação foi abortada neste sentido pela origem 5. SYN "bit de Sincronismo": É o bit que informa que este é um dos dois primeiros segmentos de estabelecimento da conexão. 6. FIN "bit de Terminação": Indica que este pacote é um dos pacotes de finalização da ligação. WINDOW: Este campo informa o tamanho disponível em bytes na janela de recepção da origem deste pacote. Por meio deste valor, o TCP pode realizar um controle adequando de fluxo para evitar a sobrecarga do receptor. Quando este valor é igual a zero, o transmissor não envia dados, esperando receber um pacote com WINDOW maior que zero. O transmissor sempre vai tentar transmitir a quantidade de dados disponíveis na janela de recepção sem aguardar um ACK. Enquanto não for recebido um reconhecimento dos dados transmitidos e o correspondente valor de WINDOW > 0, o transmissor não enviará dados. OPTIONS: O campo de opções só possui uma única opção válida que é a negociação do MSS (Maximum Segment Size) que o TCP pode transmitir. O MSS é calculado através do MTU ou através do protocolo ICMP Path MTU Discovery. 15 O Protocolo IP Este protocolo define os mecanismos de expedição dos datagramas. É um protocolo não orientado à conexão em que cada pacote IP é tratado como uma unidade independente de informação, não possuindo qualquer relação com qualquer outro. Neste datagrama são colocadas informações relevantes para o envio do pacote até o destino. O Protocolo IP é responsável pela comunicação entre hosts em redes TCP/IP. Ele é responsável pela comunicação entre cada elemento da rede para permitir o transporte de uma mensagem de um host de origem até a um host de destino, podendo o datagrama passar por várias sub-redes (a origem e o destino são hosts identificados por endereços IP). O protocolo IP é não-confiável, sendo esta uma responsabilidade dos protocolos das camadas superiores, nomeadamente do TCP. Assim, não é utilizado nenhum mecanismo de controlo de fluxo ou de controlo de erros de dados, verificando-se apenas, através de um checksum a integridade do cabeçalho de forma a garantir que os gateways encaminhem corretamente os datagramas. As funções mais importantes realizadas pelo protocolo IP são a atribuição de um esquema de endereçamento independente do endereçamento da rede utilizada e independente da própria topologia da rede, além da capacidade de rotear e tomar decisões de roteamento para o transporte das mensagens entre os elementos que interligam as redes. Características do protocolo IP: Serviço de datagrama não confiável; Endereçamento hierárquico; Facilidade de fragmentação e de reassemblagem de pacotes; Campo especial indicando qual o protocolo de transporte a ser utilizado no nível superior; Identificação da importância do datagrama e do nível de confiabilidade exigido de forma a oferecer prioridade na transmissão; Descarte e controle de tempo de vida dos pacotes a circular na rede. 16 O pacote IP possui o formato descrito abaixo: Significado dos campos : VERSION : Informa qual a versão do protocolo IP que está a ser utilizado. Pode ser o IPv4 ou Ipv6. HEADER LENGTH : Informa qual o comprimento do cabeçalho IP, grupos de 4 bytes. TYPE OF SERVICE : Informa como o pacote deve ser tratado, de acordo com sua prioridade e o tipo de serviço desejado. Para o tráfego de Internet, este campo não é carregado. IDENTIFICATION : Identifica o pacote IP unicamente entre os outros transmitidos pela máquina. Este campo é usado para identificar o pacote IP no casode haver fragmentação em múltiplos datagramas FLAGS (3 bits) : um dos bits (MF - More Fragments) identifica se este datagrama é o último fragmento de um pacote IP ou se existem mais. Outro bit (DNF - Do Not Fragment) informa os routers do caminho se a aplicação exige que os pacotes sejam ou não fragmentados. FRAGMENT OFFSET : Informa o posicionamento do fragmento em relação ao pacote IP do qual faz parte. TIME-TO-LIVE : Este valor é decrementado a cada 1 segundo que o pacote passa na rede e a cada router pelo qual ele passa. Serve para limitar a duração do pacote IP a circular na rede. Este valor serve para evitar que um pacote caia num ciclo e se encontre 17 a circular eternamente entre routers. Quando atingir o valor nulo, o pacote IP é descartado. PROTOCOL : Informa qual o protocolo de mais alto-nível que está a ser carregado no campo de dados. O IP pode carregar mensagens UDP, TCP, ICMP, etc. HEADER CHECKSUM : Valor que ajuda a garantir a integridade do cabeçalho do pacote IP SOURCE ADDRESS : Endereço IP do host de origem do pacote IP DESTINATION ADDRESS : Endereço IP do host de destino do pacote IP OPTIONS : Opções com informações adicionais para o protocolo IP. Consiste num byte com a identificação da opção e numa quantidade de bytes variável com as informações específicas. Um pacote IP pode transportar várias opções simultaneamente. As Opções IPs As opções IP são utilizadas como uma forma de verificação e monitoração duma rede IP. As opções que especificam a rota até o destino não são utilizadas normalmente, pois o IP é baseado na técnica de Next-Hop Routing. Ainda assim, estes mecanismos são pouco utilizados como ferramenta de testes e verificação, sendo raros os programas que os implementam. O formato das opções IP é descrita no quadro abaixo: 18 Os endereços IPs Um endereço IP serve para identificar univocamente cada um dos elementos que compõe uma rede ligada à Internet. Um endereço IP é um conjunto de 32 bits, normalmente escritos em decimal e distribuídos por 4 octetos. A definição de um endereço IP segue uma série de especificações definidas pela NIC "Network Information Center", que atribui e controla os endereços IP pelo mundo de forma a garantir segurança e unicidade dos endereços. Associado ao endereço IP de cada host está também associada à máscara de Rede. Ambos são utilizados para a comunicação entre hosts e permitem identificar o host e a rede. Devido a existirem redes de vários tamanhos, é utilizado o conceito de Classe de Endereçamento. Assim é possível distinguir as seguintes classes: Classe A: suporta 128 redes com a possibilidade de endereçar 16 milhões de hosts; Classe B: suporta 16384 redes com a possibilidade de endereçar 64 mil hosts; Classe C: suporta 2 milhões de redes com a possibilidade de endereçar 256 hosts; Classe D: permite que um datagrama seja distribuído por um conjunto de hosts; Classe E: São endereços que começam por 1111 e está reservado para uso futuro. Normalmente a Internet utiliza a classe C para endereçamento das suas redes e hosts, assim quando um novo ISP "Internet Service Provider" se liga à internet, recebe no mínimo um conjunto de 256 endereços para serem utilizados pelos seus hosts permitindo um acesso simultâneo à Internet de 256 utilizadores. Normalmente um ISP tem muitos mais clientes que o número de endereços que tem disponíveis, a forma de contornar esta situação é em vez de ter endereços IP fixos atribuídos a cada host ter um processo de alocação dinâmica de Ips. Como o crescimento da Internet foi exponencial, os endereços IP disponíveis diminuíram drasticamente e uma forma de resolver o inevitável esgotar de endereços IP consistiu em criar o conceito de sub-redes. 19 Inter-Operações entre as camadas TCP e IP O TCP recebe mensagens da camada Aplicação, divide-as em datagramas de tamanho fixo e inserindo-lhes um cabeçalho e enviando-os de seguida para a camada IP. Estes dados não são tratados pela camada IP sendo que a principal função do IP consiste em encontrar um caminho que faça com que o datagrama chegue ao extremo da ligação. Para que os sistemas intermédios da rede retransmitam o datagrama, é adicionado um cabeçalho no pacote IP, que consiste principalmente num endereço IP de origem e de destino do datagrama e um número que corresponde ao protocolo usado na camada de Transporte. Os pacotes IP à medida que passam por sub-redes são fragmentados em unidades menores. Quando os pacotes IP chegam ao destino, são eventualmente reassemblados (quando ao passarem por sub-redes necessitaram de ser fragmentados) e enviados à camada TCP que é responsável pela verificação da integridade dos dados. Caso o checksum do pacote não coincida com o valor esperado e não seja possível recuperar o pacote, este é descartado e é enviada uma mensagem ao host de origem a pedir o reenvio desse pacote. De referir que o TCP e o IP têm checksums separados por razões de eficiência e segurança. O IPv4 e o IPv6 Embora os protocolos TCP/IP sejam os pilares fundamentais da Internet, oferecendo um conjunto de serviços bastante vasto, eles não foram desenvolvidos para serem protocolos seguros. Uma vez que as mensagens transportadas pelo TCP/IP são trocadas em cleartext, as aplicações são por isso vulnerável a ataques passivos (utilização de sniffers) e a ataques ativos (roubo de sessões). Teoricamente, um computador de uma rede interna de uma empresa que se liga à Internet pode ser acedido por qualquer utilizador da Internet, representando um elevado risco na segurança de informações e de aplicações/serviços da própria empresa. Além do problema de segurança da versão atual do TCP/IP existe outro problema que tem a ver com a capacidade de endereçamento. A versão atual utiliza um campo de 4 bytes (32 bits) sendo de esperar que dentro de alguns anos estejam esgotados todos os endereços ainda disponíveis. Um endereço IPv6 tem um comprimento de 128 bits, tornando o espaço de endereço tão longo que cada pessoa do planeta poderia ter uma interligação em redes tão grande quanto a atual Internet. 20 Para resolver as limitações do IPv4, a partir de 1990, a IETF "Internet Engineering Task Force", começou a trabalhar numa nova versão do TCP/IP, o IPv6 (ou IPSec). Os objectivos principais do IETF são: Maior Capacidade de Endereçamento - Os endereços são formados por 128 bits de comprimento implicando um aumento extremamente elevado no número de hosts. É possível assim suportar mais níveis de endereçamento hierárquico, um número muito maior de nós e autoconfiguração mais simples de endereços. Arquitetura de endereçamento melhor estruturada. Formato de cabeçalho simplificado - Alguns campos do cabeçalho do Ipv4 foram retirados ou foram marcados como opcional, de forma a permitir um mais rápido processamento de pacotes nos routers e uma diminuição da Largura de banda do cabeçalho do IPv6. Implementação de apoio para extensões e opções - Mudanças do modo que são codificadas as opções do cabeçalho IP permitem um encaminhamento mais eficiente, menos restrições no tamanho das opções, e maior flexibilidade por introduzir opções novas no futuro. Possibilidade de associar tráfegos a Fluxos - Uma capacidade nova é adicionada para habilitar o etiquetamento de pacotes pertencendo a fluxos particulares para o qual, o remetente fez pedido de manipulação especial, como qualidade de diferente do default de serviço ou serviço "real-time". Passa a ser possível o suporte a aplicações multimídia em tempo real. 21 Suporte para Jumbo datagrams’ - Possibilidade de envio de pacotes de diferentes tamanhos, o IPv4 suporta apenaspacotes de 64Kb. Mobilidade- Permitir que um host mude de lugar sem precisar mudar o endereço. Configuração Plug-and-Play. Suporte para multicasting e anycasting Mecanismos de segurança, incluindo Criptografia e autenticação Autenticação e Privacidade e Criptografia- Mecanismos para apoiar a autenticação, integridade e confidência de dados, bem como o envio de mensagens encriptadas. Redução das tabelas de roteamento Permitir a coexistência entre o novo e o antigo protocolo durante anos. O IPv6 divide os endereços em tipos, do mesmo modo que o IPv4 os divide em classes, assim cada datagrama pode ser do tipo: Unicast – O endereço de destino especifica um único computador. O Datagrama deverá ser roteado para o destino ao longo do caminho mais curto possível. Cluster – O destino é um conjunto de computadores que juntos dividem um único prefixo de endereço. O datagrama deverá ser roteado para o grupo ao longo de um caminho o mais curto possível e, então, entregue a exatamente um membro do grupo. Multicast – O destino é um subconjunto de computadores, possivelmente em diversos locais. Uma cópia do datagrama será entregue a cada membro do grupo usando hardware multicast ou broadcast, conforme o caso. O IPv6 não usa os termos broadcast ou difusão direta para se referir à entrega a todos os computadores de uma rede física ou sub-rede lógica IP. Em vez disso, usa o termo multicast e trata difusão como uma forma especial de multicast. O IPv6 trata especificações de comprimento de datagrama de um modo novo. Primeiro, visto que o tamanho do cabeçalho básico é fixado em 40 octetos, o cabeçalho básico não inclui um campo de comprimento de cabeçalho. Segundo, o IPv6 substitui o campo de comprimento de datagrama do IPv4 por um campo comprimento de carga (payload) de 16 bits que especifica o número de octetos transportados em um datagrama, excluindo o próprio cabeçalho. Assim, um datagrama do IPv6 pode conter 64K de octetos de dados. Um novo mecanismo no IPv6 aceita a reserva de recursos e permite que um router associe cada datagrama a uma dada alocação de recursos. A abstração considerada, um fluxo, consiste em um caminho de uma interligação em redes, ao longo do qual os routers intermédios garantem uma qualidade específica de serviços. 22 O campo rótulo de fluxos do cabeçalho básico contém informações que routers usam para associar um datagrama a um fluxo e prioridade específicos. O campo está dividido em 2 subcampos: classe T de 4 bits e identificador de fluxo de 24 bits. O campo Classe T especifica a classe de tráfego para o datagrama. São usados valores de 0 a 7 para especificar a sensibilidade ao tempo de tráfego controlado por fluxo. O campo restante contém um identificador de fluxo. A origem escolhe um identificador de fluxo ao estabelecer um fluxo. Não há conflito potencial entre computadores porque um router usa a combinação de endereço de origem de datagrama e o identificador de fluxo, ao associar um datagrama a um fluxo específico. 23 Protocolos RTP RTP – Real-Time Transport Protocol O objetivo do RTP (em português, Protocolo de Transferência em Tempo Real) é fornecer um meio uniforme para transmitir em IP dados sujeitos a restrições de tempo real (áudio, vídeos, etc.). A principal função do RTP é a de aplicar números de sequência de pacotes IP para reconstituir as informações de voz ou vídeo, mesmo que a rede subjacente altere a ordem dos pacotes. O RTP permite identificar o tipo de informação transportada, acrescentar indicadores temporais e números de sequência à informação transportada e controlar a chegada ao destino dos pacotes. Além disso, o RTP pode ser veiculado por pacotes Multicast (vários pontos) para encaminhar conversas para destinatários múltiplos. RTCP – Real-Time Transport Control Protocol O protocolo RTCP (em português, Protocolo de Controle de Transferência em Tempo Real) baseia- se em transmissões periódicas de pacotes de controle por todos os participantes da sessão. É um protocolo de controle dos fluxos RTP que permite veicular informações básicas sobre os participantes de uma sessão e sobre a qualidade de serviço. Como funcionam os Protocolos RTP e RTCP O RTP permite a gestão dos fluxos multimídia (voz e vídeo) em IP. O RTP funciona em UDP. O cabeçalho RTP comporta informações de sincronização e numeração. A codificação dos dados dependerá do tipo de compressão utilizado. O RFCxxxx especifica o RTP e a adaptação de um método de compressão ao RTP será descrita em um RFC específico. Um canal RTP é empregado por tipo de fluxo: um para o áudio e outro para o vídeo. O campo xxx é empregado para a sincronização. O RTP oferece um serviço do começo ao fim. Ele acrescenta um cabeçalho que fornece as informações de timing necessárias para a sincronização de fluxos de tempo real do tipo som e vídeo. O RTP (Real-time Transport Protocol) e o RTCP (Real-time Transport Control Protocol) permitem, respectivamente, transportar e controlar ondas de dados que têm propriedades de tempo real. O RTP e o RTCP são protocolos que se situam no aplicativo e utilizam os protocolos subjacentes de transporte TCP ou UDP. Porém, a utilização do RTP/RTCP é feita, geralmente, com base no UDP. O RTP e o RTCP podem utilizar o modo Unicast (ponto a ponto) bem como o modo Multicast (multiponto). Cada um deles utiliza uma porta separada: o RTP utiliza a porta par e o RTCP a porta ímpar, imediatamente superior. 24 Desenvolvendo aplicações com RTP • Socket entre RTP e UDP – nível aplicação – código implementado à mão • RTP no nível de transporte – bibliotecas C e Java O RTP/RTCP está acima do transporte UDP/TCP. O RTP é um protocolo de sessão, mas está inserido no aplicativo. Formato do Cabeçalho RTP Legenda do cabeçalho: V (Versão) - 2 bits Identifica a versão de RTP utilizada. Este item descreve a versão "dois" do protocolo. A versão 0 foi inicialmente desenvolvida para o VAT (ferramenta de transmissão de áudio). P (Acolchoamento ou Padding) - 1 bit Este bit é "um" quando existem um ou mais octetos adicionais ao final do pacote que não fazem parte dos dados. Estes deverão ser ignorados pois estão ali apenas devido a certos algoritmos de encriptação necessitarem um tamanho fixo dos blocos. O último octeto de acolchoamento possuirá a informação de quantos octetos foram inseridos. X (Extensão) - 1 bit Se este bit for "um", o cabeçalho fixo será seguido de apenas uma extensão de cabeçalho. 25 Conta de CSRC - 4 bits Quantidade de identificadores CSRC presentes no cabeçalho. Este serão explicado mais à frente. O número de CSRC's está limitado entre 0 e 15. M (Marcador) - 1 bit Este bit pode ser usado pela aplicação para marcar determinados pacotes. Tipo de dados - 7 bits Este campo define que tipo de dados há no pacote e como devem ser interpretados pela aplicação. Número Sequencial - 16 bits Este campo serve para ordenar os pacotes de uma comunicação, sendo que o primeiro pacote recebe um número sequencial aleatório e os seguintes recebem o número sequencial do pacote imediatamente anterior incrementado de um. Carimbo de Tempo - 32 bits Ilustra o momento em que o primeiro octeto dos dados foi gerado. Identificador SSRC (Fonte de Sincronização ou Synchronization Source) - 32 bits Identifica as fontes de sincronização. Cada participante de uma sessão RTP escolhe de forma aleatória um identificador SSRC que irá identificá-lo dentro desta sessão frente aos outros participantes. A probabilidade de duas fontes escolherem o mesmo SSRC é quase nula, mas mesmo assim, todas as aplicações RTP devem estar preparadas para detectar e solucionar colisões. Identificador CSRC (Fonte Contribuinte ou Contributing Source) - 32 bits Identifica as fontes que contribuíram para a formação dosdados contidos no pacote. Este identificador se aplica a pacotes gerados por Misturadores. Conclusão Quando se planeja uma transmissão de dados multimídia surgem diversas preocupações e considerações que se deve ter em mente a respeito das diferentes maneiras de se manter a qualidade dos dados. As soluções a serem utilizadas têm uma relação muito forte com a aplicação da transmissão. Quanto maior for a garantia de qualidade utilizada maior será o custo. Por este motivo, muitos usuários (dependendo da aplicação) aceitam menor qualidade em suas transmissões. Portanto a qualidade tem uma relação estreita com o quanto o usuário está disposto a pagar pelo serviço. Sendo assim, antes de se estabelecer qualquer nível de qualidade de vídeo e áudio ou mesmo de QoS, é necessário avaliar a relação custo/benefício para a aplicação dependendo da necessidade. 26 Referencias https://www.gta.ufrj.br/grad/01_2/vidconf/concl.html Redes de computadores e a internet - uma abordagem top-down por Jim Kurose e Keith Ross. http://www.lcmi.ufsc.br/redes/redes99/helio/protocolos_multimidia/ http://www.cs.wpi.edu/~claypool/mqp/srp/report.pdf https://www.gta.ufrj.br/grad/01_2/vidconf/concl.html https://www.amazon.com.br/Redes-computadores-internet-abordagem-top-down/dp/8581436773/ref=sr_1_2/140-5252361-1872442?s=books&ie=UTF8&qid=1544235935&sr=1-2&keywords=redes+de+computadores+kurose https://www.amazon.com.br/Redes-computadores-internet-abordagem-top-down/dp/8581436773/ref=sr_1_2/140-5252361-1872442?s=books&ie=UTF8&qid=1544235935&sr=1-2&keywords=redes+de+computadores+kurose http://www.lcmi.ufsc.br/redes/redes99/helio/protocolos_multimidia/
Compartilhar