应用层
一、应用层协议原理
1.网络应用的体系结构
1.1 客户-服务器(C/S) 体系结构
C/S结点不平等,扩展性差
1.2 对等体(P2P)体系结构
每一个节点既是客户端又是服务器
1.3 混合体:客户 - 服务器和对等体系结构
文件搜索:C/S ; 文件传输: P2P
2.应用进程间的通信
应用层只需使用传输层的服务来实现进程通信功能。
2.1 分布式进程需要解决的问题
2.1.1 进程标示和寻址问题
2.1.2 传输层 - 应用层提供服务是如何
应用层需使用传输层提供的服务实现进程通信功能。应用层与传输层间存在SAP(TCP/IP:socket)服务访问点,可通过SAP调用应用层序接口API(TCP/IP:socket API)来实现进程通信。
2.1.3 传输层提供的服务 - 需要穿过层间的信息
应用层向传输层传递数据必须携带的信息:
- SDU:要传输的报文
- 本地IP++TCP(UDP)端口:谁传的
- 对方IP++TCP(UDP)端口:传给谁
如果每次使用Socket API传输报文时都得携带以上信息,不容易管理。便引入socket
这一概念,作为信息的代表。
2.2 传输层提供的服务 - 层间信息的代表(socket-套接字)
TCP socket
在传输层维护一张表,某个整数(标识)可映射到某一对应四元组。一个整数对应一个四元组,一个四元组对应一个会话
。
引入socket后,应用使用这个标识,与远程的应用进程通信,不必在每一个报文的发送都要指定这 4 元组。
UDP socket
UDP 套接字指定了应用所在的一个端节点( end
point )【端结点=IP+port】
TCP提供可靠的传输,就像淘宝卖家给我们发货,对应的四元组<卖家地址,卖家门牌号,买家地址,买家门牌号>,货物损坏你可以发回去给卖家。
UDP提供不可靠的传输,我给你发东西,东西坏了你不需要给我发回来,只需要<发货地址,门牌号>二元组即可。