概述
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
分层的好处
- 各层之间是独立的。
- 灵活性好。
- 结构上可分割开。
- 易于实现和维护。 能促进标准化工作。
五层协议的体系结构
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。
最下面的网络接口层并没有具体内容。
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
发送数据的基本流程
- 应用进程数据先传送到应用层,加上应用层首部,成为应用层 PDU
- 应用层 PDU 再传送到运输层,加上运输层首部,成为运输层报文
- 运输层报文再传送到网络层,加上网络层首部,成为 IP 数据报(或分组)
- IP 数据报再传送到数据链路层,加上链路层首部和尾部,成为数据链路层帧
- 数据链路层帧再传送到物理层,最下面的物理层把比特流传送到物理媒体
- 电信号(或光信号)在物理媒体中传播 从发送端物理层传送到接收端物理层
- 物理层接收到比特流,上交给数据链路层
- 数据链路层剥去帧首部和帧尾部 取出数据部分,上交给网络层
- 网络层剥去首部,取出数据部分 上交给运输层
- 运输层剥去首部,取出数据部分 上交给应用层
- 应用层剥去首部,取出应用程序数据 上交给应用进程
- 我收到了 AP1 发来的 应用程序数据!
协议
实体、协议、服务 和服务访问点
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。
下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
协议必须将各种不利的条件事先都估计到,而不能假定一切情况都是很理想和很顺利的。
必须非常仔细地检查所设计协议能否应付所有的不利情况。 应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。
连接服务
面向连接服务(connection-oriented)
面向连接服务具有连接建立、数据传输和连接释放这三个阶段。
无连接服务(connectionless)
两个实体之间的通信不需要先建立好连接。 是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(best effort delivery)或“尽力而为”。
客户和服务器
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户-服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务请求方,服务器是服务提供方。
客户软件的特点
在进行通信时临时成为客户,但它也可在本地进行其他的计算。
被用户调用并在用户计算机上运行,在打算通信时主动向远地服务器发起通信。
可与多个服务器进行通信。 不需要特殊的硬件和很复杂的操作系统。
服务器软件
专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
在共享计算机上运行。当系统启动时即自动调用并一直不断地运行着。
被动等待并接受来自多个客户的通信请求。 一般需要强大的硬件和高级的操作系统支持。