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

应用层协议

目录

应用层常见协议

DNS协议

前言

域名结构

DNS服务器分类

DNS的工作原理

DNS工作原理实例

DNS记录

DHCP协议

静态IP与动态IP

DHCP协议好处

DHCP分配IP地址的4阶段

电子邮件

邮件的过程

电子邮件发送过程

pop协议特点

IMAP协议的特点

FTP协议

前言

FTP数据传输方式

主动模式

被动模式

FTP文件传输模式

应用层常见协议

  • 超文本传输协议:http、https
  • 文件传输协议:FTP
  • 电子邮件:SMTP、POP3、IMAP
  • 动态主机配置协议:DHCP
  • 域名系统:DNS 

DNS协议

前言

注意:DNS(domain name system)协议是建立在UDP协议之上的,某些情况下可以切换到TCP,使用端口号为53,是一种客户/服务器服务模式

URL(uniform resoure locator):统一资源定位符,完整的url包含以下内容——协议、网址、文件地址。

域名:网站的网址,每个域名背后都对应着一个IP地址(因为IP地址不便记忆),用户输入域名,经过dns服务器解析成IP地址来获取该服务。

域名结构

含义:域名是一个树状层次结构,联机分布式数据库系统,最高的根域名服务器维护最高级别域名服务器记录,后者维护下一级域名服务器的记录

图片

DNS服务器分类

  • 主要名称服务器:存放区域(二级区域)中的相关设置,存放区域文件中的正本数据
  • 辅助域名服务器:存放的是副本数据,是从主要名称服务器中复制出来的,不能修改
  • 主控名称服务器:提供数据复制(可以简单理解成DNS服务器中的某一个角色)
  • 缓存域名服务器:里面没有区域文件,需要配置转发器

注意:

  • 使用DNS服务器时,客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)
  • 所有的DNS服务器都记录了DNS根服务器的IP地址
  • 上级DNS服务器记录了下一级DNS服务器的IP地址
  • 全球一共13台IPV4的DNS根域名服务器,25台IPV6的DNS根域名服务器 

DNS的工作原理

前言:DNS查询以各种不同的方式进行解析,客户机可以通过使用从前查询获得的缓存信息就地应答查询,DNS服务器也可以使用其自身的资源记录信息缓存来应答查询,但更多是以下两种方式

  • 递归解析:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,若没有,则向客户提供另外一个DNS服务器地址,客户负责把解析请求发送给新的DNS服务器地址
  • 迭代解析:DNS服务器收到一个域名解析请求时,若所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终答案,并将其返回给客户

DNS工作原理实例

  1. 当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关系,有则直接使用IP进行通信
  2. 若浏览器没有缓存,则操作系统检查本地hosts文件是否有域名IP的映射关系,有则直接使用IP进行通信
  3. 若hosts没有这个域名的映射,首先会找TCP/IP参数中设置的首选DNS服务器,若服务器已缓存了映射关系,则使用这个IP地址映射返回域名解析,此时解析不具有权威性 
  4. 若首选DNS服务器没有完成映射则将请求转发到根服务器,根域服务器收到请求后,由于根域服务器只是维护顶域服务器信息,会响应顶域服务器IP,首选DNS根据根域响应的信息,将请求发送到顶级域
  5. 顶域服务器收到请求,由于顶域只是维护二级域信息,会相应二级域服务器IP,首选DNS根据顶级域响应的信息,将请求发送到二级域
  6. 二级域收到请求,该DNS服务器内维护的是这个区域内所有的主机信息,包含了要找的域名信息的IP,直接将该IP地址响应给首选DNS
  7. 首选DNS再响应给客户机

DNS记录

  • A:主机记录,域名和IP地址的记录
  • CNAME:别名记录(针对我们现有的域名取一个绰号)
  • SOA:权威名称服务器
  • NS:名称服务器
  • MX:邮件交换记录,一般有邮件服务器时使用
  • SRV:正在提供特定服务的服务器
  • PTR:反向指针

