7-传输控制协议TCP
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYN Flood 的原理
若发送大量伪造的TCP请求,填满对方的请求队列, 请求,填满对方的请求队列, 若发送大量伪造的 请求 则服务器无法响应正常的连接请求,最终CPU和内存 则服务器无法响应正常的连接请求,最终 和内存 资源被耗尽。 资源被耗尽。
学习内容
1、引言 、 2、TCP的特点 、 的特点 3、TCP连接 、 连接 4、提供可靠性 、 5、传输效率与流量控制 、 6、TCP的拥塞控制 、 的拥塞控制 7、IP层对改善 层对改善TCP性能的支持 、 层对改善 性能的支持 8、TCP报文段格式 、 报文段格式 9、对TCP的几点说明 、 的几点说明
第七章 传输控制协议TCP 传输控制协议
——《网络协议分析》 ——《网络协议分析》
计算机与通信工程学院 张 然
主要内容
1、引言 、 2、TCP的特点 、 的特点 3、TCP连接 、 连接 4、提供可靠性 、 5、传输效率与流量控制 、 6、TCP的拥塞控制 、 的拥塞控制 7、IP层对改善 层对改善TCP性能的支持 、 层对改善 性能的支持 8、TCP报文段格式 、 报文段格式 9、对TCP的几点说明 、 的几点说明
TCP 连接的建立
建立连接: 建立连接:三次握手
客户端 发送SYN 发送 seq=x 报文段 REQUEST ACCEPTED 接收SYN+ACK 接收 发送ACK y+1 发送 CONFIRM 接收ACK 接收 服务器
接收SYN 接收 发送SYN seq=y,ACK x+1 发送
功能: 功能 1. 同意连接协商,使双方 同意连接协商, 做好传输数据的准备; 做好传输数据的准备; 2.协商各自报文段 协商各自报文段ISN(初 协商各自报文段 初 始序列号,不能为 不能为‘ ; 始序列号 不能为‘1’);? 3. 协商 协商MSS(只有 (只有SYN报 报 文段能协商MSS)。 文段能协商 )。 说明: 说明: SYN报文段占用初始序号 报文段占用初始序号, 报文段占用初始序号 发送数据的第一字节序号 为ISN+1。 。
H:黑客机 :
假设B机死,则攻击步骤为: 假设 机死,则攻击步骤为: 机死 冒充B向 发送 发送SYN报文,ISNh 报文, (1)H冒充 向A发送 ) 冒充 报文 回应SYN+ACK(ACK ISNh+1,SYN ISNa), 白发 (2)A向B回应 ) 向 回应 , 假冒B回应 (3)H假冒 回应 ) 假冒 回应ACK到A(ACK ISNa+1) 到 ( ) 问题: ?(难点 问题:ISNa=?(难点) ?(难点) 解决:掌握ISN增长的规律 解决:掌握 增长的规律
3.SYN Flood (DoS、DDoS) 、 )
(1) TCP服务器的设计 ) 服务器的设计 并发特性:可处理多个呼入连接请求!每到达一个请求, 并发特性:可处理多个呼入连接请求!每到达一个请求, 调用一个进程处理。 调用一个进程处理。 TCP服务器实现规则: 服务器实现规则: 服务器实现规则 设置长度固定的连接队列,其中的连接已被TCP接 设置长度固定的连接队列,其中的连接已被 接 但没有被应用接受; 受,但没有被应用接受;TCP接受连接是将其写入 接受连接是将其写入 该队列,应用层接受该连接是将其从队列中移出。 该队列,应用层接受该连接是将其从队列中移出。 应用层指明队列的最大长度 连接请求(SYN)到达时,若队列中还有空间,则 连接请求( )到达时,若队列中还有空间, 接收这个连接并确认; 接收这个连接并确认; 若无空间,不理会该请求,也不作回应。 若无空间,不理会该请求,也不作回应。
TCP有哪些特点 有哪些特点? 有哪些特点
面向数据流; 面向数据流; 虚电路连接; 虚电路连接; 有缓冲的传输; 有缓冲的传输; 无结构的数据流; 无结构的数据流; 全双工连接。 全双工连接。
学习内容
1、引言 、 2、TCP的特点 、 的特点 3、TCP连接 、 连接 4、提供可靠性 、 5、传输效率与流量控制 、 6、TCP的拥塞控制 、 的拥塞控制 7、IP层对改善 层对改善TCP性能的支持 、 层对改善 性能的支持 8、TCP报文段格式 、 报文段格式 9、对TCP的几点说明 、 的几点说明
2.TCP端口扫描 端口扫描
TCP实现的基本规则:若SYN或者 实现的基本规则: 或者FIN数据包到达一个关 实现的基本规则 或者 数据包到达一个关 闭的端口,TCP丢弃数据包的同时会发送一个 闭的端口 丢弃数据包的同时会发送一个RST数据包。 数据包。 丢弃数据包的同时会发送一个 数据包 ① 全连接扫描 扫描主机用三次握手与目的机指定端口建立正规连接。 扫描主机用三次握手与目的机指定端口建立正规连接。 实现方式:connect( )函数调用,若端口打开则连接成功, 实现方式: 函数调用,若端口打开则连接成功, 函数调用 否则失败。 否则失败。 优点:实现简单; 优点:实现简单; 缺点:很容易被发现, 缺点:很容易被发现,目前通常被禁止
关于ISN和MSS 和 关于
ISN 不能取1,为什么? 不能取 ,为什么? ISN的设置方法是有一定规律的。 的设置方法是有一定规律的。 的设置方法是有一定规律的 MSS 为什么要选择MSS? 为什么要选择 如果连接的两端在同一个物理网络中, 如果连接的两端在同一个物理网络中,TCP协议软件 协议软件 能计算出合适的MSS; 能计算出合适的 如果连接的两端不在同一个物理网络中,则把路径上 如果连接的两端不在同一个物理网络中, 最小的MTU除去首部后的数据大小作为 除去首部后的数据大小作为MSS. 最小的 除去首部后的数据大小作为 选择合适的MSS非常困难:太小,网络利用率低;太 非常困难: 选择合适的 非常困难 太小,网络利用率低; 会降低网络性能。 大,会降低网络性能。
一个DOS命令 命令 一个
Netstat Active Connections
Proto Local Address TCP koukou:1056 Foreign Address 202.196.56.240:https State ESTABLISHED
Netstat –o:列出与每个端口相关的进程 : Netstat –r:显示路由表 :
TCP连接的关闭 改进的三次握手 连接的关闭:改进的三次握手 连接的关闭
网点1 网点
发送FIN 发送 seq=x
网点2 网点
接收FIN 接收 ACK x+1
接收ACK 接收ACK 发送FIN seq=y 发送 ACK x+1
接收FIN +ACK 接收 发送ACK y+1 发送
说明: 说明: 报文段占用一个序号; ① FIN报文段占用一个序号;单 报文段占用一个序号 纯的ACK报文段不占用序号。 报文段不占用序号。 纯的 报文段不占用序号 提供了半关闭能力: ②TCP提供了半关闭能力:连接 提供了半关闭能力 的一端在结束它的发送后还能接 收来自另一端数据。 收来自另一端数据。 有些编程接口提供close来关闭 ③有些编程接口提供 来关闭 TCP连接 , 提供 连接, 连接 提供shutdown加特殊 加特殊 参数来实现半关闭。 参数来实现半关闭。 异常时强行关闭连接: 异常时强行关闭连接 连接复位 – RST,发起端发 ,发起端发RST 报文段;双方立即停止传输, 报文段;双方立即停止传输,并 退出连接。 退出连接。
要实现可靠的数据流传输服务, 要实现可靠的数据流传输服务,必须 解决哪几个问题? 解决哪几个问题?
1. 可靠性: 可靠性: 防丢失:确认与重传; ① 防丢失:确认与重传; 防重复:报文段序号; ② 防重复:报文段序号; 2. 流量控制:滑动窗口机制; 流量控制:滑动窗口机制; 3. 拥塞控制:加速递减与慢启动技术; 拥塞控制:加速递减与慢启动技术; 4. 建立连接:三次握手; 建立连接:三次握手; 5. 关闭连接:改进的三次握手。 关闭连接:改进的三次握手。
接收ACK 接收
Baidu Nhomakorabea
端口、 端口、端点和连接
端口 ( 21、23、25、53、79、80、139、161 ) 、 、 、 、 、 、 、 端点 一对整数:( :(host IP,port)标识通信一方的一个应 一对整数:( , ) 用程序。 用程序。 连接 一对端点:表示通信双方应用程序间的一条虚电路。 一对端点:表示通信双方应用程序间的一条虚电路。 ① 主动打开 – 去请求 ② 被动打开 – 等待来 说明 一台机器上的一个TCP端口可被多个连接共享; 端口可被多个连接共享; ① 一台机器上的一个 端口可被多个连接共享 可用相同的端口号, ② TCP、UDP可用相同的端口号,但不会冲突。 、 可用相同的端口号 但不会冲突。
基本要求
1. 掌握 掌握TCP的可靠性机制:确认、重传、序号; 的可靠性机制: 的可靠性机制 确认、重传、序号; 2. 掌握 掌握TCP的流控和提高传输效率策略:滑动窗口机制; 的流控和提高传输效率策略: 的流控和提高传输效率策略 滑动窗口机制; 3. 掌握 掌握TCP连接的建立与关闭协议:三次握手; 连接的建立与关闭协议: 连接的建立与关闭协议 三次握手; 4. 掌握 掌握TCP的报文段格式; 的报文段格式; 的报文段格式 5. 掌握 掌握TCP的拥塞控制技术; 的拥塞控制技术; 的拥塞控制技术 6. 掌握 掌握TCP避免糊涂窗口综合症的技术; 避免糊涂窗口综合症的技术; 避免糊涂窗口综合症的技术 7. 了解紧急数据发送和强迫数据发送。 了解紧急数据发送和强迫数据发送。
问题? 问题?
IP协议的特点是什么? 协议的特点是什么? 协议的特点是什么 应用程序如果要得到高可靠性服务,有哪些途径? 应用程序如果要得到高可靠性服务,有哪些途径? 在IP层上增加一层功能模块 层上增加一层功能模块 由应用程序自身完成可靠性功能 UDP能否满足应用程序的需求? 能否满足应用程序的需求? 能否满足应用程序的需求
TCP攻击实例 攻击实例
1. IP欺骗 欺骗
核心: 核心:ISN估计 估计 A:目标机 : B:被伪装机 : H冒充 攻击 冒充B攻击 冒充 攻击A H冒充 向A发送 冒充B向 发送 发送SYN报文 冒充 报文 A向B回应 回应SYN+ACK报文 向 回应 报文 B发现错误,向A发RST 发现错误, 发现错误 发 A发现错误 发现错误
2.TCP端口扫描 续) 端口扫描(续 端口扫描
全连接尚未建立, 扫描) ②半开扫描(全连接尚未建立,SYN扫描 半开扫描 全连接尚未建立 扫描 (1)发SYN报文到目的主机的目标端口 发 报文到目的主机的目标端口 (2)若目标返回 若目标返回SYN+ACK,则端口开放,否则回 若目标返回 ,则端口开放,否则回RST (3)若端口开放,则发送 若端口开放, 给目标, 若端口开放 则发送RST给目标,从而终止连接 给目标 缺点:不能用socket编程实现; 缺点:不能用 编程实现; 编程实现 优点:不容易被发现。 优点:不容易被发现。 ③ Fin扫描 扫描 (1)发送 发送FIN报文到目标主机的目标端口 发送 报文到目标主机的目标端口 (2)若返回 若返回RST,则端口关闭,否则端口打开 若返回 ,则端口关闭, 缺点:不能用socket编程实现; 编程实现; 缺点:不能用 编程实现 优点:不容易被发现。 优点:不容易被发现。
学习内容
1、引言 、 2、TCP的特点 、 的特点 3、TCP连接 、 连接 4、提供可靠性 、 5、传输效率与流量控制 、 6、TCP的拥塞控制 、 的拥塞控制 7、IP层对改善 层对改善TCP性能的支持 、 层对改善 性能的支持 8、TCP报文段格式 、 报文段格式 9、对TCP的几点说明 、 的几点说明
学习内容
1、引言 、 2、TCP的特点 、 的特点 3、TCP连接 、 连接 4、提供可靠性 、 5、传输效率与流量控制 、 6、TCP的拥塞控制 、 的拥塞控制 7、IP层对改善 层对改善TCP性能的支持 、 层对改善 性能的支持 8、TCP报文段格式 、 报文段格式 9、对TCP的几点说明 、 的几点说明