[Remaster] 应用层

本文详细介绍了网络应用模型,包括C/S模型、P2P模型、DNS解析原理、FTP工作流程及HTTP特性等内容。同时,还对比了DNS查询的不同模式,并解释了SMTP、POP3等邮件协议的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络应用模型

  • C/S模型
  • P2P模型

DNS

用的是UDP

域名解析树

根域名->顶级域名->授权域名

DNS的解析过程

主机查DNS是递归查询
DNS服务器查DNS是迭代查询

  1. 主机向本地DNS服务器递归查询
  2. 本地DNS服务器向更高级的域名服务器查询
  3. 更高级的服务器返回域名所在的较低级服务器
  4. 查询较低级服务器,返回域名所在的更低级DNS
  5. Loop…
  6. Until 有域名-IP的记录,返回
    以上步骤是基于本地没有DNS Cache的 有的话直接返回完事.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m8Nie73Y-1631862894799)(index_files/0.20314520358764424.png)]

这个图比书上的图好使多了.注意,这里的DNS客户指的是本地DNS服务器,并且只提到了迭代查询

一些小Tips

DNS查询方式有两种,一种是递归模式垂直查询,一种是上图的递归-迭代混合模式.一定要看清题目.
题目可能出现DNS查到了之后还要建立TCP连接下载index.html的,TCP建立连接加传送一共是2个RTT(发出SYN始到收到数据报还没发ACK止)一定要注意

域名服务器的级别从高到低:

  • 根服务器 *
  • 顶级域名服务器 .com
  • 授权域名服务器 *.*.*.com 这里一定有域名-IP记录
  • 本地DNS服务器

FTP

使用两个并行的TCP连接
21是控制端口,20是数据端口
属于带外传送,即控制连接和数据连接分立.

工作流程

  1. Listen port 21
  2. 建立连接,创建子进程处理
  3. 终止,关闭子进程处理其他request

主动模式PORT

  1. Client连接21端口
  2. Client随机开放端口,服务器用20端口主动连接**

被动模式PASV

  1. Client连接21端口
  2. Client需要传送数据时,发送PASV
  3. 服务器随机打开端口,Client建立连接

不同点:
PORT是服务器连接客户端,PASV是客户端连接服务器
PASV不是20端口

Tips

  • FTP仅支持文件传输,而不支持文件的在线读写修改.需要修改应该down下来再upload.
  • 建立连接时客户端的端口是不定的.
  • 数据连接在每次传输完毕后就关闭,而控制连接持续于整个会话过程.

MAIL

用户代理(主机)/邮件服务器/邮件协议

电子邮件格式和MIME

电子邮件的基础header格式
  • From:
  • To:
  • (Optional)Subject:
MIME

支持多媒体文件的传输
在用户和SMTP之间加上转换关系:用户的非ASCII文件->7位扩展ASCII->SMTP
etc…

SMTP

一种简单的电子邮件传输协议,使用TCP,PORT25
SMTP的传输过程

  1. 发送方邮件服务器建立和接收方邮件服务器的TCP连接
  2. 传送邮件:
    1. MAIL FROM
    2. 250 OK
    3. RCPT 收件人
    4. 250/550有/没有这个用户
    5. DATA
    6. 354
    7. *传送邮件
    8. QUIT
    9. 221

POP3

一种邮件读取协议
用户要求读取邮件时,从邮件服务器拉取
使用TCP,端口110
两种工作模式:下载并保留/下载并删除

SMAP

更复杂的邮件存取协议


TIPS

SMTP支持从用户代理到邮件服务器,邮件服务器之间的传送
邮件服务器到用户部分由POP3处理

HTTP

运输层使用TCP的协议,端口号80

HTTP的工作流程

  1. 发送DNS解析请求
  2. 收到Response
  3. 浏览器连接主机80端口发出请求
  4. 传输index.html
  5. 断开TCP连接

HTTP特点

HTTP是无连接的:虽然用的TCP,但HTTP传输之前不需要使用TCP建立专门的HTTP连接.
HTTP是无状态的: 主机不会记忆请求的来源.如果需要,使用Coookies.
HTTP使用非持久连接,1.1默认使用持久连接:即可以传送完文件后立即断开,也可以全部传完再断开

HTTP报文结构

  1. 开始行:包含请求方法和HTTP版本号
  2. 首部行:包含浏览器等信息
  3. 实体主体:没啥玩意

TIPS

使用UDP协议包括:TFTP、DNS、DHCP、SNMP、NFS、BOOTP
使用TCP协议包括:HTTP, SSL ,FTP, SFTP、SMTP, POP3, IMAP
服务器仅响应而不发送请求对象时,使用HEAD方法
如果要求持续链接,Connection字段应为Alive,否则为Closed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值