前期理解:
协议在应用层占比很大,那么接下来主要学习的就是几个协议: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 连接 。
很好理解:
-
大哥我要和你建立连接,使用一个rtt
-
大哥,我想要你的自拍。使用一个rtt
-
大哥,你自拍送到了,怎么这么慢。使用一个传输时间
所以,
-
请求 1 个 HTML 页面所需时间 =
2×RTT + 文档传输时间 (其中 1 个 RTT 用于 TCP 三次握手,1 个 RTT 用于 HTTP 请求和接收) 。
-
-
持续连接 (HTTP/1.1):同一个 TCP 连接可以连续请求多个对象 。
-
非流水线:客户收到前一个响应后,才能发下一个请求。除了已经建立的握手之外,自然就会增加 1×RTT 用于请求接受图片 。
-
流水线:客户可以连续发送多个对象的请求,所有图片请求可以并入同一个 RTT 发出 。
-
2. HTTP 报文与 Cookie
-
格式:面向文本,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) 。
-
工作 :
-
客户端发送
DHCPDISCOVER(发现) 。 ------有吗 -
服务端回复
DHCPOFFER(提供) 。 ------有的,可以提供 -
客户端发送
DHCPREQUEST(请求) 。 ------是多少ip -
服务端回复
DHCPACK(确认),客户端正式获得 IP 地址 。 ------IP是....
-
-
租用期更新 :当租期到达 50% 时,客户端会向服务端发送
DHCPREQUEST请求更新租期,若服务端同意则返回DHCPACK重新计时 。
七、 SNMP(Simple Network Management Protocol)简单网络管理协议
-
核心组成:管理站(运行管理程序,SNMP 客户)和被管设备(运行代理程序,SNMP 服务器) 。
-
操作与工作方式 :
-
轮询:管理进程 定时向 代理 发 get 报文读取状态(服务器端口 161) 。
-
陷阱(Trap):当设备发生严重异常事件时, 代理 主动向 管理进程 发送报告(客户端端口 162) 。
-
八、 应用层协议+端口号(总结)
