|
Lecturer(s)
|
-
Otta Maxmilián, 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.
|