Prof V Vargas, I S T Pg 1/97

Tamanho: px
Começar a partir da página:

Download "Prof V Vargas, I S T Pg 1/97"

Transcrição

1 Prof V Vargas, I S T Pg 1/97

2 Prof V Vargas, I S T Pg 2/97

3 Prof V Vargas, I S T Pg 3/97 Introdução a TCP / UDP {TCPIntroduction.doc} O objectivo da infra-estrutura da Internet é viabilizar aplicações distribuídas entre computadores e outros dispositivos - interligados por uma rede ou por várias redes interligadas entre si. Entre essas aplicações, contam-se: o Correio Electrónico, o acesso a Documentos da Web, a Transferência de ficheiros, o acesso a Máquinas remotas, a Compra em lojas electrónicas, etc A generalidade dessas aplicações manifesta requisitos comuns, como sejam: a robustez contra eventuais falhas da Rede, a sua disponibilidade mesmo aquando de elevado tráfego na Rede... Já outras aplicações, como seja a comunicação de áudio ou vídeo em tempo real, têm outras exigências Há que evitar aos desenhadores dessas aplicações o gastar tempo a reinventar a roda como seja conceber e codificar procedimentos de recuperação de eventuais erros nos Dados recebidos; pelo que, logo nos primórdios da comunicação entre computadores, foram concebidos dois protocolos, a saber: - TCP (Transmission Control Protocol, cfr RFC Sep 1981); - UDP (Unreliable Data Protocol, cfr RFC 768). Eles constituem a plataforma de base da Internet: o desenhador de uma aplicação distribuída sabe que já existe uma biblioteca de procedimentos (library) que, em particular, o liberta quase plenamente da preocupação com eventuais falhas. Pelo que faz sentido dedicar algum tempo àqueles dois protocolos. E exactamente o que será feito nas linhas seguintes. Designando de Entidade-TCP/UDP (ou, mais abreviadamente, Entidade) o hardware/software que em cada máquina materializa essa plataforma, a questão a abordar é: como funciona ela? como é o diálogo entre duas Entidades, sejam W e E, recorrendo a tais protocolos? e quais as interacções, em cada máquina, com os níveis adjacentes Superior/Utilizador(Aplicação) e Inferior/Nível-Rede(IP)? Sumário das características de TCP e UDP: São, ambos, protocolos do nível transporte (host-to-host, end-to-end) - no sentido de que providenciam uma plataforma de comunicação entre processos correndo entre máquinas distintas. A comunicação de Dados é feita através do encapsulamento dos respectivos octetos em Segmentos; que são enviados em ambas as direcções, eventualmente em simultâneo. Em ordem a proporcionar o acesso concorrente à Rede por parte dos vários processos correndo na máquina, ambos providenciam a multiplexagern da comunicação de Dados através do, em geral, único endereço-ip que lhe foi atribuído. Para tal, ambos providenciam um conjunto de Portos. Alguns deles estão pré-reservados para Aplicações específicas - mormente aquelas que mais frequentemente são usadas; ao menos para algumas delas (ex.: Correio Electrónico, Acesso à Web), eles são públicos. Cada par endereço-ip/porto é designado de socket. Um processo de Aplicação que queira aceder à Rede (através de TCP e/ou UDP) fá-lo sempre através de um socket. Nem TCP nem IIDP são picuinhas nos requisitos ao nível inferior: ambos aceitam um serviço de transporte de datagramas, isto é: susceptível a erros, perdas, duplicados e falhas na sequencialidade. Mas existem diferenças entre TCP e UDP... TCP providencia a comunicação de um fluxo contínuo de octetos de Dados que o transmissor encapsula em Segmentos a seu bel-prazer. TCP providencia uma comunicação robusta contra eventuais erros nas Redes; isto é, recupera de eventuais erros, incluindo perdas, duplicados ou falhas na sequencialidade nos Segmentos recebidos; e providencia controlo de fluxo, isto é: permite ao destino limitar o ritmo a que a fonte lhe envia Dados. No sentido de lograr tais controlos, TCP e orientado à conexão, isto é, subentende um princípio, um meio e um fim; no entrementes, inicializa e actualiza as variáveis de estado pertinentes a esses controlos. Uma conexão-tcp (ou, mais abreviadamente, conexão) é identificada por um par de sockets, um em cada máquina. Pelo que, através de um dado socket e ancorando-se em sockets remotos distintos! - poderão estar estabelecidas várias conexões. UDP, ao invés, é um protocolo não-orientado à conexão; procura servir o pedido de entrega de dados o melhor que lhe for possível, mas não providencia nem controlo de erro nem controlo de fluxo nem controlo de congestão.

4 Prof V Vargas, I S T Pg 4/97

5 Prof V Vargas, I S T Pg 5/97 Berkeley Sockets {BerkeleySockets.doc} Considere o leitor dois Programas de Aplicação, correndo em duas máquinas distintas, em vias de trocar dados entre si. A um deles, cabe a responsabilidade de iniciar a comunicação; ao outro, a de lhe responder favoravelmente; após o que trocarão os dados que entenderem Dados os papéis relativos assumidos no começo da conversação, e sem perda de generalização, será pacífico designá-los, respectivamente, de Cliente e Servidor. Que estratégia seguir em ordem a proporcionar a comunicação entre ambos? Eis uma constatação inicial: vista do interior de um qualquer daqueles Programas, a operação de enviar dados ao parceiro remoto assemelha-se à escrita em um ficheiro local: em ambos os casos, trata-se de "pegar" em dados no espaço RAM coberto pelo Programa e de os exportar para o exterior - para um ficheiro em disco ou para uma máquina remota Esta semelhança sugere naturalmente o seguinte: 1) tal como a escrita em um ficheiro envolve um descritor (obtido por fp=fopen()), assim será expectável associar à comunicação de dados um descritor para acompanhar a sua evolução; 2) e tal como, para designar esse ficheiro, se requere um pathname, assim para caracterizar o destino remoto se torna imprescindível uma identificação apropriada. Que "tijolos" deverão fazer parte dessa identificação "de um destino remoto"? Em primeiro lugar, é claro, o endereço-ip da máquina em que ele reside: a Rede precisa dele para encaminhar os dados até ela Mas ele nem sempre chega: poderão co-existir naquela máquina-destino vários processos correndo em simultâneo - e é preciso identificar com precisão a qual deles se destinam os dados que vão chegando da Rede: deverão os dados ser passados ao Servidor de Páginas-Web, ou ao Servidor de Correio-Electrónico, ou ao Servidor de Transferência-de- Ficheiros, ou a quê mais? Convirá então, ao menos, ter em conta também a qual desses Programas devem os dados ser entregues. O software maioritariamente usado na Internet para materializar estes conceitos dá pelo nome de Berkeley: o desenhador de uma aplicação distribuída sabe que já existe uma biblioteca de procedimentos (library) do Sistema Operativo que, em particular, o liberta quase totalmente da preocupação com eventuais falhas. Neste, o identificador dos recursos de comunicação (do nível Transporte) dá pelo nome de socket; e a discriminação, no seio de uma máquina, da fonte/destino dos dados, é um número inteiro que dá pelo nome de Porto. Considerados dois Programas em vias de comunicação, há naturalmente que ter em conta dois pares endereço- IP/Porto: - o par endereço-ip/porto que identifica o Cliente; - o par endereço-ip/porto que identifica o Servidor. Os endereços-ip tornam possível à Rede encaminhar os dados até à máquina onde reside o destino (Cliente ou Servidor) dos dados enviados; quanto aos Portos, eles discriminam, no seio da máquina onde aportarem esses dados, ao menos qual o Processo a que enfim devem ser entregues. Um Processo poderá, pelo mesmo Porto, comunicar com mais que um Processo remoto correndo na mesma máquina ou em máquinas distintas. Chegados a este ponto, é hora de generalizar o horizonte de reflexão: tal como um mesmo Programa pode aceder a vários ficheiros em simultâneo, cada qual com o seu descritor, assim ele pode comunicar com vários parceiros remotos "em simultâneo", através de vários sockets: 1) Por um lado, um mesmo Servidor poderá estar sendo acedido "em simultâneo" por vários Clientes (por exemplo, vários PCs geograficamente dispersos acedendo a uma Caixa-de-Correio comum). É óbvio que o par endereço-ip/porto do Cliente proporciona ao Servidor o conhecimento de qual a origem da informação submetida e, portanto, e se fôr caso disso, a quem, entre todos aqueles Clientes, devolver a subsequente réplica 2) Por outro lado, poderá um mesmo Cliente estar acedendo a vários Servidores "em simultâneo" (por exemplo, um computador acedendo, por difusão, aos Agentes de um Sistema-de-Informação distribuído). É óbvio que o par endereço-ip/porto do Servidor proporciona ao Cliente o conhecimento de qual o Servidor responsável pela réplica recebida.

