1 / 19

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

第三讲 TCP 连接故障的诊断与修复. 本讲主要内容. TCP 协议 TCP 连接的建立与释放 TCP 建立连接的缺陷 TCP 连接故障的检测 TCP 连接故障案例. TCP 协议. TCP(Transmission Control Protocol) 即传输控制协议 , 是工作在传输层的协议; TCP 协议是面向连接的、可靠的、全双工传输协议; 面向连接是指 TCP 数据传输的过程包括三个阶段,即建立连接、传输数据和释放连接; 可靠传输是指接收方收到数据后,必须向发送方回送确认信息,如果发送方没有收到确认信息,将根据一定的规则进行重发。. 连接建立 ( 一 ).

gitano
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 本讲主要内容 • TCP协议 • TCP连接的建立与释放 • TCP建立连接的缺陷 • TCP连接故障的检测 • TCP连接故障案例

  3. TCP协议 • TCP(Transmission Control Protocol)即传输控制协议,是工作在传输层的协议; • TCP协议是面向连接的、可靠的、全双工传输协议; • 面向连接是指TCP数据传输的过程包括三个阶段,即建立连接、传输数据和释放连接; • 可靠传输是指接收方收到数据后,必须向发送方回送确认信息,如果发送方没有收到确认信息,将根据一定的规则进行重发。

  4. 连接建立(一) • TCP在建立连接时使用三次握手的方式来完成,以保证可靠地建立连接。 • TCP报头有一个6bit的标志位 • ACK(ACKnowledgement):为1表示确认报文 • SYN(SYNchronous):当SYN=1且ACK=0时,表示建立连接请求报文;SYN=1且ACK=1时同意建立连接报文 • FIN(FINish):为1表示释放连接

  5. SYN=1,ACK=0 SYN=1,ACK=1 SYN=1,ACK=0 连接建立(二) • 建立连接(三次握手) ESTABLISH ESTABLISH SYN_RCVD SYN_SEND 主机B 主机A

  6. FIN=1,ACK=0 FIN=1,ACK=1 FIN=1,ACK=0 FIN=1,ACK=1 释放连接 • 释放连接(四次分手):由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。任何一方完成数据发送任务后,都能发送FIN来终止这个方向的连接。 被动关闭与A的连接,FIN_WAIT_1 FIN_WAIT_1 FIN_WAIT_2 LAST_ACK TIME_WAIT 主机B 主机A 此时,关闭A到B的连接 此时,关闭B到A的连接,释放连接完成

  7. 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)

  8. TCP连接故障的检测 • TCP连接故障主要表现为网络不通,其检测方法主要是通过建立TCP连接的三次握手过程来分析。 • 分析时,要沿着数据经过的物理链路进行逐段查找。特别要注意三次握手时,源、目的IP地址的变化

  9. 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服务器。

  10. Internet TCP连接故障案例1(二) • 因特网用户访问情况 S:61.128.1.5 D:61.186.120.5:80 S:61.128.1.5 D:192.168.1.10:80 路由器 61.186.120.5 S:61.186.120.5:80 D: 61.128.1.5 61.128.1.5 S: 192.168.1.10:80 D: 61.186.1.5 192.168.1.5 192.168.1.10

  11. Internet TCP连接故障案例1(三) • 内网用户访问情况 路由器 S:192.168.1.5 D:192.168.1.10:80 61.186.120.5 61.186.1.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

  12. TCP连接故障案例1(四) • 有两种故障排除方案 • 外网用户访问web服务器用公网地址即: http:// 61.186.120.5/ ,内网用户用私网地址: http:// 192.168.1.10/ • 这种方案的缺点是:由于用户很难记住IP地址,而且如果IP地址变化,通知用户也是一件很麻烦的事。能不能通过域名来访问网站? • 如果域名解析成公网地址,外网用户可正常访问,但内网用户不能访问; • 相反,如果域名解析成内网地址,外网用户不能访问,而内网可正常访问

  13. TCP连接故障案例1(五) • 可以用以下方式来来解决这个问题: • 分别设置两台DNS服务器: • 一台对公网用户服务,域名解析成公网IP地址,这台DNS服务器是合法的真正的DNS服务器; • 一台对内网用户服务,域名解析成内网IP地址,这台DNS服务器只对内网用户服务,对外网用户不可见。 • 当配置好内网DNS服务器(假设IP地址为192.168.1.254)后,内网用户要将此地址设置为首先DNS服务器,这样内网用户就可通过域名访问WEB服务器了

  14. TCP连接故障案例1(六)

  15. TCP连接故障案例2(一) • 案例描述 • 某校园学生机房有20台电脑,通过一台三层交换机连接到一台服务器(IP地址:61.186.10.5)上,无外网出口; • 当所有机器同时开启时,网络中的计算机访问服务器出现异常,服务器反应速度异常缓慢,很多用户甚至不能访问服务器; • 除访问服务器外,其他用户间的访问正常

  16. TCP连接故障案例2(二) • 故障检测过程: • ping服务器有掉包现象; • 断开所有机器,只留一台机器的情况下,ping服务器,网络畅通,无掉包; • 根据以上两种现象可能有以下情况: • 服务器并发性能不够,不能同时满足大量计算机的访问; • 网络有病毒,病毒计算机大量发包造成网络拥塞,因网络不畅通而掉包,由于其他用户间访问正常,此种情况排除; • 因此,将故障重点放在服务器上

  17. TCP连接故障案例2(三) • 在服务器上使用NETSTAT命令,结果为: Proto Local Address Foreign Address State TCP 61.186.170.126:80 222.168.132.10:2176 SYN_RECEIVED TCP 61.186.170.126:80 236.15.204.111:8705 SYN_RECEIVED TCP 61.186.170.126:80 212.200.52.12:11000 SYN_RECEIVED TCP 61.186.170.126:80 236.14.55.250:51982 SYN_RECEIVED …… • 结果显示,服务器上存在很多处于SYN_RECEIVED的连接,这是服务器与客户机第二次握手后,等待客户机回应第三次握手后的状态,即半连接状态; • 结果中的半连接状态都对应不同的IP地址,由于网络与外网不通,网络中不存在具有这些IP地址的主机,因此不可能有这些地址的主机向服务器发起建立TCP连接的请求,很有可能是内网的主机通过伪造的IP地址向服务器发起SYN泛洪攻击; • 由此可判断,故障是由于内网主机向服务器发起SYN攻击,造成服务器响应不过来而拒绝服务DOS

  18. TCP连接故障案例2(四) • 故障排除: • 升级所有主机的杀毒软件,检测病毒,果然在多台主机上发现了SYN病毒; • 对网络中的所有主机进行断网杀毒后,再连通网络,网络工作正常,服务器响应快速

  19. 本讲主要内容 • TCP协议 • TCP连接的建立与释放 • TCP建立连接的缺陷 • TCP连接故障的检测 • TCP连接故障案例

More Related