Computer Networks

Credits
6
Department
AC
Types
Compulsory
Requirements
  • Precorequisite: SO
Computer Networks course is designed as a first course in this area. Its content is focused primarily on the Internet. During the course students learn the complexities behind this global network, which allows the exchange of information reliably and efficiently. Explains how the Internet is organized, what are the most important protocols and what is their purpose. The course tries to use a "scientific" approach, evaluating with simple numerical problems the protocols explained. An important part of the course are laboratory sessions. In these, practices carefully designed are carried out by students in order to experience "with their own hands" the concepts discussed in the theoretical classes.
Web: http://studies.ac.upc.edu/FIB/grau/XC

Teachers

Person in charge

  • Llorenç Cerdà Alabern ( )

Others

  • David Carrera Pérez ( )
  • Davide Careglio ( )
  • German Santos Boada ( )
  • Jaime M. Delgado Merce ( )
  • Jordi Domingo Pascual ( )
  • Jorge García Vidal ( )
  • Jose Maria Barceló Ordinas ( )
  • Leandro Navarro Moldes ( )
  • Luc Etienne Jaulmes ( )
  • Luis Domingo Velasco Esteban ( )
  • Manel Medina Llinàs ( )
  • Pere Barlet Ros ( )

Weekly hours

Theory
2
Problems
1
Laboratory
1
Guided learning
0.4
Autonomous learning
5.6

Competences

Technical Competences

Common technical competencies

  • CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
    • CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
    • CT2.4 - To demonstrate knowledge and capacity to apply the needed tools for storage, processing and access to the information system, even if they are web-based systems.
  • CT3 - To demonstrate knowledge and comprehension of the organizational, economic and legal context where her work is developed (proper knowledge about the company concept, the institutional and legal framework of the company and its organization and management)
    • CT3.6 - To demonstrate knowledge about the ethical dimension of the company: in general, the social and corporative responsibility and, concretely, the civil and professional responsibilities of the informatics engineer.
  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.1 - To demonstrate knowledge and capacity to manage and maintain computer systems, services and applications.
    • CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
    • CT6.4 - To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of the Distributed Systems and Computer and Internet Networks guaranteeing its use and management, as well as the design and implementation of application based on them.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
    • CT7.2 - To evaluate hardware/software systems in function of a determined criteria of quality.
    • CT7.3 - To determine the factors that affect negatively the security and reliability of a hardware/software system, and minimize its effects.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.1 - To identify current and emerging technologies and evaluate if they are applicable, to satisfy the users needs.
    • CT8.4 - To elaborate the list of technical conditions for a computers installation fulfilling all the current standards and normative.

Transversal Competences

Autonomous learning

  • G7 - To detect deficiencies in the own knowledge and overcome them through critical reflection and choosing the best actuation to extend this knowledge. Capacity for learning new methods and technologies, and versatility to adapt oneself to new situations.
    • G7.2 - Guided learning: perform assigned tasks according to basic orientations given by the teaching staff; to decide the needed time for each task, including personal contributions and expanding the indicated information sources. Appropriate use of study guides. Capacity to take decisions based on objective criteria (experimental, scientific or simulation available data). Capacity to evaluate your own strong and weak points, and perform consequently.

