EE562 Network Programming
Module co-ordinators:
Dr. Martin Collier and Dr. Bogdan Ciubotaru
Brief Description
EE562
module aims to introduce the students to advanced network programming concepts.
Goals and Learning Outcomes
The
goal of this module is to introduce the students to advanced network programming concepts. They will study issues such as multitasking, multithreading, processes, inter-process communications and network communications. Client-server communications for long term (e.g. large file transfer, multimedia streaming) and short term sessions (e.g. Web traffic) will be presented. P2P, RMI, applet-servlet, e-mail and multimedia mail will be introduced. Special focus will be put on protocols and languages used in network communications for delivering Web content such as HTTP, HTTPS, HTML, XHTML, XML, WML and streaming multimedia content like RTP, RTCP, RTSP, SIP. Issues such as firewalls, proxy servers, caches will be introduced, as well as elements of CORBA, J2EE, and .NET technologies. The module will also address issues related to the programming of network equipment, including router architecture, network signalling, firewalling and deep packet probes, network processors, network support for unicast, multicast and broadcast, and the use of techniques for dynamically changing router code, such as mobile agents and active networks.
Having successfully completed this course, the students
will:
-
- demonstrate advanced knowledge of networking
- make use of various solutions to perform inter-process communications
- demonstrate knowledge of protocols and languages used in Web and multimedia delivery
- demonstrate advanced knowledge of programming for network communications
- describe major technologies used in network communications
Syllabus
UPPER LAYERS (Dr. Bogdan Ciubotaru)
- Introduction to Processes
Multitasking, processes, multithreading, threads;
Inter-thread & inter-process communications, network communications
- Client-Server Network Programming
Unicast, multicast, broadcast;
Sockets, RMI, applet-servlet communications;
Ping, e-mail and file transfer; ICMP, SMTP, POP3, IMAP, FTP protocols;
Web traffic: HTTP, HTTPS protocols;
- Client-side Network Programming
Static documents; HTML, XHTML, XML languages
Dynamic documents; Applets, Java Script
- Server-side Network Programming
Database access;
Servlets, JSP, ASP, PHP technologies
- Advanced Network Programming Issues
Firewalls, proxy servers, caches;
Elements of CORBA, J2EE, and .NET technologies
LOWER LAYERS (Dr. Martin Collier)
- Low Level Issues
IP overview, Data rates, MPLS, hardware vs. software
Router architecture, network device drivers, buffer management.
- Transport Layer
Review of sockets, TCP protocol description
Implementation of TCP, other transport layer protocols (e.g. RTP, RTCP, RTSP)
- Network Layer
Internet routing protocols (RIP, OSPF, BGP).
Router configuration and network administration. IP support for multicast.
- Signalling in Packet Networks
The control plane, why is signalling needed? End-to-end signalling (e.g. SIP)
QoS and resource reservation, signalling in IP networks, MPLS signalling, signalling gateways.
- Advanced Packet Forwarding
Deep packet probes, policy-based routing,
Hardware acceleration, network processors.
Course Textbooks
Strongly recommended textbooks:
-
B. Quinn, D. Shute, “Windows Sockets Network Programming”, Addison-Wesley, 2005, ISBN 0 201 63372 8
- J. Graba, “An Introduction to Network Programming with Java”, Pearson Education, Addison Wesley, 2003, ISBN 0 321 11614 3
- B. Kurniawan, “Java for the Web with Servlets, JSP and EJB”, New Riders, 2002, ISBN 0 7357 1195 X
- R. W. Sebesta, “Programming the World Wide Web”, Pearson Education, Addison Wesley, 2003, ISBN 0 321 31257 0
- W. R. Stevens, G. R. Wright, “TCP/IP Illustrated”, vol. 1-3, Addison Wesley, ISBN 0 201 63346 9, 0 201 63354 X, 0 201 63495 3
Fred Halsall, "Computer Networking and the Internet",
Fifth Edition, Addison-Wesley, Pearson Education,
2005, ISBN 0-321-26358-8
-
Fred Halsall, "Data
Communications, Computer Networks and Open Systems", Fourth Edition,
Addison-Wesley, Pearson Education,
1996, ISBN 0-201-42293-X
-
Andrew S. Tanenbaum, "Computer
Networks", Fourth Edition, Prentice Hall, Pearson
Education, 2003, ISBN 0-13-038488-7
Recommended textbooks
-
P. J. Deitel, H. M. Deitel, “C How To Program”, Pearson Education, Prentice Hall, 2007, ISBN 0 13 240416 8
-
H. M. Deitel, P. J. Deitel, J. P. Liperi, C. H. Yaeger, “Visual C++ .NET How To Program”, Pearson Education, Prentice Hall, 2004, ISBN 0 13 437377 4
-
Y. D. Liang, “Introduction to Java Programming”, Pearson Education, Prentice Hall, 2005, ISBN 0 13 185721 5
-
George J. Moshos, "Data Communications, Principles and Problems",
West Publishing Company, 1989, ISBN 0-314-48841-3
These textbooks can be found in the campus bookshop. Older versions are
also in the library.
Lecture Notes
Assignment