【王道·计算机网络】第六章 应用层

一、基本概念
1.1 应用层概述
- 应用层对应用程序的通信提供服务
- 应用层协议定义:
- 应用进程交换的报文类型,请求还是响应?
- 各种报文类型的语法,如报文中的各个字段及其详细描述
- 字段的语义,即包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
- 应用层的功能:文件传输、访问和管理,电子邮件,虚拟终端,查询服务和远程作业登录
- 应用层的重要协议:FTP、SMTP、POP3、HTTP、DNS
1.2 网络应用模型
- 网络应用模型:客户/服务器模型Client/Server、P2P模型Peer-to-peer
- 客户/服务器c/s模型:
- 服务器:提供计算服务的设备;永久提供服务、永久性访问地址/域名
- 客户机:请求计算服务的主机;与服务器通信,使用服务器提供的服务;间歇性接入网络;可能使用动态IP地址;不与其他客户机直接通信
- P2P模型:
- 不存在永远在线的服务器
- 每个主机即可以提供服务,也可以请求服务
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
- 可拓展性好
- 网络健壮性强
二、 应用程序相关
2.1 域名解析系统DNS

- 根:.之前的称为顶级域名
- 顶级域名:
- 国家顶级域名:cn,us,uk
- 通用顶级域名:com,net,org,gov,int国际组织,areo航空类,museum,travel…
- 基础结构域名/反向域名(ip → 域名):arpa
- 二级域名
- 类别域名:ac科研,com工商金融,edu,gov,mil中国国防机构,net,org
- 行政区域名:用于我国各省、自治区、直辖市,bj
- 注册域名
2.1.1 域名服务器
- 域名服务器:根域名服务器、顶级域名服务器、权限域名服务器
- 本地(默认)域名服务器:当一个主机发出一个DNS查询请求的时候,首先会发给本地域名服务器(因为它离主机的距离非常近),可以立刻将所查询的主机名转换为IP地址;使DNS查询的过程变得更简单、快速

2.1.2 域名解析过程
- 域名解析:递归查询、迭代查询
- 高速缓存:用来存放最近查过的域名、从哪里获得这个域名映射信息的记录

2.2 文件传输FTP
- 文件传送协议:文件传送协议FTP (File Transfer Protocol)、简单文件传送协议TFTP (Trivial File Transfer Protocol)
- 简单文件传送协议TFTP:
- TFTP的代码块所占的内存比较小,较容易实现、是面向小文件的一种文件传送协议
- 非常适用于UDP环境、程序或者是文件同时向许多机器下载、适用于较小的计算机或者某些特殊用途的设备
- 文件传送协议FTP
- 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
- FTP是一种拷贝:上传、下载
2.2.1 FTP服务器和用户端
- FTP是基于客户/服务器c/s的协议
- 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序
- 依照FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器
- 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端
2.2.2 FTP工作原理
登陆:ftp地址
- 用户名&密码
- 匿名登陆
- 互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器,这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。
- Anonymous(匿名文件传输):使用户与远程机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特登录FTP服务,就可访问远程主机上公开的文件殊的用户名“anonymous"登录FTP服务,就可访问远程主机上公开的文件。
- FTP使用TCP实现可靠传输
- FTP服务器进程:1个主进程、n个从属进程
- FTP传输模式:
- 文本模式:ASCII模式,以文本序列传输数据
- 二进制模式:Binary模式,以二进制序列传输数据

2.3 电子邮件
- 电子邮件信息:信封;内容:首部、主体

- 电子邮件组成结构:用户代理、(发送方和接收方)邮件服务器、相关协议
- 用户代理的功能:撰写、显示、处理、通信
- 邮件服务器的功能c/s:发送&接收邮件;向发件人报告邮件传送结果
- 协议:发SMTP;收POP3、IMAP

2.3.1 简单邮件传送协议SMTP
- SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
- SMTP进程:负责发送邮件的是SMTP客户;负责接收邮件的是SMTP服务器
- SMTP规定了14条命令、21种应答信息
- TCP连接,端口号25,C/S
- SMTP通信三个阶段:连接建立 → 邮件传送 → 连接释放

- SMTP缺点:
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
- SMTP服务器会拒绝超过一定长度的邮件
2.3.2 通用因特网邮件扩充MIME