Objectives

  1. Identify the main functions associated with physical level protocols, links, networks, transport and networked applications and identify the level to which a protocol belongs.
    Related competences: CT6.4, CT6.1, G7.2,
  2. Identify applications using a client-server paradigm and distinguish between temporary and well-known ports.
    Related competences: CT2.4, CT6.2,
  3. Predict protocol functioning and interpret the content of messages that use web, FTP, e-mail and DNS applications.
    Related competences: CT2.4, CT2.3,
  4. Interpret electronically represented documents (HTML and XML).
    Related competences: CT6.4, CT2.4, G7.2,
  5. Interpret IP header fields, IP datagram fragmentation and messages generated by the ARP and ICMP protocols.
    Related competences: CT6.1, CT6.2,
  6. Interpret and deduce routing table content, predict RIP routing protocol behaviour and messages, design IP network address allocation, distinguish between public and private addresses and use NAT.
    Related competences: CT6.1, CT6.2,
  7. Design the basic configuration of a firewall (NAT, access lists and tunnels).
    Related competences: CT7.3, CT6.1, CT8.4, CT3.6, CT2.3,
  8. Differentiate between the services and functions for TCP and UDP and interpret header content for TCP segments and UDP datagrams.
    Related competences: CT6.4, CT7.1, CT6.1, CT6.2,
  9. Create time diagrams to model protocol behaviour in ARQ and particularly in TCP.
    Related competences: CT7.1, CT7.2, CT6.2,
  10. Predict TCP flow and congestion control behaviour, specifically the functioning of pop-up windows, segment transmission mechanisms, congestion windows and slow-start and congestion-avoidance algorithms.
    Related competences: CT7.1, CT7.2, CT6.2,
  11. Estimate the effective traffic rate for a TCP connection in different conditions (lags, link transmission speeds, segment losses, etc.).
    Related competences: CT7.1, CT7.2, CT7.3,
  12. Represent time diagrams representing MAC protocols for the local area networks studied.
    Related competences: CT7.1, CT7.2,
  13. Determine the active flow control mechanisms used for a local area network, traffic distribution according to station and device topology (hubs, switches and routers), distinguish between collision and broadcast domains, configure VLANs/trunks and determine the network topology for the configured VLAN.
    Related competences: CT7.1, CT7.2, CT7.3, CT8.1,
  14. Identify bottlenecks in a local area network and calculate the effective flow rate for different traffic conditions.
    Related competences: CT7.1, CT7.2, CT7.3, CT8.1,

Contents

  1. Introduction
    Introduction to the Internet, packet networks, standardisation bodies and the ISO OSI reference model.
  2. IP Networks
    Knowing the format of an IP datagram. IP addressing, numbering, Pubic and Private IP addresses, subnetting. IP supporting protocols (ICMP, ARP, DHCP, DNS). IP routing, routing table and concepts of IGP and EGP routing algorithms. NAT and security in IP networks: Concept of firewall and virtual private networks.
  3. TCP protocol
    The transport layer and its most important functions. Automatic error retrieval protocols such as ARQ. TCP/IP network transport layers, UDP and TCP protocols and particularly TCP flow control and congestion control mechanisms. Application interfaces and the transport layer (sockets).
  4. Local Area Networks
    Transmission media and structured wiring. Principles of access protocols for a shared environment on a local area network, Ethernet protocol, switches, VLANs and trunking. Basic wireless networks and protocol 802.11 (WiFi).
  5. Network applications
    The client-server paradigm for TCP/IP network applications. Applications (web, e-mail, DNS) and the protocols they use (HTTP, SMTP). Main formats for representing application documents (HTML, XML).

Activities

Topic development: Introduction

Theory
2
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
1

Topic development: Network applications

Theory
6
Problems
2
Laboratory
0
Guided learning
0
Autonomous learning
10

Network applications laboratory

Understand the HTTP, SMTP, POP3 and DNS protocols. Use system tools to monitor system activity and study system format and features.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session week 4.
  • Autonomous learning: Prepare the practical.
Objectives: 3
Contents:

Laboratory mini-test on network applications

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3
Contents:

Content language representation practical

Explore the use of HTML and XML languages for representing content.
Theory
0
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
6
Objectives: 4
Contents:

Sockets practical

Develop a client/server application that uses the C-API socket for communication purposes. Develop TCP and UDP codes.
Theory
0
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
5
Objectives: 2 8

Topic development: IP networks

Theory
9
Problems
4.5
Laboratory
0
Guided learning
0
Autonomous learning
12

Laboratory on basic commands for IP level configuration with UNIX

Interface configuration, adding entries to the routing table, /etc/hosts files and basic commands (ping, traceroute, tcpdump). Face-to-face laboratory session.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 6.
  • Autonomous learning: Prepare the practical.
Objectives: 5
Contents:

Laboratory mini-test on basic commands for configuring the IP level with UNIX

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6
Contents:

CISCO routers laboratory and IOS

Router structure, IOS configuration modes, interface configuration, entries in the routing table and the show running-config command.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 7.
  • Autonomous learning: Prepare the practical.
