应用层基础
应用层基础
应用层也称为应用实体,它由若干个特定应用服务元素和一个或多个公用应用服务元素组成。
网络应用的实例:互联网流行的应用层协议
- HTTP
- FTP
- SMTP / POP3 /IMAP
- DNS
编程:网络应用程序
- Socket API
体系结构
客户-服务器(C/S)体系结构
服务器:
- 一直运行
- 固定的IP地址和周知的端口号(约定)
- 扩展性差
客户端:
主动与服务器通信
与互联网有间歇性的连接
可能是动态IP 地址
不直接与其它客户端通信
对等体(P2P)体系结构
特点:
(几乎)没有一直运行的服务器
任意端系统之间可以进行通信,并且每一个节点既是客户端又是服
务器参与的主机间歇性连接且可以改变IP 地址
缺点:
- 难以管理
也有C/S和P2P体系结构的混合体:
- Napster
相关概念
- 数据丢失率
- 有些应用则要求100%的可靠数据传输(如文件)
- 有些应用(如音频)能容忍一定比例以下的数据丢失
- 吞吐
- 一些应用(如多媒体)必须需要最小限度的吞吐,从而使得应用能够有效运转
- 一些应用能充分利用可供使用的吞吐(弹性应用)
- 延迟
- 一些应用出于有效性考虑,对数据传输有严格的时间限制
- 安全性
- 机密性
- 完整性
- 可认证性
进程通信
进程标示和寻址问题
进程为了接收报文,必须有一个标识即:SAP(发送也需要标示)
- 主机:唯一的32位IP地址
- 仅仅有IP地址不能够唯一标示一个进程;在一台端系统上有很多应用进程在运行
- 所采用的传输层协议:TCP or UDP
- 端口号(Port Numbers)
传输层-应用层提供服务所传递的信息
- 层间接口必须要携带的信息
- 要传输的报文(对于本层来说:SDU)
- 谁传的:对方的应用进程的标示:IP+TCP(UDP) 端口
- 传给谁:对方的应用进程的标示:对方的IP+TCP(UDP)端口号
- 传输层实体(tcp或者udp实体)根据这些信息进行TCP报文段(UDP数据报)的封装
- 源端口号,目标端口号,数据等
- 将IP地址往下交IP实体,用于封装IP数据报:源IP,目标IP
如果Socket API 每次传输报文,都携带如此多的信息,太繁琐易错,不便于管理
- 用个代号标示通信的双方或者单方:Socket
- 就像OS打开文件返回的句柄一样
如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用
- 定义应用层协议:报文格式,解释,时序等
- 编制程序,通过API调用网络基础设施提供通信服务传报文,解析报文,实现应用时序等
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 goMars的学习随记!
评论