当前位置: 首页 > news >正文

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

在这里插入图片描述

一、基本概念

1.1 应用层概述

  • 应用层对应用程序的通信提供服务
  • 应用层协议定义:
    1. 应用进程交换的报文类型,请求还是响应?
    2. 各种报文类型的语法,如报文中的各个字段及其详细描述
    3. 字段的语义,即包含在字段中的信息的含义
    4. 进程何时、如何发送报文,以及对报文进行响应的规则
  • 应用层的功能:文件传输、访问和管理,电子邮件,虚拟终端,查询服务和远程作业登录
  • 应用层的重要协议:FTP、SMTP、POP3、HTTP、DNS

1.2 网络应用模型

  • 网络应用模型:客户/服务器模型Client/Server、P2P模型Peer-to-peer
  • 客户/服务器c/s模型:
    1. 服务器:提供计算服务的设备;永久提供服务、永久性访问地址/域名
    2. 客户机:请求计算服务的主机;与服务器通信,使用服务器提供的服务;间歇性接入网络;可能使用动态IP地址;不与其他客户机直接通信
  • P2P模型:
    1. 不存在永远在线的服务器
    2. 每个主机即可以提供服务,也可以请求服务
    3. 任意端系统/节点之间可以直接通讯
    4. 节点间歇性接入网络
    5. 节点可能改变IP地址
    6. 可拓展性好
    7. 网络健壮性强

二、 应用程序相关

2.1 域名解析系统DNS

在这里插入图片描述

  • 根:.之前的称为顶级域名
  • 顶级域名:
    1. 国家顶级域名:cn,us,uk
    2. 通用顶级域名:com,net,org,gov,int国际组织,areo航空类,museum,travel…
    3. 基础结构域名/反向域名(ip → 域名):arpa
  • 二级域名
    1. 类别域名:ac科研,com工商金融,edu,gov,mil中国国防机构,net,org
    2. 行政区域名:用于我国各省、自治区、直辖市,bj
    3. 注册域名

2.1.1 域名服务器

  • 域名服务器:根域名服务器、顶级域名服务器、权限域名服务器
  • 本地(默认)域名服务器:当一个主机发出一个DNS查询请求的时候,首先会发给本地域名服务器(因为它离主机的距离非常近),可以立刻将所查询的主机名转换为IP地址;使DNS查询的过程变得更简单、快速
    在这里插入图片描述

2.1.2 域名解析过程

  • 域名解析:递归查询、迭代查询
  • 高速缓存:用来存放最近查过的域名、从哪里获得这个域名映射信息的记录
    在这里插入图片描述

2.2 文件传输FTP

  • 文件传送协议:文件传送协议FTP (File Transfer Protocol)、简单文件传送协议TFTP (Trivial File Transfer Protocol)
  • 简单文件传送协议TFTP:
    1. TFTP的代码块所占的内存比较小,较容易实现、是面向小文件的一种文件传送协议
    2. 非常适用于UDP环境、程序或者是文件同时向许多机器下载、适用于较小的计算机或者某些特殊用途的设备
  • 文件传送协议FTP
    1. 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
    2. FTP是一种拷贝:上传、下载

2.2.1 FTP服务器和用户端

  • FTP是基于客户/服务器c/s的协议
  • 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序
  • 依照FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器
  • 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端

2.2.2 FTP工作原理

登陆:ftp地址

  • 用户名&密码
  • 匿名登陆
    1. 互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器,这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。
    2. Anonymous(匿名文件传输):使用户与远程机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特登录FTP服务,就可访问远程主机上公开的文件殊的用户名“anonymous"登录FTP服务,就可访问远程主机上公开的文件。
  • FTP使用TCP实现可靠传输
  • FTP服务器进程:1个主进程、n个从属进程
  • FTP传输模式:
    1. 文本模式:ASCII模式,以文本序列传输数据
    2. 二进制模式:Binary模式,以二进制序列传输数据
      在这里插入图片描述

2.3 电子邮件

  • 电子邮件信息:信封;内容:首部、主体
    在这里插入图片描述
  • 电子邮件组成结构:用户代理、(发送方和接收方)邮件服务器、相关协议
    1. 用户代理的功能:撰写、显示、处理、通信
    2. 邮件服务器的功能c/s:发送&接收邮件;向发件人报告邮件传送结果
    3. 协议:发SMTP;收POP3、IMAP
      在这里插入图片描述

2.3.1 简单邮件传送协议SMTP

  • SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
  • SMTP进程:负责发送邮件的是SMTP客户;负责接收邮件的是SMTP服务器
  • SMTP规定了14条命令、21种应答信息
  • TCP连接,端口号25,C/S
  • SMTP通信三个阶段:连接建立 → 邮件传送 → 连接释放
    在这里插入图片描述
  • SMTP缺点:
    1. SMTP不能传送可执行文件或者其他二进制对象
    2. SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
    3. 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协议的特点
    1. HTTP协议是无状态的
    2. cookie:存储在用户主机中的文本文件,记录一段时间内某用户的访问记录 → 提供个性化服务
    3. HTTP采用TCP作为传输层协议,但HTTP本身协议无连接,即通信双方在交换HTTP报文之前不需要先建立HTTP连接
    4. HTTP的连接方式:持久连接keep-alive(非流水线、流水线)、非持久连接close
  • 持久连接:短时间内保持连接状态,请求新的元素或发送报文不需要再建立连接
  • 非流水线:发送一个请求收到响应后,才能再发送一个新请求;流水线:持续发送
  • HTTP报文是面向文本的,每一个字段都是一些ASCII码;分为:请求报文、响应报文
    在这里插入图片描述