Objectives: 5 6
Contents:

Laboratory mini-test on CISCO routers and IOS

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6

Dynamic routing laboratory: RIPv1 and RIPv2

Configuring RIP in a Cisco router. Record update messages and build routing tables.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 8.
  • Autonomous learning: Prepare the practical.
Objectives: 6
Contents:

Laboratory mini-test on dynamic routing: RIPv1 and RIPv2

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6
Contents:

ACLs and NAT with IOS laboratory

Configuring standard and extended ACLs in IOS. NAT configuration.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 9.
  • Autonomous learning: Prepare the practical.
Objectives: 7
Contents:

Laboratory mini-test on ACLs and NAT with IOS

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6 7
Contents:

Topic development: TCP

Theory
7
Problems
4.5
Laboratory
0
Guided learning
0
Autonomous learning
12

TCP and tcpdump practical

Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 11.
  • Autonomous learning: Prepare the practical.
Objectives: 8 9 10 11
Contents:

Laboratory mini-test on TCP and tcpdump

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6 8 10 11
Contents:

Topic development: Local area networks

Theory
6
Problems
4
Laboratory
0
Guided learning
0
Autonomous learning
10

Switches laboratory

Configuring VLANs and trunk links between Cisco switches and routers.
Theory
0
Problems
0
Laboratory
1.7
Guided learning
0
Autonomous learning
1
  • Laboratory: Face-to-face laboratory session. To be completed in week 12.
  • Autonomous learning: Prepare the practical.

Laboratory mini-test on switches

Theory
0
Problems
0
Laboratory
0.3
Guided learning
0
Autonomous learning
0
Objectives: 1 2 3 5 6 11 13 14
Contents:

Final laboratory exam

Theory
0
Problems
0
Laboratory
0
Guided learning
2
Autonomous learning
4

Contents:

Teaching methodology

The subject is composed of theory and laboratory classes. Concepts will be explained in the theory classes, and related exercises will be completed. Students will be assigned problems to be completed in class.

Laboratory work represents an important part of the course. Students should obtain, at the beginning of course, a laboratory notebook providing a brief explanation of the theory and guidelines for each practical. The face-to-face laboratory sessions will be scheduled once the corresponding concepts have been covered in theory classes. Students will prepare for these sessions by reviewing the relevant theoretical concepts. Each face-to-face session will conclude with a mini-test.

Evaluation methodology

The subject is assessed as follows: theory (75%) and laboratory (25%).

NF = 0.25 * NL + 0.75 * NT

where:
NF = final grade.
NL = laboratory grade.
NT = theory grade.

The laboratory grade will be calculated from the mean obtained from labs (25%) and final exam grade laboratory (75%). The presential lab sessions will be assessed by a minicontrol held at the end of each session. The non presential labs will be assessed with an exam at the end of the course. To make minicontrols in every session, it is required submitting a report at the beginning of the session. Otherwise, the minicontrol can not be done, and the grade of it is 0.

The theory grade (NT) can be obtained by continuous evaluation (NC) or by a final exam (EF), and will be computed as NT = max(NC, EF). The continous evaluation consists of 3 controls with weights 40% (C1), 35% (C2) and 25% (C3). That is:
NC = 0.4 * C1 + 0.35 * C2 + 0.25 * C3.
If NC and NF are greater or equal than 5, it is possible to do the final exam to obtain a higher grade. The student must communicate that to the coordinator.

Incentive to study. The final mark (NF) will be increased 1 point to students who meet the following conditions:
1) Deliver on time the tracking problems that will be proposed during the course.
2) Approve at least 1 of the Controls.
3) Have a theory grade (NT) and lab (NL) greater or equal to 5.

The mark of the transversal competence is computed as the average of the final exam marks of the presential and non presential labs.

Bibliografy

Basic:

Complementary:

Web links

Previous capacities

Students are expected to have acquired a level of technical English that enables them to follow documentation, manuals and standards, as well as a basic understanding of computer structure: main computer components, input/output devices, bus, direct memory access, interrupts. They are also expected to be familiar with operating systems and have a user-level knowledge of UNIX, OS organisation, drivers, processes, communication between processes and data structures.