Slides



ICS 651:
Computer Networks






Edo Biagioni


esb@hawaii.edu



Department of Information and Computer Science



Today's Outline



Course Overview


Notes:




Course Outline



Networking

A computer network is a hardware and software system that enables a collection of computers to communicate.

"Computer Networks are able to carry many different types of data and support a wide range of applications"

Networking is the engineering, science and art of designing computer networks.


Notes:




Networking Hardware

Although this course will not focus on designing networking hardware, the design and performance analysis of networks and protocols require a high-level understanding of network hardware.

We will look at a variety of point-to-point links, shared media, and token rings.


Notes:


This is the first slide in the section "why are networks interesting". Of course we all know networks are interesting because the Internet grows more popular every day and appears in the mass media, but here are a few other reasons...



Networking Protocols

Networking protocols are the focus of this course. We will study in some detail the main protocols of the TCP/IP suite (the Internet protocols), have a chance at designing protocols to solve specific problems, and look at existing protocols to understand their strengths and weaknesses.

We will also review protocol structuring principles such as the OSI 7-layer model.



Networking Software

Networking protocols are implemented in networking software.

We will learn in some detail about the {\bf x-kernel}, a system infrastructure for implementing networking protocols. We will also be looking at other existing implementations and compare them. We will consider practical issues such as structure and performance.



Performance

When networks are put into actual use, performance is often an issue. We will consider different measures of performance such as latency, bandwidth, connection setup time, and how to reliably measure these characteristics.



Client-Server

A client is a program that requests a service; a server is a program that provides a service. Clients and servers normally run on different machines, and use computer networks to communicate.





(Picture omitted from HTML version)

Notes:


Let us start with a small example of using computer networks.

A client on one machine can send a request to a server on a different machine. The server will generally respond appropriately.

This is a very generic model, and can encompass all sort of interactions. For example:



Client-Server Examples


Notes:


Can anyone else name other client/server systems? E.g. mail (SMTP), news (NNTP).



Homework