2.3.3 邮局协议POP3
- POP3:TCP连接,端口号110,c用户代理/s接收端邮件服务器
- POP3工作方式:下载并保留(在服务器)、下载并删除
2.3.4 网际报文存取协议IMAP
- IMAP协议比POP协议复杂
- 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,- 若用户需要打开某个邮件,该邮件才上传到用户的计算机上
- IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)
2.3.5 基于万维网的电子邮件
- 特点:方便
- 不同点:邮件服务器:xx公司的服务器;协议使用上,从用户代理到发送方邮件、读取邮件是HTTP协议

2.4 万维网和HTTP协议
- 万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
- 统一资源定位符URL唯一标识:资源(文字、视频、音频)
- URL一般形式:<协议>【http/ftp】😕/<主机>【域名/IP地址】:<端口>/<路径>
- 用户通过点击超链接获取资源,这些资源通过超文本传输协议HTTP传送给使用者
- 万维网以客户/服务器方式工作,用户使用的浏览器是万维网客户程序,万维网文档所驻留的主机运行服务器程序
- 万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来
2.4.1 超文本传输协议HTTP
- HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器

- HTTP协议的特点
- HTTP协议是无状态的
- cookie:存储在用户主机中的文本文件,记录一段时间内某用户的访问记录 → 提供个性化服务
- HTTP采用TCP作为传输层协议,但HTTP本身协议无连接,即通信双方在交换HTTP报文之前不需要先建立HTTP连接
- HTTP的连接方式:持久连接keep-alive(非流水线、流水线)、非持久连接close
- 持久连接:短时间内保持连接状态,请求新的元素或发送报文不需要再建立连接
- 非流水线:发送一个请求收到响应后,才能再发送一个新请求;流水线:持续发送
- HTTP报文是面向文本的,每一个字段都是一些ASCII码;分为:请求报文、响应报文