6 Prof V Vargas, I S T Pg 6/97

7 Prof V Vargas, I S T Pg 7/97 Sockets UDP {UDPSockets.doc} Um serviço providenciado pela biblioteca de primitivas Berkeley-Sockets é o assim denominado UDP. No que se segue, abordam-se as etapas a cumprir na troca da informação entre dois parceiros suportada em sockets- Berkeley UDP; isso será feito acompanhando o diagrama temporal da figura Como se patenteia, ela envolve cinco primitivas, a saber: socket, bind, sendto, recvfrom e close. Socket: Previamente ao envio/recepção de dados, ambos - Programas Cliente e Servidor - têm que reservar (temporariamente) os recursos precisos. Fá-lo-ão invocando socket. Eis o modo comum de o fazer: UDPSock = socket ( PF_INET, SOCK_DGRAM, 0 ) ; Em caso de sucesso, é devolvido um valor inteiro, dito socket-udp, que identifica tais recursos - e, por conseguinte, a ser usado nas subsequentes primitivas. Note-se que (ao invés de fopen, que abre um ficheiro para escrita ou leitura) socket remete para um recurso que é full-duplex, isto é: que serve tanto para envio como para recepção de dados; e note-se também que (ao invés de fopen ("w"), que abre um ficheiro para escrita exclusiva por um Programa) a um Programa basta um único socket-udp para envio/recepção "em simultâneo" para/de quaisquer outros sockets-udp na Rede. Bind: Considere-se o caso particular do Servidor invocando a primitiva socket O valor de retorno é conhecido apenas dele mesmo: ninguém mais o conhece! Isso levanta uma questão: como pode o Cliente aceder-lhe, isto é: como pode ele indicar à infra-estrutura das comunicações o destino preciso dos dados que envia? Eis a resposta: o Servidor tem que tornar público, como que em uma lista telefónica, um identificador que o caracterize com exactidão (concretamente, o par endereço-ip/porto que o identifica); ademais, necessita associar dinâmicamente, ao socket previamente logrado, esse identificador. Para tal, deverá invocar bind. Simbolicamente, eis como: struct sockaddr_in Name = { AF_INET, INADDR_ANY, Port ) ; RetVal = Bind ( UDPSock, & Name, ) ; Em caso de sucesso (RetVal 0), subsequentes Dados recebidos na máquina, que venham endereçados ao Port referido, são passados, através de UDPSock, ao Programa em causa. SendTo: Para enviar dados, bastará verter em um buffer os dados a enviar e invocar sendto, passando como parâmetros: um apontador para esse Buffer, o respectivo comprimento útil e ainda o par endereço-ip/porto que identifica o destino desses dados. Simbolicamente, eis como: struct sockaddr_in Destin = { AF_INET, endereço-ip, Port ) ; /* Preenchimento de Data, resultando um comprimento total de DataSize octetos */ RetVal = sendto ( UDPSock, Data, DataSize, 0, & Destin, ) ; Em caso de sucesso, a Rede encarregar-se-á de transportar esses dados até à máquina com o endereço-ip assinalado; aí, serão entregues ao Programa que executou Bind com o Porto assinalado. RecvFrom: Para receber dados que cheguem da Rede, o Programa deve invocar recvfrom, passando como parâmetros: apontadores para um Buffer de recepção e para uma área, Source, a ser preenchida com o par endereço-ip/porto que identifica a fonte desses dados. Simbolicamente, eis como: RetVal = recvfrom ( UDPSock, Buffer, UbBufferSize, 0, & Source, ) ; O Programa pode aguardar uma interrupção apropriada (mediante a qual a máquina notifica o Programa de que tem dados a passar através do socket destino), para, só então, invocar recvfrom. Close: Enfim, o Programa deverá libertar os recursos envolvidos, invocando close.

8 Prof V Vargas, I S T Pg 8/97

