Course: Computer Networks

» List of faculties » FAV » KIV
Course title Computer Networks
Course code KIV/PSI
Organizational form of instruction Lecture + Tutorial
Level of course Master
Year of study not specified
Semester Winter
Number of ECTS credits 6
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Křížek Miloslav, Ing. Ph.D.
Course content
1. Introduction to TCP/IP: ISO/OSI model, protocol stack, IPv4 addresses and addressing, NAT and DNS. 2. Introduction to TCP/IP: IP version 4 datagram, ICMP and UDP protocols. BSD sockets programming interface. 3. Introduction to TCP/IP: IP version 6, ICMP v6. TCP protocol. 4. Routing in IP networks: Basic principles of routing and packet forwarding, metrics, routing algorithms and protocols (RIP, RIPv2, OSPF, BGP, inter-domain routing). 5. Multicast in IP networks: basic principles, models and applications of group communication. Multicast addresses, group management, distribution and routing of multicast messages. 6. Computer network management: basic principles and tools for computer network management. SNMP and NETCONF protocols, network management automation tools. 7. Application service protocols: DHCP, DNS, Telnet, SSH, TFTP, FTP, and FTPS. 8. Application service protocols: SMTP, IMAP, POP email protocols and multimedia information representation. HTTP/HTTPS and MQTT application protocols. Network information and directory services, LDAP protocol. 9. Real-time communication and multimedia transmission. RTP, RTCP, SIP and SDP protocols. Working principles and applications of WebSockets and WebRTC. 10. Distributed systems basics: client-server architectures, application interface principles: specification and generation of software artifacts. REST architecture. Remote Procedure Call (RPC) RPC, Java RMI, gRPC and protocol buffers. 11. Virtualization of computer networks: VLAN (802.1Q), VXLAN. Basic principles, operating modes and use of VPN. IPsec and OpenVPN protocols. Introduction to Software Defined Networking (SDN). 12. Programming reactive network applications: synchronous vs asynchronous request processing, reactive programming basics and practical examples.

Learning activities and teaching methods
Discussion, Students' portfolio, One-to-One tutorial, Task-based study method, Individual study, Students' self-study, Self-study of literature, Lecture, Practicum
  • Contact hours - 65 hours per semester
  • Presentation preparation (report) (1-10) - 8 hours per semester
  • Preparation for an examination (30-60) - 50 hours per semester
  • Graduate study programme term essay (40-50) - 50 hours per semester
prerequisite
Knowledge
demonstrating knowledge of the C programming language
demonstrating knowledge of finite automata and be able to implement them in a programming language
to be familiar with abstract data types and their implementation on the C programming language
to be familiar with the Linux operating system including network application programming
demonstrating knowledge of handling parallel processes and threads
demonstrating knowledge of synchronization methods in the Linux operating system
demonstrating knowledge of TCP/IP stack protocols
Skills
demonstrating skills to work on a PC with the Linux operating system
demonstrate skills to work with a C language IDE
develop and debug software on a Unix/Linux like operating system
be able to use common development and versioning tools
develop communication software on the Linux operating system using BSD sockets
Competences
N/A
learning outcomes
Knowledge
demonstrate advanced practical knowledge of computer networks using TCP/IP protocols
demonstrate advanced theoretical knowledge of algorithms used in computer networks
demonstrate knowledge of network diagnostic tools
demonstrate extended knowledge of network programming on Unix/Linux like operating systems including utilization of threads and parallel processes
demonstrate basic knowledge of network management protocols
Describe elements and features of computer networks and systems
Skills
to be familiar with the Linux operating system commands, especially the ones related to networking
to design and implement network applications working with protocols on the fundamental level
to design fundamental TCP/IP system protocols also on an application level
be able to debug software and perform application analysis including localization of possible bugs
be able to analyze network settings including checking of these settings and problem diagnostics
Competences
N/A
N/A
teaching methods
Knowledge
Lecture
Practicum
Task-based study method
Self-study of literature
Individual study
One-to-One tutorial
Discussion
Skills
Students' portfolio
Competences
Lecture
assessment methods
Knowledge
Individual presentation at a seminar
Continuous assessment
Combined exam
Seminar work
Skills
Seminar work
Competences
Written exam
Recommended literature
  • Comer, Douglas E. Internetworking with TCP/IP. Vol. I, Principles, protocols, and architecture. 4th ed. Upper Saddle River : Prentice Hall, 2000. ISBN 0-13-018380-6.
  • Halsall, Fred. Data communications, computer networks and open systems. 4th ed. Harlow : Addison-Wesley, 1996. ISBN 0-201-42293-X.
  • Janeček, J., Bílý, M. Lokální sítě. ČVUT Praha, 1998.
  • Lhotka, Ladislav. Server v Internetu. 1. vyd, dotisk. České Budějovice : Kopp, 1997. ISBN 80-85828-65-0.
  • Šmrha, Pavel; Rudolf, Vladimír. Internetworking pomocí TCP/IP. 1. vyd. České Budějovice : Kopp, 1994. ISBN 80-85828-09-X.
  • Tanenbaum, Andrew S. Computer networks. Upper Saddle River : Prentice Hall, 2003. ISBN 0-13-038488-7.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester