1. 客户端-服务端编程模型

每个网络应用都是基于客户端-服务器模型。一个应用是由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过这种资源来为它的客户端提供某种服务。客户端和服务器是进程,而不是常提到的机器或者主机。

客户端-服务器模型中的基本操作是事务。这个事务不是数据库事务,没有数据库事务的任何特性,它仅仅是客户端和服务器执行的一系列步骤。

客户端-服务器事务

2. 网络

对主机而言,网路只是另一种 I/O 设备,是数据源和数据接收方。

网路是一个按照地理远近组成的层次系统,最低层是局域网(LAN),最流行的局域网技术是以太网。

网络协议消除了不同网络之间的差异,使主机和路由器协同工作来实现数据传输,封装是数据传输的关键。

3. 全球 IP 因特网

客户端-服务器应用的组织一直保持相当的稳定。每台主机都运行实现 TCP/IP 的软件,几乎每个现代
计算机都支持这个协议。客户端和服务器混合使用套接字接口函数和 Unix I/O 函数进行通信。

一个 IP 地址就是一个 32 位无符号整数,使用点分十进制表示法表示。为了方便人们记忆,定义了域名以及将域名映射到 IP 地址的机制。

套接字是连接的端点,套接字地址是由互联网地址和 16 位的整数端口组成的,用「地址:端口」来表示。当客户端发起一个请求时,
客户端套接字地址中的端口是由内核自动分配的,称为临时端口。服务器套接字地址端口通常是某个知名端口,和 这个服务相对应。

互联网连接分析