Personal tools
Log in
You are here: Home Faculty Education Programmes Undergraduate Programmes Undergraduate Programmes 2017 Network Programming

Network Programming

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

UNIX Network Programming, Volume 1, The Sockets Networking API, 3rd ed.

Addison Wesley

2004

2

B. Rhodes, J. Goerzen

Foundations of Python Network Programming, 3rd Еd.

Apress

2014

3

Dr. M.O.F. Sarker, S. Washington

Learning Python Network Programming

Packt Publishing

2015

Additional Literature

No.

Author

Title

Publisher

Year

1

N. Yocom, J. Turner, K. Davis

The Definitive Guide to Linux Network Programming

Apress

2004