浅析TCP协议

上传人:桔**** 文档编号:565034395 上传时间:2024-02-19 格式:DOC 页数:5 大小:18.50KB
返回 下载 相关 举报
浅析TCP协议_第1页
第1页 / 共5页
浅析TCP协议_第2页
第2页 / 共5页
浅析TCP协议_第3页
第3页 / 共5页
浅析TCP协议_第4页
第4页 / 共5页
浅析TCP协议_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《浅析TCP协议》由会员分享,可在线阅读,更多相关《浅析TCP协议(5页珍藏版)》请在金锄头文库上搜索。

1、浅析协议摘要本文主要讲述了tp协议的功能、它的连接的建立与终止的过程,以及他本身平安问题上的缺陷和序列号攻击的防御措施。关键词tp协议网络平安协议攻击一、tp连接的建立与终止1.概述虽然tp使用不可靠的ip效劳,但它却提供一种可靠的运输层效劳。2.建立连接协议(三次“握手)(1)客户端发送一个带syn标志的tp报文到效劳器。这是三次握手过程中的报文1.(2)效劳器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ak标志和syn标志。因此它表示对刚刚客户端syn报文的回应;同时又标志syn给客户端,询问客户端是否准备好进展数据通讯。(3)客户必须再次回应效劳段一个ak报文,这是报文段。

2、3.连接终止协议(四次握手)由于tp连接是全双工的,因此每个方向都必须单独进展关闭。这原那么是当一方完成它的数据发送任务后就能发送一个fin来终止这个方向的连接。收到一个fin只意味着这一方向上没有数据流动,一个tp连接在收到一个fin后仍能发送数据。首先进展关闭的一方将执行主动关闭,而另一方执行被动关闭。(1)tp客户端发送一个fin,用来关闭客户到效劳器的数据传送(报文段4)。(2)效劳器收到这个fin,它发回一个ak,确认序号为收到的序号加1(报文段5)。和syn一样,一个fin将占用一个序号。(3)效劳器关闭客户端的连接,发送一个fin给客户端(报文段6)。(4)客户段发回ak报文确认

3、,并将确认序号设置为收到序号加1(报文段7)。lsed:表示初始状态。listen:表示效劳器端的某个sket处于监听状态,可以承受连接了。syn_rvd:这个状态表示承受到了syn报文,在正常情况下,这个状态是效劳器端的sket在建立tp连接时的三次握手会话过程中的一个中间状态,很短暂,根本上用netstat你是很难看到这种状态的,因此这种状态时,当收到客户端的ak报文后,它会进入到established状态。syn_sent:这个状态与syn_rvd遥相照应,当客户端sket执行nnet连接时,它首先发送syn报文,因此也随即它会进入到了syn_sent状态,并等待效劳端的发送三次握手中的

4、第2个报文。syn_sent状态表示客户端已发送syn报文。established:表示连接已经建立了。fin_ait_1:fin_ait_1和fin_ait_2状态的真正含义都是表示等待对方的fin报文。而这两种状态的区别是:fin_ait_1状态实际上是当sket在established状态时,它想主动关闭连接,向对方发送了fin报文,此时该sket即进入到fin_ait_1状态。而当对方回应ak报文后,那么进入到fin_ait_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ak报文,所以fin_ait_1状态一般是比拟难见到的,而fin_ait_2状态还有时常常可以用

5、netstat看到。fin_ait_2:上面已经详细解释了这种状态,实际上fin_ait_2状态下的sket,表示半连接,也即有一方要求lse连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。tie_ait:表示收到了对方的fin报文,并发送出了ak报文,就等2sl后即可回到lsed可用状态了。假如fin_ait_1状态下,收到了对方同时带fin标志和ak标志的报文时,可以直接进入到tie_ait状态,而无须经过fin_ait_2状态。lsing:这种状态比拟特殊,属于一种比拟罕见的例外状态。正常情况下,当你发送fin报文后,按理来说是应该先收到(或同时收到)对方的ak报文

6、,再收到对方的fin报文。但是lsing状态表示你发送fin报文后,并没有收到对方的ak报文,反而却也收到了对方的fin报文。什么情况下会出现此种情况呢?那就是假如双方几乎在同时lse一个sket的话,那么就出现了双方同时发送fin报文的情况,也即会出现lsing状态,表示双方都正在关闭sket连接。lse_ait:这种状态的含义表示在等待关闭。怎么理解呢?当对方lse一个sket后发送fin报文给自己,你系统毫无疑问地会回应一个ak报文给对方,此时那么进入到lse_ait状态。接下来呢,实际上你真正需要考虑的事情是观察你是否还有数据发送给对方,假如没有的话,那么你也就可以lse这个sket,