9 Prof V Vargas, I S T Pg 9/97 Segmentos UDP {UDPSegments.doc} A figura esquematiza o formato de um Segmento-UDP, cfr RFC 768. Dele, constam, sucessivamente: um Cabeçalho de quatro pares de octetos e um campo final de Dados "do utilizador". Eis os campos que compõem o cabeçalho: PortoDestino (um par de octetos): Destina-se a viabilizar, à Entidade-UDP remota - à qual é entregue o Segmento -, o encaminhar o Segmento até ao processo (mais precisamente, socket) a que ele de facto ultimamente se destina. Porto Fonte (um par de octetos): O campo pode ser posto a zeros. Se o não estiver, visa proporcionar, ao processo destino do Segmento, a identificação da origem deste; e, por conseguinte, e na ausência de outra informação, o processo (mais precisamente, socket) a que, se fôr o caso, deverá ser devolvida alguma eventual réplica a esse Segmento. Comprimento do Segmento (um par de octetos): Contém o comprimento total do Segmento, isto é: incluindo Cabeçalho e Dados. Check-Sum (um par de octetos): Visa proporcionar algum grau de fiabilidade à comunicação (cfr. RFC 1071). Eis a forma de cálculo (a seguir na origem): determinar o complemento-para-1 da soma em complemento-para-1 de todas as palavras de 16 bit do Segmento, prefixado por um Pseudo-Cabeçalho (cfr. adiante); se o resultado der 0..0, é considerado ser Na Entidade destino, a soma em complemento-para-1 de todas as palavras do Segmento (e Pseudo-Cabeçalho) deve resultar em 1 1. Se não der este resultado, o Segmento é considerado estando errado; todavia, a Entidade não procede a nenhuma recuperação de erro (por ex., via solicitação da retransmissão desse Segmento): o que fazer em semelhante ocorrência, cabe à Aplicação decidir O Pseudo-cabeçalho, que visa prevenir a entrega errada dos Segmentos, é extraído do Cabeçalho do Datagrama-IP: inclui os endereços fonte e destino, o campo Protocolo (por ex., 21 8 ) e o Comprimento do Segmento UDP. Se o Segmento não contiver um múltiplo de palavras de 16 bits, é, para efeitos de cálculo da CheckSum, acrescentado (padded) com zeros no fim do Segmento. Conforme aos requesitos da Aplicação em causa, a Entidade pode colocar a Check-Sum a Apreciação final: Como se patenteia, UDP reduz-se, grosso modo, a IP com dois Portos para prover a função de multiplexagem. Pelo que os Segmentos têm uma estrutura muito simples, o overhead reduz-se ao mínimo indispensável: em particular, não existem, no seu formato, campos de numeração: quer dizer que, na definição do serviço a prestar, não se teve em mente levar por diante recuperação de erros e proceder a controlo de fluxo e congestão. Na prática, os Segmentos poderão chegar ao destinatário por ordem diferente daquela por que foram transmitidos; poderão chegar duplicados ou até nem chegar e, a acontecer tais eventualidades, não há qualquer obrigação em disso alertar os Processos de Aplicação! Existem Aplicações que toleram esta Qualidade de Serviço mínima. Exemplos, são-no: a Gestão de Redes de Computadores, o Domain-Name-System, Aplicações em tempo real (como sejam Audio e Video, unicast ou multicast onde o acento é o tempo). Mas a esmagadora maioria das Aplicações requere níveis de Qualidade de Serviço bem maiores. Pense o leitor em Aplicações Financeiras, em Correio Electrónico, Transferência de Ficheiros, Navegação na Web Para estas e outras Aplicações, o ideal seria: que aquilo que é transmitido para a Rede seja recebido tal e qual, sem quaisquer erros Para elas, existe um outro Serviço, e um outro Protocolo, a saber: TCP, Transmission Control Protocol. É a ele que serão dedicadas as páginas seguintes deste texto.

10 Prof V Vargas, I S T Pg 10/97

11 Prof V Vargas, I S T Pg 11/97 Sockets TCP - I {TCPSockets.doc} Um serviço providenciado pela biblioteca de primitivas Berkeley-Sockets é o assim denominado TCP (cfr RFCs 793, 854, 1106, 1122, 1323, 2018, 2581, 3168). No que se segue, abordam-se as etapas a cumprir na troca da informação entre dois parceiros suportada em sockets-berkeley TCP; isso será feito acompanhando o diagrama temporal da figura Constata-se que ela envolve oito primitivas: socket, bind, listen, connect, accept, write, read e close. Antes, todavia, de avançar, quiçá valha a pena um relance ao acesso telefónico ao IST: quando alguém longíquo deseja telefonar a alguém no interior do IST, começa, primeiro, por marcar o número telefónico geral do IST ( ); quando a simpática telefonista o atender, "soletra-lhe" o número da extensão com que pretende falar; a telefonista procede então ao re-encaminhamento da chamada; doravante, os telefones exterior e interior ao IST estão directamente conectados: no que lhes diz respeito, está concluído o papel da telefonista. Quer dizer: no IST, há um telefone (o da telefonista), para uma função especial: aguardar por sinais vindos de algum telefone exterior ao IST, e proceder à sua conexão com a extensão requerida. Prevendo a eventualidade de vários Clientes pretenderem comunicar em simultâneo com um dado Servidor, o software Berkeley para TCP recorre a um funcionamento análogo: no Servidor, existe um socket especial dedicado a uma função especial: aguardar pedidos provenientes da Rede, e proceder ao estabelecimento da correspondente conexão Entre cada Cliente e o Servidor, a comunicação desenrola-se então em três fases: uma primeira de estabelecimento de conexão (handshake), uma segunda de transferência de dados, e uma terceira de terminação da conexão. Socket: Previamente ao envio/recepção de dados, ambos - Programas Cliente e Servidor - têm que reservar (temporariamente) os recursos precisos. Fá-lo-ão, invocando socket. Eis o modo comum de o fazer: TCPSock = socket ( PF_INET, SOCK_STREAM, 0 ) ; Em caso de sucesso, é devolvido um valor inteiro, dito socket-tcp, que identifica tais recursos - e, por conseguinte, a ser usado nas subsequentes primitivas. Tal como ocorre com sockets-udp, os socket-tcp são fullduplex, isto é: servem tanto para envio como para recepção de dados. Bind: Como já se discutiu a propósito de sockets-udp, e para que potenciais Clientes lhe possam aceder, o Servidor deve invocar bind: struct sockaddr_in Name = { AF_INET, INADDR_ANY, Port ) ; RetVal = Bind ( TCPSock, & Name, ) ; Em caso de sucesso (RetVal 0), subsequentes Dados recebidos na máquina, que venham endereçados ao Port referido, são passados ao Programa em causa. Listen: No Servidor, o socket assim criado e associado a um Porto é reservado para a utilização especial já acima mencionada: aguardar por pedidos de conexão provenientes da rede. Para o efeito, o Servidor deve invocar listen. Eis como: RetVal = listen ( TCPSock, ) ; Em caso de sucesso (RetVal 0), subsequentes pedidos de conexão recebidos na máquina, que venham endereçados ao Port referido, são passados, através de TCPSock, ao Programa em causa.

12 Prof V Vargas, I S T Pg 12/97

