Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MIC0003	Computer Networks	

Semester	Hours: C+S+L+P	Category	Status	
4	2+0+2+1	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
DARABANT Sergiu	Ph.D.	Lect.	Computer Systems	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
This course is an introductory course on computer networks. Using the Internet as a vehicle, this course introduces the underlying concepts and principles of modern computer networks with emphasis on protocols, architectures, and implementation issues. The main goal of this course is to understand layering in computer networks, understand different protocol stacks (OSI and TCP/IP), understand functions and protocols within a layer, understand how layers fit together and finally understand how the Internet works. The whole course is built around the TCP/IP and related protocols. At the end of this course, students should have all the basis knowledge about TCP/IP – theoretical aspects and programming communicating applications.	

IV. Course contents
1. Computer Networks and the Internet 
- What Is the Internet? 
- Packet-Switched Networks 
- Protocol Layers and Their Service Models
- Introduction to TCP sockets. 

2. TCP/IP Input/Output Modes
 - Blocking I/O
- Non-Blocking I/O – non-blocking sockets
- Multiplexed I/O – select and poll
- Programming UDP sockets.
- Principles of layered communication protocols;
- The OSI reference model;
- The TCP/IP reference model;
- Network standardization: standards, RFCs, etc

3. The Network Layer and the  Internet Protocol (IP)
-  the Internet Network Layer 
- The IP related protocols and layers: IP, ICMP, routing, TCP, UDP
- IP Addressing
- Classfull Addressing;
- Classless IP addressing (CIDR);
- Special IP addresses and reserved addresses;
- Network Address allocation;

4. Network Layer – the IP protocol
- structure of the IP datagrams;
- IP datagrams from source to destination;
- datagram fragmentation/reassembly;
- checksumming;
- static routing tables;
 
5. The Transport Layer (TCP and UDP)
- The UDP protocol
- UDP datagram structure;
- UDP ports;
- UDP checksum;
- Broadcast and multicast;
- the TCP protocol;
- structure of the TCP segment;
- TCP ports 
- TCP principles of data transmission;

6. The Transport Layer 
- The 3-way TCP handshake;
- sequence and acknowledge numbers;
- TCP client state machine;
- TCP server state machine;
- TCP sliding window and window management;
- TCP retransmission;
- Congestion control and slow start;

7. The Network Layer (ICMP)
- error and network state signaling;
- ICMP datagram structure;
- ICMP types and codes;
- Routing algorithms – distance vector  and link state;
- Intra-autonomous: RIP and OSPF;
- BGP principles;

8. The Application Layer
- The DNS protocol and architecture;
- DNS Message structure;
- Registering a domain name;
- DNS tools;
- The FTP protocol;

9. The Application Layer -continued
- Mail – SMTP 
- Mail – POP3 / IMAP 
- HTTP
- TELNET, SSH (principles of secure communication)

10. The Physical Layer
-  Theoretical basis of Data Communication;
- Signal & Energy Loss;
- Bandwidth vs data rate;
- Nyquist and Shannon theorems;
- Transmission medias: twisted pairs, magnetic, coaxial, fiber, wireless, satellite;

11. Data Link Layer and Local Area Networks 
- Data Link Layer Services 
- Multiple Access Protocols 
- LAN Addresses and ARP 
- Ethernet 
- Hubs, Bridges, and Switches 
- Wireless Links 

12 Data Link Layer
- Error-Detection and Error Correction Techniques 
- Parity errors;
- hamming detection and correction codes;
- Checksumming methods;
- Cyclic redundancy check methods;
- Medium access control;

13. Other TCP/IP related protocols and issues
- Mobility in IP networks;
- NAT/PAT, proxies;
- IPv6 – general introduction;

14. Security in Computer Networks 
- What is network security? 
- Principles of cryptography 
- Attacks and Counter-measures 

V. Bibliography
1.	A.S. Tanenbaum – Computer Networks 4th ed., Prentice Hall, 2003
2.	J. Kurose, K. Ross, Computer Networking: A Top Down Approach, Addison-Wesley, rev2,3,4 2002-2007. 
3.	Douglas E. Comer, Internetworking with TCP/IP 
a.	Vol 1- Principles, Protocols, and Architecture 
b.	Vol 3- Client-Server Programming and Applications 
4.	G.R.Wright, R. Stevens, TCP/IP Illustrated – vol 1,2, Addison Wesley.
5.	Matt Naugle, Illustrated TCP/IP – A Graphic Guide to protocol suite, John Willey & Sons, 1999.
6.	W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API   
7.	Peterson, Larry - Davie, Bruce: Computer Networks: A Systems Approach. Morgan Kaufman, (3rd ed.), 2003.
8. Stallings, William: Data and Computer Communications. Prentice Hall, (6th ed.), 2000.
9. Tanenbaum, Andrew S.: Computer Networks. Prentice Hall, (4th ed.), 2003.	

VI. Thematic of didactic activities per weeks
Course activity described /weeks in the Course Content
Lab activity:
-	Implementation of a simple UDP and TCP client-server application; (2 weeks)
-	Definition and implementation of protocol –using TCP; (2 weeks)
-	Definition and implementation of a reliable protocol over UDP (3 weeks)
-	Implementation of a broadcast application (2 weeks);
-	Implementation of a complex multicast application (2 weeks);
-	Simulation of a routing algorithm/method; (2 weeeks)
Final revision	

VII. Didactic methods used
Speech, Conversation, Didactical Demonstration, Discovery	

VIII. Assessment
- laboratory project and other lab activity for 50% of the final grade;
- written theoretical exam for 50% of the final grade

Course page: http://www.cs.ubbcluj.ro/~dadi/compnet	

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
								Lect. DARABANT Sergiu, Ph.D.