ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:20.79KB ,
资源ID:8993349      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8993349.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TCP标志位.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

TCP标志位.docx

1、TCP标志位TCP 标志位TCP 标志位URG :此标志表示 TCP 包的紧急指针域(后面马上就要说 到)有效,用来保证 TCP 连接不被中断,并且督促中间层 设备要尽快处理这些数据; ACK :此标志表示应答域有效, 就是说前面所说的 TCP 应答号将会包含在 TCP 数据包中; 有两个取值: 0 和 1,为 1 的时候表示应答域有效, 反之为 0; PSH :这个标志位表示 Push 操作。所谓 Push 操作就是指 在数据包到达接收端以后,立即传送给应用程序,而不是在 缓冲区中排队; RST :这个标志表示连接复位请求。用来复 位那些产生错误的连接,也被用来拒绝错误和非法的数据包; SY

2、N :表示同步序号,用来建立连接。 SYN 标志位和 ACK 标志位搭配使用,当连接请求的时候, SYN=1 ,ACK=0 ;连 接被相应的时候, SYN=1 ,ACK= 1 ;这个标志的数据包经 常被用来进行端口扫描。扫描者发送一个只有 SYN 的数据 包,如果对方主机响应了一个数据包回来,就表明这台主机 存在这个端口;但是由于这种扫描方式只是进行 TCP 三次 握手的第一次握手,因此这种扫描的成功表示被扫描的机器 不很安全,一台安全的主机将会强制要求一个连接严格的进 行 TCP 的三次握手; FIN :表示发送端已经达到数据末尾, 也就是说双方的数据传送完成,没有数据可以传送了,发送FIN

3、 标志位的 TCP 数据包后, 连接将被断开。 这个标志的数 据包也经常被用于进行端口扫描。当一个 FIN 标志的 TCP 数据包发送到一台计算机的特定端口,如果这台计算机响应 了这个数据,并且反馈回来一个 RST 标志的 TCP 包,就表 明这台计算机上没有打开这个端口,但是这台计算机是存在 的;如果这台计算机没有反馈回来任何数据包,这就表明, 这台被扫描的计算机存在这个端口。 *SYN :同步标志 同步序列编号 (Synchronize Sequence Numbers) 栏有效。 该 标志仅在三次握手建立 TCP 连接时有效。它提示 TCP 连接 的服务端检查序列编号,该序列编号为 TC

4、P 连接初始端 (一 般是客户端 )的初始序列编号。在这里,可以把 TCP 序列编号看作是一个范围从 0 到 4, 294 ,967 ,295 的 32 位计数 器。通过 TCP 连接交换的数据中每一个字节都经过序列编 号。在 TCP 报头中的序列编号栏包括了 TCP 分段中第一个 字节的序列编号。 *ACK :确认标志 确认编号 (Acknowledgement Number) 栏有效。大多数情况 下该标志位是置位的。 TCP 报头内的确认编号栏内包含的确 认编号(w+1 , Figure-1)为下一个预期的序列编号, 同时提示远端系统已经成功接收所有数据。 *RST :复位标志 复位标志有

5、效。用于复位相应的 TCP 连接。 *URG :紧急标紧急(The urgent pointer) 标志有效。紧急标志置位,*PSH : 推标志 该标志置位时,接收端不将该数据进行队列处理,而是尽可 能快将数据转由应用处理。在处理 telnet 或 rlogin 等交互 模式的连接时,该标志总是置位的。 *FIN :结束标志 带有该标志置位的数据包用来结束一个 TCP 回话,但对应 端口仍处于开放状态,准备接收后续数据。.TCP 的几个状态对于我们分析所起的作用。在 TCP 层,有 个 FLAGS 字段,这个字段有以下几个标识: SYN, FIN, ACK, PSH, RST, URG. 其中

6、,对于我们日常的分析有用的就是前 面的五个字段。它们的含义是: SYN 表示建立连接, FIN 表 示关闭连接,ACK表示响应,PSH表示有DATA数据传输, RST 表示连接重置。其中, ACK 是可能与 SYN , FIN 等同 时使用的,比如 SYN 和 ACK 可能同时为 1,它表示的就是 建立连接之后的响应, 如果只是单个的一个 SYN ,它表示的 只是建立连接。 TCP 的几次握手就是通过这样的 ACK 表现 出来的。但 SYN 与 FIN 是不会同时为 1 的,因为前者表示 的是建立连接,而后者表示的是断开连接。 RST 一般是在 FIN 之后才会出现为 1 的情况,表示的是连接

7、重置。 一般地, 当出现 FIN 包或 RST 包时,我们便认为客户端与服务器端 断开了连接;而当出现 SYN 和 SYN ACK 包时,我们认为 客户端与服务器建立了一个连接。 PSH 为 1 的情况, 一般只 出现在 DATA 内容不为 0的包中, 也就是说 PSH 为 1表示的是有真正的 TCP 数据包内容被传递。 TCP 的连接建立和 连接关闭,都是通过请求响应的模式完成的。了解到了 TCP 标志位的含义,就可以了解 TCP 的三次握手是怎么进 行的了:发送端发送一个 SYN=1 ,ACK=0 标志的数据包给 接收端,请求进行连接,这是第一次握手;接收端收到请求 并且允许连接的话,就会

