OSI参考模型
- OSI参考模型(Open System Interconnection Reference Model),是国际标准化组织ISO于1984年发布的用于开放网络互联的模型。
TCP/IP参考模型
- OSI参考模型较为复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的实际参考模型
TCP/IP协议栈常见协议
应用层
- 为应用软件提供接口,使应用程序能够使用网络服务。应用程序会基于某一种传输协议,以及定义传输层所使用的的端口。
- 典型应用层协议:
- HTTP( Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面;
- FTP( File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上;
- TFTP:简单文件传输协议,提供简单的文件传输服务。
- DNS( Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之间的转换。
- Telnet:远程登录协议,提供远程管理服务。
- SMTP:简单邮件传输协议提供互联网电子邮件服务。
FTP
用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,采用C/S结构。
服务器和客户机之间建立:控制连接、数据连接
FTP连接分为主动模式和被动模式(区别在于数据连接是由服务器发起的还是客户机发起的,默认采用主动模式)
缺省情况下,服务器的端口21用于传输控制命令,端口20用于传输数据。
⚠️ 主动模式下,当客户端存在防火墙时,由于数据连接是由服务器发起,数据连接可能会发生问题。
⚠️ 被动模式下,这个问题得到了解决。主动模式有利于对FTP服务器的管理,不利于对客户端的管理;被动模式则相反。
• FTP连接主动模式建立过程:
▫ 服务器打开端口21,启动监听,等待连接;
▫ 客户端发起控制连接的建立请求,服务器响应;
▫ 客户端通过控制连接发送PORT命令,将客户端数据连接的临时口号告诉服务器;
▫ 服务器的20端口与客户建立起数据连接。
• FTP连接被动模式建立过程:
▫ 服务器打开端口21,启动监听,等待连接;
▫ 客户端发起控制连接的建立请求,服务器响应;
▫ 客户端通过控制连接发送命令字PASV,告知服务器处于被动模式;
▫ 服务器回应,将数据连接的临时端口号告诉客户;
▫ 客户端与服务器的临时口建立起数据连接。
SFTP
Secure File Transger Protocol,安全文件传输协议,是一种基于SSH(Secure Shell)提供文件安全传输的网络协议。
FTP是明文传输的,SFTP对传输的认证信息和数据进行加密。
SFTP是一个单通道协议,目的端口默认为 22,通过客户端和服务端之间的SSH协议安全连接来传输文件
Telnet
- Telnet可以实现在本地计算机上操作远程设备
STelnet
STelnet(Secure Telnet)是一种安全的Telnet服务,可以实现在本地计算机上操作远程设备。
所有交互数据均经过加密,实现安全的会话连接。
STelnet通过SSH协议实现,目的端口默认为 22
STelnet服务端与客户端的协商活成包括以下五个阶段:
• 版本协商阶段: SSH目前包括SSHv1和SSHv2两个版本,双方通过版本协商确定使用的版本。
• 算法协商阶段: SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的加密算法。
• 密钥交换阶段:通过密钥交换算法生成会话密钥,此后双方的会话均通过会话密钥加密。
• 用户认证阶段: SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。
• 会话交互阶段:认证通过后,服务器端和客户端进行信息的交互。
HTTPS
HTTP( Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面;
HTTPS( Hypertext Transfer Protocol Secure,超文本传输安全协议):是以安全为目标的HTTP通道。
传输层
传输层协议接受来自应用层的数据,封装上响应的传输层头部,帮助其建立 “端到端” 的连接(进程之间的连接)。
▫ TCP( Transmission Control Protocol,传输控制协议):为应用程序提供可靠的面向连接的通信服务。
▫ UDP( User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证(尽力而为)。
报文格式
网络层
负责数据从一台主机到另一台主机之间的传递。
网络层作用:
负责将分组报文从源主机发送到目的主机;
为网络中的设备提供逻辑地址;
负责数据包的寻径和转发。
IP协议
当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。
IP地址由32位二进制数表示,通常写成 点分十进制 的形式。
IP协议工作时,需要如OSPF、 IS-IS、 BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。
IP报文头部
ICMP
Internet控制消息协议,是IP协议的辅助协议。
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排错各种网络故障等方面起着至关重要的作用。
ICMP差错检测:
ICMP Echo Request
和ICMP Echo Reply
用于诊断源和目的地址之间的网络连通性(ping 命令)。ICMP错误报告:ICMP定义了各种错误消息,用于诊断连接性问题,Tracert 命令 基于报文头中的TTL值来逐跳追踪报文的转发路径。Tracert 是检测网络丢包和时延的有效手段。
ARP
ARP( Address Resolution Protocol,地址解析协议)是根据IP地址获取MAC地址的一个TCP/IP协议。
- 主要功能:
- 将IP地址解析为MAC地址;
- 维护ARP表项(即维护IP地址与MAC地址的映射关系的缓存)
- 实现网段内重复IP地址的检测。
数据链路层
负责组帧、物理编址和差错控制等功能
常见的数据链路层协议:以太网、PPPoE、PPP等。
以太网帧结构
- 以太帧有两个标准:
Ethernet ||
IEEE 802.3
数据封装/解封装
发送方数据封装
假设你正在通过网页浏览器访问华为官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:
- IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装;
- HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块;
- TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段);
- 在IPv4网络中, TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理);
- IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包);
- 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理;
- Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧);
- 在Ethernet模块封装完毕之后,会将数据传递到物理层;
- 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等;
- 转换完成的信号在网络中开始传递。
接收方数据解封装
经过网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将被一层层的解封装并做相应的处理和传递,最终交由Web服务器上的应用程序进行处理。
常见网络设备
交换机
交换机工作在数据链路层,根据MAC地址表转发数据帧。MAC地址表存放了MAC地址与交换机端口之间的映射关系。
- 交换设备通过学习以太网数据帧的:
- 源MAC地址 来维护MAC地址与接口的对应关系(MAC地址表)
- 目的MAC地址 来查找MAC地址表决定向哪个接口转发。
路由器
路由器工作在网络层,使报文能够在不同网络中转发。
功能:运行路由协议,维护路由表,路由寻址,报文转发。
防火墙
- 防火墙是对网络的
访问行为
进行控制的一种设备,安全防护是其核心特征,主要部署在网络边界。- 防火墙认为在同一安全区域内部发生的数据流动 是不存在安全风险的,不需要实施任何安全策略;
- 当不同安全区域之间发生数据流动时 ,才会触发设备的安全检查,并实施响应的安全策略。
发展历史
- 根据发展历史可以将防火墙分为:
- 包过滤防火墙(实现简单的访问控制 )
- 状态检测防火墙(通过动态分析报文的状态来决定对报文采取的动作 )
- NGFW 下一代防火墙(DPI( Deep Packet Inspection,深度报文检测) )
防火墙的功能
- 隔离不同安全级别的网络;
- 实现不同安全级别网络之间的访问控制(安全策略);
- 用户身份认证;
- 实现远程接入功能;
- 实现数据加密及虚拟专用网业务;
- 执行地址转换;