COMP 322 - Computer Networks Programming
Istanbul Bilgi University, Department of Computer Science, 2007-2008 Spring
The connection of computers in networks, whether local or global, has added a new dimension to the power of computers. This course aims to introduce students to the standards that make this power possible, the theoretical concepts needed to understand it, and approaches for designing networked systems. Practical element of the course involves writing programs that use the various protocol stacks to carry out network computing tasks. Subjects covered include layered network architecture, network topologies, connectivity and delay analysis, backbone protocols and equipment for transmission and multiplexing of data, routing and congestion, wireless networks, local networks, and peer-to-peer networks.
Good command of Java language and concurrency is strongly recommended for the programming applications of the course.
Course website: http://cs.bilgi.edu.tr/pages/courses/year_/comp_322/
Instructor: Mehmet GenÃ§er : http://cs.bilgi.edu.tr/~mgencer
There are two mailing lists for the course: comp-322-announce is used for announcement of assignments and deadlines by the lecturers, and comp-322-discuss is available for course related discussions. The mailing lists can be accessed at http://cs.bilgi.edu.tr/mailman/listinfo/.
Online submission system will be used for submitting project assignments, which can be accessed from department website.
On successful completion of this course, the student should be able to:
Demonstrate a robust understanding of digital data transmission, packet switching, and the Internet protocol stack.
- Understand security issues in Internet communication, make informed choices about security measures and apply them using common security tools.
- Understand differences of connectionless and connection-oriented communication and make informed choices for application scenarios.
- Implement concurrent network applications using connectionless and connection-oriented infrastructure.
- Describe and utilize encryption and hashing techniques.
- Implement client/server systems using distirbuted programming techniques.
- Demonstrate an firm understanding of network topologies and their consequences.
The first of the following texts provides the most complete coverage of course subjects, however students are recommended to refer to various texts, including but not limited to following:
Data and Computer Communications (seventh edition). William Stallings. Prentice Hall, 2004. There is a book website at http://williamstallings.com/DCC/DCC7e.html.
- Java network programming, Elliotte Rusty Harold, 2000. (electronic resource available at Bilgi library)
Evaluation of student performance will be based on performance in project assignments and self-evaluation.
1Â Â Tentative outline
Generalized communication models. Digital vs analog data. Circuit and packet switching. Assembling streams from packets. Generic issues in digital communication systems.
- The layered network protocol stack. Physical and data layers. Local area network equipment and network topologies.
- The network layer: IP protocol, routing and backbone network technologies. IP addresses and access points. Domain Name Service. DHCP service. Network address translation. IP level security and virtual private networks.
- The transport layer: UDP and TCP protocols. DNS revisited. The inetd server. Firewalls.
- Stream formatting and application layer. Common application layer protocols and programming.
- Transport layer security. SSL and certificates.
- Concurrency and performance in network services.
- Multicast technology.
- XML-RPC programming.
- Emerging network topologies: ad-hoc networks and peer-to-peer networks.
- Beyond Java and Internet: emerging technologies for highly parallel computing systems.
This document was translated from LATEX by