13 Prof V Vargas, I S T Pg 13/97 Sockets TCP - II {TCPSockets.doc} Eis o cenário a que arribaram as etapas precedentes: - no Cliente, existe um socket, que se poderá designar de ClientSock; - no Servidor, existe um socket, que, dado a sua função especial, se poderá designar de ListenSock. Está tudo pronto para se proceder ao estabelecimento de uma conexão entre ambos, se trocarem dados e enfim terminarem a conexão. Connect: Previamente ao envio de dados, um Cliente necessita estabelecer uma conexão com o Servidor. Fá-lo invocando connect, passando como parâmetro o par endereço-ip/porto que identifica o Servidor: struct sockaddr_in Destin = { AF_INET, endereço-ip, Port ) ; RetVal = connect ( ClientSock, & Destin, ) ; A Rede encarregar-se-á de transportar o pedido de conexão até à máquina com o endereço-ip referido; aí, são entregues ao Servidor pelo ListenSock. Se o pedido fôr aceite, a Rede encarregar-se-á de o assinalar ao Cliente, mais precisamente no ClientSock. Só então o connect assinalará sucesso (Se o Servidor não houver ainda executado listen, ele devolve Nack podendo eventualmente aguardar um pouco antes de se decidir a fazê-lo) Accept: O pedido de conexão pode, ou não, ser aceite pelo Servidor. Ele manifesta a sua disposição em o aceitar invocando, em tempo oportuno, accept. Eis como: UserSock = accept ( ListenSock ) ; Um eventual pedido de conexão que chegue ulteriormente será aceite. Em termos práticos, é criado um novo socket-tcp, dito UserSock; e, fica estabelecida uma conexão entre esse UserSock e o ClientSocket do Cliente responsável do connect que o Servidor está aceitando. Realce-se: entre os dois sockets, ClientSock e UserSock, pode, num dado momento, estar em curso uma e uma só conexão; mas, ancoradas a um mesmo socket, poderão estar decorrendo várias conexões simultâneas. Após a sequência de primitivas connect/accept, ambos os Programas - Cliente e Servidor - podem trocar dados; fazem-no, um e outro, através das primitivas Write e Read: Write: Para enviar dados, bastará verter em um buffer os dados a enviar e invocar write, passando como parâmetros (além de Sock): um apontador para esse Buffer e o respectivo comprimento útil. Simbolicamente, eis como: /* Preenchimento de Data, resultando um comprimento total de DataSize octetos */ RetVal = write ( TCPSock, Data, DataSize) ; em que TCPSock se volve em UserSock ou ClientSock, conforme respectivamente write esteja sendo invocado no Servidor ou no Cliente; a Rede encarregar-se-á de transportar esses dados até, respectivamente, ClientSock e UserSock. Read: Para receber dados que cheguem da Rede, um Programa deve invocar read, passando como parâmetro um apontador para um Buffer de recepção. Simbolicamente, eis como: RetVal = read ( TCPSock, Buffer, UbBufferSize ) ; Em que de novo TCPSock se volve em UserSock ou ClientSock. O Programa pode aguardar um sinal apropriado (mediante o qual a máquina notifica o Programa de que tem dados a passar através do TCPSock), para, só então, invocar read. Close: Enfim, ambos os Programas deverão libertar os recursos envolvidos, invocando close ( TCPSock ) sobre os sockets que não mais sejam necessários: sobre UserSock ou ClientSock quando a conexão findar, e sobre o ListenSock quando não mais estiver disposto a aceitar pedidos de conexão.

14 Prof V Vargas, I S T Pg 14/97

15 Prof V Vargas, I S T Pg 15/97 Segmentos TCP {TCPSegments.doc} A figura esquematiza o formato de um Segmento TCP. Dele, constam um Cabeçalho, de ao menos 20 octetos, e um campo Dados, para veicular até um máximo de MessageSegmentSize (MSS) octetos "do-utilizador/da- Aplicação". Eis os campos que compõem o cabeçalho: PortoDestino (um par de octetos): Destina-se a viabilizar, à entidade TCP destino - a que a Rede entrega o Segmento -, o encaminhar o Segmento até ao processo (mais precisamente, socket) a que ele de facto ultimamente se destina. Porto Fonte (um par de octetos): Visa proporcionar, ao processo destino do Segmento, a identificação da origem do Segmento; e, por conseguinte, o processo (mais precisamente, socket) a que, se fôr o caso, deverá ser devolvida alguma eventual réplica a esse Segmento. Número de Sequência e Acknowledge de bytes (quatro octetos cada): Visa proporcionar recuperação de erros de transmissão, cfr páginas adiante. Comprimento do Cabeçalho-TCP, em palavras de 32 bit (um par de octetos): Flags (seis bit: URG, PSH, ACK, SYN, FIN e RST), cfr páginas adiante: São em geral postas a '0', as excepções são as seguintes: - SYN '1': apenas nos dois primeiros Segmentos trocados no estabelecimento da conexão; no que segue, tais Segmentos serão simbolicamente representados por Syn; - ACK '1' (significando que o campo Acknowledge é válido): a partir do segundo Segmento trocado numa conexão; no que segue, e se não contiverem quaisquer octetos de Dados, tais Segmentos - ditos vazios - serão simbolicamente representados por Ack; - FIN '1': apenas nos dois últimos Segmentos trocados na terminação da conexão; no que segue, serão simbolicamente representados por Fin) - RST '1': para indicar o reset de uma conexão, ou a rejeição de uma tentativa de estabelecimento de uma conexão, ou a recepção de um Segmento inválido; no que segue, tais Segmentos serão simbolicamente representados por Rst; Crédito / Janela de recepção (dois octetos): Visa proporcionar controlo de fluxo, cfr páginas adiante. Check-Sum (um par de octetos): Visa proporcionar algum grau de fiabilidade à comunicação entre ambas as entidades TCP. A forma de cálculo é a mesma seguida a propósito dos Segmentos UDP. Apontador à cauda dos Dados Urgentes (dois octetos) Adicionado ao Número de Sequência do primeiro octeto, designa o Número de Sequência do octeto a seguir aos Dados Urgentes ; é válido se URG=1. Opções (n octetos, cfr páginas adiante) Padding (sucessâo de 0 s para garantir que o comprimento do cabeçalho é múltiplo de 32-bit) Apreciação final: Como se patenteia, existem, no formato dos Segmentos TCP, campos de numeração: isso significa que, na definição do serviço a prestar, se teve em mente levar por diante recuperação de erros e proceder a controlo de fluxo (e congestão).

16 Prof V Vargas, I S T Pg 16/97

