
文章目录
-
-
- 应用层协议的核心定义:"通信合同"的关键内容🥝
- [应用层协议的分类:公共标准 vs 专有协议🧾](#应用层协议的分类:公共标准 vs 专有协议🧾)
- 应用层协议与网络应用的关系🤔
- 应用层协议的实际工作场景🥝
-
在计算机网络中,进程通过套接字发送和接收数据报文,但这些报文的格式、内容和交互规则是如何定义的?这就是 应用层协议 的作用。
应用层协议为不同端系统上的应用程序提供了通信的"规则手册",确保双方能够理解彼此的数据。
应用层协议的核心定义:"通信合同"的关键内容🥝
应用层协议定义了以下关键内容,类似于双方达成的"通信合同":
-
报文类型与结构
- 报文类型:例如,请求报文(Request Message)和响应报文(Response Message)。
- 报文语法:字段的排列方式和格式。例如,HTTP请求报文包含方法(GET/POST)、URL、协议版本等字段。
- 字段语义:每个字段的具体含义。例如,HTTP的
Content-Type
字段表示数据的类型(如html
表示网页内容)。
-
交互规则
- 发送时机:进程何时发送报文。例如,Web浏览器在用户输入网址后立即发送HTTP请求。
- 响应规则:如何处理收到的报文。例如,Web服务器在收到HTTP请求后返回对应的网页内容。
应用层协议的分类:公共标准 vs 专有协议🧾
应用层协议可分为两类,适用场景和特点各不相同:
公共标准协议
由RFC(Request for Comments)文档 标准化,供全球开发者自由使用。
典型例子:
- HTTP(超文本传输协议) :Web浏览器与服务器通信的标准协议(如访问
https://www.baidu.com
)。 - SMTP(简单邮件传输协议) :电子邮件的发送协议。
特点:跨平台兼容性高。例如,任何遵循HTTP标准的浏览器都能访问任何符合标准的Web服务器。
专有协议
由企业或组织自定义,不对外公开。
典型例子:
- Skype:使用专有的音视频传输协议,优化实时通信性能。
- Netflix DASH(动态自适应流媒体协议) :用于视频流的自适应码率传输。
特点:灵活性高,但仅限内部或特定生态使用。
应用层协议与网络应用的关系🤔
应用层协议是网络应用的**"一部分"**,而非全部。网络应用通常由多个组件构成,而协议仅定义其中的数据交换规则。
案例1:Web应用
组成部分包括:
- HTML/CSS/JavaScript:网页内容与交互逻辑的标准。
- Web浏览器(如Chrome、Edge):解析并渲染网页。
- Web服务器(如Apache、Nginx):存储并响应网页请求。
- HTTP协议 :定义浏览器与服务器之间的报文格式和交互规则(如
GET /index.html HTTP/1.1
)。
可见,HTTP协议仅作为Web应用的"通信规则",整个应用还包括内容格式、客户端程序等。
案例2:Netflix视频服务
组成部分包括:
- 视频存储与传输服务器:存储电影并分发流媒体数据。
- 客户端应用:手机、平板或电视上的Netflix程序。
- DASH协议(动态自适应流媒体协议) :定义客户端与服务器之间视频数据的传输规则(如根据带宽调整视频分辨率)。
可见,DASH协议仅负责视频流的传输规则,整个服务还包括用户认证、计费系统等。
应用层协议的实际工作场景🥝
场景1:HTTP在Web中的应用
用户行为:在浏览器中输入https://www.google.com
。
协议流程:
- 浏览器发送HTTP请求报文(如
GET / HTTP/1.1
)。 - 服务器返回HTTP响应报文(如HTML页面内容)。
场景2:DASH在视频流中的应用
用户行为:在Netflix上播放《权力的游戏》。
协议流程:
- 客户端请求视频的"索引文件",包含分段视频的地址。
- 客户端根据当前带宽下载不同分辨率的视频片段(如720p或1080p)。
如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!