1 / 92
文档名称:

7-传输控制协议TCP剖析.ppt

格式:ppt   大小:946KB   页数:92页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

7-传输控制协议TCP剖析.ppt

上传人:燕燕盛会 2022/3/14 文件大小:946 KB

下载得到文件列表

7-传输控制协议TCP剖析.ppt

相关文档

文档介绍

文档介绍:第七章 传输控制协议TCP
计算机与通信工程学院
张 然
——《网络协议分析》
主要内容
1、引言
2、TCP的特点
3、TCP连接
4、提供可靠性
5、传输效率与流量控制
6、TCP的拥塞控制
7、IP层对改善TCP:https ESTABLISHED
Netstat –o:列出与每个端口相关的进程
Netstat –r:显示路由表
TCP攻击实例
1. IP欺骗
A:目标机
B:被伪装机
H:黑客机
核心:ISN估计
H冒充B攻击A
H冒充B向A发送SYN报文
A向B回应SYN+ACK报文
B发现错误,向A发RST
A发现错误
假设B机死,则攻击步骤为:
(1)H冒充B向A发送SYN报文,ISNh
(2)A向B回应SYN+ACK(ACK ISNh+1,SYN ISNa), 白发
(3)H假冒B回应ACK到A(ACK ISNa+1)
问题:ISNa=?(难点)
解决:掌握ISN增长的规律

TCP实现的基本规则:若SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包的同时会发送一个RST数据包。
① 全连接扫描
扫描主机用三次握手与目的机指定端口建立正规连接。
实现方式:connect( )函数调用,若端口打开则连接成功,否则失败。
优点:实现简单;
缺点:很容易被发现,目前通常被禁止
(续)
②半开扫描(全连接尚未建立,SYN扫描)
(1)发SYN报文到目的主机的目标端口
(2)若目标返回SYN+ACK,则端口开放,否则回RST
(3)若端口开放,则发送RST给目标,从而终止连接
缺点:不能用socket编程实现;
优点:不容易被发现。
③ Fin扫描
(1)发送FIN报文到目标主机的目标端口
(2)若返回RST,则端口关闭,否则端口打开
缺点:不能用socket编程实现;
优点:不容易被发现。
Flood (DoS、DDoS)
(1) TCP服务器的设计
并发特性:可处理多个呼入连接请求!每到达一个请求,调用一个进程处理。
TCP服务器实现规则:
设置长度固定的连接队列,其中的连接已被TCP接受,但没有被应用接受;TCP接受连接是将其写入该队列,应用层接受该连接是将其从队列中移出。
应用层指明队列的最大长度
连接请求(SYN)到达时,若队列中还有空间,则接收这个连接并确认;
若无空间,不理会该请求,也不作回应。
SYN Flood 的原理
若发送大量伪造的TCP请求,填满对方的请求队列,则服务器无法响应正常的连接请求,最终CPU和内存资源被耗尽。
学习内容
1、引言
2、TCP的特点
3、TCP连接
4、提供可靠性
5、传输效率与流量控制
6、TCP的拥塞控制
7、IP层对改善TCP性能的支持
8、TCP报文段格式
9、对TCP的几点说明
TCP报文
报文段:报文段是TCP软件间传输数据的基本单元,每个报文段都有一个序号。
首部长度:4字节计数,最大值为15,所以TCP首部长度20-60
源端口
目标端口
序号
确认号
首部长度
保留
码元比特
窗口
校验和
紧急指针
选项(若有)
填充
数据
序号
报文段序号如何设置?
报文段中所携带数据中首字节数据在原始字节流中的位置编号
如:主机A将一个包含500K字节的文件发送给主机B, MSS为1000字节,假定数据流的首字节编号为0,则每个报文段序号如下:
0
1
1000
1999
499999
第一个报文段数据
第二个报文段数据
文件
第一个报文段序号
第二个报文段序号
确认号
确认号:希望接收的对方下一报文段序号(已成功接收到的数据字节序号+ 1),如
累计确认:如
0 ~ 535,536…… 1071,1072 ~ 1607
接收方如何处理失序报文段?
实现者可自行选择实现: 抛弃/缓存
丢失
(1) 序号和确认序号在一起使得确认可捎带进行。
(2) TCP采用累计确认策略。
采用累计确认,确认丢失不一定迫使发送方重传,为什么?
(3) TCP采用经受时延的确认(时延一般为200ms)。
累计确认的缺点:
发送方无法收到所有成功传输的报文段的确认信息,对往返时间样本的精确测量会带来影响。
说明
窗口:
接收方把自己可用缓冲区的大小通告发送方,使发送方修改窗口的大小,以便进行收发双方的流量控制。
初始窗口大小如何确定?
默认值,在建立连接时互相通告
校验和计算:
加入