17 Prof V Vargas, I S T Pg 17/97 "Stream" de Octetos {OctetStream.doc} UDP é um protocolo orientado à Transacção: um dos interlocutores envia para a Rede um Segmento e, no destino, o Bloco de Octetos em que se volve o seu conteúdo "Dados" é entregue ao utilizador de-uma-vez-só. Ainda que, antes ou depois, aquele tenha transmitido algum outro Segmento UDP, são preservadas as fronteiras desses Blocos: as Entidades-UDP jamais procedem à concatenação de Segmentos-UDP consecutivos. Em poucas palavras: por cada sendto na origem, é necessário e suficiente um único recvfrom no destino Já TCP, por seu turno, é um protocolo orientado ao "Stream" de Octetos: o interlocutor fonte envia para a Rede um fluxo de Octetos, agregados em um ou vários Segmentos e, no destino, e à medida que aí aportam os Segmentos, o seu conteúdo "Dados" fica disponível para ser recolhido. Nem sempre existe uma correspondência um-a-um entre writes e Segmentos! Um Segmento pode resultar de um ou vários write Com o que um write da fonte pode volver-se em vários read no destino e vice-versa: para vários write na fonte poderá ser bastante um único read no destino Na figura, encontram-se esquematizadas algumas destas possibilidades: A) W invoca um único write, que dá origem a um único Segmento que se propaga até E e aí é recolhido com um único read B-E) W invoca vários write; a Entidade-TCP local concatena-os a todos em um único Segmento que se propaga até E e aí é recolhido com um único read Nota: a querer-se lograr uma maior eficiência no uso dos recurso da Rede, a concatenação figurada torna-se uma candidata natural; o custo é, é claro, o maior tempo de resposta ao nível da Aplicação F-J) W invoca vários write, que dão origem a outros tantos Segmentos que se propagam até E; quando o primeiro aí chega, vem a ser recolhido com um read; mas, quando chega a altura de invocar de novo read, já os restantes Segmentos chegaram: o seu conteúdo é lido de uma vez só Nota: a vantagem desta filosofia é clara: minimiza as interrupções exercidas sobre o Utilizador Isso ainda é mais notório se a Entidade-TCP fizer o seguinte: alerta o Utilizador para a disponibilidade de Dados somente após ter recebido um número "significativo" deles; o custo é, é claro, o maior tempo de resposta ao nível da Aplicação K) W invoca um único write, que dá origem a dois Segmentos que se propagam até E e aí são recolhidos com outros tantos read L-M) W invoca dois write; que dão origem a outros tantos Segmentos que se propagam até E - onde chegam por ordem diferente da inicial; a Entidade-TCP em E espera que chegue o primeiro, para só então sinalizar o utilizador, pelo que a ele basta um único read para recolher o conteúdo "Dados" emitido por W Resumidamente, TCP permite a comunicação unicast (entre dois pontos da Rede): não proporciona multicast nem broadcast. As fronteiras entre os Blocos em que a fonte fornece os Dados não são sempre preservadas. E o tempo de trânsito é variável, imprevisível, maior ou menor E realce-se que, por mor de simplicidade, não se entrou em linha de conta com a eventualidade de erros ou perdas na Rede Na vida real, isso acontece, é claro - mas, a este respeito, TCP traz boas notícias para as Aplicações: ele tem em curso medidas para a recuperação dessas anomalias Elas envolvem números de sequência, acknowledges, timeouts e retransmissões - e, portanto, mais tempo ainda A Dimensão dos Segmentos: Não se pode perder de vista a eficiência com que se usam recursos: computadores terminais, linhas e nós/gateways da Rede. A este respeito, convém reparar: Segmentos muito grandes originam fragmentação (e correspondente complexidade) ao nível-ip de outra parte, Segmentos pequenos levam a um desempenho assaz baixo: os protocolos IP-e-TCP acarretam um cabeçalho conjunto de pelo menos 40 octetos por cada conteúdo "Dados da Aplicação" Além de que é maior o tempo gasto pela CPU com cada Segmento. Daí o ocorrido aquando da invocação das operações K (uma fragmentação em vários Segmentos) e B-E ( uma concatenação em um único Segmento).

18 Prof V Vargas, I S T Pg 18/97

19 Prof V Vargas, I S T Pg 19/97 Push e Dados Urgentes {PushAndUrgent.doc} O diagrama temporal ultimamente apresentado realçou dois casos de espera da Entidade-TCP: - quando, após o Utilizador lhe ter requerido a transmissão de Dados para a Rede, a Entidade aguarda (um pouco) que ele lhe entregue mais Dados: em tal caso, ela poderá ir congregando-os a todos em um único Segmento - por conseguinte aumentando a eficiência do uso dos recursos da Rede; - quando, após a Rede lhe ter entregue Dados a transferir ao Utilizador, a Entidade aguarda (um pouco) que ela lhe entregue mais Dados: a vir isso a suceder, e tendo-os acumulado a todos em um único Buffer, bastará uma única interrupção para sinalizar a sua chegada - por conseguinte melhorando a eficiência do uso do processador da máquina Tal espera não é sempre benvinda: casos haverá em que convirá apressar a Entidade Para o efeito, TCP proporciona duas flags, a saber: Push e Urgent Data. Push: Como forma de requerer o envio imediato dos Dados por parte da Entidade, o Utilizador deve solicitá-lo adequadamente na primitiva write. A Entidade responde preenchendo "de imediato" um Segmento com os Dados ainda em espera, e fixando a On a flag Push. Na figura, encontra-se esquematizado este mecanismo: A-B) W invoca dois write, deixando à Entidade a decisão acerca do momento em que procederá ao envio para a Rede; no caso, ela envia-os aquando da invocação do segundo write D-F) W invoca quatro write, acompanhando o último deles com a solicitação do seu envio imediato para a Rede; a Entidade responde preenchendo um Segmento com os Dados em espera, e colocando a On a flag Push. D-F) W invoca quatro write, acompanhando o último deles com a solicitação do seu envio imediato para a Rede; a Entidade responde preenchendo de imediato um Segmento com os Dados em espera, e colocando a On a flag Push. G-J) W invoca quatro write, acompanhando o terceiro e o último deles com a solicitação do seu envio imediato para a Rede. Acontece que, aquando do terceiro write, a linha de saída para a Rede se encontra ocupada (busy), pelo que há que aguardar; após o quarto write, essa situação já se esvaneceu, pelo que a Entidade prossegue preenchendo um Segmento com os Dados em espera, e colocando a On a flag Push. Nota: na recepção de um Segmento com a flag Push a On, a Entidade destino deve passá-los ao Utilizadordestino de imediato; todavia, a sinalização de que a flag Push foi recebida a On, fica ao critério do programador da Entidade: ela pode, ou não, ser sinalizada. Ademais, não existe obrigação em lhe reportar o ponto exacto do fluxo de octetos em que o Utilizador-fonte invocou a função Push. Dados Urgentes: Em ordem a sinalizar à Entidade-destino Dados a processar rapidamente, o Utilizador deve solicitá-lo adequadamente na primitiva write. A Entidade local responde fixando a On a flag Urgent e designando, no campo Apontador à cauda dos Dados Urgentes, o termo dos dados urgentes; no destino, a Entidade reage alertando o Utilizador. Na figura, encontra-se esquematizado este mecanismo: K) W invoca um write sem requerer o mecanismo Urgent; a Entidade envia o correspondente Segmento No destino, a sua recepção não se faz acompanhar de nenhum alerta: os Dados são passados ao Utilizador quando este resolver por si "ver se já chegou algo" L ) W invoca um write requerendo o mecanismo Urgent; a Entidade envia o correspondente Segmento No destino, a sua recepção desencadeia de imediato um alerta ao Utilizador: ele pode de imediato invocar a primitiva read para os recolher

20 Prof V Vargas, I S T Pg 20/97

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

Leia mais

Nível Transporte (Modelo Internet) {TCP.doc} UDP TCP

Nível Transporte (Modelo Internet) {TCP.doc} UDP TCP Prof V Vargas, IST Nível Transporte (Modelo Internet) 03/11/11, Page 1 of 9 Nível Transporte (Modelo Internet) {TCP.doc} 1. [07T1] Explique como são realizadas as funções de multiplexagem fornecidas pelo

Leia mais

Camada de Transporte. Redes de Computadores I Prof. Mateus Raeder. Camada de Transporte. Camada de Transporte. Camada de Transporte

Camada de Transporte. Redes de Computadores I Prof. Mateus Raeder. Camada de Transporte. Camada de Transporte. Camada de Transporte Camada de Transporte Redes de Computadores I Prof. Mateus Raeder É responsável pela transmissão lógica dos dados A camada de enlace é responsável pela transmissão física Dois tipos de transmissão: Orientado

Leia mais

