### Aula 07-11-2022 **Exercício 1.** Uma rede *virtual circuit* (VC) é composta por três fases: * *Connection Setup* --- a camada de transporte contacta a camada de rede a confirmar o destino e o *path* é determinado; * *Data Transfer* --- autoexplicativo; * *Tear-Down* --- a camada de rede desliga a conexão e remove os dados da table de *routing*. **Exercício 2.** Numa rede de datagramas, os dados são trocados entre computadores através de serviços flexíveis, que podem adaptar-se, exercer controlo e recuperar de erros, sem haver conexão; há muitas características diferentes, logo muitos tipos de conexão sem uniformidade. Numa rede VC (*virtual circuit*), é necessário haver conexão, o tempo e os requisitos de confiança são rígidos, com necessidade de garantir serviços. **Exercício 3.** Os três principais componentes do *Internet Protocol* (IP) são: * Protocolo de *routing* --- selecionar o caminho; * Endereçamento --- identificador de 32 bits (IPv4) ou 128 bits (IPv6) para anfitriões e interfaces de *router*, que representa sub-redes (por *Classless InterDomain Routing* (CIDR)), atribuído por *Dynamic Host Configuration Protocol* (DHCP), para fazer *forwarding* de datagramas; * *Internet Control Message Protocol* (ICMP) --- utilizado por anfitriões e *routers* para controlar e comunicar informação a nível de rede (reporte de erros, pedidos *request*/*reply*). **Exercício 4.** ``` Dataframe Original: length = 6000, ID = x, fragflag = 0, offset = 0 Maximum Transfer Unit: 1000 Como o header ocupa 20 bytes e 980/8 não é uma divisão inteira, é necessário escolher o valor mais próximo --- 976 Logo, cada datagrama pode levar 976 bytes de datagrama mais os 20 bytes do header Datagrama 1: length = 996, ID = x, fragflag = 1, offset = 0 Datagrama 2: length = 996, ID = x, fragflag = 1, offset = 122 Datagrama 3: length = 996, ID = x, fragflag = 1, offset = 244 Datagrama 4: length = 996, ID = x, fragflag = 1, offset = 366 Datagrama 5: length = 996, ID = x, fragflag = 1, offset = 488 Datagrama 6: length = 996, ID = x, fragflag = 1, offset = 610 Datagrama 7: length = 164, ID = x, fragflag = 0, offset = 732 ``` **Exercício 5.** DHCP (*Dynamic Host Configuration Protocol*) é permite a anfitriões obter dinamicamente o seu endereço IP quando se juntam a uma rede, através de um servidor com esse serviço. Um equipamento que não tenha acesso direto a um servidor DHCP pode obter um IP através de um pedido em *broadcast*: como nessa subrede não existe servidor DHCP, o *router* faz DHCP *relay* para outra subrede onde sabe que existe o servidor, que por sua vez envia um datagrama que contém o endereço IP atribuído a esse anfitrião. **Exercício 6.** | | IPv4 | IPv6 | | ------------------- | ---- | ---- | | Fragmentação | Sim | Não | | Nível de Prioridade | Não | Sim | | *Checksum* | Sim | Não | | Opções | Sim | Sim, mas fora do *header* | | Etiqueta de fluxo | Não | Sim | ### Aula 21-11-2022 **Exercício 1.** A camada de ligação está implementada em cada anfitrião nos adaptadores (NIC, *Network Interface Card*) e tem a responsabilidade de transferir datagramas encapsulados em *frames* entre nós adjacentes de uma ligação numa rede. **Exercício 2.** A camada de ligação implementa seis serviços: * *Framing* --- encapsula datagramas em *frames*, adicionando *header* e *trailer* que contêm os endereços MAC de identificação de origem e destino; * Transferência fiável --- garante que os *frames* não são corrompidos durante a transferência; * Controlo de fluxo --- ajusta a velocidade entre nós emissores e recetores adjacentes; * Deteção de erros --- causados por atenuação de sinal, ruído; o recetor deteta a presença de erros e pede retransmissão do emissor ou aborta o processo; * Correção de erros --- o recetor identifica e corrige bits de erro sem necessidade de retransmissão; * *Half-duplex*/*Full-duplex* --- permite diferentes formas de transmissão, uma vez que pode ser um de cada vez ou ambos ao mesmo tempo. **Exercício 3.** Há três tipos de deteção de erros: * Verificação de paridade (*hardware*): * Paridade de bit único; * Paridade bidimensional; * *Checksum* (*Cyclic Redundancy Check*) (*software*) --- escolher `r` bits CRC tal que o número de bits de dados e os bits CRC a dividir por um gerador de padrão `r + 1` têm resto `0`, se não, deteta-se erros. **Exercício 4.** Um protocolo de *multiple access* ideal define, sobre um canal de *broadcast* com um *rate* de `R` bits por segundo: * Quando um nó quer transmitir, pode fazê-lo a *rate* `R`; * Quando `M` nós querem transmitir, cada um pode fazê-lo a *rate* `R/M`; * Descentralização total, sem nós especiais para coordenar transmissões ou sincronização de relógios/*slots*; * Simples. **Exercício 5.** Os protocolos *multiple access* podem ser de: * Partição de Canal --- dividir o canal em "peças" pequenas (*slots* temporais, frequência, código), com cada uma alocada a um nó para uso exclusivo (TDMA (*Time Division Multiple Access*), FDMA (*Frequency Division Multiple Access*), CDMA (*Code Division Multiple Access*)); * *Random Acess* --- canal não dividido que permite colisões e consegue recuperar destas (ALOHA (*Additive Links Online Hawaii Area*), CSMA (*Carrier Sense Multiple Access*)); * *Taking Turns* --- os nós executam rondas entre si durante as transmissões de acordo com a quantidade de dados a transmitir (*polling*, *token passing*). **Pergunta Bónus** --- descrever CSMA/CD. ### Aula 05-12-2022 **Exercício 1.** | Camada | Serviços | Protocolos | | ------ | -------- | ---------- | | Aplicação | Definir tipo, sintaxe, semântica de mensagens trocadas <br> Definir regras como e quando os processos recebem e respondem a mensagens | DNS, FTP, HTTP, HTTPS, IMAP, NTP, OSPF, POP3, SMTP | | Transporte | Comunicação lógica entre processos de aplicações em anfitriões diferentes | TCP, UDP | | Rede | *Routing* <br> *Forwarding* <br> *Pipelining* | IP, RIP, OSPF | | Ligação | *Framing* <br> Transferência fiável <br> Controlo de fluxo <br> Deteção de erros <br> Correção de erros <br> *Half-duplex*/*Full-duplex* | MAP: <br> * *Channel Partitining* (TDMA, FDMA, CDMA) <br> * *Random Access* (ALOHA, CSMA) <br> * *Taking Turns* (*polling*, *token passing*) <br> ARP <br> Ethernet | | Física | Cabos | N/A | ### Aula 12-12-2022 **Exercício 1.** Comparativamente a ligações com fios, uma ligação sem fios tem: * Menor força de sinal (*path loss*) --- o sinal de rádio atenua ao propagar-se pela matéria; * Interferência de outras origens --- frequências padrão (por exemplo, 2.4 GHz) partilhadas com outros dispositivos; * Propagação por múltiplos caminhos --- o sinal de rádio reflete consoante os objetos, podendo ter tempos de chegada diferentes. **Exercício 2.** | | ***Hop* único** | ***Hops* múltiplos** | | --- | --- | --- | | **Com infraestrutura** | O anfitrião contecta-se à *base station*, que o liga à Internet (WiFi, WiMAX, *cellular*) | Anfitriões podem ter de transmitir entre vários nós *wireless* para ligar à Internet (redes *mesh*) | | **Sem infraestrutura** | Sem *base station*, logo, sem ligação à Internet (Bluetooth, redes *ad hoc*) | Sem *base station*, sem ligação à internet, baseiam-se entre todos para efetuar ligações entre si (MANET, VANET) | **Exercício 3.** *Handoff* permite as mudanças móveis da *base station* que providencia a conexão entre redes, ou seja, os dados que estão a ser transmitidos numa rede continuam a ser transmitidos na nova rede, isto é, a troca de um *host* entre *base stations*. **Exercício 4.** CDMA --- *Code Division Multiple Access*, nas variantes CD (*Collision Detection*) e CA (*Collision Avoidance*). **Exercício 5.** CDMA em redes sem fios e FDMA/TDMA combinado em redes celulares. **Exercício 6.** A IEEE 802.11 é uma família de padrões para redes LAN, PAN e MAN. A IEEE 802.11b é a mais utilizada em contexto domiciliário com 100 a 300 metros de alcance, com um espetro sem licença de 2.4 a 5 GHz de até 11 Mbps, com um *direct sequence spread spectrum* (DSSS) na camada física, em que todos os anfitriões usam o mesmo código de *chipping*.