Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MIC0003	Computer Networks	

Semester	Hours: C+S+L+P	Category	Status	
6	2+0+2+0	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 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. "Cookie Central." [http://www.cookiecentral.com]
2. BULACEANU, CLAUDIU: Retele locale de calculatoare, Bucuresti: Editura Tehnica, 1995.
3. CAMPIONE, MARY - WALRATH, KATHY - HUML, ALISON: The Java(TM) Tutorial. Addison-Wesley, 2000. [http://java.sun.com/docs/books/tutorial/]
4. GIBBS, MARK: Retele de calculatoare pentru începatori. Bucuresti: Teora, 1996.
5. KUROSE, JAMES F. - ROSS, KEITH W.: Computer Networking: A Top-Down Approach Featuring the Internet. Addison-Wesley, (2nd ed.), 2000.
6. MAHMOUD, QUASAY H.: Sockets programming in Java: A tutorial. [http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html]
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, (3rd ed.), 2003.
10. TANENBAUM, ANDREW S.: Retele de calculatoare. Tg. Mures: Computer Press Agora, 1997.

VI. Thematic of didactic activities per weeks
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

Lab and project 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)
-	Implementation of a subpart of the DNS protocol
-	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.