目录
2.1网络层协议的原理
创建一个新的网络应用编程
- 在不同的端系统运行
- 通过网络基础设施提供的服务,应用进程彼此通信
- 如web,Web服务器软件与浏览器软件通信
网络核心中应用层软件
- 网络核心没有应用层功能
- 网络应用只在端系统上存在,快速网络应用开发和部署
2.1.1网络应用程序体系结构
- 客户服务器模式(C/S:client/server)
- 对等模式(P2P:peer To peer)
- 混合体(客户服务器模式和对等体系结构)
客户--服务器(C/S)体系结构
服务器:
- 一直运行
- 固定的地址和周知的端口号(约定)
- 扩展性:服务器场(数据中心进行扩展,扩展性差)
客户端:
- 主动与服务器通信
- 与互联网有间接性的连接
- 可能时动态IP地址
- 不直接与其他客户端通信
对等体(P2P)体系结构
- (几乎)没有一直运行的服务器
- 任意端系统之间可以进行通信
- 每个节点即是客户端又是服务器(自扩展性--新peer节点带来新的服务能力,当然也带来新的服务请求)
- 参与的主机间歇性连接且可以改变IP地址(难以管理)
C/S和P2P体系结构的混合体
naster
- 文件搜索:集中
主机在中心服务器上注册其资源
主机向中心服务器查询其资源
- 文件传输:P2P
任意peer节点之间
即时通信
- 在线检测:集中
当用户上线时,向中心服务器注册其IP地址
用户与中心服务器联系,以找到其在线好友位置
- 两个用户之间聊天:P2P
2.1.2进程通信
进程:在主机上运行的应用程序
- 在同一个主机内,使用进程间通信机制通信(操作系统定义)
- 不同主机,通过交换报文(msaaage)来通信
- 使用OS提供的通信服务
- 按照应用协议交换报文(借助传输层提供的服务)
clients--------servers
客户端进程:发起通信的进程
服务器进程:等待连接的进程
进程与计算机网络之间的接口:套接字
套接字是同一台主机应用层与运输层之间的接口
进程寻址:在一台主机上运行的进程为了向在另外一台主机上运行的进程发送分组,接收进程需要有一个地址。为了标识该接收进程,需要定义两种信息:
- 主机的地址;
- 定义在目的主机中的接收进程的标识符;
在英特网中,主机由其IP地址(IP address)标识。IP地址是一个32比特的量且它能够唯一地标识该主机。
套接字:从一个进程向另外一个进程发送的报文必须通过下面的网络。进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。
2.1.3可供应用程序使用的服务
- 可靠数据的传输
- 吞吐量(即运输层协议能够以某种特定的速率提供确保的可用吞吐量)
- 定时(为了有效性而要求数据交付有严格的时间限制)
- 安全性
2.1.4英特网提供的运输服务
TCP服务
- 面向连接的服务
要求在客户端进程和服务器进程之间建立连接,当应用程序结束报文发送时,必须拆除连接
- 可靠的数据传输服务
通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据
UDP服务
- 无连接服务
两个进程通信前面没有握手过程
- 不可靠数据传输
UDP协议不保证该报文到达接收进程,到达进程的报文也可能时乱序的
安全层套接字(Secure Sockets Layers,SSL):用SSL加强后的TCP不仅能够做传统TCP的一切,而且提供了关键的进程和进程到进程的安全性服务,包括加密、数据完整性和端点鉴别。