7.计算机网络-应用层(一)

应用层

概述

  • 应用层是离用户最近的一层,网络七层模型中传输层上面是会话层、表示层、应用层,这里我们将这三层都作为应用层去学习。
    在这里插入图片描述在这里插入图片描述

应用层和传输层一样,都是工作于终端的。应用层以下已经提供了完整的通信服务,所以应用层不需要管理通信服务,只需要向上对接用户提供丰富的功能。

  • 应用层的协议和软件是非常多的,常见的应用层协议如:
FTPHTTPHTTPSDNSTELNET
21804435323

除此之外,面向传输层编程的协议也可以认为是应用层里的内容,基于传输层的UDP和TCP协议,应用层是有不同的应用场景和协议的,
在这里插入图片描述

  • 每一个应用层协议都是为了解决某一类应用问题而存在的,如视频、音频、文字等领域
    应用层的主要任务就是定义应用间通信的规则,如报文类型、报文语法格式等,不同的应用其报文可以自己去协定,同一类应用间就需要协定一致的规则等,这些规则都能称为应用层的协议。

DNS协议

DNS协议详解及报文格式分析
DNS(Domain Name System:域名系统),也称为域名解析协议

域名

域名不区分大小写

  • 域分类
    域名由点分割为不同的域,域名可以分为顶级域(Top Level Domain)、二级域、三级域
顶级域国家.cn中国
.us美国
.uk英国
.ca加拿大
......
通用.com公司和企业
.net网络服务机构
.org非赢利组织
.edu美国专用的教育机构
.gov美国专用的政府部门
.mil美国专用的军事部门
.int国际组织
......
基础结构域名arpa用于反向域名解析
二级域aliyun、qq、amazon、taobao、baidu、google、...
- 域名结构

在这里插入图片描述

域名服务器

域名服务器结构
在这里插入图片描述

  • 根域名服务器
  • 顶级域名服务器
  • 权限域名服务器
  • 本地域名服务器
DNS报文格式

DNA分查询报文和响应报文,从标志位第一个位可区分

头部会话ID(16bits)标志位
QRopcodeAATCRDRA(zero)rcode
Questions 问题数(16bits)Answer 回答 资源记录数(16bits)
Authority 授权 资源记录数(16bits)Additional 附加 资源记录数(16bits)
正文Queries 问题区域
Answers 回答区域
Authoritative 授权区域
Additional 附加区域
头部
  • 会话标识 :标识会话,一对请求和返回的会话标识一样
  • 标志
    • QR(1):0/查询,1/响应
    • opcode(4): 0/标准查询,1/反向查询,2/服务器状态请求
    • AA(1): 表示授权回答
    • TC(1):表示可截断的
    • RD(1): 表示期望递归
    • RA(1): 表示可用递归
    • rcode(1): 表示返回码,0表示没有差错,3表示名字差错,2表示服务器错误(Server Failure)
  • 数量字段
    • Questions表示查询问题区域节的数量,
    • Answers表示回答区域的数量,
    • Authoritative namesversers表示授权区域的数量,
    • Additional recoreds表示附加区域的数量
正文
Queries 区

在这里插入图片描述

  • 查询名:长度不固定,且不使用填充字节,一般该字段表示的就是需要查询的域名(如果是反向查询,则为IP,反向查询即由IP地址反查域名),一般的格式如下图所示:
    在这里插入图片描述
  • 查询类型
类型助记符说明
1AAddress由域名获得IPv4地址
2NS查询域名服务器
5CNAME查询规范名称
6SOA开始授权
11WKS熟知服务
12PTR把IP地址转换成域名
13HINFO主机信息
15MX邮件交换
28AAAA由域名获得IPv6地址
252AXFR传送整个区的请求
255ANY对所有记录的请求
  • 查询类:通常为1,表明是Internet数据,IN
资源记录(RR)区域(包括回答区域,授权区域和附加区域)

