应用层协议
目录
应用层常见协议
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工作原理实例
- 当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关系,有则直接使用IP进行通信
- 若浏览器没有缓存,则操作系统检查本地hosts文件是否有域名IP的映射关系,有则直接使用IP进行通信
- 若hosts没有这个域名的映射,首先会找TCP/IP参数中设置的首选DNS服务器,若服务器已缓存了映射关系,则使用这个IP地址映射返回域名解析,此时解析不具有权威性
- 若首选DNS服务器没有完成映射则将请求转发到根服务器,根域服务器收到请求后,由于根域服务器只是维护顶域服务器信息,会响应顶域服务器IP,首选DNS根据根域响应的信息,将请求发送到顶级域
- 顶域服务器收到请求,由于顶域只是维护二级域信息,会相应二级域服务器IP,首选DNS根据顶级域响应的信息,将请求发送到二级域
- 二级域收到请求,该DNS服务器内维护的是这个区域内所有的主机信息,包含了要找的域名信息的IP,直接将该IP地址响应给首选DNS
- 首选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阶段
- 客户机以广播的方式发送discover向dhcp服务器(源ip:0.0.0.0,目的ip:255.255.255.255,目标mac:FF:FF:FF:FF:FF:FF)
- 此时网络中的所有dhcp服务器都会收到该报文,都会进行响应;返回可以租用的IP地址以及租用期限、子网掩码、网关、dns等信息
- 客户机会向第一个offer报文的服务器发送request报文(request会携带客户需要的ip地址)
- 服务器进行确认,客户机获得TCP/IP参数
抓包分析
注意
- DHCP服务器会从IP地址池中挑选一个IP地址“出租”给客户端一段时间,时间到期就回收他们;平时家里上网的路由就就可以充当DHCP服务器
- DHCP服务器若想跨网段分配IP地址,可以借助DHCP中继代理实现跨网段分配IP地址
- DHCP客户端会在租期不足的时候自动向DHCP服务器发送request信息申请续约
电子邮件
邮件的过程
- 发件人将邮件发送到自己使用的邮件服务器
- 发件人的邮件服务器将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱
- 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件
注意:
- 电子邮件系统采用客户/服务器的方式
- 电子邮件使用方便,传递迅速、费用低廉。它不仅可以传送文字信息,而且还可以附上声音和图像
- 用户代理是用户与电子邮件系统的接口,又称电子邮件客户端软件
- 邮件服务器是电子邮件系统的基础设施,因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱
- 邮件相关协议:发送邮件使用的协议:SMTP;收邮件使用的协议:POP、IMAP
电子邮件发送过程
- 发送方的邮件代理作为SMTP客户与发送方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP发送邮件给发送方邮件服务器
- 发送方邮件服务器中的SMTP客户与接收方的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP协议发送之前收到的待转发邮件给接收方邮件服务器
- 接收方的用户代理作为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号端口主动向客户端发起连接
理解:
- 客户端打开一个随机的命令端口(端口号大于1024)假设4242(N);同时连接至服务器的命令端口21
- 客户端开始监听N+1端口,同时在N端口向服务器发送一个port命令到服务器的21号端口(此命令是告诉服务器——客户端正在监听的数据端口为N+1,并且已经准备好从此端口接收数据)
- 服务器打开20号端口,并且创建和客户端数据端口(N+1)的连接
- 双方进行数据传输,传输完毕后发送数据的以放主动关闭数据连接
被动模式
建立连接使用21号端口,客户端向服务器发送pasv命令,服务器收到会随机打开一个高端端口(大于1024),服务器在指定范围内的某个端口被动等待客户机连接
理解:
- 客户端通过两个随机端口与服务器建立连接(命令端口N(连接服务器21号端口),数据端口N+1)
- 客户端通过命令端口N发送PASV命令给服务器的命令端口21
- 服务器打开一个随机的数据端口P,并告知客户端该端口号P
- 客户端数据端口N+1发起与服务器数据端口P的连接
- 双方进行数据传输,传输完毕后发送数据的以放主动关闭数据连接
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视频流呢,…...

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

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

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