DHCP协议

含义:(动态主机配置协议)主要用于给客户机提供TCP/IP参数(IP地址、子网掩码、网关、DNS等)

静态IP与动态IP

  • 静态ip:又称固定ip,是运营商指定的永久ip地址,有固定的地址,一般来说,固定的网站应该是固定ip的,其他特殊网络也会指定用户ip方便用户上网行为的管理。
  • 动态ip:在有互联网连接请求时分配ip地址,连接中断后运营商回收该ip,下次连接互联网时再分配ip,IP地址不确定。

理解:dhcp协议开启后,当电脑插上网线或手机连上wifi,则操作系统网络协议栈会自动向外发送一包dhcp请求请求为其分配ip地址,路由器获取到dhcp请求后会为其分配一个ip地址,并通过dhcp回复报文发送回去,操作系统收到dhcp回复报文后将其分配的ip配置到网卡上。

总结:静态IP是自己配置的,动态IP是动态获取的

DHCP协议好处

  • 减少管理员的工作量
  • 避免输入错误
  • 避免IP冲突
  • 提高IP地址的利用率

注意:DHCP是一个应用层协议,基于UDP,主机向服务器67号端口发送请求,服务器给客户机的68号端口进行响应 

DHCP分配IP地址的4阶段

  1. 客户机以广播的方式发送discover向dhcp服务器(源ip:0.0.0.0,目的ip:255.255.255.255,目标mac:FF:FF:FF:FF:FF:FF)
  2. 此时网络中的所有dhcp服务器都会收到该报文,都会进行响应;返回可以租用的IP地址以及租用期限、子网掩码、网关、dns等信息
  3. 客户机会向第一个offer报文的服务器发送request报文(request会携带客户需要的ip地址)
  4. 服务器进行确认,客户机获得TCP/IP参数

图片

抓包分析

注意

  • DHCP服务器会从IP地址池中挑选一个IP地址“出租”给客户端一段时间,时间到期就回收他们;平时家里上网的路由就就可以充当DHCP服务器
  • DHCP服务器若想跨网段分配IP地址,可以借助DHCP中继代理实现跨网段分配IP地址
  • DHCP客户端会在租期不足的时候自动向DHCP服务器发送request信息申请续约

电子邮件

邮件的过程

  1. 发件人将邮件发送到自己使用的邮件服务器
  2. 发件人的邮件服务器将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱
  3. 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件 

注意:

  • 电子邮件系统采用客户/服务器的方式
  • 电子邮件使用方便,传递迅速、费用低廉。它不仅可以传送文字信息,而且还可以附上声音和图像 
  • 用户代理是用户与电子邮件系统的接口,又称电子邮件客户端软件
  • 邮件服务器是电子邮件系统的基础设施,因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱
  • 邮件相关协议:发送邮件使用的协议:SMTP;收邮件使用的协议:POP、IMAP

电子邮件发送过程

  1. 发送方的邮件代理作为SMTP客户与发送方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP发送邮件给发送方邮件服务器
  2. 发送方邮件服务器中的SMTP客户与接收方的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP协议发送之前收到的待转发邮件给接收方邮件服务器
  3. 接收方的用户代理作为POP3客户与接收方邮件服务器中的POP3服务器进行TCP连接然后基于这条连接使用POP3协议从接收方邮件服务器读取邮件

pop协议特点

IMAP协议的特点

FTP协议

前言

含义:(文件传输协议)由两部分组成:服务器/客户端,其是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。

注意:

  • FTP协议是基于TCP协议的,FTP服务器默认端口号(20号端口一般用于传输数据,21号端口用于传输控制信息)但是,是否使用20号端口作为传输数据端口和FTP的传输模式有关系
  • FTP的传输格式:ftp://[user[:password]@]host[:port]/url-path
  • 具体流程:FTP服务器里面放着文件,FTP客户端可以连接该服务器上传或下载文件

FTP数据传输方式

FTP的2种连接模式:主动模式(Active)和被动模式(Passive)[服务器的主动与被动]