7、发送fin报文给对方,也即关闭连接。所以你在lse_ait状态下,需要完成的事情是等待你去关闭连接。last_ak:这个状态是被动关闭一方在发送fin报文后,最后等待对方的ak报文。当收到ak报文后,也即可以进入到lsed可用状态了。二、tp协议平安问题1.概述tp协议如今用得非常广泛,但它本身也有一些平安上的缺陷。一些缺陷是由于主机使用ip源地址作为认证机制引起的;berkeley的r系列涮用就是一个明显的例子。其它的一些缺陷是由于网络控制机制,特别是路由协议,缺少认证机制引起的。2.tp序列号预测攻击tp序列号预测攻击最早是1985年由rbrt.rris对这一平安破绽进展阐述的。他使用tp

8、序列号预测,即使是没有从效劳器得到任何响应,来产生一个tp包序列。这使他能欺骗在本地网络上的主机。(1)攻击方法。tp协议有一个非常令人着迷的破绽,简单的说,就是通过预测初始序列号来伪造tp包.并且不需要得到回应。这样就可以使攻击者假装成一台和效劳器在同一个局域网上的一台可信任的机器。通常建立tp连接需要三次握手。客户机送一个初始序列号isn,效劳器应答它并送出它自己的序列号isns,客户机再发出一个应答包。这三个数据包发送以后,就可以传输数据了。这个过程可以用下列图来表示:一s:syn(isn)s一:syn(isns),ak(isn)一s:ak(isns)一s:dataand/rs一:dat

9、a这就是说,要使一个连接建立起来,必须知道isns,这个数多少有一些随机性,假没入侵者x有一种方法可以预测isns。在这种情况下,他可以通过以下的步骤来模拟可信任的主机t:x-s:syn(isnx),sr=ts-t:syn(isns),ak(isnx)x一s:akfisns),sr=tx一s:ak(isns),sr=t,nasty-data即使s一t的数据包不经过x,x也能知道它的内容,因此能发送数据。假如x在一个可以执行命令的连接上实行这种攻击(例如berkeleyrsh效劳),他就可以运行恶意的命令。那么怎样预测随机的isn呢?在berkeley系统中,初始序列号变量是以每秒固定的数目递增

10、的,而每次连接的序列号就是这个变量的一半。因此,假如有人通过合法的连接观察isns,他就有很大的时机通过计算得到下一次连接的isns。应该指出的是效劳器的应答消息s一t:syn(isns),ak(isnx)。并没有消除这种攻击;虽然真正的t主机将接收到它,并且会重设连接。这并不是一个严重的障碍,因为我们可以通过一些回绝效劳的攻击使t主机暂时失效,也可以在t主机关机或重起的时候攻击。还有一种通过netstat效劳对tp序列号进展的攻击。在这种攻击中,入侵者模拟一台关闭的主机。假如在目的机上有netstat效劳.它就会提供另一个端口必要的序列号信息:这样就根本不需要猜想了。x一s:synfisnx

11、1s一x:syn(isns),ak(isnx)(1)第一个使效劳器产生下一序列号的伪造的数据包,可以紧跟在效劳器对探测包的回应后送出:x一s:syn(isnx),sr=t(2)序列号isns在应答中使用s一t:syn(isns),ak(isnx)它是由数据包(1)产生到效劳器接收到数据包(1)之间的时间唯一确定的。但是这个时间是由x到s的来回时间确定的。因此假如攻击者可以测量或预测到这个时间。即使使用一个能准确的4微秒的时钟也不能阻止这种攻击。对来回时间的测量能准确到什么程度呢?假如假设网络很稳定,我们可以准确到10毫秒左右。很明显,互联网不可能长期这么稳定.但是却有可能在一个较短的时间内稳定。因此我们有2500个isns的可能值。考虑到重新测量来回时间所需的时间,我们假设每次尝试需要花5秒,那么一个攻击者很可能在7500秒内获得成功。条件更好的网络或更准确的测量,可以进步成功的可能性。因此,仅仅是按tp协议标准是不行的。在这里,我们默认的假设是目的机上不运行任何进程。实际上,当新的恳求到达时,是会运行一些进程的。在一个6ips的机器上,一个时钟周期-4秒大约可执行25条指令。高优先级的中断tb分配顺序的不同,都对下一个序列号有相当大影响。这种随机的效果是被认为是主机的优点。参考文献:1于万国,陈日升.计算机网路平安与防范j.中国教育科研与探究,2022,(5).

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号