1、应用层协议原理
1.1 网络应用的体系结构:
可能的应用架构:
1)客户-服务器模式(C/S:client/server)
2)对等模式(P2P:Peer To Peer)
3)混合体:客户-服务器和对等体系结构
1.1.1 客户-服务器模式(C/S:client/server)
服务器端:
- 一直运行
- 固定IP地址和周知的端口号
- 扩展性:服务器短的扩展性较差
客户端:
- 主动与服务器通信
- 与互联网有间歇性的连接)
- 可能是动态IP地址
- 不直接与其它客户端通信
缺点:可拓展性差 达到一定能限(阈值),性能暴跌 可靠性差

1.1.2 对等模式(P2P:Peer To Peer)
- (几乎)没有一直运行的服务器
- 任意端系统之间可以进行通信
- 每一个节点既是客户端又是服务器
- 自扩展性-新peer节点带来新的
- 服务能力,当然也带来新的服务请求
1.2、进程通信
进程:在主机上运行的应用程序
-
在同一个主机内,使用进程间通信机制通信(操作系统定义)
-
不同主机,通过交换报文(message)来通信
客户端进程:发起通信的进程
服务器进程:等待连接的进程
注意:P2P架构的应用也 有客户端进程和服务器进程之分
1.3 分布式进程通信需要解决的问题
应用进程如何使用传输层提供的服务交换报文

1.3.1、问题1:进程标识和寻址问题(对于进程 谁发/谁收,对等层实体之间)
-
进程为了接收报文,必须有一个标识
- 主机:唯一的32位IP地址
- 端口号(Port Numbers) 用来区分不同的应用进程
所采用的的传输层协议:TCP/UDP
-
一个进程:用IP + port 标识端节点
-
本质上,一对主机进程之间的通信由2个端节点构成
1.3.2、问题2:传输层-应用层提供服务是如何 (上下层间)
- 位置:层间界面的SAP (TCP/IP :socket)
- 形式:应用程序接口API (TCP/IP :socket API)
传输层提供的服务-需要穿过层间的信息
层间接口必须要携带的信息
- 要传输的报文(对于本层来说:SDU) (SDU——未经本层封装的) (发的什么)
- 谁传的:对方的应用进程的标示:IP+TCP(UDP)端口 (谁发的)
- 传给谁:对方的应用进程的标示:对方的IP+TCP(UDP)端口号 (发给谁)
传输层实体(tcp或者udp实体)根据这些信息进行TCP报文段(UDP数据报)的封装
源端口号,目标端口号,数据等
将IP地址往下交给IP实体,用于封装IP数据报:源IP,目标IP
如果Socket API(原语)每次传输报文(穿过层间),都携带如此多的信息,太繁琐易错,不便于管理
用个代号标示通信的双方或者单方: socket
就像OS打开文件返回的句柄一样
对句柄的操作,就是对文件的操作
1.3.2.1 TCP socket
1、TCP服务,两个进程之间的通信需要之前建立连接,两个进程通信会持续一段时间,通信关系稳定。
2、可以用一个整数(socket)表示两个应用实体之间的通信关系,本地标识
3、用一个整数标识传输,穿过层间接口的信息量最小
4、TCP socket:源IP,源端口,目标IP,目标IP,目标
TCP socket 是一个整数(类似文件描述符)代表一个四元组(我的IP和端口号 对方的IP和端口号)
便于管理 使得穿过层间的信息量最小
是应用层和传输层的一个约定 本地会话的标识
对于使用面向连接服务(TCP)的应用而言,套接字是4元组的一个具有本地意义的标识
-
4元组: (源IP,源port,目标IP,目标port)
-
唯一的指定了一个会话(2个进程之间的会话关系)o应用使用这个标示,与远程的应用进程通信
-
不必在每一个报文的发送都要指定这4元组
-
就像使用操作系统打开一个文件,OS返回一个文件句柄一样,以后使用这个文件句柄,而不是使用这个文件的目录名、文件名
-
简单,便于管理

穿过层间接口的包括 ICI 和 SDU
1.3.2.2 UDP socket
1.3.3、问题3:如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用 (本层间)
- 定义应用层协议:报文格式、解释、时序等
- 编制程序,使用OS提供的API,调用网络基础设施提供通信服务传递报文,解析报文,实现应用时序等;

本文详细介绍了网络应用的体系结构,包括客户-服务器模式和对等模式。重点讲解了进程通信、TCP/UDP套接字的工作原理,以及应用层协议如HTTP、FTP和DNS的基本概念和功能。在TCP套接字编程中,阐述了服务器端和客户端的交互过程,而在UDP套接字编程中,强调了其无连接特性和应用场景。此外,还讨论了传输层服务的选择,如可靠性和延迟等因素对应用的影响。
最低0.47元/天 解锁文章
2495

被折叠的 条评论
为什么被折叠?