Redes de Computadores Preparatório para Concursos de TI

Redes de Computadores Preparatório para Concursos de TI Redes de Computadores Preparatório para Concursos de TI Prof. Bruno Guilhen Protocolos da Camada de Transporte TCP protocolo de Controle de Transmissão Confiável; Orientado à conexão com Controle de Fluxo;

Leia mais

Camada de Transporte. Protocolos TCP e UDP

Camada de Transporte. Protocolos TCP e UDP Camada de Transporte Protocolos TCP e UDP Protocolo UDP Protocolo de transporte da Internet sem gorduras Serviço best effort, segmentos UDP podem ser: perdidos entregues fora de ordem para a aplicação

Leia mais

Camada de transporte. TCP Transmission Control Protocol

Camada de transporte. TCP Transmission Control Protocol Camada de transporte TCP Transmission Control Protocol TCP A confiabilidade dos processos de comunicação foi deixada a cargo do TCP O TCP é um protocolo: Orientado à conexão Confiável Número de portas

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Macêdo Firmino Camada de Transporte Macêdo Firmino (IFRN) Redes de Computadores Março de 2011 1 / 59 Camada de Transporte Os protocolos dessa camada supervisionam o fluxo de

Leia mais

Camada de transporte. Serviços

Camada de transporte. Serviços Camada de transporte Serviços fornecidos pela camada de transporte Multiplexagem/desmultiplexagem Camada de transporte não-orientada à sessão: UDP Princípios da transmissão fiável e ordenada de dados Máquina

Leia mais

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte?

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte? Lista de Exercícios Camada de Transporte GBC-056 Arquitetura de Redes de Computadores Bacharelado em Ciência da Computação Universidade Federal de Uberlândia 6 de Julho de 2015 Exercício 1 Para que serve

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro Material de Apoio VI PROTOCOLOS

Leia mais

1. PRINCIPAIS PROTOCOLOS TCP/IP

1. PRINCIPAIS PROTOCOLOS TCP/IP 1. PRINCIPAIS PROTOCOLOS TCP/IP 1.1 IP - Internet Protocol RFC 791 Esse protocolo foi introduzido na ARPANET no início dos anos 80, e tem sido utilizado juntamente com o TCP desde então. A principal característica

Leia mais

TCP - multiplexação/demultiplexação

TCP - multiplexação/demultiplexação TCP Protocolo de controle de transmissão (Transmission Control Protocol) Definido em diversas RFCs (793, 1122, 1323, 2018 e 2581) Diversos flavors (tipos) Serviços Multiplexação/demultiplexação Detecção

Leia mais

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação CCNA 1 Conceitos Básicos de Redes Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação Camada de Transporte TCP/IP 2 Introdução à Camada de Transporte As responsabilidades principais da camada de

Leia mais

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Redes de Computadores Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Redes de Computadores Redes de Computadores 2 1 Multiplexação e Desmultiplexação Acontece entre vários módulos na estrutura de SW de comunicação A nível de interface de rede: IP Interface

Leia mais

A Camada de Transporte

A Camada de Transporte A Camada de Transporte Romildo Martins Bezerra CEFET/BA s de Computadores II Funções da Camada de Transporte... 2 Controle de conexão... 2 Fragmentação... 2 Endereçamento... 2 Confiabilidade... 2 TCP (Transmission

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II 1) Explicar os seguintes mecanismos e conceitos do protocolo TCP: 1. Slow Start O algoritmo

Leia mais

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Redes de computadores e a Internet. Capítulo 3. Camada de transporte Redes de computadores e a Internet Capítulo 3 Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação

Leia mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Número: Nome: Duração: 1 hora O teste é sem consulta O teste deve ser resolvido

Leia mais

Teleprocessamento e Redes

Teleprocessamento e Redes Teleprocessamento e Redes Aula 19: 29 de junho de 2010 1 camada de transporte camada de rede 2 Questão 1 (Kurose/Ross) camada de transporte camada de rede Um processo em um host C tem um socket UDP com

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Desenvolvimento de aplicações de rede UDP e TCP 1 Protocolo UDP ( User Datagram Protocol ) Tal como o nome indica, trata-se de um serviço de datagramas, ou seja

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

Leia mais

CAP 312 - PROGRAMAÇÃO DE REDES DE COMPUTADORES ESTRUTURA DO SOFTWARE TCP/IP

CAP 312 - PROGRAMAÇÃO DE REDES DE COMPUTADORES ESTRUTURA DO SOFTWARE TCP/IP A...2 1.O FLUXO DE PACOTES...2 1.O FLUXO DE ENTRADA...2 2.O FLUXO DE SAÍDA...4 2.A MÁQUINA DE ESTADO FINITO DO PROTOCOLO TCP...5 1.O THREE-WAY-HANDSHAKE...9 2.A TROCA DOS DADOS...10 3.FECHANDO A CONEXÃO...10

Leia mais

2 Controle de Congestionamento do TCP

2 Controle de Congestionamento do TCP 2 Controle de Congestionamento do TCP 17 2 Controle de Congestionamento do TCP A principal causa de descarte de pacotes na rede é o congestionamento. Um estudo detalhado dos mecanismos de controle de congestionamento

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Parte V: Camada de Transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Princípios de transferência

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares Arquitetura TCP/IP Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares Tópicos Características do TCP Como o TCP fornece confiabilidade Janela deslizante Estabelecimento e

Leia mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2006/2007 c 2000 2006 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A Número: Nome: Redes de Computadores I Licenciatura em Eng. Informática e de Computadores o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A Duração: 2,5 horas A prova é sem consulta A prova deve ser

Leia mais

Camada de Transporte, protocolos TCP e UDP

Camada de Transporte, protocolos TCP e UDP Camada de Transporte, protocolos TCP e UDP Conhecer o conceito da camada de transporte e seus principais protocolos: TCP e UDP. O principal objetivo da camada de transporte é oferecer um serviço confiável,

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista ATENÇÃO Esta apresentação foi retirada e adaptada dos seguintes trabalhos: Notas de aula do Prof. Miguel Campista da

Leia mais

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores (PPGI/UFRJ) Redes de Computadores (PPGI/UFRJ) Aula 1: Apresentação do curso e revisão de interface de sockets 03 de março de 2010 1 2 O que é a Internet 3 4 Objetivos e página do curso Objetivos Apresentar a motivação,

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.

Leia mais

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Tópicos em Sistemas Distribuídos. Modelos de Comunicação Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos

Leia mais

UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS. Especialização em Redes de Computadores e Internet

UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS. Especialização em Redes de Computadores e Internet UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Especialização em Redes de Computadores e Internet TRANSMISSION CONTROL PROTOCOL MARINA SIMON BECKER Orientador:

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

CAPÍTULO 6 A CAMADA DE TRANSPORTE

CAPÍTULO 6 A CAMADA DE TRANSPORTE CAPÍTULO 6 A CAMADA DE TRANSPORTE 6.1 OS SERVIÇOS DE TRANSPORTE: 6.1.1 SERVIÇOS OFERECIDOS ÀS CAMADAS SUPERIORES: Tem como objetivo de oferecer um serviço confiável, eficiente e econômico a seus usuários.

