第三讲TCP连接故障的诊断与修复

Download Report

Transcript 第三讲TCP连接故障的诊断与修复

第三讲
TCP连接故障的诊断与修复
《网络测试与故障诊断》课件
2010年12月
本讲主要内容





TCP协议
TCP连接的建立与释放
TCP建立连接的缺陷
TCP连接故障的检测
TCP连接故障案例
《网络测试与故障诊断》课件
2010年12月
TCP协议
TCP(Transmission Control Protocol)即传输控制
协议,是工作在传输层的协议;
TCP协议是面向连接的、可靠的、全双工传输协
议;
面向连接是指TCP数据传输的过程包括三个阶段,
即建立连接、传输数据和释放连接;
可靠传输是指接收方收到数据后,必须向发送方
回送确认信息,如果发送方没有收到确认信息,
将根据一定的规则进行重发。
《网络测试与故障诊断》课件
2010年12月
连接建立(一)
 TCP在建立连接时使用三次握手的方式来完成,以保证
可靠地建立连接。
 TCP报头有一个6bit的标志位
URG ACK PSH RST SYN FIN
ACK(ACKnowledgement):为1表示确认报文
SYN(SYNchronous):当SYN=1且ACK=0时,
表示建立连接请求报文;SYN=1且ACK=1时
同意建立连接报文
 FIN(FINish):为1表示释放连接
《网络测试与故障诊断》课件
2010年12月
连接建立(二)
建立连接(三次握手)
ESTABLISH
SYN_SEND
ESTABLISH
SYN_RCVD
主机B
主机A
SYN=1,ACK=0
SYN=1,ACK=1
SYN=1,ACK=0
《网络测试与故障诊断》课件
2010年12月
释放连接
 释放连接(四次分手):由于TCP连接是全双工的,因此每个
方向都必须单独进行关闭。任何一方完成数据发送任务后,
都能发送FIN来终止这个方向的连接。
FIN_WAIT_1
FIN_WAIT_2
TIME_WAIT
被动关闭与A的连接,FIN_WAIT_1
LAST_ACK
主机B
主机A
FIN=1,ACK=0
FIN=1,ACK=1
此时,关闭A到B的连接
此时,关闭B到A的连接,释放
连接完成
FIN=1,ACK=0
FIN=1,ACK=1
《网络测试与故障诊断》课件
2010年12月
TCP建立连接的缺陷
 主机A向主机B发送SYN请求与主机B建立连接
 主机B收到请求后,发送SYN+ACK应答报文后主机B进入
半连接状态
 此时,如果A死机或掉线,则主机B收不到主机A发回的
ACK确认报文,这种情况下,服务器会通过重试 试图建
立连接,如果仍接收不到主机A的ACK报文,则会超时等
待(30s~120s)后丢弃半连接
 如果半连接不多,将不会造成大的问题,如果恶意攻击者
大量模拟此种情况(伪造IP地址),服务器将维护非常大的
半连接表,即使是简单的保存并遍历也会消耗非常多的
CPU时间和内存,何况还要不断对这个列表中的IP进行
SYN+ACK的重试,这将导致服务器响应不了其他请求而
假死即拒绝服务DOS(Denial of Service)
《网络测试与故障诊断》课件
2010年12月
TCP连接故障的检测
TCP连接故障主要表现为网络不通,其检
测方法主要是通过建立TCP连接的三次握
手过程来分析。
分析时,要沿着数据经过的物理链路进行
逐段查找。特别要注意三次握手时,源、
目的IP地址的变化
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例1(一)
案例描述:
 某单位通过一台路由器连接到因特网,内网计算机使
用私有IP地址192.168.0.0/16,并通过路由器的NAT转
换上因特网;
 由于只有一个IP地址61.186.120.5,单位的WEB服务
器通过端口地址转换发布到因特网,即将61.186.120.5
的80端口映射到WEB服务器地址192.168.1.10;
 因特网的用户通过网址http:// 61.186.120.5/访问WEB
