1 .首先,应当理解,APP应用层协议定义了APP应用过程之间的通信和交互的规则。
2 .主流的APP应用体系结构有三种:
客户-服务器体系结构(C/S )可扩展性差:如果只有一台服务器,并且有成千上万的用户同时访问,高并发性的场景服务器可能会崩溃。
客户之间不能直接通信。
Web、FTP、Telnet和电子邮件都是C/S体系结构。
P2P架构具有很强的自扩展性,既可以作为客户端,也可以作为服务端。 但是,很难管理。 混合体集成了C/S和P2P两种体系结构。 3 .进程间通信
其中,进程P1和进程P2的通信通过操作系统自身提供的通信方式进行通信(管道、信息队列、共享缓冲器等)。
进程P2和P3通过操作系统提供的网络协议消息传递服务进行通信。
那么,如何区分不同的应用流程呢? 它们是如何相互通信的? 这需要解决三个问题。
进程id和进程地址。 (服务用户)
传输层- APP传输层提供的服务怎么样? (提供服务)
位置:层间接口的sap (插座) ) ) ) ) ) ) ) )的位置) ) ) ) ) ) ) )。
格式: APP应用程序接口API (套接字API )。
如何使用传输层提供的服务实现APP传递过程之间的消息交换,实现APP传递。 (用户使用服务)
过程P2和P3的通信实际上是其中利用传输层通过层间接口上的套接字API提供的服务和传输层通过以下层中的服务与P3进行通信。
提出问题,怎么解决问题?
问题:确定进程和进程地址。 解决方案:寻址进程(IP地址和端口) ) ) ) ) ) ) )。
问题)传输层- APP应用层提供的服务怎么样? 解决方案:必须通过传输层提供的服务-层间接口。 那么
必须携带的信息
要转发的消息是什么? 微信
告诉谁(作为对方APP应用程序进程的标识(IP TCP/UDP端口号) ) )。
是谁给的(对方的APP应用程序识别:对方的IP TCP/UDP端口号)? 世卫组织
如果每次都携带这三条信息,太繁琐了,容易出错。
因此,形成了四对TCP套接字:源IP、源端口、目标IP和目标端口。 TCP套接字是本地标识符,物理上是整数,TCP标识两个应用进程会话之间的关系。 这是一个表,P2可以在这个表中找到想要通信的APP。
UDP套接字(二元组) :源IP、源UDP端口。 发送的时候需要UDP socket、携带发送的信息、目标IP和port。
请注意,TCP套接字/UDP套接字因主机而异。 为了S1-S2进行通信,S1-S1-socket 1具有各自的套接字1,到达运输层,并在其间制作了4对TCP套接字11。 S2还与S3通信,S2有自己的套接字2,到达传输层,在此期间建立了TCP套接字22的4组。 那么,这两个TCP套接字不同。
说明端口和套接字的区别。
端口用于区分进程。 套接字用于确定最终系统。