相关文章:

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

一、基本概念 1.1 应用层概述 应用层对应用程序的通信提供服务应用层协议定义&#xff1a; 应用进程交换的报文类型&#xff0c;请求还是响应?各种报文类型的语法&#xff0c;如报文中的各个字段及其详细描述字段的语义&#xff0c;即包含在字段中的信息的含义进程何时、如何…...

【论文解读】(如何微调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 学习率探索&#xff08;灾难性遗忘探…...

工程师是怎样对待开源

工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师&#xff0c;亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践&#xff0c;也看到了很多 Bad Cases&#xff0c;所以想把自己的一些心得体会写在这里&#xff0c;供工程师进行…...

Spring Boot日志系统大揭秘:从零开始学习Spring Boot日志:常见问题解答和最佳实践

一. 关于 Spring Boot 日志的使用 Spring Boot 日志机制和工具用于记录应用程序的日志信息和追踪应用程序的执行过程。它集成了常用的日志框架&#xff0c;如 Log4j、logback、Java Util Logging等&#xff0c;并提供简单易用的配置方式&#xff0c;让开发人员可以方便地监控应…...

【06】Nginx之反向代理

Nginx反向代理的配置语法 Nginx反向代理模块的指令是由ngx_http_proxy_module模块进行解析 proxy_pass 该指令用来设置被代理服务器地址&#xff0c;可以是主机名称、IP地址加端口号形式。 语法proxy_pass URL;默认值—位置location URL:为要设置的被代理服务器地址&#xf…...

TCP是面向字节流的协议

TCP字节流 之所以会说 TCP 是面向字节流的协议&#xff0c;UDP 是面向报文的协议&#xff0c;是因为操作系统对 TCP 和 UDP 协议的发送方的机制不同&#xff0c;也就是问题原因在发送方。 为什么 UDP 是面向报文的协议&#xff1f; 当用户消息通过 UDP 协议传输时&#xff0c;…...

读书笔记——《when breath becomes air》《超越自卑》

为啥要两本书一起写读后感&#xff1f; 读完这两本书本来应该分开来写点东西的&#xff0c;不过我认为这两本书应该写不了太多内容。虽然我也看了几本英文原著&#xff08;也写了点东西&#xff09;&#xff0c;但是我明显低估了《when breath becomes air》的难度&#xff0c…...

CMD与DOS脚本编程【第二章】

预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数&#xff0c;如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...

面试字节,过关斩将直接干到 3 面,结果被吊打了?

人人都有大厂梦&#xff0c;对于软件测试员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c;让…...

OpenCV在iOS端的集成及Mat和UIImage互相转化(附源码)

OpenCV是一个非常强大的图形处理框架&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上&#xff0c;在自动驾驶、智能家居、人脸识别、图片处理等方面提供了非常丰富且功能强大的api&#xff0c;在图片处理方便&#xff0c;基本上可以满足对图片处理的所有需求…...

5月跳槽会有风险,不跳也会有?

今天讲讲跳槽。 说实话跳槽是为了寻求更好的发展&#xff0c;但在跳槽前我们也不能确定下家就是更好的归宿&#xff0c;这就更加需要我们审慎地去对待&#xff0c;不能盲目跳槽。 其次&#xff0c;我们离职和跳槽&#xff0c;其中的原因很大一部分是目前薪资不符合预期。 那…...

【小白版】最简单的 goland package 教程包括自定义包的使用

一、Hello World 最简单的教程&#xff0c;就需要从最简单的事情开始说起&#xff1a; mkdir myappcd myappgo mod init myapp // myapp是主项目名 这行命令将生成一个go.mod文件&#xff0c;这个文件会记录所有的包的依赖关系&#xff0c;一个空的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 日志架构&#xff0c;所以迁移到 logback 基本无痛 修改依赖 原本是 slf4jlog4&#xff0c;依赖如下 <dependency><gro…...

开源字节 CRM 系统

开源字节CRM是一款SaaS模式的客户关系管理软件&#xff0c;基于钉钉平台进行研发&#xff0c;以客户管理为核心&#xff0c;包含客户管理、销售全流程管理&#xff0c;合同订单、工单管理、移动审批、数据分析六大模块。 旨在助力企业销售全流程精细化、数字化管理&#xff0c…...

七、Spring Cloud Alibaba-Sentinel

一、引言 1、了解服务可用性问题&#xff0c;服务挂掉原因 缓存击穿、单点故障、流量激增、线程池爆满、CPU飙升、DB超时、缺乏容错机制或保护机制、负载不均、服务雪崩、异常没处理等。 服务雪崩效应&#xff1a;因服务提供者的不可用导致服务调用者的不可用&#xff0c;并将…...

机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化

什么是knn算法&#xff1f; KNN算法是一种基于实例的机器学习算法&#xff0c;其全称为K-最近邻算法&#xff08;K-Nearest Neighbors Algorithm&#xff09;。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是&#xff1a;对于一个新的输入样本&#xff0c;通过…...

【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语言开发&#xff0c;并发量12000&#xff0c;支持持久化&#xff0c;稳定性好&#xff0c;集群不支持动态扩展。 RabbitMQ的基本概念 二、组成及工作流…...

​​​​​​​博物馆文物馆藏环境空气质量无线监控系统方案

博物馆文物馆藏环境空气质量无线监控系统方案 博物馆无线环境测控系统 博物馆恒温恒湿消毒净化系统 现代化博物馆空气质量一体化3D可视化管控平台 博物馆温湿度在线监控系统 博物馆光照在线监控系统 博物馆二氧化碳在线监控系统 博物馆在线监控系统 博物馆紫外线在线监控…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...