1 EstimatedRTT = (1-a) * EstimatedRTT + a * SampleRTT
Novo estimatedRTT = 286,29ms Novo valor de DevRTT = 53,125 TimeoutInterval = 498
2 Y e X pois a conexo TCP utiliza o servio full duplex: Se houver uma conexo entre o processo A em um hospedeiro e o processo B em outro hospedeiro, ento os dados da camada de aplicao podero fluir de A para B ao mesmo tempo em que os dados de aplicao podero fluir de B para A.
3 O desenvolvedor pode optar rodar uma aplicao sobre UDP se na aplicao a perda de outro pacote no comprometa o contedo, como por exemplo uma conexo de udio ou de vdeo. Usando UDP, atravs de uma estao a aplicao pode enviar pacotes simultaneamente para diversas outras. Isso garante uma eficincia muito grande da aplicao. Podendo enviar uma grande quantidade de contedo em pequeno espao de tempo. Logo se o desenvolvedor quiser que sua aplicao distribua uma grande quantidade de contedo, no menor tempo possvel, sem se importar com a perda de alguns pacotes, ele dever rodar a aplicao sobre UDP.
4 O trfego de voz e vdeo frequentemente enviado por meio de UDP, porque usando o protocolo UPD garante uma maior velocidade de transmisso de pacotes para muitos outros. O protocolo UDP tem grande eficincia na relao de velocidade para nmero de pacotes enviados simultaneamente para vrias outras. Apenas consultando o DNS sem se importar com a integridade dos pacotes. Como vdeo e udio precisam dessa eficincia de velocidade a escolha na sua maioria UDP.
5 possvel que uma aplicao tenha transferncia confivel de dados usando UDP. Isso pode ser feito se a confiabilidade for embutida na prpria aplicao (por exemplo, adicionando mecanismos de reconhecimento e de retransmisso). No obstante, embutir confiabilidade diretamente na aplicao permite que ela tire proveito de ambas alternativas. Em outras palavras, os processos de aplicao podem se comunicar de maneira confivel sem ter de se sujeitar s limitaes da taxa de transmisso impostas pelo mecanismo de controle de congestionamento do TCP.
6 - Sim, sero encaminhados. O Receptor saber que vieram de computadores diferentes pelo endereo ip de cada pacote. Cada pacote possui o cabealho IP alm do cabealho UDP, assim possvel saber o endereo IP do Tranmissor.
7 No, cada solicitao envia atravs de um socket diferente. Cada socket deve usar a mesma porta pra receber e ele deve mutiplexar a porta atravs do IP. Assim, cada socket s responde a mensagens que chegam porta 80 e com o IP de origem j pr- estabelecido. O servidor deve usar a porta de origem tambm como multiplexador, assim cada IP:porta respondida por um socket diferente.
8 So sim enviadas confirmaes do hospedeiro B para o hospedeiro A, mesmo com o hospedeiro B no possuindo dados. Isso ocorre porque possvel sobrepor as confirmaes aos dados em uma conexo TCP.
9 Para controlar o fluxo, h uma janela de recepo, que avisa ao remetente o espaos de buffer livre disponvel, o host destinatrio tem 3 variveis para controlar, RCVBUFFER (tamanho do buffer alocado), LASTBYTEREAD(numero do ultimo byte lido do buffer da aplicao em B), LASTBYTERCVD (numero do ultimo byte que chegou da rede e foi alocado na recepo em B). Para no saturar o buffer, realizada uma operao: LASTBYTERCVD - LASTBYTEREAD <= RCVBUFFER Se uma aplicao enviar um arquivo grande, a conexo usa uma varivel para controlar o fluxo. O hospedeiro A diz para o B o quanto de espao disponvel ele tem no buffer. Quem emite a mensagem, controlam duas variveis, LASTBYTESEND, LASTBYTEACKED, a diferena entre eles os dados no reconhecidos que chegaram. Essa diferena deve ser menor que o tamanho enviado entre os hospedeiros. Quando o tamanho da janela de recepo enviada pelo destinatrio ao remetente igual zero existe um pequeno problema. Enquanto o processo de aplicao do destinatrio esvazia o buffer, o TCP no envia novos segmentos com os novos valores da janela de recepo para o remetente. O remetente nunca informado de que h espao livre no buffer de recepo do destinatrio e fica bloqueado, no transmitindo mais dado.
10 Reconhecimento positivo com retransmisso: O destinatrio de um pacote transmite uma mensagem de reconhecimento (ACK) para cada pacote recebido. Esta mensagem informa a fonte o nmero sequencial, que corresponde a um campo do cabealho TCP do prximo pacote esperado pelo destino. O remetente aguarda o recebimento do ACK para transmitir o prximo pacote. Se, aps um perodo pr- definido por um temporizador, o ACK para um determinado pacote no tiver sido recebido, o TCP entende que o pacote foi perdido e o retransmite. Caso a fonte receba ACK duplicado, solicitando pelo nmero sequencial do ltimo pacote transmitido, o TCP tambm considerar o pacote perdido e o retransmitir. O valor do temporizador utilizado dado por, b * R, onde R uma estimativa do RTT. Janela deslizante: um buffer que contm um nmero finito de pacotes que podem ser transmitidos independentemente de reconhecimento. A medida que os ACKs so recebidos a janela desliza incorporando novos pacotes no buffer. Se todos os pacotes da janela forem transmitidos e nenhum ACK for recebido, o TCP no transmitir nenhum novo pacote e entrar em estado de espera por reconhecimentos ou expirao dos temporizadores de retransmisso. Para o controle de fluxo na conexo, em cada ACK transmitido o destinatrio informa a fonte quantos pacotes ele capaz de receber. Esta informao faz com que a fonte ajuste o tamanho da sua janela deslizante de forma a no enviar mais pacotes que o destinatrio consiga processar.
11 - Etapa N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u 6,u 2,u 3,u 1 ux 6,u 10,x
9,x 2 uxy 6,u 13,y
18,y 3 uxyv
13,y
18,y 5 uxyvw
18,y 5 uxyvwz
Inicio N' = {u} Para todos os ns v Se v adjacente a u Ento D(v) = c(u,v) Seno D(v) = Loop Acha w no em N' tal que D(w) mnimo Acrescenta w a N' Atualiza D(v) para todo v adjacente a w e no em N': D(v) = min(D(v), D(w) + c(w,v)) At todos os ns em N'