Leia mais

Camada de Transporte. Agenda. Tópicos. Serviços oferecidos... O serviço de transporte

Camada de Transporte. Agenda. Tópicos. Serviços oferecidos... O serviço de transporte BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação Prof. Reinaldo Silva Fortes www.decom.ufop.br/reinaldo 2012/01 Camada Nome 5 Aplicação 4 Transporte

Leia mais

Camada de Transporte. BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Camada de Transporte. BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação BCC361 Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação Prof. Reinaldo Silva Fortes www.decom.ufop.br/reinaldo 2012/01 Camada Nome 5 Aplicação 4 Transporte

Leia mais

Controlo de Congestão em TCP {TCPCongestion.doc} TCP - Controlo de congestão

Controlo de Congestão em TCP {TCPCongestion.doc} TCP - Controlo de congestão Prof V Vargas, IST Controlo de Congestão em TCP 03/11/11, Page 1 of 27 Controlo de Congestão em TCP {TCPCongestion.doc} TCP - Controlo de congestão 1. Indique, justificando, se a seguinte afirmação é verdadeira,

Leia mais

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz Leandro@sulbbs.com.br

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz Leandro@sulbbs.com.br Camada de Enlace de Dados Prof. Leandro Pykosz Leandro@sulbbs.com.br Introdução A função desta camada parece trivial, pois a máquina A coloca os bits no meio e a máquina B tem que retirar de lá, porem

Leia mais

Camada de transporte. Camada de transporte

Camada de transporte. Camada de transporte Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência de dados confiável Controle de

Leia mais

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet.

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet. Origem: Surgiu na década de 60 através da DARPA (para fins militares) - ARPANET. Em 1977 - Unix é projetado para ser o protocolo de comunicação da ARPANET. Em 1980 a ARPANET foi dividida em ARPANET e MILINET.

Leia mais

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador

Leia mais

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006 Redes de Computadores Tratamento de erros Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006 Ligação de dados Conceitos e objectivos Uma ligação física caracteriza-se

Leia mais

Redes de Computadores

Redes de Computadores 6. Camada de Transporte DIN/CTC/UEM 2008 Principais Funções Oferece conexão lógica entre duas extremidades da rede Oferece controle fim-a-fim de fluxo e confiabilidade Independente da tecnologia utilizada

Leia mais

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ. 4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ. Redes de Comunicações/Computadores I Secção de Redes de Comunicação de Dados Protocolos

Leia mais

Camada de Transporte. Prof. Leonardo Barreto Campos

Camada de Transporte. Prof. Leonardo Barreto Campos Camada de Transporte 1 Sumário Introdução; Serviços oferecidos à camada superior; Multiplexação e Demultiplexação; UDP; TCP; Controle de Congestionamento; Controle de Congestionamento do TCP; 2/62 Introdução

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES O QUE É PROTOCOLO? Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede

Leia mais

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron REDES DE COMPUTADORES Camada de Transporte Alexandre Augusto Giron ROTEIRO Visão geral da camada de transporte Protocolos UDP TCP Princípios do controle de congestionamento A camada de transporte: visão

Leia mais

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama Controle de Congestionamento em TCP Parte 2 Prof. Dr. S. Motoyama 1 Controle de Congestionamento em TCP Princípios de controle de congestionamento Saber que congestionamento está ocorrendo Adaptar para

Leia mais

3. Projeto e implementação de Servidores

3. Projeto e implementação de Servidores 3. Projeto e implementação de Servidores 3.1 Introdução Este capítulo discute questões fundamentais relacionadas ao projeto de software servidor, incluindo acesso com conexão vs. sem conexão a servidores

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Multimédia, Qualidade de Serviço (QoS): O que são?

Multimédia, Qualidade de Serviço (QoS): O que são? Multimédia, Qualidade de Serviço (QoS): O que são? Aplicações Multimédia: áudio e vídeo pela rede ( meios contínuos ) QoS a rede oferece às aplicações o nível de desempenho necessário para funcionarem.

Leia mais

1 Redes de comunicação de dados

1 Redes de comunicação de dados 1 Redes de comunicação de dados Nos anos 70 e 80 ocorreu uma fusão dos campos de ciência da computação e comunicação de dados. Isto produziu vários fatos relevantes: Não há diferenças fundamentais entre

Leia mais

Trabalho DESAFIO (OPCIONAL) - ENTREGA 06/05/2015 - IMPRETERIVELMENTE

Trabalho DESAFIO (OPCIONAL) - ENTREGA 06/05/2015 - IMPRETERIVELMENTE UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA Trabalho DESAFIO (OPCIONAL) - ENTREGA 06/05/2015 - IMPRETERIVELMENTE 1. Objetivo Implementar um aplicativo

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Capítulo 1 Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que é a Internet? - Milhões de elementos de computação interligados: hospedeiros = sistemas finais - Executando aplicações

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 4 - A CAMADA DE REDE (Parte 2) 1. Flooding (Inundação) Outro algoritmo estático é o algoritmo de inundação, no qual cada pacote de entrada é enviado para todas as linhas de saída, exceto para aquela

Leia mais

Aula 6 Modelo de Divisão em Camadas TCP/IP

Aula 6 Modelo de Divisão em Camadas TCP/IP Aula 6 Modelo de Divisão em Camadas TCP/IP Camada Conceitual APLICATIVO TRANSPORTE INTER-REDE INTERFACE DE REDE FÍSICA Unidade de Dados do Protocolo - PDU Mensagem Segmento Datagrama /Pacote Quadro 01010101010100000011110

Leia mais

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006 Eng.ª Informática Redes de Computadores 4 de Julho de 2006 Leia atentamente as perguntas seguintes e responda de forma breve e precisa. Pode acompanhar a suas respostas com figuras de forma a torná-las

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

Leia mais

A Camada de Rede. A Camada de Rede

A Camada de Rede. A Camada de Rede Revisão Parte 5 2011 Modelo de Referência TCP/IP Camada de Aplicação Camada de Transporte Camada de Rede Camada de Enlace de Dados Camada de Física Funções Principais 1. Prestar serviços à Camada de Transporte.

Leia mais

3 Qualidade de serviço na Internet

3 Qualidade de serviço na Internet 3 Qualidade de serviço na Internet 25 3 Qualidade de serviço na Internet Além do aumento do tráfego gerado nos ambientes corporativos e na Internet, está havendo uma mudança nas características das aplicações

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP alexandref@ifes.edu.br O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações Enlaces de comunicação: fibra, cobre, rádio,

Leia mais

Tecnologia de Redes de Computadores

Tecnologia de Redes de Computadores Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 31. CAMADA DE TRANSPORTE Camada de Transporte Camada de Transporte Funções da camada controle de fluxo fim-a-fim sequênciação detecção

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 1- MODELO DE CAMADAS 1. INTRODUÇÃO A compreensão da arquitetura de redes de computadores envolve a compreensão do modelo de camadas. O desenvolvimento de uma arquitetura de redes é uma tarefa complexa,

