计算机网络期末复习笔记(并不犯困版+大白话版)-第六章应用层

复习笔记目录

前期理解:

协议在应用层占比很大,那么接下来主要学习的就是几个协议:DNS,HTTP,FTP,DHCP,SMTP,POP...

一、DNS (Domain Name System)

DNS是域名系统,是一个服务。

工作:众所周知我们上网访问的最终都是ip地址,dns负责把域名(xxxx.com)翻译成ip地址

信息:DNS默认端口53,既可以使用TCP也可以使用UDP

1.等级制度

注意:这里的根实际上是".",实际我们日常使用的时候省略了

例如:本来是"<www.huawei.com>.",但我们实际喜欢输的是"<www.huawei.com>"

2.dns服务器

有域名系统就有相应的域名服务器。

2.1 域名服务器分类

  • 根域名服务器:最高层次,管理顶级域名服务器 。

  • 顶级域名服务器:管理在该服务器注册的二级域名 。

  • 权限域名服务器:负责一个"区"的域名解析 。

  • 本地域名服务器:主机发出的 DNS 请求首先到达的地方 。

2.2 两种查询方式

  • 递归查询:递推到最后拿到结果了,再按照走过的路一步一步返回

    主机 → 本地域名服务器。本地域名服务器如果不知道,会替主机向其他服务器继续查,直到查到结果返回 。(发出 1 条请求)

  • 迭代查询:重复性工作->对于每一台服务器都有经过这样的工作:我知道我就返回给你,不知道的话告诉你能去找谁

    本地域名服务器 → 根/顶级/权限服务器。被询问的服务器如果不知道,不帮着查,而是返回下一步应该去问谁的 IP,由本地域名服务器自己继续去问 。

结论:在域名解析过程中,

主机向本地域名服务器一般采用递归查询;

本地域名服务器向外采用迭代查询 。

2.3 高速缓存机制

每个域名服务器都有高速缓存,存放最近查过的映射记录,为了减少向外查询次数 。

2.4 查看域名解析的命令:

nslookup 域名


二、FTP(File Transfer Protocol)文件传输协议

FTP实现文件的上传和下载

双通道设计:FTP 的服务器进程由 主进程 和 很多从属进程 组成 。

主进程,负责接受新的请求;从属进程,负责处理单个请求;分别使用两个 TCP 连接 :

控制连接(端口 21):整个会话期间一直保持打开,用于传输连接命令和参数 。 ------ 为了连接

数据连接(端口 20):只有在发生文件传输(上传/下载/列目录)时才临时建立,传输完毕后立即关闭 。 ------ 为了传输

交互访问:例如文件的 存取 权限。存取本身就是一个交互的过程


三、 HTTP(HyperText Transfer Protocol)超文本传输协议

1. HTTP 建立连接所需的时间 (RTT:round---trip time往返时延,我喜欢叫它往返时间)

分为两种情况:

  • 非持续连接 (HTTP/1.0):每下载一个对象(如网页、图片)就要单独建立一次 TCP 连接 。

    很好理解:

    1. 大哥我要和你建立连接,使用一个rtt

    2. 大哥,我想要你的自拍。使用一个rtt

    3. 大哥,你自拍送到了,怎么这么慢。使用一个传输时间

      所以,

    • 请求 1 个 HTML 页面所需时间 =

      2×RTT + 文档传输时间 (其中 1 个 RTT 用于 TCP 三次握手,1 个 RTT 用于 HTTP 请求和接收)

  • 持续连接 (HTTP/1.1):同一个 TCP 连接可以连续请求多个对象 。

    • 非流水线:客户收到前一个响应后,才能发下一个请求。除了已经建立的握手之外,自然就会增加 1×RTT 用于请求接受图片 。

    • 流水线:客户可以连续发送多个对象的请求,所有图片请求可以并入同一个 RTT 发出 。

  • 格式:面向文本,ASCII 码。

    请求报文 开始行为请求行,包含方法(GET/POST等)、URL、版本 ;

    这里的CRLF是换行的意思

    响应报文 开始行为状态行,包含状态码(如 200 OK,404 Not Found) 。

    常见:

    HTTP/1.1 202 Accepted 接受

    HTTP/1.1 400 Bad Request 错误的请求

    Http/1.1 404 Not Found 找不到

    ->啥意思:

    •1xx 表示通知信息,如请求收到了或正在进行处理。

    •2xx 表示成功,如接受或知道了。

    •3xx 表示重定向,跳转到其他页面去了

    •4xx 表示你的差错

    •5xx 表示服务器爆了,无法处理你的请求

  • Cookie :HTTP 是无状态的,Web 站点在服务器生成识别码,通过 HTTP 响应里的 Set-Cookie 发给客户端,后续客户端请求带上该 Cookie,从而实现用户状态跟踪 。

  • 控制字段Connection: Close 代表不使用持续连接,在发送完后关闭 TCP 。


五、 电子邮件系统

SMTP / POP3(Post Office Protocol v3) / IMAP(Internet Message Access Protocol)管理邮件用的 / MIME

  • 发送协议SMTP(端口 25,基于 TCP) 。

    注意:SMTP (Simple Mail Transfer Protocol)在发送方与接收方邮件服务器之间直接建立连接,不使用中间邮件服务器

  • 读取协议

    • POP3:读取邮件后,服务器默认会删除该邮件(离线接收) 。

    • IMAP:联机协议,客户端的操作会与服务器上的邮件库进行同步更新 。

  • MIME (Multipurpose Internet Mail Extensions):SMTP 只能传输 7 位 ASCII 码(纯文本) 。

    MIME 增加了新的邮件首部和编码方式(如 Base64 编码 :将任意二进制数据转换为 7 位 ASCII 码,开销为 25%),目的是支持传输Multi多媒体文件和非英文字符 。


六、 DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

就是服务器给客服 动态地提供 ip地址

  • 协议机制 :基于 UDP 协议,通过广播方式交互(客户端不知道 DHCP 服务器的 IP,服务器也不知道新客户端的 IP) 。

  • 工作

    1. 客户端发送 DHCPDISCOVER(发现) 。 ------有吗

    2. 服务端回复 DHCPOFFER(提供) 。 ------有的,可以提供

    3. 客户端发送 DHCPREQUEST(请求) 。 ------是多少ip

    4. 服务端回复 DHCPACK(确认),客户端正式获得 IP 地址 。 ------IP是....

  • 租用期更新 :当租期到达 50% 时,客户端会向服务端发送 DHCPREQUEST 请求更新租期,若服务端同意则返回 DHCPACK 重新计时 。

七、 SNMP(Simple Network Management Protocol)简单网络管理协议

  • 核心组成:管理站(运行管理程序,SNMP 客户)和被管设备(运行代理程序,SNMP 服务器) 。

  • 操作与工作方式

    • 轮询:管理进程 定时向 代理 发 get 报文读取状态(服务器端口 161) 。

    • 陷阱(Trap):当设备发生严重异常事件时, 代理 主动向 管理进程 发送报告(客户端端口 162) 。

八、 应用层协议+端口号(总结)