演示:理解并取证TCP三次握手、试题分析_第1页
演示:理解并取证TCP三次握手、试题分析_第2页
演示:理解并取证TCP三次握手、试题分析_第3页
演示:理解并取证TCP三次握手、试题分析_第4页
演示:理解并取证TCP三次握手、试题分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章详解并取证网络协议的工作原理任务4.34.3理解传输层部分协议在本节中,主要以描述传输层的TCP与UDP协议为核心,分析它们的重要特性,并取证这些重要特性,最后分析CCNA认证中关于传输层协议的试题。任务4.3.14.3.1理解TCP/IP协议的工作原理多年来TCP/IP协议一直被公众称呼为“一个协议”,事实上它是一组协议的集合,IP工作在OSI七层模型的网络层,提供网络传输,但是并不提供可靠性传输控制;而TCP工作在OSI七层模型的传输层,并提供可靠性传输控制。首先需要说明的是,什么是可靠性传输控制?所谓可靠性传输控制是指面向连接的一种确认数据交付方式,具体来说,就是在数据正式传输之前,利用一种触发和认定的方式来保证发送方与接收方之间的可靠性,以防止数据在传输过程中出现丢包及其他传输不可达的现象。这好比人类世界在交换价值产品之前,必须保证接收的人能真正地收到发出的产品,接收方在收到产品之后用一种回应的方式告知发送方,产品已经成功到达。任务4.3.1TCP协议的特点:由于提供了面向连接的可靠性交付,所以TCP协议常用在可靠性较差的网络环境中,比如Internet。但是,正是由于TCP协议面向连接的可靠性交付使其传输的速度较慢,至少比UDP协议慢,这无疑证实了技术界的一个观念:“无所谓最好的传输协议,一切皆应需而动,任何技术都是一把‘双刃剑’,如果需求是稳定,那么就必须牺牲速度,如果需求是速度,就必须牺牲可靠性!”注意:上面描述了TCP协议的核心价值是确保传输的可靠性,并使用了人类世界交换价值产品的一个实例来说明如何完成可靠性交付。但是现在的问题在于,在计算机网络技术领域里,两台通信设备或者计算机之间将采用一种什么样的方式来完成可靠性交付?任务4.3.1TCP协议的“三次握手”是学习的核心TCP协议的“三次握手”是完成可靠性交付过程的核心,所以本小节将以描述TCP协议的网络世界中著名的“三次握手”为重点。TCP协议是一个相互触发、相互确认的过程,客户机要触发服务器,服务器也要触发客户机。建立握手状态的标志SYN=1表示开始触发,ACK=1表示对触发的回应确认,并且在TCP建立可靠连接时只会使用这两个标志。正确的TCP握手过程如图4.44所示。图4.44正确的TCP握手过程任务4.3.1客户机要触发服务器,向服务器发出SYN=1的信号。服务器向客户机发送ACK=1的确认信号。服务器再向客户机发送SYN=1的触发信号,以达到相互触发的效果。客户机回应服务器的触发信号ACK=1。上述为TCP握手过程,但是过程却是四次握手,并非所谓的“TCP三次握手”。那么为什么会叫“TCP三次握手”呢?这是因为服务器给客户机的ACK=1确认信息和触发客户机的SYN=1与其分成两次发送,倒不如将其两次合并成一个信号:SYN=1,ACK=1。其实SYN=1是触发客户机的,而ACK=1是响应客户机触发的消息。所以将四次握手变成三次握手,这是“TCP三次握手”的得名,也是对TCP正确的理解,如图4.45所示。图4.45TCP三次握手注意:TCP实际上是“四次握手”,只是因为面向连接时需要考虑效率因素,所以将“四次握手”变为“三次握手”。任务4.3.1关于TCP的滑动窗口与确认机制在面向连接的数据传输过程中,任何数据在传递的过程中都可能损坏、丢失或者重传,在这种情况下如果没有一种保障机制,那么数据在传输的过程中可能导致协议出错。所以,面向连接的协议提出了一种保障机制,让接收方在收到数据后进行确认,如图4.46所示,发送方发送数据1,接收方接收数据1并返回发送确认ACK2,发送方收到接收方的ACK2就发送数据2,这种方式叫作TCP使用期待确认方式,确认号就是所期待发送的下一个数据。当接收方收到数据2后发送确认ACK3,发送方收到ACK3后发送数据3。在这个过程中TCP的窗口大小为1,也就是发送一个数据,确定一个数据,然后再发送一个数据,这种方式确保了数据的可靠性,但是丧失了效率,网络的吞吐量将变得很低。更好的办法是将TCP的窗口大小调高,比如将原有窗口1调整为3,如图4.47所示,发送方一次发送数据1、2、3,接收方接收1、2、3后返回确认ACK4,后继发送同理,通过调整TCP的窗口后,网络的吞吐量与使用率明显提高。事实上,这是TCP的一种流控机制,这一点应试人员要特别小心,后面会出现相应的试题分析。任务4.3.1当分段的数据到达目的地后如何重组在OSI模型的传输层为了方便更好地传输数据,会对大型数据进行分段,将其分割成更小的数据块,以便于传输。由于Internet传输系统的原因,比如:一个被分割的原始数据的分段,可能通过不同的路由路径到达目标的数据分段,可能存在着先后不同的到达顺序,或者出现了损坏、重传,在这种情况下,目标主机怎样重新组合并还原这些分段,如何对这些分段进行确认将是一个问题。大型数据被分段后,传输层协议会为这些分段分别打上序列号,到达目标后可以根据这些序列号来还原数据。关于确认这些分段可靠性的方案是对这些数据分段采取期待确认,比如一个数据分段的序列号是100,那么目标将返回101的序列确认(序列号+1),至于到底是对每个数据分段进行确认还是一次性确认多个数据分段,这和TCP的滑动窗口有关。任务4.3.1图4.46TCP的窗口为1图4.47TCP的滑动窗口为3任务4.3.1关于TCP协议的安全威胁TCP三次握手的漏洞如图4.48所示。TCP在数据正式发送以前必须与对等端完成三次握手,然后再进行真正的数据发送,那么在TCP三次握手完成前,TCP将会处于半开会话状态。现在假想一种情况:00/24是一个发动恶意攻击的黑客,想要攻击54Web服务器,于是利用一个假IP地址00作为源IP地址,不断地向54服务器发送TCP连接请求。服务器收到了许多的TCP源地址为00的SYN=1数据报文,肯定会对该TCP会话作ACK=1确认,并发出SYN=1触发00主机的二次会话,但是这个00地址根本就不存在,服务器将永远都等不到00给它的最后确认。这时服务器上会存放许多半开的TCP会话,这将直接导致服务器的NIC、内存、CPU的占用率超载,这种攻击方式叫作基于TCP半开会话的洪水攻击,是属于DoS(DenialofService,拒绝式服务)攻击的一种。任务4.3.1图4.48TCP三次握手的漏洞任务4.3.24.3.2演示:取证TCP/IP协议的三次握手过程演示目标:在实时通信环境下取证TCP协议的三次握手过程。演示环境:如图4.49所示。图4.49取证TCP三次握手的实验环境演示背景:为了使演示环境更真实,可以将00这台计算机构建成一台Web服务器,然后01这台计算机去访问00所提供的Web服务,最后捕获并分析整个通信过程中的数据帧,重点观察TCP协议“三次握手”的取证过程。任务4.3.2演示步骤:1.为演示环境中的两台计算机配置IP地址,并测试连通性,如图4.50所示为在01主机上对00的ping检测。图4.50检测计算机连通性2.配置00为Web服务器,建议这个过程由CCNA的教员完成,并在该服务器上启动Wireshark协议分析器软件,开启捕获功能。然后在01客户机上打开IE,并在地址栏输入00去访问服务器。当完成访问后,可以在Wireshark协议分析器中看到如图4.51所示的TCP三次握手的整体效果。任务4.3.2图4.50检测计算机连通性3.现在拆分TCP三次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论