8、发送一个 SYN=1 ,ACK=1 标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送 一个确认数据包,这是第二次握手;最后,发送端发送一个 SYN=0 ,ACK=1 的数据包给接收端, 告诉它连接已被确认, 这就是第三次握手。 之后, 一个 TCP 连接建立, 开始通讯。 简述TCP协议连接建立时3次握手的过程。根据TCP头部, 说明下列 3 个包在连接建立过程中的次序,为什么?该连接 访问的服务是什么服务? 0020 00 50 83 aa 46 493e dd 33 96 37 a3 a0 12 .P.FI>.3.7.0030 16 a0c4 c0 00 00 02 04

9、05 b4 04 02 08 0a d79b 0040 62 b7 00 56 4a 2a 01 03 03 02b.VJ* ( 1) 0020 83 aa 00 50 33 96 37 a2 0000 00 00 a0 02 P3.7 0030 16 d0 84 1d 00 0002 04 05 b4 04 02 08 0a 00 56 V0040 4a 2a00 00 00 00 01 03 03 00 J* (2)0020 83 aa 00 50 33 96 37 a3 46 49 3e de 8010 P3.7.FI>.0030 16 d0 f3 4b 00 00 01 01 0

10、8b. ( 3)解:在 TCP/IP 协议中, TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连 接时,客户端发送 syn 包 (syn=j) 到服务器,并进入 SYN_SEND 状态,等待服务器确认;第二次握手:服务器 收到 syn 包,必须确认客户的 SYN (ack=j+1 ),同时自己也 发送一个 SYN 包( syn=k ),即 SYN+ACK 包,此时服务器 进入 SYN_RECV 状态;第三次握手:客户端收到服务器的 SYN ACK 包,向服务器发送确认包 ACK(ack=k+1) ,此包 发送完毕, 客户端和服务器进入 ESTABLISHED 状态,

11、完成 三次握手。完成三次握手,客户端与服务器开始传送数据。 (2)是第一次握手, flags 位上为 02 ,二进制是 0000 0010 , 即表示有 syn 没有 ack 。( 1 )是第二次握手, flags 位上为 12,二进制是 0001 0010 ,即表示有 syn 和 ack 。(3)是第 三次握手, flags 位上为 10 ,二进制是 0001 0000 ,即表示 有 ack 没有 syn 。该连接访问的是 80 端口,是为 HTTP ( HyperText Transport Protocol ,超文本传输协议)开放的 TCP 拦截即 TCP intercept ,大多数的

12、路由器平台都引用了 该功能,其主要作用就是防止 SYN 泛洪攻击。 SYN 攻击利 用的是 TCP 的三次握手机制,攻击端利用伪造的 IP 地址向 被攻击端发出请求,而被攻击端发出的响应报文将永远发送 不到目的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源, 如果有成千上万的这种连接, 主机资源将被耗尽,从而达到攻击的目的。我们可以利用路由器的 TCP 拦截功 能,使网络上的主机受到保护 (以 Cisco 路由器为例 )。 开启 TCP 拦截分为三个步骤: 1. 设置 TCP 拦截的工作模 式 TCP 拦截的工作模式分为拦截和监视。 在拦截模式下, 路由器审核所有的 TCP 连接,自身的

13、负担加重,所以我们 一般让路由器工作在监视模式,监视 TCP 连接的时间和数 目,超出预定值则关闭连接。 格式:ip tcp intercept mode(intercept|watch) 缺省为 intercept 2. 设置访问表, 以开启需要保护的主机 格式: access-list 100-199 deny|permit tcp source source-wildcard destinationdestination-wildcard 举例:要保护 219.148.150.126 这 台主机 access-list 101 permit tcp any host 219.148.15

14、0.126 3. 开启 TCP 拦截 ip tcp interceptlist access-list-number 示例:我们有两台服务器 219.148.150.126 和 219.148.150.125 需要进行保护,可以这样配置: ip tcp intercept list 101 ip tcp interceptmode watch ip access-list 101 permit tcp anyhost 219.148.150.125 ip access-list 101 permit tcp anyhost 219.148.150.126 经过这样的配置后,我们的主机就在一定程

15、度上受到了保护。 TCP(Transmission Control Protocol) 传输控制协议TCP 是主机对主机层的传输控制协议, 提供可靠的连接服 务, 采用三次握手确认建立一个连接 :位码即 tcp 标志位 , 有 6 种标示 :SYN(synchronous 建立 联机 ) ACK(acknowledgement 确认 )PSH(push 传送 ) FIN(finish 结束 ) RST(reset 重置 ) URG(urgent 紧急 )Sequence number( 顺序号码 ) Acknowledge number( 确认 号码 )第一次握手:主机 A发送位码为syn =