相关文章:
【王道·计算机网络】第六章 应用层
一、基本概念 1.1 应用层概述 应用层对应用程序的通信提供服务应用层协议定义: 应用进程交换的报文类型,请求还是响应?各种报文类型的语法,如报文中的各个字段及其详细描述字段的语义,即包含在字段中的信息的含义进程何时、如何…...
【论文解读】(如何微调BERT?) How to Fine-Tune BERT for Text Classification?
文章目录 论文信息1. 论文内容2. 论文结论2.1 微调流程2.2 微调策略(Fine-Tuning Strategies)2.3 Further Pretrain 3. 论文实验介绍3.1 实验数据集介绍3.2 实验超参数3.3 Fine-Tuning策略探索3.3.1 处理长文本3.3.2 不同层的特征探索3.3.3 学习率探索(灾难性遗忘探…...
工程师是怎样对待开源
工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师,亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践,也看到了很多 Bad Cases,所以想把自己的一些心得体会写在这里,供工程师进行…...
Spring Boot日志系统大揭秘:从零开始学习Spring Boot日志:常见问题解答和最佳实践
一. 关于 Spring Boot 日志的使用 Spring Boot 日志机制和工具用于记录应用程序的日志信息和追踪应用程序的执行过程。它集成了常用的日志框架,如 Log4j、logback、Java Util Logging等,并提供简单易用的配置方式,让开发人员可以方便地监控应…...
【06】Nginx之反向代理
Nginx反向代理的配置语法 Nginx反向代理模块的指令是由ngx_http_proxy_module模块进行解析 proxy_pass 该指令用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。 语法proxy_pass URL;默认值—位置location URL:为要设置的被代理服务器地址…...
TCP是面向字节流的协议
TCP字节流 之所以会说 TCP 是面向字节流的协议,UDP 是面向报文的协议,是因为操作系统对 TCP 和 UDP 协议的发送方的机制不同,也就是问题原因在发送方。 为什么 UDP 是面向报文的协议? 当用户消息通过 UDP 协议传输时,…...
读书笔记——《when breath becomes air》《超越自卑》
为啥要两本书一起写读后感? 读完这两本书本来应该分开来写点东西的,不过我认为这两本书应该写不了太多内容。虽然我也看了几本英文原著(也写了点东西),但是我明显低估了《when breath becomes air》的难度,…...
CMD与DOS脚本编程【第二章】
预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...
面试字节,过关斩将直接干到 3 面,结果被吊打了?
人人都有大厂梦,对于软件测试员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让…...
OpenCV在iOS端的集成及Mat和UIImage互相转化(附源码)
OpenCV是一个非常强大的图形处理框架,可以运行在Linux、Windows、Android和Mac OS操作系统上,在自动驾驶、智能家居、人脸识别、图片处理等方面提供了非常丰富且功能强大的api,在图片处理方便,基本上可以满足对图片处理的所有需求…...
5月跳槽会有风险,不跳也会有?
今天讲讲跳槽。 说实话跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。 其次,我们离职和跳槽,其中的原因很大一部分是目前薪资不符合预期。 那…...
【小白版】最简单的 goland package 教程包括自定义包的使用
一、Hello World 最简单的教程,就需要从最简单的事情开始说起: mkdir myappcd myappgo mod init myapp // myapp是主项目名 这行命令将生成一个go.mod文件,这个文件会记录所有的包的依赖关系,一个空的go.mod只有项目名称和go版本…...
IMX6ULL的I2C驱动详细分析
IMX6ULL的I2C驱动详细分析 文章目录 IMX6ULL的I2C驱动详细分析i2c_imx_driver 的平台驱动注册i2c_imx_probe注册函数i2c_imx_algoI2C算法结构体i2c_imx_start开始I2Ci2c_imx_stop停止I2Ci2c_imx_isr中断服务函数i2c_imx_dma_writeDMA 进行写操作的 I2C 传输2c_imx_dma_readi2c_…...
日志迁移到 logback
目标 本次迁移的目标就是用 slf4jlogback 的日志框架来取代目前的 slf4jlog4j 如何迁移 基于 slf4j 的无痛迁移 项目本身是采用的 slf4jlog4j 日志架构,所以迁移到 logback 基本无痛 修改依赖 原本是 slf4jlog4,依赖如下 <dependency><gro…...
开源字节 CRM 系统
开源字节CRM是一款SaaS模式的客户关系管理软件,基于钉钉平台进行研发,以客户管理为核心,包含客户管理、销售全流程管理,合同订单、工单管理、移动审批、数据分析六大模块。 旨在助力企业销售全流程精细化、数字化管理,…...
七、Spring Cloud Alibaba-Sentinel
一、引言 1、了解服务可用性问题,服务挂掉原因 缓存击穿、单点故障、流量激增、线程池爆满、CPU飙升、DB超时、缺乏容错机制或保护机制、负载不均、服务雪崩、异常没处理等。 服务雪崩效应:因服务提供者的不可用导致服务调用者的不可用,并将…...
机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化
什么是knn算法? KNN算法是一种基于实例的机器学习算法,其全称为K-最近邻算法(K-Nearest Neighbors Algorithm)。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是:对于一个新的输入样本,通过…...
【MySQL】MySQL基础知识详解
文章目录 1. MySQL概述1.1 数据库相关概念1.1.1 数据库、数据库管理系统与SQL1.1.2 关系型数据库与数据模型 1.2 MySQL数据库1.2.1 MySQL的安装与配置1.2.2 MySQL服务的启动与停止1.2.3 连接MySQL服务端 2. SQL2.1 SQL简介2.2 DDL2.2.1 数据库操作2.2.2 表操作2.2.2.1 创建表2.…...
RabbitMQ日常使用小结
一、使用场景 削峰、解耦、异步。 基于AMQP(高级消息队列协议)协议来统一数据交互,通过channel(网络信道)传递信息。erlang语言开发,并发量12000,支持持久化,稳定性好,集群不支持动态扩展。 RabbitMQ的基本概念 二、组成及工作流…...
博物馆文物馆藏环境空气质量无线监控系统方案
博物馆文物馆藏环境空气质量无线监控系统方案 博物馆无线环境测控系统 博物馆恒温恒湿消毒净化系统 现代化博物馆空气质量一体化3D可视化管控平台 博物馆温湿度在线监控系统 博物馆光照在线监控系统 博物馆二氧化碳在线监控系统 博物馆在线监控系统 博物馆紫外线在线监控…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