Leia mais

Protocolos, DNS, DHCP, Ethereal e comandos em Linux

Protocolos, DNS, DHCP, Ethereal e comandos em Linux Redes de Computadores Protocolos, DNS, DHCP, Ethereal e comandos em Linux Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006 Endereços e nomes Quaisquer duas estações

Leia mais

Prof. Manuel A Rendón M

Prof. Manuel A Rendón M Prof. Manuel A Rendón M Tanenbaum Redes de Computadores Cap. 1 e 2 5ª. Edição Pearson Padronização de sistemas abertos à comunicação Modelo de Referência para Interconexão de Sistemas Abertos RM OSI Uma

Leia mais

Camada de Redes Parte II. Fabrício

Camada de Redes Parte II. Fabrício Camada de Redes Parte II Fabrício Algoritmos de controle de congestionamento Quando há pacotes demais presente (em parte) de uma sub-rede, o desempenho diminui. Dentro da capacidade de tranporte Eles serão

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Professor Rene - UNIP 1 Revisão... Segmento A unidade de dados trocada entre as entidades de transporte é denominada

Leia mais

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino. Redes de Computadores Transporte Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Camada de transporte Sua função é: Promover uma transferência de dados confiável e econômica

Leia mais

Redes de computadores e a Internet. Capítulo3. Camada de transporte

Redes de computadores e a Internet. Capítulo3. Camada de transporte Redes de computadores e a Internet Capítulo Camada de transporte Pilha de protocolos da Internet M Aplicação Ht M Transporte Hr Ht M Rede Hr Ht M Enlace Mensagem Segmento Datagrama Quadro He Física -2

Leia mais

CAMADA DE REDES. Fabrício de Sousa Pinto

CAMADA DE REDES. Fabrício de Sousa Pinto CAMADA DE REDES Fabrício de Sousa Pinto Introdução 2 Está relacionada a transferência de pacotes da origem para o destino. Pode passar por vários roteadores ao longo do percurso Transmissão fim a fim Para

Leia mais

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Um pouco sobre Pacotes e sobre os protocolos de Transporte Um pouco sobre Pacotes e sobre os protocolos de Transporte O TCP/IP, na verdade, é formado por um grande conjunto de diferentes protocolos e serviços de rede. O nome TCP/IP deriva dos dois protocolos mais

Leia mais

Servidores DNS {DNSServers.doc}

Servidores DNS {DNSServers.doc} Prof V. Vargas, IST Apontamentos sobre DNS 31/10/06, Pg 2 Servidores DNS {DNSServers.doc} Recordando os tempos anteriores à génese do DNS, será pacífico conceber a informação sobre as máquinas de um Domínio

Leia mais

Funções específicas de cada camada do modelo OSI da ISO.

Funções específicas de cada camada do modelo OSI da ISO. Funções específicas de cada camada do modelo OSI da ISO. 1ª Camada - Física - Grupo Rede Física Esta camada traduz os bits a enviar em sinais elétricos, de tensão ou corrente. Ela fornece os meios de hardware

Leia mais

TCP - estabelecimento de conexão

TCP - estabelecimento de conexão TCP - estabelecimento de conexão Inicializa variáveis Números de sequência Buffers, RcvWindow 3-way handshake usado para eliminar o problema de duplicatas antigas (atrasadas) Ex.: pedidos de conexão, ACKs

Leia mais

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace Redes de Computadores II Módulo 1 Introdução e a camada de enlace 1 A Camada de Enlace Principal objetivo da camada: Comunicar dados entre dois equipamentos de rede conectados ao mesmo meio de transmissão

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula Complementar - MODELO DE REFERÊNCIA OSI Este modelo se baseia em uma proposta desenvolvida pela ISO (International Standards Organization) como um primeiro passo em direção a padronização dos protocolos

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Enlace Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais 1 Camada de enlace Responsável pela

Leia mais

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto: dados full-duplex: um transmissor, um receptor confiável, seqüêncial -> byte stream: mensagens não são delimitadas pipelined: transmissão

Leia mais

Introdução ao Frame Relay. Prof. José Marcos Câmara Brito Inatel - 05/99

Introdução ao Frame Relay. Prof. José Marcos Câmara Brito Inatel - 05/99 Introdução ao Frame Relay Prof. José Marcos Câmara Brito Inatel - 05/99 Objetivo Prover o usuário com uma rede privativa virtual (VPN) capaz de suportar aplicações que requeiram altas taxas de transmissão

Leia mais

A CAMADA DE TRANSPORTE

A CAMADA DE TRANSPORTE UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia Departamento de Informática Redes de Computadores A CAMADA DE TRANSPORTE Prof.: Mauro Henrique Mulati A CAMADA DE TRANSPORTE Roteiro TCP 2 A CAMADA

Leia mais

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Protocolo é a linguagem usada pelos dispositivos de uma rede de modo que eles consigam se comunicar Objetivo Transmitir dados em uma rede A transmissão

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Transmissão de dados Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006 Códigos de caracteres A informação é manuseada em blocos de 8 bits (bytes

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Pilha de protocolos TCP/IP. IPv4; ARP; UDP; BOOTP/DHCP; ICMP; TCP e IGMP. 1 A camada IP A pilha de protocolos normalmente designada por TCP/IP exerce actualmente

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Aula Prática Bit stuffing, CRC e IP 1 Introdução 1.1 Framing O nível de ligação de dados utiliza o serviço fornecido

Leia mais

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre Exercícios de Revisão Redes de Computadores Edgard Jamhour Segundo Bimestre Exercicio 1: Considere a seguinte configuração de rede estruturada em VLANs 220.0.0.2/24 C VLAN 2 B VLAN 1 A VLAN 1 VLAN 1,2,3

Leia mais

Endereçamento {Addressing.doc} Classes de Endereços

Endereçamento {Addressing.doc} Classes de Endereços Prof V Vargas, Instituto Superior Tecnico Endereçamento 03/11/11, Pg 1/10 Endereçamento {Addressing.doc} Classes de Endereços 1. [04E2] Indique a gama de endereços para cada uma das Classes, A, B, C e

Leia mais

3.3 Protocolos comerciais ponto a ponto Camada ligação de dados

3.3 Protocolos comerciais ponto a ponto Camada ligação de dados 3.2.1.3 Protocol os em Pipeline Interfaces e transmissão de dados 3.3 Protocolos comerciais ponto a ponto Camada ligação de dados 1/30 3.2.1.3 Protocol os em Pipeline Interfaces e transmissão de dados

Leia mais

NETALARM GATEWAY. Manual do Usuário

NETALARM GATEWAY. Manual do Usuário Índice 1. Introdução...3 2. Requisitos Mínimos de Instalação...3 3. Instalação...3 4. Inicialização do Programa...5 5. Abas de Configuração...6 5.1 Aba Serial...6 5.2 Aba TCP...7 5.2.1 Opções Cliente /

Leia mais

Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes 1 Protocolos Roteáveis e Roteados Protocolo roteado: permite que o roteador encaminhe dados entre nós de diferentes redes. Endereço de rede:

Leia mais