Computer Networks

Objectives

Learning goals

  • Introduction to computer networks: terminology, organization, services, components and structuring principles
  • Socket-based programming interfaces
  • Application Protocols with an emphasis on those associated with the WWW
  • Fundamentals of TCP/IP networks
  • Fundamentals of communication channels in general and Ethernet switched networks
  • Fundamentals of security in computer networks

Know-how

  • Understand the architecture and the internals of computer networks
  • Performance indicators and their estimation and measurement
  • Understand the transport and network layers impact in networked applications
  • Understand how content is diffused
  • Transport interfaces and their usage
  • Analyze, structure and implement protocols and distributed applications
  • Technologies used to ensure privacy, integrity and authenticity in communications made through computer networks.

General characterization

Code

8149

Credits

6.0

Responsible teacher

Pedro Abílio Duarte de Medeiros

Hours

Weekly - 5

Total - 70

Teaching language

Português

Prerequisites

Good acquaintance with programming and operating systems.

Bibliography

José Legatheaux Marins, "Fundamentos de Redes de Computadores - Ilustrado com base na Internet e nos Protocolos TCP/IP," FCT- NOVA, 2018

James F. Kurose and Keith W. Ross, "Computer Networking - A Top-Down Approach 8th Ed (2021) " Pearson



Teaching method

Lectures are intended to support the instructor’s presentation of fundamental issues, as well as discussion of such topics with students. In some lectures, standard problems are solved and discussed and protocols are analyzed.

Programming assignments take place in a computer laboratory and their aim is to solve problems and learn how to build network applications and protocols. These exercises, protocols and applications use the principles presented during lectures. 

Evaluation method

Evaluation has two componentes: lecture-related and laboratory-related..

Lecture-related evaluation

The mark of this componente (NT) is obtained through two tests or an exam. NL must be greater that 6,0 points.

NT = (mark of test 1  + mark of test 2 ) / 2 or

NT = mark of exame

Laboratory-related evaluation

The mark of this component  (NL) is obtained combining the marks of 4 programming assignments  (EP1, EP2, EP3, EP4)  solved in groups of no more than 2 studentes. NL must be greater that 6,0 points.

The assignments have marks NEP1, NEP2, NEP3, NEP4 and 

NL = (NEP1 + NEP2 + NEP3 + NEP4) / 4.

Mark NEPi is calculated combining two marks in each assignment:

  • Group evaluation: NGi, related with the funcionality of the code delivers
  • Individual evaluation NTPi :  obtained through the evaluation of the answers to special questions that appear in the tests. NTPi is a mark between  0 e 100 and  NEPi will be:
    • If NTPi >= 70,  NEPi = minimum( 20 , NGi )
    • else if NTPi >= 50,  NEPi = minimum( 15 , NGi )
    • else if NTPi >= 25,  NEPi = mínimum( 12, NGi )
    • else NEPi = 0;

Final mark (NF)  

NF = 0,75*NT + 0,25*NL

Subject matter

Computer networks: terminology, organization, services, components and structuring principles (what is a network, application structuring and application protocols: applications and transport requirements. Nome simbólicos e endereços; Domain Name System. Socket-based programming interface.

Application protocolos: FTP, SMTP, telnet. Web-related protocolos: HTTP. Introduction to web application programming: server-side and client-side. Video content distribution networks over HTTP.

Data-link layer: technologies for point-to-point connection and for local area networks (wired and wireless). Access to a shared communcation infrastrucure. Error detection.

Network layer: structuring and routing algorithms. Internet protocols: IP, DHCP, ARP e NAT. Internet routing.

Transport layer: Rqueirments and techniques for reliable information transfer. Stop and Wait and Sliding Window. TCP Protocol: flow and congestion control.

Computer network security: technologies for guaranteeing privacy, integrity and authentication of communications. Transport-level security (TLS). Virtual Private Networks.

Programs

Programs where the course is taught: