目录
1. 研发一个网络应用程序
2. 网络应用程序体系结构
3. 进程通信
4. 进程与计算机网络的接口 - 套接字
5. 进程寻址
6. 应用层协议
7. 应用需要什么样的服务?
8. 因特网传输协议提供的服务
9. 安全 TCP
1)研发网络应用程序的核心
写出能够运行在不同的端系统并通过网络彼此通信的程序,例如,Web:Web 服务器软件和浏览器软件通信。
网络仅起传递数据的作用,自身并不会产生用户数据,因此网络不需要运行应用程序。
2)没有应用程序运行在网络核心设备上
由于网络不需要运行应用程序,可以看出网络核心设备不在应用层起作用。这种设计方法促进了应用程序的研发,因为研发者不需要关心网络核心设备是怎么样的。
3)设计内容
即,应该遵循怎样的交互形式。
1)客户机/服务器体系结构
2)P2P 体系结构
3)客户机/服务器和 P2P 混合的体系结构
1)客户机/服务器体系结构
服务器
客户机
《十美元》假设教室里有一个老师和很多同学,此时有一个同学找到老师说 “老师,我需要十美元”,随后老师慷慨地给了这位同学十美元。
2)P2P 体系结构
例如:Gnutella
《十美元》假设教室里有很多同学,每个同学身上持有不同币种的货币。此时有一个同学对其他所有人大喊一声 “我需要十美元”,那么身上有十美元的同学说 “我有十美元”,并把自己的十美元给那个需要的同学。
3)客户机/服务器和 P2P 混合的体系结构
该体系结构中,服务器只是一个信息的提供者,并不是真实的数据提供者。
优点:能够定向找到目标。
举例 1:Napster
文件直接在对等方之间交换
举例 2:即时讯息
两个聊天用户之间是 P2P
《十美元》假设教室里有一个老师和很多同学,每个同学身上持有不同币种的货币,并且把自己的持有情况报告给了老师。此时有一个同学找到老师说 “老师,我需要十美元”,那么老师将会查询每个同学的持有情况,告诉这位同学 “XXX 身上有十美元”。随后这位同学找到 XXX 同学,XXX 同学把自己的十美元给这位需要的同学。
进程:运行在端系统中的程序。
注意:具有 P2P 体系结构的应用程序既有客户进程和服务器进程。
1)同一主机上的两个进程通过内部进程通信机制进行通信。
2)不同主机上的进程通过交换报文相互通信。
由于应用程序需要使用传输层的服务,因此应用程序必须实现应用层。
1)进程通过它的套接字在网络上发送和接收报文
2)将套接字类比于门户
3)套接字又叫做应用程序编程接口 API 。
4)用户通过 API 对传输层的控制仅限于:
为了一个进程能接收报文,它需要一个标识。
主机有唯一的 32 位 IP 地址。
主机上的进程标识包括 IP 地址和端口号。
常用应用程序的端口号:
将在第三章详细分析端口号。
1)交换的报文类型,如请求报文和应答报文。
2)报文类型的语法:报文中的各个字段及其详细描述。
3)字段的语义,即包含在字段中的信息的含义。
4)进程何时、如何发送报文及对报文进行响应。
公共领域协议 | 专用协议 |
---|---|
|
|
数据丢失率 | 一些应用 (如:实时音频)能容忍一定程度的数据丢失;另一些应用(如:文件传输,telnet)需要100%可靠的数据传输。 |
---|---|
定时 | 一些应用(如:因特网电话、多方游戏)要求低时延。 |
带宽和吞吐量 | 一些应用(如:多媒体)必须要达到所需带宽;另一些应用(弹性应用)根据需要充分利用可供使用的带宽。 |
安全 | 加密,数据完整性等。 |
常见应用的传输服务需求
由于不同应用对传输服务的需求不同,因此需要选用不同的传输层协议来提供服务。
UDP 服务是一种尽力而为的服务。
TCP 服务 | UDP 服务 |
---|---|
|
|
因特网应用:应用层协议,传输协议
TCP 和 UDP | SSL | SSL 在应用层 | |
---|---|---|---|
特点 | 没有加密;网络明文传输,如用户名和口令信息等。 | 提供加密的 TCP 连接;保证数据完整性;端点认证,即找指定的服务商备案。 | 应用程序使用 SSL 库调用 TCP 服务接口;SSL 提供套接字 API 。 |
位置 | 传输层。 | Security Socket Layer 作为套接字,处于应用层和传输层之间。 | SSL 在应用层。 |
网址中 https 的 s 指的就是 SSL 。