Network Programming

Последна измена: October 25, 2019

Course title: Network Programming

Code: 3ФЕИТ12З011

Number of credits (ECTS): 6

Weekly number of classes: 2+2+1+0

Prerequisite for enrollment of the subject: Taken course: Data Structures and Algorithm Analysis

Course Goals (acquired competencies): Introduction to network and communication protocols. TCP and UDP programming. Upon completion, the student will have basic knowledge of the communication protocols and working with them in Python.

Total available number of classes: 180

Course Syllabus: Introduction to Communication Networks. Architecture of the Internet. TCP/IP protocol stack. Introduction to Python network programming. Introduction to Socket Concepts. Types of sockets. Block diagram of  TCP and UDP socket calls. Python Socket Module. Client/server programming. TCP and UDP client and server. Using the DNS system in network programming. Multiplexing of Socket I/O. Routines for event processing. Twisted framework for Python. Working with network interfaces. IPv4. IPv6. IPv4 collaboration with IPv6.  Using application level libraries to work with the Web, e-mail, ftp. Working with HTTP protocol: httplib () and urllib (). Working with e-mail protocols and FTP. Using ftplib (); Working with SMTP, POP, and IMAP protocols. Using smtplib, Poplib. IMAPClient. Programming with CGI and CGI applications. Security issues with CGI applications. Using the API from a web site. Screen scraping versus the offered API; Security and network programming. Security with SSL and TLS; Working with custom certificates and OpenSSL. Network monitoring and security. Undefined (raw) sockets and sniffing network packets.

Literature:

Required Literature

No.

Author

Title

Publisher

Year

1

R. Stevens, B. Fenner, A. RudoffUNIX Network Programming, Volume 1, The Sockets Networking API, 3rd ed.Addison Wesley2004

2

B. Rhodes, J. GoerzenFoundations of Python Network Programming, 3rd Еd.Apress2014

3

Dr. M.O.F. Sarker, S. WashingtonLearning Python Network ProgrammingPackt Publishing2015

Additional Literature

No.

Author

Title

Publisher

Year

1

N. Yocom, J. Turner, K. DavisThe Definitive Guide to Linux Network ProgrammingApress2004