Área de Concentração: 45134
Concentration area: 45134
Criação: 18/04/2024
Creation: 18/04/2024
Ativação: 18/04/2024
Activation: 18/04/2024
Nr. de Créditos: 8
Credits: 8
Carga Horária:
Workload:
Teórica (por semana) |
Theory (weekly) |
Prática (por semana) |
Practice (weekly) |
Estudos (por semana) |
Study (weekly) |
Duração | Duration | Total | Total |
---|---|---|---|---|---|---|---|---|---|
4 | 4 | 2 | 12 semanas | 12 weeks | 120 horas | 120 hours |
Docente Responsável:
Professor:
Daniel Macedo Batista
Objetivos:
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.
Objectives:
Provide an overview of essential topics for computer networks and distributed systems from a systems perspective, emphasizing the most important topics for the software developer.
Justificativa:
As redes de computadores surgiram na segunda metade do século XX e, após décadas de grande crescimento em alcance, capacidade e popularidade, hoje estão presentes na vida cotidiana de uma grande parcela da humanidade. Sistemas distribuídos construídos em cima de redes de computadores hoje sustentam uma grande parte da economia mundial e servem de base para inúmeros tipos de atividades humanas em todas as áreas do conhecimento. Nesta disciplina, os alunos terão contato, tanto teórico, quanto prático, com os protocolos e interfaces de programação para redes de computadores. Ao final da disciplina os alunos serão capazes de compreender os conceitos básicos das redes de computadores, com ênfase na Internet, e serão capazes de escrever pequenos programas que se comunicam através de redes de comunicação utilizando o modelo de programação por soquetes.
Rationale:
Computer networks emerged in the second half of the 20th century. After decades of great growth in reach, capacity, and popularity, they are now present in the daily lives of a large portion of humanity. Distributed systems built on top of computer networks today support a large part of the world economy and serve as the basis for countless types of human activities in all areas of knowledge. In this course, students will have contact, both theoretical and practical, with protocols and programming interfaces for computer networks. At the end of the course, students will be able to understand the basic concepts of computer networks, with an emphasis on the Internet, and will be able to write small programs that communicate through communication networks using the socket programming model.
Conteúdo:
"- Arquitetura de redes: modelos em camadas e protocolos, o modelo da Internet - Protocolos da camada de aplicação: cliente/servidor, P2P, híbrido e publish/subscribe - 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 e endereçamento na Internet - TCP e UDP - IPv4, IPv6 e ICMP - Roteamento na Internet - IP Multicast - DHCP - Protocolos MAC, Ethernet e endereçamento em redes locais - Detecção e correção de erros - Conceitos básicos de segurança em redes de computadores - Gerenciamento de redes, SNMP - Anonimato na Internet (Tor) - Virtualização de redes - Serviços web - Redes Definidas por Software (OpenFlow e P4) - Recuperação e tolerância a falhas - Conceitos básicos de redes sem fio: RFID, Bluetooth, Wi-Fi e redes celulares 4G e 5G Os estudantes terão contato com o material através de aulas teóricas, exercícios práticos cobrindo tópicos específicos e seminários. A disciplina incluirá um trabalho prático de implementação, em uma rede real ou em um simulador, de um protocolo de comunicação via redes de computadores. O trabalho prático deverá gerar resultados para a escrita de um artigo científico."
Content:
"- Network architecture: layered models and protocols, the Internet model - Application layer protocols: client/server, P2P, hybrid, and publish/subscribe - Applications and protocols for Multimedia - The end-to-end argument - Programming through sockets in C and object-oriented languages - Names and addresses on the Internet - TCP and UDP - IPv4, IPv6 and ICMP - Internet Routing - IP Multicast - DHCP - MAC, Ethernet, and addressing protocols in local networks - Error detection and correction - Basic concepts of security in computer networks - Network management, SNMP - Anonymity on the Internet (Tor) - Network virtualization - Web services - Software Defined Networks (OpenFlow and P4) - Recovery and fault tolerance - Basic concepts of wireless networks: RFID, Bluetooth, Wi-Fi, and 4G and 5G cellular networks Students will have contact with the material through theoretical classes, practical exercises covering specific topics, and seminars. The course will include practical work implementing a communication protocol via computer networks in a real network or a simulator. The practical work should generate results for writing a scientific paper."
Forma de Avaliação:
A avaliação será realizada através de seminários, projetos e provas. A nota final será calculada pela média obtida pelo aluno nos instrumentos de avaliação. Nas duas primeiras semanas de aula o docente fixará as datas e o número de provas, projetos e seminários, assim como o critério de atribuição do conceito final.
Type of Assessment:
The evaluation will be carried out through seminars, projects and tests. The final grade will be calculated by mean obtained by the student in the assessment instrument. In the first two weeks of class, the teacher will set the dates and number of tests, projects and seminars, as well as the criteria for attributing the final letter grade.
Observação:
É desejável boa experiência em desenvolvimento de software ou ter cursado a disciplina Técnicas de Programação I (MAC0216) ou equivalente. É necessário conhecimento de programação em linguagem C e alguma linguagem orientada a objetos.
Notes/Remarks:
Good experience in software development or having studied the Programming Techniques I (MAC0216) course or equivalent is desirable. Knowledge of programming in C language and some object-oriented language is required.
Bibliografia:
"1) J. F. Kurose, K. W. Ross, Computer Networking, A Top-Down Approach Featuring the Internet (8th revised edition), Addison-Wesley, 2020. 2) W. Richard Stevens. Unix Network Programming, Volume 1: the Sockets Networking API (3rd Edition), (Addison-Wesley) 2003. 3) Larry Peterson and Bruce Davie. Computer Networks: A Systems Approach (6th Edition), Morgan Kaufmann, 2021. 4) W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition), Addison-Wesley, 2011. 5) George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design (5th Edition), Pearson, 2011."
Bibliography:
"1) J. F. Kurose, K. W. Ross, Computer Networking, A Top-Down Approach Featuring the Internet (8th revised edition), Addison-Wesley, 2020. 2) W. Richard Stevens. Unix Network Programming, Volume 1: the Sockets Networking API (3rd Edition), (Addison-Wesley) 2003. 3) Larry Peterson and Bruce Davie. Computer Networks: A Systems Approach (6th Edition), Morgan Kaufmann, 2021. 4) W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition), Addison-Wesley, 2011. 5) George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design (5th Edition), Pearson, 2011."
Tipo de oferecimento da disciplina:
Presencial
Class type:
Presencial