回答区域授权区域附加区域三个区域的格式是一样的,每个区都可能会有多条如下格式的记录
在这里插入图片描述
在这里插入图片描述

  • 域名:格式同上查询名一致,不同的是,当前name若在报文中出现过,那该字段不会重复保存,只会用两个字节长度保存一个偏移标记11和上文已出现内容在DNS报文中的偏移位置,报文展示如下:
    在这里插入图片描述

  • 查询类型:同上

  • 查询类:Internet信息对应的就是IN,值为1

  • 生存时间TTL:以秒为单位,表示的是资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间,它同时也可以表明该资源记录的稳定程度,极为稳定的信息会被分配一个很大的值(比如86400,这是一天的秒数)。

  • 资源数据长度

  • 资源数据:变长字段,存储查询端要求返回的相关数据,如。

域名解析过程
  • DNS报文抓包
    在这里插入图片描述

注:关注一下上图中的正文中各部分格式

  • 过程说明(可能不对)
  1. 主机10.252.21.193先向本地域名服务器10.252.10.33进行递归查询
  2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的权限服务器www.a.shifen.com(时分??)的IP地址
  4. 本地域名服务器向权限服务器 www.a.shifen.com(时分??)进行查询
  5. 权限服务器 www.a.shifen.com告诉本地域名服务器所查询的主机的IP地址180.101.49.11
  6. 本地域名服务器最后把查询结果180.101.49.11告诉 10.252.21.193

网络资料:
DNS协议详解及报文格式分析

DHCP协议

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
DHCP是一个局域网协议,是应用UDP协议的应用层协议,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。实现终端即插即用,自动联网;
两个概念:临时IP租期

DHCP过程简述
  1. DHCP服务器监听默认端口:67
  2. 主机默认通过68接口,使用UDP协议广播DHCP发现(Discover)报文
  3. DHCP服务器发出DHCP提供(Offer)报文
  4. 主机向DHCP服务器发出DHCP请求(Request)报文
  5. DHCP服务器回应(Ack)并提供IP地址
  6. 主机下次重新登录网络时,主机向DHCP发送包含前一次所分配的IP地址的request报文
  7. DHCP服务器尝试让客户机使用原IP,成功则回答一个ACK消息。失败则返回NAK消息
  8. 主机收到ACK则绑定原来那个IP到网卡,若收到NAK则主机需要重新发送Discover报文
  9. 当客户机启动时或使用租期达到50%时,会向DHCP服务器发送单播Request请求报文请求续延租约,如果没有收到ACK报文,在租期达到87.5%时,会再次发送广播的Request请求报文以请求续延租约。
DHCP报文(八种)
报文类型说明
Discover(0x01)DHCP客户端在请求IP地址时并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送Discover请求报文,以发现网络中的DHCP服务器。所有收到Discover报文的DHCP服务器都会发送应答报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。
Offer(0x02)DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给DHCP客户端,告知用户本服务器可以为其提供IP地址。但这个报文只是告诉DHCP客户端可以提供IP地址,最终还需要客户端通过ARP来检测该IP地址是否重复。
Request(0x03)DHCP客户端可能会收到很多Offer请求报文,所以必须在这些应答中选择一个。通常是选择第一个Offer应答报文的服务器作为自己的目标服务器,并向该服务器发送一个广播的Request请求报文,通告选择的服务器,希望获得所分配的IP地址。另外,DHCP客户端在成功获取IP地址后,在地址使用租期达到50%时,会向DHCP服务器发送单播Request请求报文请求续延租约,如果没有收到ACK报文,在租期达到87.5%时,会再次发送广播的Request请求报文以请求续延租约。
ACK(0x05)DHCP服务器收到Request请求报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK应答报文,通知用户可以使用分配的IP地址。
NAK(0x06)如果DHCP服务器收到Request请求报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则向DHCP客户端发送NAK应答报文,通知用户无法分配合适的IP地址。
Release(0x07)当DHCP客户端不再需要使用分配IP地址时(一般出现在客户端关机、下线等状况)就会主动向DHCP服务器发送RELEASE请求报文,告知服务器用户不再需要分配IP地址,请求DHCP服务器释放对应的IP地址。
Decline(0x04)DHCP客户端收到DHCP服务器ACK应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向DHCP服务器发送Decline请求报文,通知服务器所分配的IP地址不可用,以期获得新的IP地址。
Inform(0x08)DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则向DHCP服务器发送Inform请求报文;DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向DHCP客户端发送ACK应答报文。目前基本上不用了。

抓取的DHCP报文部分
在这里插入图片描述
报文格式详解见下方连接

DHCP报文格式和类型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzw@sirius

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值