OSI七层和TCP/IP四层模型
OSI七层模型 | 功能 |
---|---|
应用层 | 指定完成某些用户初始化任务的方法 |
表示层 | 指定针对应用的数据表示格式和转换规则的方法 |
会话层 | 指定有多个连接组成一个通信会话的方法 |
传输层 | 指定运行在相同计算机系统中的多个程序之间的连接或关联的方法 |
网络层 | 指定经过潜在不同类型链路层网络的多跳通信方法 |
数据链路层 | 指定经过单一链路通信的方法,包括多个系统共享同一介质时的控制协议 |
物理层 | 指定连接器、数据速率和如何在某些介质上进行位编码 |
- 分层体系结构的优点:协议复用
TCP/IP四层模型 |
---|
应用层 |
传输层 |
网络层 |
链路层 |
TCP/IP协议族结构和协议
- IPv4:32位
- IPv6:128位
- 子网掩码:一台主机或路由器使用的分配位
端口号 | 0-65535 |
---|---|
熟知端口号 | 0-1023 |
注册端口号 | 1024-49151 |
动态/私有端口号 | 49152-65535 |
熟知端口号 | 协议 |
---|---|
22 | SSH |
20、21 | FTP |
23 | Telnet远程终端协议 |
25 | SMTP |
53 | DNS |
80、443 | HTTP、HTTPS |
143、 993 | IMAP和IMAPS交互式邮件访问协议 |
161、 162 | SNMP简单网络管理协议 |
389 | LDAP轻量级目录访问协议 |
协议名 | 描述 |
---|---|
ARP地址解析 | IPv4专用协议,只用于多接入链路层协议,完成IP层使用的地址和链路层使用的地址之间的转换 |
ICMP控制消息 | IP的辅助协议,使用它与其他主机或路由器的IP层之间交换差错消息和其他重要消息 |
DNS域名解析 | 是一个分布式数据库,提供主机名和IP地址之间的映射 |
链路层
PDU(Protocol Data Unit)协议数据单元: 帧
广播功能用于ARP协议,组播功能用于ICMP协议
交换机本质上是高性能的网桥
网桥端口可能有5个状态:阻塞、侦听、学习、转发、禁用
Wi-Fi
WEP(有限等效保密)
- WPA(保护访问),使用加密块代替密钥,采用一种称为TKIP(临时密钥完整性协议)的方案,确保每个帧都用不同密钥加密,它还包括一种称为Michael的消息完整性检查。
- WEP、WPA使用RC4加密算法,WPA2使用AES加密算法
PPP
- 点到点协议,是一种在串行链路上传输IP数据报的流行方法
环回接口
- 通常为127.0.0.1,环回数据可被传输层处理,并在网络层被IP处理
基于链路层的攻击
- 嗅探:传统有线以太网中,接口可被设置为混杂模式,该功能允许任何一台连接以太网的计算机嗅探别人的帧并检测其内容。
- 另一种攻击目标是交换机:交换机中有一个基于每个端口的站列表,如果这种列表能被快速填充,交换机可能被迫放弃合法条目。
地址解析协议
发现两个地址之间的映射关系的过程
ARP提供从网络层地址到相关硬件地址的动态映射
ARP高效运行的关键是维护每个主机和路由器上的ARP缓存
Internet协议
IP:所有TCP、UDP、ICMP数据都是通过IP数据报传输
- IP提供了一种尽力而为、无连接的数据报交付服务
- 生存期TTL:用于设置一个数据报可以经过的路由器数量的上限
- 隧道:指将一个协议封装在另一个协议中,可用于形成虚拟的覆盖网络
- IP转发:描述了IP数据报通过单一和多跳网络的传输方式
- IP转发表:目的地、掩码、下一跳、接口
- IP的头部字段表示每个数据报的流量类型或服务类别
DHCP
- DHCP–动态主机配置协议
- DHCP组成:地址管理、配置数据交付
- DHCP中继:用于将DHCP操作扩展到跨越多个网段
防火墙和NAT网络地址转换
- NAT(Network Address Translation)网络地址转换
防火墙
- 最常用的两种:代理防火墙、包过滤防火墙
- 主要区别:所操作的协议栈层次及由此决定的IP地址和端口号的使用
- 代理防火墙本质是运行一个或多个应用层网关的主机
- 代理防火墙最常见的形式是:HTTP代理防火墙和SOCKS防火墙
网络地址转换
- NAT本质是一种允许在互联网的不同地方重复使用相同IP的地址集的机制
- NAT的引入解决两个问题:IP地址枯竭、路由可扩展行动担忧
- 工作原理:重写通过路由器的数据包的识别信息
NAT和NAPT
- 传统NAT包括基本NAT和网络地址端口转换NAPT
- 基本NAT只进行IP地址的重写,NAPT使用传输层标识符确认一个特定数据包跟NAT内部哪台主机关联(有时重写端口号)
- NAT有助于拓扑隐藏
ICMP
使用IP协议传输,位于网络层和传输层协议之间,表明某些类别的故障和配置信息
分类:
有关IP数据报传递的ICMP报文—-差错报文
有关信息采集和配置的ICMP报文—-查询或信息类报文
traceroute工具:用来确定从发送者到目的地路径上的路由器
广播和组播
- 在TCP/IP中,广播是指向网络或子网中的所有主机发送与一个数据分组,通常是本地连接的网络
- 组播是只向网络中一个子集节点发送流量
- 广播和组播可以避免通过重复使用单播连接将相同内容发送到多个目的地
- IPv4中,有两种类型广播地址:受限(255.255.255.255)、定向
UDP用户数据报协议
- UDP:保留消息边界的简单的面向数据报的传输层协议
- 不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制
- 当避免建立连接的开销时,当要使用多断点传送时(广播、组播),或者当不需要TCP的可靠语义时
- UDP其他主要用途之一是支持DNS
名称解析和域名系统
- 主机名称通过名称解析的过程转换为IP地址
- DNS是一个分布式的客户机/服务器网络数据库,完成映射
DNS名称空间
- DNS名称空间–DNS中使用的所有的名称集合,大小写不敏感
- 顶级域名(LTD)、通用顶级域名(gTLD)、国家代码顶级域名(ccTLD)、国际化国家代码顶级域名(IDN ccTLD)、基础设施顶级域名(infrastructure TLD)
缓存
- 每个DNS记录有自己的TTL以控制其缓存的时间,TTL指明DNS中一个映射在任何地方能够被缓存的时间
- LInux系统中,名称服务缓存进程(Name Service Caching Daemon)提供客户端的缓存功能,由/etc/nscd.conf文件控制
DNS协议
- 组成:
1.用于执行对DNS特定名称查询/相应协议
2.名称服务器用于交换数据库记录的协议
- 最典型用法:使用一个简单的查询/响应来查找域名对应的IPv4地址
- DNS名称解析:将域名映射到IPv4地址的过程
TCP
- TCP提供了一种面向连接的、可靠的字节流的传输层服务
TCP头部和封装
- TCP头部包含了源/目的端口号
- 一个IP地址和一个端口号的组合被称为端点(endpoint)或套接字(socket)
连接管理
- TCP是一种面向连接的单播协议
- 一个TCP连接由一对端点或套接字构成
- 阶段:
1.启动
2.数据传输
3.关闭
三次握手 建立连接:
1.主动开启者发送SYN,指明想要连接的端口号和它的客户端初始序列号ISN(c)
2.服务器也发送之间的SYN响应,为了确认客户端的SYN,服务器将其包含的初始序列号数ISN(c)值加1后作为返回的ACK值。若丢失则该SYN段将重传。
3.为了确认服务器的SYN,客户端将ISN(s)数值加1作为返回的ACK数值
FIN:TCP规定通过发送一个FIN段来发起关闭操作,双方都完成关闭操作后,才构成一个完整关闭
TCP连接管理相关的攻击
1.SYN泛洪:一种TCP拒绝服务攻击 解决方法:SYN+Cookies
2.与路径最大传输单元发现过程相关:攻击伪造ICMP PTB消息,该消息包含了一个非常小的MTU,这样就迫使受害的TCP尝试采用非常小的数据包来填充数据,从而大大降低了性能。
3.序列号攻击:破坏现有现有TCP连接,使两个正在通信的TCP节点失去同步,这样他们将使用不正确的序列号
4.欺骗攻击:生产一个伪造的重置报文段并将其发送给一个TCP通信节点
超时与重传
- 重传机制:
1.基于时间 — 设置计时器
2.基于确认信息的构成 — 更高效
TCP拥塞控制
- 难点:在于怎样准确地判断何时需要减缓、如何减缓TCP传输,以及何时恢复原有速度
拥塞检测
- 针对丢包情况,TCP采取首要机制是重传,包括超时重传和快速重传。
- 当拥塞情况时,通过在TCP头部设置的通知窗口大小字段,减缓TCP发送端的发送速率
TCP的核心算法 | 目的 |
---|---|
慢启动 | 使TCP在用拥塞避免探寻更多可用带宽之前得到cwnd值,以及帮助TCP建立ACK时钟 |
拥塞避免 | 为了得到更多的传输资源而不致影响其他连接传输 |
TCP保活机制
设计目的:
1.需要了解什么时候终止进程或断开连接
2.虽然应用进程之间没有任何数据交换,但仍然需要通过连接保持一个最小的数据流
保活机制是一种不影响数据流内容的情况下探测对方的方式
- 实现:由一个保活计时器实现,当计时器被激发,连接一端将发送一个保活探测报文,另一端接收报文的同时也会发送一个ACK作为响应
- 提供:一般是由服务器应用程序提供