注意:不管是那种模式,都需要客户端和服务器建立2个连接

  • 控制连接:用于传输状态信息(命令,cmd)
  • 数据连接:用于传输文件和目录信息(data)

主动模式

建立连接使用21号端口,客户端通过此通道向服务器发送port命令,服务器从20号端口主动向客户端发起连接

理解:

  1. 客户端打开一个随机的命令端口(端口号大于1024)假设4242(N);同时连接至服务器的命令端口21
  2. 客户端开始监听N+1端口,同时在N端口向服务器发送一个port命令到服务器的21号端口(此命令是告诉服务器——客户端正在监听的数据端口为N+1,并且已经准备好从此端口接收数据)
  3. 服务器打开20号端口,并且创建和客户端数据端口(N+1)的连接
  4. 双方进行数据传输,传输完毕后发送数据的以放主动关闭数据连接

被动模式

建立连接使用21号端口,客户端向服务器发送pasv命令,服务器收到会随机打开一个高端端口(大于1024),服务器在指定范围内的某个端口被动等待客户机连接

理解:

  1.  客户端通过两个随机端口与服务器建立连接(命令端口N(连接服务器21号端口),数据端口N+1)
  2. 客户端通过命令端口N发送PASV命令给服务器的命令端口21
  3. 服务器打开一个随机的数据端口P,并告知客户端该端口号P
  4. 客户端数据端口N+1发起与服务器数据端口P的连接
  5. 双方进行数据传输,传输完毕后发送数据的以放主动关闭数据连接

FTP文件传输模式

  • 文本模式:ASCII码模式,主要以文本序列传输
  • 二进制模式:binary模式,(视频、图片、应用程序等等)

相关文章:

应用层协议

目录 应用层常见协议 DNS协议 前言 域名结构 DNS服务器分类 DNS的工作原理 DNS工作原理实例 DNS记录 DHCP协议 静态IP与动态IP DHCP协议好处 DHCP分配IP地址的4阶段 电子邮件 邮件的过程 电子邮件发送过程 pop协议特点 IMAP协议的特点 FTP协议 前言 FTP数据…...

Golang调用FFmpeg转换视频流

问题背景 问题背景是在,由于视频采集端使用的是H264编码采集的裸流,而网络流媒体大多是以FLV为主的直播方式进行的,为了实现实时直播,当前是打算直接使用FFmpeg将H264裸流实时转成FLV视频流。 为什么是使用FLV视频流呢&#xff0c…...

外卖点餐小程序开发

前言 餐饮行业是一个传统的行业。根据当前发展现状,网络信息时代的全面普及,餐饮行业也在发生着变化,单就点餐这一方面,利用手机点单正在逐步进入人们的生活。传统的点餐方式,不仅会耗费大量的人力、时间,有时候还会出错。小程序系统伴随智能手机为我们提供了新的方向。 手机…...

华为OD机试真题Python实现【猴子爬山】真题+解题思路+代码(20222023)

猴子爬山 题目 一天一只顽猴想要从山脚爬到山顶, 途中经过一个有n个台阶的阶梯, 但是这个猴子有个习惯,每一次只跳1步或3步 试问?猴子通过这个阶梯有多少种不同的跳跃方式 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 输入 输入只…...

wordpress 网站备份

一个网站从建站完成之日,备份的问题就要提上日程。不论是后期的更换服务器,更换域名,未知故障导致网站崩溃,数据丢失,只要我们有完整的备份,就能将损失降到最低。wordpress网站的备份方法多种多样&#xff…...

如何尽早解决需求变更隐患,降低项目延期风险?

频繁的需求变更,在早期我们应该如何尽早解决需求变更隐患,降低项目延期风险? 1、科学分析获取真实需求 建立需求基线 科学分析用户需求,颗粒度越小越好。需要提前建立需求基线,需求基线是需求变更的依据,并…...

[机缘参悟-96] :软件中到处充满了人类社会的气息!