16、 1,随机产生seqnumber=1234567 的数据包到服务器, 主机 B 由 SYN=1 知道, A 要求建立联机;第二次握手: 主机 B 收到请求后要确认联机信息, 向 A 发 送 ack number=( 主机 A 的seq+1),syn=1,ack=1, 随机产生 seq=7654321 的包 第三次握手:主机 A 收到后检查 ack number 是否正确, 即第一次发送的 seq number+1, 以及位码 ack 是否为 1 ,若正确,主机 A 会再发送 ack number=( 主机 B 的 seq+1),ack=1 ,主机 B 收到 后确认 seq 值与 ack=1 则

17、连接建立成功。 完成三次握手,主机 A 与主机 B 开始传送数据。在 TCP/IP 协议中, TCP 协议提供可靠的连接服务, 采用 三次握手建立一个连接。第一次握手:建立连接时,客户端发送 syn 包 (syn=j) 到服 务器,并进入 SYN_SEND 状态,等待 服务器确认; 第二次握手:服务器收到 syn 包,必须确认客户的 SYN (ack=j+1 ),同时自己也发送一个 SYN包( syn=k ),即 SYN+ACK 包,此时服务器 进入 SYN_RECV 状态; 第三次握手:客户端收到服 务器的 SYN ACK 包,向服务器发送确认包 ACK(ack=k+1) ,此包发送完毕,客

18、户端和服务器进 入 ESTABLISHED 状态,完成三次握手。 完成三次握手, 客户端与服务器开始传送数据 .实例:IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1第一次握手:192.168.1.116

19、 发送位码syn = 1,随机产生 seq number=3626544836 的数据包到 192.168.1.123,192.168.1.123 由 SYN=1 知道 192.168.1.116 要求建立联机 ;第二次握手: 192.168.1.123 收到请求后要确认联机信息, 向 192.168.1.116 发送 ack number=3626544837,syn=1,ack=1, 随机产生 seq=1739326486 的包 ;第 三次握手: 192.168.1.116 收到后检查 acknumber 是否 正确, 即第一次发送的 seqnumber+1,以及位码 ack 是否为 1,

20、若正确, 192.168.1.116 会再发 送 ack number=1739326487,ack=1 ,192.168.1.123 收到后确认 seq=seq+1,ack=1 则连接建立 成功。图解: 一个三次握手的过程(图 1 ,图 2)(图 1)(图 2)第一次握手的标志位(图 3 )我们可以看到标志位里面只有个同步位,也就是在做请求 (SYN) (图 3) 第二次握手的标志位(图 4 )我们可以看到标志位里面有个 确认位和同步位,也就是在做应答 (SYN + ACK) (图 4) 第三次握手的标志位(图 5 )我们可以看到标志位里面只有个确认位,也就是再做再次确 认(ACK)(图 5

21、) 一个完整的三次握手也就是 请求 -应答 -再次确认四次分手:由于 TCP 连接是全双工的, 因此每个方向都必须单独进行关闭。 这个原则是当一方完成它的 数据发送任务后就能发送一个 FIN 来终止这个方向的连接。 收到一个 FIN 只意味着这一方向上 没有数据流动,一个 TCP 连接在收到一个 FIN 后仍能发 送数据。首先进行关闭的一方将执行主 动关闭,而另一方执行被动关闭。(1)客户端 A 发送一个 FIN ,用来关闭客户 A 到服务器 B 的数据传送(报文段 4 )。(2)服务器 B 收到这个 FIN ,它发回一个 ACK ,确认序 号为收到的序号加 1(报文段 5 )。和 SYN 一

22、样,一个 FIN 将占用一个序号。(3)服务器 B 关闭与客户端 A 的连接, 发送一个 FIN 给 客户端 A (报文段 6)。(4 )客户端 A 发回 ACK 报文确认, 并将确认序号设置为 收到序号加 1(报文段 7 )。1为什么建立连接协议是三次 握手,而关闭连接却是四次握手呢?这是因为服务端的 LISTEN 状态下的 SOCKET 当收到 SYN 报文的建连请求后,它可以把 ACK 和 SYN( ACK 起应答作用, 而 SYN 起同步作用) 放在 一个报文里来发送。 但关闭连接时, 当收到 对方的 FIN 报文通知时,它仅仅表示对方没有数据发送给 你了;但未必你所有的数据都全部发送

23、给对方了, 所以你可以未必会马上会关闭 SOCKET, 也即 你可能还需要发送一些数据给对方之后,再发送 FIN 报文给对方来表示你同意现在可以关闭连 接了,所以它这里的 ACK 报文和 FIN 报文多数情况下都是分开发送的。2为什么 TIME_WAIT 状态还需要等 2MSL 后才能返回 到 CLOSED 状态? 这是因为虽然双方都同意关闭连接了, 而且握手的 4 个报 文也都协调和发送完毕, 按理可以直接回到 CLOSED 状态(就好比从 SYN_SEND 状态到 ESTABLISH 状态那样);但是因为我们必须 要假想网络是不可靠的,你无法保证你最后发送的 ACK 报 文会一定被对方收到,因此对方处于LAST_ACK 状态下的 SOCKET 可能会因为超时未收到ACK 报文,而重发 FIN 报文,所以这个TIME_WAIT 状态的作用就是用来重发可能丢失的 ACK 报 文。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1