客户端-服务器编程模型
每个网络应用都是由一个服务器进程和多个客户端进程组成的。
-
服务器 管理某种资源,通过操作这种资源为客户端提供服务
-
基本操作 事务(transaction),这里的事务就是下边4个步骤,没有原子性等数据库特性,与数据库事务是不同的概念。
- 客户端—请求—>服务器 when 需要服务时。客户端需要服务时,向服务器发起请求。
2)服务器收到请求,解释它,以适当的方式操作资源
3)给客户端发送一个响应,并等待下一个请求。
4)客户端收到响应并处理。
客户端和服务器是进程 不是主机。
网络
- 对主机而言,网络是有一种I/O设备。从网络上接收到的数据经过I/O和内存总线复制到内存。
- 物理上说,网络是按照 地理远近组成的层次结构。最低层的是LAN(Local Area Network,局域网)。最流行的局域网技术是以太网(Ethernet)从3Mb/s到10Gb/s
局域网
以太网段、集线器
采用以太网技术的局域网的最小单位是以太网段
- 一个以太网段,包括一些电缆(双绞线)和一个叫做集线器的小盒子。一端连接到主机的适配器,另一端连接到集线器的一个端口上。
- 集线器不加分辨的将从一个端口上收到的每个位复制到其他所有的端口上。
- 每个以太网适配器都有一个全球唯一的48位地址,它存储在这个适配器的非易失性存存储器上。
- 以太网段的每个电缆都有相同的最大位宽
- 一个以太网段可以跨越较小的区域,房间或楼层
网桥
使用一些电缆和叫做网桥(bridge)的小盒子,多个以太网段可以连接成较大的局域网,称为桥接以太网(bridge Ethernet)。
- 与网桥相连接的电缆不需要拥有相同的带宽。
- 桥接以太网能跨越整个建筑物或者校区
- 分配端口上收到的位的方式更智能,只在有必要时,有选择的将帧从一个端口复制到另一个端口。比如同一个以太网段中的两台主机A和B,由A向B发送数据,在数据发送到网桥的输入端口时,网桥就丢弃此帧。
路由器
连接多个不兼容的局域网是通过叫做路由器(router)的特殊计算机。
帧 一段位(frame)由固定数量头部(header)加上有效载荷 —- 源和目的地址 、 此帧的长度 | 有效载荷(payload)。其中有效载荷就是要发送的数据
互联网络特性:采用完全不同和不兼容技术的各种局域网和广域网组成。
每台主机和其他主机都是物理相连的,如何让某台主机跨过所有这些不兼容的网络发送数据位到另一台主机呢?
解决办法是一层运行在所有主机和路由上的协议软件,消除不同网络之间的差异,协议需要实现的两个主要功能。
- 命名机制 互联网络协议通过定义一种一致的主机地址格式消除了这些差异。每个主机会被分配至少一个这种互联网络地址(internet address)
- 传送机制 定义一种把数据位捆扎成不连续的片(称为包)的统一方式,从而消除了这些差异。一个包由包头和有效载荷组成。
参考
- 深入理解计算机系统 11 网络编程