Prover uma visão de tópicos essenciais para redes de computadores e sistemas distribuídos sob a perspectiva de sistemas, enfatizando os tópicos mais importantes para o desenvolvedor de software.
Arquitetura TCP/IP. Segurança. Virtualização de redes. Comunicação entre processos. Tolerância a falhas.
Arquitetura de redes: modelos em camadas e protocolos, o modelo da Internet. Aplicações e protocolos para Multimídia. O argumento fim-a-fim. Programação através de soquetes em C e em linguagens orientadas a objetos. Nomes, endereçamento e roteamento na Internet. A suíte de protocolos TCP/IP, UDP, IP-Multicast. Protocolos MAC, Ethernet e endereçamento em redes locais. Detecção e correção de erros. IPv6. Segurança. Gerenciamento de redes, SNMP. Redes P2P. Anonimato na Internet (Tor). Virtualização de redes. Comunicação entre processos: cliente-servidor, grupos, RPC. Serviços web. Recuperação e tolerância a falhas.
Bibliografia Básica: J. F. Kurose, K. W. Ross, Computer Networking, A Top-Down Approach Featuring the Internet (6th revised edition), Addison-Wesley, 2012. W. Richard Stevens. Unix Network Programming, Volume 1: the Sockets Networking API (3rd Edition), Addison-Wesley, 2003. Bibliografia Complementar: Larry Peterson and Bruce Davie. Computer Networks: A Systems Approach (5th Edition), Morgan Kaufmann, 2011. W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition), Addison-Wesley, 2011. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design (5th Edition), Pearson, 2011.