服务器,而内网用户通过这个网址确无法访问到WEB
服务器。
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例1(二)
因特网用户访问情况
S:61.128.1.5
D:61.186.120.5:80
S:61.128.1.5
D:192.168.1.10:80
路由器
S:61.186.120.5:80
D: 61.128.1.5
Internet
61.186.120.5
61.128.1.5
S: 192.168.1.10:80
D: 61.186.1.5
192.168.1.5
《网络测试与故障诊断》课件
192.168.1.10
2010年12月
TCP连接故障案例1(三)
内网用户访问情况
路由器
S:192.168.1.5
D:192.168.1.10:80
Internet
61.186.120.5
S:192.168.1.5
D:61.186.120.5:80
S: 192.168.1.10:80
D: 192.168.1.5
192.168.1.5
192.168.1.10
《网络测试与故障诊断》课件
2010年12月
61.186.1.5
TCP连接故障案例1(四)
有两种故障排除方案
外网用户访问web服务器用公网地址即:
http:// 61.186.120.5/ ,内网用户用私网地址:
http:// 192.168.1.10/
这种方案的缺点是:由于用户很难记住IP地址,
而且如果IP地址变化,通知用户也是一件很麻
烦的事。能不能通过域名来访问网站?
如果域名解析成公网地址,外网用户可正常访问,
但内网用户不能访问;
相反,如果域名解析成内网地址,外网用户不能访
问,而内网可正常访问
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例1(五)
可以用以下方式来来解决这个问题:
分别设置两台DNS服务器:
一台对公网用户服务,域名解析成公网IP地址,这
台DNS服务器是合法的真正的DNS服务器;
一台对内网用户服务,域名解析成内网IP地址,这
台DNS服务器只对内网用户服务,对外网用户不可
见。
当配置好内网DNS服务器(假设IP地址为
192.168.1.254)后,内网用户要将此地址设置
为首先DNS服务器,这样内网用户就可通过域
名访问WEB服务器了
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例1(六)
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例2(一)
案例描述
某校园学生机房有20台电脑,通过一台三层
交换机连接到一台服务器(IP地址:
61.186.10.5)上,无外网出口;
当所有机器同时开启时,网络中的计算机访
问服务器出现异常,服务器反应速度异常缓
慢,很多用户甚至不能访问服务器;
除访问服务器外,其他用户间的访问正常
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例2(二)
故障检测过程:
ping服务器有掉包现象;
断开所有机器,只留一台机器的情况下,ping
服务器,网络畅通,无掉包;
根据以上两种现象可能有以下情况:
服务器并发性能不够,不能同时满足大量计算机的
访问;
网络有病毒,病毒计算机大量发包造成网络拥塞,
因网络不畅通而掉包,由于其他用户间访问正常,
此种情况排除;
因此,将故障重点放在服务器上
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例2(三)
 在服务器上使用NETSTAT命令,结果为:
Proto
TCP
TCP
TCP
TCP
Local Address
61.186.170.126:80
61.186.170.126:80
61.186.170.126:80
61.186.170.126:80
Foreign Address
222.168.132.10:2176
236.15.204.111:8705
212.200.52.12:11000
236.14.55.250:51982
State
SYN_RECEIVED
SYN_RECEIVED
SYN_RECEIVED
SYN_RECEIVED
……
 结果显示,服务器上存在很多处于SYN_RECEIVED的连接,这是服务器与
客户机第二次握手后,等待客户机回应第三次握手后的状态,即半连接状态;
 结果中的半连接状态都对应不同的IP地址,由于网络与外网不通,网络中不
存在具有这些IP地址的主机,因此不可能有这些地址的主机向服务器发起建
立TCP连接的请求,很有可能是内网的主机通过伪造的IP地址向服务器发起
SYN泛洪攻击;
 由此可判断,故障是由于内网主机向服务器发起SYN攻击,造成服务器响应
不过来而拒绝服务DOS
《网络测试与故障诊断》课件
2010年12月
TCP连接故障案例2(四)
故障排除:
升级所有主机的杀毒软件,检测病毒,果然在
多台主机上发现了SYN病毒;
对网络中的所有主机进行断网杀毒后,再连通
网络,网络工作正常,服务器响应快速
《网络测试与故障诊断》课件
2010年12月
本讲主要内容





TCP协议
TCP连接的建立与释放
TCP建立连接的缺陷
TCP连接故障的检测
TCP连接故障案例
《网络测试与故障诊断》课件
2010年12月