如何尽早解决需求变更隐患,降低项目延期风险?
频繁的需求变更,在早期我们应该如何尽早解决需求变更隐患,降低项目延期风险? 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)也叫轻量级进程࿰…...

万字长文解析!复现和使用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、什么是兼容性测试?兼容性测试侧重哪些方面?答:兼容性测试是一种软件测试类型,它的主要目的是确保一个应用程序在不同的操作系统、不同的浏览器、不同的设备、不同的网络环境等各种环境下能够正常运行,并且不会产生…...

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

【C#基础】C# 常用数据结构
序号系列文章4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结6【C#基础】C# 常用语句讲解文章目录前言数据结构的概念1,数组 (Array)1.1,声明并初始化赋值1.2,访问数组元素1.3,Array 类的使用2&am…...

MySql 及MyBatis数据的批量操作
1、Mybatis操作 1、批量更新 <update id"updateCtcc" parameterType"java.util.List">update ctcc set scan1 where id in<foreach collection"list" item"item" index"index" open"(" close")&qu…...

无代码表格数据库——一个企业数字化新物种
商业活动的“非标”地带在现实商业活动中存在大量未被明确界定、规范和标准化的灰色地带,它们不像电信、金融、财会、证券经纪、保险、建筑设计、工程造价等具有高度专业性的业务板块一样有强制的行业标准、规范甚至从业资格证书加持,下文统称其为非标业…...

第十三届蓝桥杯国赛 C++ C组 F 题、Python B组 E 题——近似GCD(AC)
目录1.近似GCD1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.C2.Python1.近似GCD 1.题目描述 小蓝有一个长度为 nnn 的数组 A(a1,a2,⋯,an)A\left(a_{1}, a_{2}, \cdots, a_{n}\right)A(a1,a2,⋯,an), 数组的子数组被定…...

分享5款小众良心软件,好用到让人惊艳
目前win7渐渐退出视野,大部分人都开始使用win10了,笔者在日常的工作和使用中,为了能够让效率的大提升,下载了不少软件,以下的软件都是个人认为装机必备,而且都是可以免费下载,且没有插件的。 1…...

WAF是什么?一篇文章带你全面了解WAF
WAF是什么?一篇文章带你全面了解WAF 文章目录WAF是什么?一篇文章带你全面了解WAFWAF是什么?一、WAF的工作原理二、WAF的分类三、WAF的特点四、如何选择和部署WAFWAF是什么? Web应用程序防火墙(Web Application Firewa…...

django项目实战八(django+bootstrap实现增删改查)进阶验证码
目录 一、安装第三方 1、pillow 2、第三方字体文件 二、实现生成验证码 1、创建code.py 2、url 3、修改auth.py 4、修改account.py 5、修改login.html 三、验证码校验 1、验证码写入到session 2、修改form下的LoginForm类新增code字段 3、修改login.html 4、修改acco…...

IP 协议
1.IP协议报头如下图:版本号 代表的是当前的IP协议的版本,此处的版本一共有两个取值:v4和v6.本文着重针对v4版本进行解析.首部长度 代表的是整个IP报头的长度,这个报头长度是可变长的,可变长的原因在于报头中的选项,这个属性是一个可有可无的属性,会改变报头长度,它的单位是32bi…...

好用的SQL工具盘点:从学习到工作总有一款适合你
标题一.入坑阶段(学习入门): 这个阶段一般就是小白,想学习SQL语言,然后到处找软件,找免费破解版找半天,找到了半天安装不下来,还可能把自己电脑搞中毒。 其实对于小白来说…...

Memcache介绍
Memcache介绍 Memcache是一个分布式内存对象缓存系统,其功能是为应用程序提供快速和可伸缩的数据存储。memcache使用简单,定义了相对少数几种操作(set,add,replace,get,flush_all等)…...