解读操作系统有感:CPU对于CPU内核而言,调度程序是程序,应用程序也是程序,在它眼里是一样的、公平看待的,因此某种愿意上讲,CPU内核本身就是“上天”,就是“道”,道德经中讲“天地不仁…...

知识点滴 - 自行车分类

旅行车 旅行自行车(Touring bicycle)由公路自行车发展而来,适合超远程自给自足的旅行,有较舒适放松的车架几何设计,能够负重,有很低的最低档位,配件选择方面追求可靠耐用。 专业的长途旅行车均以…...

【建议收藏】Jenkins+postman+newman之API全自动化测试

1 背景 本文要介绍的环境在我司已经投入使用,举个简单的真实使用场景,开发提供了300多个API,每个API都有各种参数,所以我们会先在postman中为这300多个API编写300*n个testcase,然后在jenkins上跑;到此有人…...

MySQL数据库————MVCC

MySQL的脏读、幻读、不可重复读 脏读 现在有两个事务在操作table表,事务B修改了id2的name字段为李老四,但是没有提交,事务A查询id2的数据,得到name为李老四;事务B发生回滚,id2的数据的name又变回李四&…...

为啥Python多线程爬虫跑的慢?

单线程和多线程进行数据抓取结果还是大有不同的,但是要值得注意的事,如果多线程没调配好可能连单线程的效率都比不上。本次就和大家一起聊一聊单线程多线程的一些需要注意的事项。 知识点 线程(Thread)也叫轻量级进程&#xff0…...

万字长文解析!复现和使用GPT-3/ChatGPT,你所应该知道的

关于作者 英文原版作者:杨靖锋,现任亚马逊科学家,本科毕业于北大,硕士毕业于佐治亚理工学院,师从 Stanford 杨笛一教授。 杨昊桐 译,王骁 修订 感谢靳弘业对第一版稿件的建议,感谢陈三星&am…...

Kaldi语音识别技术(八) ----- 整合HCLG

Kaldi语音识别技术(八) ----- 整合HCLG 文章目录Kaldi语音识别技术(八) ----- 整合HCLGHCLG 概述组合LG.fst可视化 LG.fst组合CLG.fst可视化CLG.fst生成H.fst组合HCLG.fst生成HaCLG.fst生成HCLG.fstHCLG 概述 HCLG min(det(H o min(det(C o min(det(L o G))))) 将…...

day17_异常

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、异常 三、自定义异常 零、 复习昨日 见晨考 一、作业 package com.qf.homework;import java.text.ParseException; import java.text.Simpl…...

vue中把node-sass换成dart-sass方式(解决办法)

目录 一、替换原因 二、art-sass和node-sass的区别 三、替换方法 一、替换原因 因为node-sass和node.js版本关联太紧了,如果这两个版本不匹配,就会起冲突,导致项目无法运行。 ps:值得一提的是node版本和要运行的项目使用的依…...

深入浅出深度学习Pytroch

本文将以通俗易懂的方式,深入浅出地为您揭开深度学习模型构建与训练的面纱: 深度学习数据data模型model损失函数loss优化optimizer可视化visualizer深度学习 数据data 模型model 损失函数loss 优化optimizer 可视化visualizer深度学习数据data模型m…...

CCNP350-401学习笔记(451-500题)

451、what is the function of the LISP map resolver? A. to send traffic to non-LISP sites when connected to a service provider that does not accept nonroutable EIDs as packet sources B. to connect a site to the LISP-capabie part of a core network, publish …...

3年功能测试经验,面试想拿到15k很难吗?

一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 个人情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,一毕业因为不成熟的经验以…...

【7/101】101次面试之测试技术面试题

01、什么是兼容性测试?兼容性测试侧重哪些方面?答:兼容性测试是一种软件测试类型,它的主要目的是确保一个应用程序在不同的操作系统、不同的浏览器、不同的设备、不同的网络环境等各种环境下能够正常运行,并且不会产生…...

【蓝桥杯每日一题】前缀和算法

🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...