本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。
本节 PPT 包含 5-7 三层:
- 会话层(The Session Layer)
- 展示层(The Presentation Layer)
- 应用层(The Application Layer)
第五层:会话层
- TCP 控制传输,如果用户想要完成一定的数据控制,就会对应在会话层完成。
第五层的职责
- 基于令牌进行交互发言,通过数据同步保证数据完整性(应用逻辑)
- 进行数据分段、拼接,保证传输的有效。
- 同步技术,保证故障恢复。
五层的服务
双向同步通讯?
- 全双工通信
- 半双工通信
- 单工通信
双向交替控制?
- 会话连接、活动开始、数据校验(同步)
- 令牌转换等
是否同步了您的会话的主题?
同步点(CheckPoint)用于分隔会话的各个部分,以前称为对话(dialogues)
- 同步点:发送一定数据后设置同步点
- 次同步点:作为同步点的一个子集,进行数据校验
- 主同步点:按照主同步点进行校验确认
- 如果错误,恢复到上次都已经同步的主同步点
对话分离(Seperation)是通信的有序启动,终止和管理
尽量保证了通话的效率和可靠性。
第五层设备
客户端-服务器模式(Client-Server):通过会话实现
第六层:表示层
表示层负责以接收设备可以理解的形式表示数据。
- 传送语法协商
- 接受语法协商
表示层具有 3 个主要功能:
- 数据格式(format)
- 数据压缩(compression):早期网络比较慢,倾向于先压缩在发送
- 数据加密(encryption)
协商编码方式可以在会话层中实现
解决不同的底层操作系统编码方式不同的问题,以防造成误解
数据格式
想象两个不同(dissimilar)的系统。
- 一种使用扩展二进制编码的十进制交换码(EBCDIC,Extended Binary Coded Decimal Interchange Code)格式化文本
- 另一种使用美国信息交换标准码(ASCII)格式化文本
- 选择大家都能识别的编码形式传输,保证大家都能理解
第六层提供了这两种不同类型的代码之间的转换
图形文件格式
互联网通常使用两种二进制文件格式来显示图像:
- 图形交换格式(GIF,Graphic Interchange Format)
- 联合图像专家组(JPEG,Joint Photographic Experts Group)。
任何具有读取器的 GIF 和 JPEG 文件格式的计算机都可以读取这些文件类型,而与计算机的类型无关。
多媒体文件格式
多媒体文件格式是另一种二进制文件,它存储声音,音乐和视频。
- 这些文件可以完全下载,然后播放,也可以在播放时下载。
- 后一种方法称为流音频。
数据加密与压缩
第六层负责数据加密:数据加密可在信息传输过程中保护信息。
表示层还负责文件的压缩。
第七层:应用层
上图中各层的一些协议和使用:会话层对端口进行管理
第七层对应了应用界面,第六层对应了各种协议
应用程序层(最接近用户)支持应用程序的通信组件。
应用层职责
- 确定并确定预期的通信合作伙伴的可用性
- 同步合作的应用程序
- 同步协作的应用
- 建立有关错误恢复程序的协议
- 控制数据完整性
- 通过网络应用(network applications)为 OSI 模型的其余部分提供一个直接接口,或是通过独立应用提供非直接接口,如文字处理,电子表格,演示管理器(presentation managers),网络重定向器
- 不同应用不同情况
超文本传输协议
- 和电视的播放比较类似,通过浏览器界面切换内容,通过 URL 切换
- 多源点传输,内容规范
- 如何实现 URL 的转发:HTTP
- 如何完成界面:html
- 如何整合和查询:搜索引擎
统一资源定位符 URL
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
- URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
- 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
- URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
<URL 的访问方式>://<主机>:<端口>/<路径>
- 访问方式:协议 HTTPS 或者 HTTP
- 主机:域名的方式
- 端口对应进程
- 路径对应具体的文件
HTTP
- HTTP 是面向事务的客户服务器协议。
- HTTP 1.0 协议是无状态的(stateless)。
- 每一次请求是独立的,不记录上一次请求信息。
- Cookie 是征求同意的存储(维持登录状态),可以保证在多个应用之间维持登录状态。
- HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
- 万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon, 有的文献将它缩写为 HTTPD。
- HTTP daemon 在收到 HTTP 客户的请求后,把所需的文件返回给 HTTP 客户。
HTTP 的报文结构(请求报文)
- 报文由三个部分组成,即开始行、首部行和实体主体。
- 在请求报文中,开始行就是请求行。
- 请求报文和应答报文的应答结构都是一样的
- 应答码:
- 2xx:成功
- 3xx:重定向
- 4xx:错误
- 5xx:服务器内部错误,而不是客户端请求的错误
HTTP 请求报文的一些方法
方法(操作) | 意义 |
---|---|
OPTION | 请求一些选项的信息 |
GET | 请求读取由 URL 所标志的信息 |
HEAD | 请求读取由 URL 所标志的信息的首部 |
POST | 给服务器添加信息(例如,注释) |
PUT | 在指明的 URL 下存储一个文档 |
DELETE | 删除指明的 URL 所标志的资源 |
TRACE | 用来进行环回测试的请求报文 |
CONNECT | 用于代理服务器 |
HTML
- 定义了许多用于排版的命令(标签)。
- HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
- 仅当 HTML 文档是以.html 或.htm 为后缀时,浏览器才对此文档的各种标签进行解释。
- 当浏览器从服务器读取 HTML 文档,针对 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
- HTML 用一对标签(一个开始标签和一个结束标签)或几对标签来标识一个元素。
FTP 和 TFTP
- FTP 是一种可靠的,面向连接的服务,它使用 TCP 传输文件。
- FTP 首先在客户端和服务器(端口 21)之间建立控制连接
- 然后,建立第二个连接,这是计算机之间通过其传输数据的链接。(端口 20)
- TFTP 是使用 UDP 的无连接服务(简化的 FTP)
- 体积小,易于实施。更加方便
- 例如。 TFTP 在路由器上用于传输配置文件和 Cisco IOS 映像
- 不支持交互,没有目录浏览功能
- 互联网早期的时候,文件传输量是很大的。
主进程工作步骤
- 打开熟知端口(端口号为 21),使客户进程能够连接上。(可以修改熟知端口)
- 等待客户进程发出连接请求。
- 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 控制连接
- 数据连接:数据通信
- 需要建立上面两个连接才能完成传输
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
FTP 的屏幕信息举例
1 |
|
Telnet 协议
- Telnet 客户端软件提供了登录到运行 Telnet 服务器应用程序的远程 Internet 主机,然后从命令行执行命令的功能。
- 输入参数,达成一致,对服务器进行操作。
- 不同操作系统之间的快捷键和指令是有差异的,需要进行转换。
- 基于 Telnet 的标准:virtual Terminal 可视标准
SMTP 和 POP
电子邮件服务器使用 SMTP 发送和 POP 接收邮件相互通信。
- SMTP(Simple Mail Transfer Protocol) SMTP(简单邮件传输协议)邮件发送,登录发送等操作
- POP3(Post Office Protocol version 3) 邮件接收,邮件到达邮件服务端,由客户端和服务端联系接收邮件。
发送者先登录到服务器,通过服务器根据 SMTP 传输到对应的服务器,然后用户登录后通过 POP3 协议收邮件到本地。
MIME 增加 5 个新的邮件首部
- MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本。
- Content-Description: 这是可读字符串,说明此邮件主体是否是图像、音频或视频。
- Content-Id: 邮件的惟一标识符。
- Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的。
- Content-Type:说明邮件主体的数据类型和子类型。
MIME 和 SMTP 的关系
- MIME 标准扩充了 SMTP 标准
- 很多的文件(附件)并不是 ASCII 码的,我们需要用 MIME 将对应的文件进行转换(扩充)。过程如上图
SNMP 简单网络管理协议
- 简单网络管理协议(SNMP)是一种应用程序层协议,可简化网络设备之间的管理信息交换。
- NMS(Network Management System):网管,通过下发请求对上网的所有的主机关于流量等等信息进行管理(监控)
- 通过管理数据库(MIB)进行信息交流
- 使用 UDP 通过广播进行实现。
域名系统
域名系统(Domain Name System,DNS)是网络上的服务,该服务管理域名并响应客户端将域名转换为关联 IP 地址的请求。
早期是用 IP 地址以及 Host 文件来进行访问
域名
- 使用圆点
.
将字符串进行分隔开,字符串不应该太长 - 越靠后域名级别越高
- www 就是对应到主机群
TLD 顶级域
- 国家 TLD(nTLD)
- .cn(CHINA) 中国
- .us(United States) 美国
- .uk(United kingdom), etc. 英国等等
- 通用 TLD(gTLD),最早的域包括:
- .com Enterprises and companies 企业和公司
- .net Network services providers 网络服务提供者
- .org Nonprofit organizations 非盈利组织
- .edu Educational facilities 教育机构
- .gov Governments(only for U.S.A) 政府(美国)
- .mil Military facilities(only for U.S.A) 军方(美军)
- .int International organizations 国际组织
- 基础设施领域(Infrastructure domain)
- Only one: arpa, for resolving domain names reversely 仅一个:arpa,用于反向解析域名
- Recently, new TLD domain added:
- .aero(航空运输企业)
- .biz(公司和企业)
- .cat(加泰隆人的语言和文化团体)
- .coop(合作团体)
- .info(各种资讯)
- .jobs(人力资源管理者)
- .mobi(移动产品与服务的用户和提供者)
- .museum(博物馆)
- .name(个人)
- .pro(经过认证的专业人员)
- .travel(旅游业)
域名服务器
- 顶级域名底下的域名就是由顶级域名下面进行管理
- 根域名服务器存储位置,所以子服务器知道根服务器的地址即可
结合域名服务器查找 IP 地址
DNS 系统以层次(hierarchy)结构设置,该层次结构创建不同级别的 DNS 服务器。
此级别的 DNS 服务器判断其自身是否能够将域名转换为关联的 IP 地址:
- 如果可以,则将结果返回给客户端
- 如果没有,它将请求发送到更高级别。(向上级请求)
请求分为两种:
- 能够应答
- 不能够应答
递归地进行查找:具体过程在上图
下面递归,上面迭代
应用层:沟通的方式
通信处理发生的一种方式:(无上下文,请求后就断开)
- 当浏览器打开时,它将连接到默认页面,并且该页面的文件将传输到客户端。
- 处理完成后,连接断开。
第二种方式:(有上下文)
- 作为 Telnet 和 FTP,建立与服务器的连接并保持该连接,直到执行所有处理。
- 当用户确定他/她已完成时,客户端将终止连接。
所有的交流活动都属于这两类之一。
动态主机配置协议 DHCP
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)服务器可以是服务器。
DHCP 概述
一个协议软件在使用之前先作正确协议配置,具体配置内容取决于协议。接到因特网的计算机的协议软件需要配置的项目包括:
- IP 地址
- 子网掩码
- 默认路由器的 IP 地址
- 域名服务器的 IP 地址
DHCP 可以高效地分配 IP 地址。是局域网的网络协议,使用 UDP 来实现。
目前一般都是自动获取 IP 地址,而不需要手动去获取 IP 地址等信息。
DHCP 过程
DHCP 工作过程
- AB 是两个 Server
- Client 先 Discover 去搜索
- Server 返回一个 Offer 报文
- Client 选择优先返回的 Offer 来优先服务
- Client 进行广播,告知到底服务了谁
- 然后 B 返回一个 Ack 报文
- 到了时间之后,选择 release 或者续租
- AB 的信息不对称不同步(局域网的地址 B 分配完成了但是 A 不知道,广播里面会携带分配的地址信息,告知 A 进行同步)
发现阶段
- DHCP Client 开始并不知道 DHCP Server 的 ip 地址,因此以广播的方式发出 DHCP Discover 报文
- 广播携带地址是 MAC 地址
响应阶段
- DHCP Server 在 IP 地址池中查找合法的 IP 地址通过 DHCP Offer 报文提供给 DHCP Client
选择阶段
- DHCP Client 选择一个 DHCP Offer 报文(一般选择最先收到的 DHCP Offer 报文),向网络发送一个 DHCP Request 广播数据包,所有的 Server 进行同步
租约确认阶段
- DHCP Server 接收到 DHCP Request 消息后,以 DHCP ACK 消息向 DHCP Client 广播成功的确认;出错则广播否定确认消息 DHCP NAK
租期续约
- 在租期中,DHCP Client 直接向为其提供 IP 地址的 DHCP Server 发送 DHCP Request 消息,收到回应的 DHCP ACK 消息后,DHCP Client 根据所提供的新的租期以及其它更新的 TCP/IP 参数更新自己的配置,IP 租用更新完成
租期释放
- 当 DHCP Client 不再需要使用分配 IP 地址时,就会主动向 DHCP Server 发送 Release 报文,告知不再需要分配 IP 地址,DHCP Server 会释放被绑定的租约
- 到时间后,Server 会主动询问,如果没有应答会自动释放
DHCP 报文结构
- op:报文类型,1 请求,2 应答
- HTYPE:硬件地址类型,1 表示 10M 以太网地址
- HLEN:以太网地址长度,10M 为 6
- Hops:是否使用代理服务器进行处理
DHCP 报文类型
- DHCP Discover:发现
- DHCP Offer:提供
- DHCP Request:告知决定
- DHCP ACK:租约确认
- DHCP NAK:租约不确认
- DHCP Release:释放租约
- DHCP Decline:收到 Ack 后,Client 告诉服务器不接受
- DHCP Inform:客户端向服务器端请求详细信息
DHCP 欺骗及防范
DHCP 欺骗原理
- 客户端以广播的方式来寻找服务器,并且只接收第一个到达的服务器提供的网络配置参数。
- 非授权的 DHCP 服务器先应答,客户端最后获得的网络参数即是非授权的,客户端即被欺骗。(恶意服务器把自己作为默认网关)
- 在实际应用 DHCP 的网络中,基本上都会采用 DHCP 中继,因此本网络的非授权 DHCP 服务器一般都会先于其余网络的授权 DHCP 服务器的应答(由于网络传输的延迟),在这样的应用中,DHCP 欺骗更容易完成。
DHCP 欺骗攻击
- 首先 PC 发出请求
- 然后将 DHCP 请求发送出去
- 伪装者收到后,DHCP 伪装者给出应答
- DHCP Server 也会给出应答,但是可能比伪装者慢
- 这样子 A 收到的就是伪装者的报文
- A 发出去的网关就是 B,所以 A 上网的请求就发送给 B,B 转发给默认网关上网,然后返回信息给 B
- B 再把返回的信息给 A
- 很隐蔽的安全问题
- 除了服务器不应该启动 DHCP 进程
DHCP 欺骗防范
- 在交换机上启用 DHCP Snooping 功能 DHCP Snooping 技术通过建立和维护 DHCP Snooping 绑定表过滤不可信任的 DHCP 信息:比如 B 的 DHCP 不能通过认证,交换机拒绝进行转发
- 在交换机的全局配置模式中启用 DHCP Snooping:
switch(config)# ip dncp snooping
- 在交换机的全局配置模式中开启需要启用 DHCP Snooping 的 VLAN":
switch(config)# ip dhcp snooping vlan vlan 号
- 在端口配置子模式中将授权 DHCP 服务器所连的端口设为信任端口(缺省都是非信任的端口):就是连接到 DHCP Server 的端口:
switch(config-if)# ip dhcp snooping trust
- 在交换机的全局配置模式中启用 DHCP Snooping: