Overview of Computer Networks
Norman Matloff
Dept. of Computer Science
University of California at Davis
c
2001-2005, N. Matloff
April 11, 2005
Contents
1 Significance of Networks 3
1.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 What Are Networks Used For? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Which Aspects of Networks Are Important to Know? . . . . . . . . . . . . . . . . . . . . . 3
2 An Introductory Example 3
3 The Famous, Overrated But Useful 7-Layer Model 5
3.1 Overview of the Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Data Link Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.3 Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.4 Transport Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.5 Session Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.6 Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.7 Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 How the Layers Interact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 More on TCP/IP 8
4.1 TCP/IP Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1
4.1.1 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1.2 UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1.3 Stream Vs. Datagram Communication . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1.4 IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.5 Peer Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.6 Viewing Current Socket Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.7 What Makes a Connection Unique . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Sample TCP/IP Application: NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Network Programming 13
5.1 TCP Socket Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1 Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.2 Who Shall I Say Is Calling? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 UDP Socket Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20