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.
|