




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.f5 会话处理流程(参数说明)及q&a一. tcp状态转换图1、建立连接协议(三次握手) (1)客户端发送一个带syn标志的tcp报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ack标志和syn标志。因此它表示对刚才客户端syn报文的回应;同时又标志syn给客户端,询问客户端是否准备好进行数据通讯。 (3) 客户必须再次回应服务段一个ack报文,这是报文段3。2、连接终止协议(四次握手)精品. 由于tcp连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务
2、后就能发送一个fin来终止这个方向的连接。收到一个 fin只意味着这一方向上没有数据流动,一个tcp连接在收到一个fin后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。(1) tcp客户端发送一个fin,用来关闭客户到服务器的数据传送。(2) 服务器收到这个fin,它发回一个ack,确认序号为收到的序号加1。和syn一样,一个fin将占用一个序号。(3) 服务器关闭客户端的连接,发送一个fin给客户端。(4) 客户段发回ack报文确认,并将确认序号设置为收到序号加1。3、连接状态说明closed: 这个没什么好说的了,表示初始状态。list
3、en: 这个也是非常容易理解的一个状态,表示服务器端的某个socket处于监听状态,可以接受连接了。syn_rcvd: 这个状态表示接受到了syn报文,在正常情况下,这个状态是服务器端的socket在建立tcp连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次tcp握手过程中最后一个ack报文不予发送。因此这种状态时,当收到客户端的ack报文后,它会进入到established状态。syn_sent: 这个状态与syn_rcvd遥想呼应,当客户端socket执行connect
4、连接时,它首先发送syn报文,因此也随即它会进入到了syn_sent状态,并等待服务端的发送三次握手中的第2个报文。syn_sent状态表示客户端已发送syn报文。established:这个容易理解了,表示连接已经建立了。fin_wait_1: 这个状态要好好解释一下,其实fin_wait_1和fin_wait_2状态的真正含义都是表示等待对方的fin报文。而这两种状态的区别是:fin_wait_1状态实际上是当socket在established状态时,它想主动关闭连接,向对方发送了fin报文,此时该socket即进入到fin_wait_1状态。而当对方回应ack报文后,则进入到
5、精品.fin_wait_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ack报文,所以fin_wait_1状态一般是比较难见到的,而fin_wait_2状态还有时常常可以用netstat看到。fin_wait_2:上面已经详细解释了这种状态,实际上fin_wait_2状态下的socket,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。time_wait: 表示收到了对方的fin报文,并发送出了ack报文,就等2msl后即可回到closed可用状态了。如果fin_wait_1状态下,收到了对方同时带fin标
6、志和ack标志的报文时,可以直接进入到time_wait状态,而无须经过fin_wait_2状态。closing: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送fin报文后,按理来说是应该先收到(或同时收到)对方的ack报文,再收到对方的fin报文。但是closing状态表示你发送fin报文后,并没有收到对方的ack报文,反而却也收到了对方的fin报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个socket的话,那么就出现了双方同时发送fin报文的情况,也即会出现closing状态,表
7、示双方都正在关闭socket连接。close_wait: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个socket后发送fin报文给自己,你系统毫无疑问地会回应一个ack报文给对方,此时则进入到close_wait状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个socket,发送fin报文给对方,也即关闭连接。所以你在close_wait状态下,需要完成的事情是等待你去关闭连接。last_ack: 这个状态还是比较容易好理解的,它是被动关闭一方在发送fin报文后,最后等待对方的ack
8、报文。当收到ack报文后,也即可以进入到closed可用状态了。精品.二. f5 tcp 连接管理及参数说明1. f5 tcp建立过程及相关参数说明如图:standard vs/tcp profile的连接建立过程如图:standard vs/tcp/http profile(七层应用)的连接建立过程2. f5 tcp rst过程及tcp porfile中reset on timeout选项 f5 vs 收到任何一方会话中发送的rst包,f5 vs行为为立即转发,并清除f5中本会话连接。 精品.tcp porfile中reset on timeout选项,意为当f5 vs中的会话超出idle
9、超时时间值后, f5 vs将向客户端、服务器同时发rst,并删除自身vs中会话链接。此项默认值为启用状态。 3. f5 tcp关闭过程及相关参数说明下图是客户端主动发起关闭应用时的tcp连接关闭过程以及f5设备相应状态,总体上在这种情况下,f5会首先通过四次握手先关闭服务器端tcp连接,再关闭客户端连接具体如下图所示:下图是服务器端主动发起关闭应用时的tcp连接关闭过程以及f5设备相应状态,总体上在这种情况下,f5会首先通过四次握手先关闭客户端tcp连接,再关闭服务器端连接具体如下图所示:精品.针对以上参数,f5设备上相关的配置项time wait2000 (缺省)optionsspecify
10、: user specified amount of time (in milliseconds) that a tcp connection remains in the time-wait state before entering the closed statethis setting specifies the length of time (in milliseconds) that a tcp connection remains in the time-wait state before entering the closed state.精品.immediate: this
11、option specifies that the system closes the connection immediately after the connection enters the time-wait state indefinite: this option specifies that tcp connections can remain in the time-wait state indefinitelyfin wait5 (default)options:specify: user specified amount of time (in seconds) that
12、a tcp connection is in the fin-wait or closing state before closingimmediate: this option specifies that the tcp connection closes immediately after entering the fin-wait or closing stateindefinite: this option specifies that tcp connections in the fin-wait or closing state do not quitthis setting s
13、pecifies the length of time (in seconds) that a tcp connection is in the fin-wait or closing state before closing.close wait5 (default)options:specify: user specified amount of time (in seconds) that a tcp connection remains in the last-ack state before quittingimmediate: this option specifies that
14、the tcp connection closes immediately after entering the last-ack stateindefinite: this option specifies that tcp connection in the last-ack state do not close until they meet the maximum retransmissions timeout.this setting specifies the length of time (in seconds) that a tcp connection remains in
15、the last-ack state before quitting.三. f5 standard vs/tcp profile / standard vs/tcp/http profile(七层应用) 时间值及行为产品 :f5 big ip 8400(os:9.3.1)tcp-idle-timeoutsyn-timeoutrstfin-waitclose-waittime-waitpersistencestandard vs/tcp profile / standard vs/tcp/http profile(七层应用) 300s与 tcp idle-timeout相同 0秒5秒5秒2s60
16、分(自定义)四. f5 vs 异常场景行为及计时器的使用 精品.场景产品 :f5 big ip 8400(os:9.3.1)tcp-idle-timeoutsyn-timeoutrstfin-waitclose-waittime-waitpersistencestandard vs/tcp profile / standard vs/tcp/http profile(七层应用) 300s与 tcp idle-timeout相同 0秒5秒5秒2s60分(自定义)场景行为 &超时后行为双向发rst双向发rst双向发rst双向发rst双向发rst根据负载均衡算法,重新分发1异常情况下:客户端
17、发syn-> f5 syn_ack后,客户端不再发ack包,f5对此会话如何处理(对客户端)?自身对本会话如何处理?f5 此时对会话的响应所使用的计时器是那个,时间值是多少,即synwait timeout是多少?这种情况f5会进入半连接状态,一直等到idle timeout超时(缺省设置为300s),该计时器在tcp profile中可定义.不刷新不刷新2针对tmos 9.3.1版本中,后台server全部down掉的情况下,客户端对f5vs 进行建链请求,f5 vs完成tcp 三次握手后,立即向客户端发送rst包,此时,客户端同时向f5发http get请求,这时,f5对客户端后面这
18、个http get 请求,其行为是什么?是否发reset包?(应用系统故障时,抓包,未看到后面的f5发的rst包)1、f5在发出第一个reset后,会立即清除自身的连接。2、对于f5后续收到http get 请求,因没有匹配的session,f5会将该包丢弃.在9.3.1版本中,不再发reset.不刷新精品.3正常状态下(f5 vs、member服务器正常),客户端发rst包,f5的如何处理响应,对自身会话如何处理,计时器用那个,时间是多少?同样,如服务器端发rst包,f5如何处理响应,对自身会话如何处理,计时器用那个,时间是多少? 如后续在此会话上,仍有相同的数据请求到达f5 vs,f5如何
19、处理响应 ,对自身会话如何处理,计时器用那个,时间是多少无论是客户端还是服务器端发送reset给f5的vs,f5会立即清除相关的连接,没有相关联的计时器4正常状态下,在tcp profile中选择reset on timeout后, f5到了tcp-idletimeout 后主动向服务器端、客户端同时发rst并立即拆除session。此时,如后续客户端有数据请求包到f5 vs,而f5此时已清除了session,那么f5如何响应客户端的请求,是发rst包给客户端,还是新建或直接丢弃?计时器使用那个?如果是新的连接(syn 请求),重新建立连接;如果是其它状态的包,由于没有匹配的session,f
20、5会将该包丢弃。并且f5 向请求方(客户端)发rst。5正常状态下(f5 vs、member服务器正常),客户端与f5 vs之间、f5与member(ser)均已完成建链,此时,后台member服务器服务port down/up,存在两种情况:(f5 的poolmember monitor interval 5s timeout 16s) a. 如member 的服务port 在16s内(含)一直为down状态 客户端后续数据请求包,f5如何处理响应?f5 vs本身对此session的如何处理?f5在是否会直接将后续请求包直接发给其他member? 还是f5vs 保持与客户端当前会话,f5与其
21、也member建链,然后,再将其转发至新vs member中?还是f5会强制客户端重新建链,重新分配会话到其他member.f5会清除原有session。强制客户端重新建链,重新分配会话到其他member.f5处理方法 (双向发rst包,对客户端、服务器),对自身session 行为:立即清除。精品.6b . 如pool member 的服务port 在16s内(含)恢复up服务状态 客户端后续数据请求包,f5如何处理响应?f5 vs本身对此session的如何处理?厂商回复: f5会视作服务器正常,处理数据包行为没有改变。7f5 vs 为standar 类型,vs中的member 全down
22、后,vs对外仍提供会话建链,属f5正常机制(vs属性),非版本区别?厂商回复:正常机制,所有版本都是这种方式精品.8f5 vs 收到fin (首个fin包,不区分服务器、客户端) 后,转发给另一端(服务器或客户端),进行fin wait 1状态,并进入5s的超时计时。如首个fin的ack包未能在5s内收到 ,f5的行为是什么?以什么行为向pcserver拆链,即 f5设备vs 在fin-time out的动作行为。厂商回复: f5设备在fin time out 后如果在tcp profile中选择reset on timeout后,会触发向客户端和服务器端同时发送reset数据包,同时删除相关
23、连接表,如果不选择reset on timeout ,f5设备只清除本地相关连接表,不做其它动作处理.9 f5 收到第一个fin包(不管clientserver), fin timeout进入5秒超时计时,此值非绝对值,即如后续有包匹配session,即触发timer 重新计时 ? 这种机制是否对close wait 计时器同等生效? 如close wait计时器与 fin wait计时器刷新机制不一致,那么下面情况下,f5对会话的处理响应行为是什么? 等待中,数据包匹配,刷新重新计时等待中,数据包匹配,刷新重新计时等待中,数据包匹配,刷新重新计时10 以客户端发起fin为例,当f5收到cli
24、ent fin后,进入close wait状态,并开始计时器倒计时,如f5与server之间的两个fin过程超出5s时或仍有数据传送,f5将会在close wait计时器倒计时5s后,根据上面的第一点的行为(选择reset on timeout),是否进行reset双向拆链。厂商回复:无论是在close-wait,还是last-ack状态下都会进行5s倒计时。超过该时间设定,reset on timeout拆连接。五. f5 q &a场景: 硬件: f5 big-ip ltm 8400软件 : 9.3.1 37.1vs type : 主机virtual serverprofile :
25、standard vs/tcp profile / standard vs/tcp/http profile(七层应用) 1、关于f5 vs建立tcp会话时的tcp syn 包的处理行为q&a 上面的截取的客户端与f5的tcp建链过程: 1)、正常情况下,f5的与客户端的完成三次握手的建链时间是多少(client syn-> f5 syn_ackclient ack)? 厂商回复:这个要根据网络的具体情况(延时,带宽等)而异,附件是我的一个正常访问的数据抓包,可以参考一下.精品.2)、异常情况下:客户端发syn->
26、f5 syn_ack后,客户端不再发ack包,f5对此会话如何处理(对客户端)?自身对本会话如何处理?f5 此时对会话的响应所使用的计时器是那个,时间值是多少,即synwait timeout是多少?厂商回复:这种情况f5会进入半连接状态,一直等到idle timeout超时(缺省设置为300s),该计时器在tcp profile中可定义. 2、关于f5 vs对会话中tcp rst数据包的处理行为 1) 针对tmos 9.3.1版本中,后台server全部down掉的情况下,客户端对f5vs 进行建链请求,f5 vs完成tcp 三次握手后,
27、立即向客户端发送rst包,此时,客户端同时向f5发http get请求,这时,f5对客户端后面这个http get 请求,其行为是什么?是否发reset包?(应用系统故障时,抓包,未看到后面的f5发的rst包)。厂商回复: f5对rst后收到http get 请求,因无会话将直接丢弃,在当前9.3.x版本,不会发rst包.(f5 case :case number c620307确认)1、f5在发出第一个reset后,会立即清除自身的连接。2、对于f5后续收到http get 请求,因没有匹配的session,f5会将该包丢弃.在9.3.1版本中,不再发reset.
28、60;2)正常状态下(f5 vs、member服务器正常),客户端发rst包,f5的如何处理响应,对自身会话如何处理,计时器用那个,时间是多少?同样,如服务器端发rst包,f5如何处理响应,对自身会话如何处理,计时器用那个,时间是多少? 如后续在此会话上,仍有相同的数据请求到达f5 vs,f5如何处理响应 ,对自身会话如何处理,计时器用那个,时间是多少?厂商回复:无论是客户端还是服务器端发送reset给f5的vs,f5会立即清除相关的连接,没有相关联的计时器。 3)、正常状态下,在tcp profile中选择reset on timeout后, f
29、5到了tcp-idletimeout 后主动向服务器端、客户端同时发rst并立即拆除session。此时,如后续客户端有数据请求包到f5 vs,而f5此时已清除了session,那么f5如何响应客户端的请求,是发rst包给客户端,还是新建或直接丢弃?计时器使用那个?精品. 厂商回复:如果是新的连接(syn 请求),重新建立连接;如果是其它状态的包,由于没有匹配的session,f5会将该包丢弃。 4)、正常状态下(f5 vs、member服务器正常),客户端与f5 vs之间、f5与member(ser)均已完成建链,此时,后台member服务器服务port down/up
30、,存在两种情况:(f5 的poolmember monitor interval 5s timeout 16s) a. 如member 的服务port 在16s内(含)一直为down状态 客户端后续数据请求包,f5如何处理响应?f5 vs本身对此session的如何处理?f5在是否会直接将后续请求包直接发给其他member? 还是f5vs 保持与客户端当前会话,f5与其也member建链,然后,再将其转发至新vs member中?还是f5会强制客户端重新建链,重新分配会话到其他member.厂商回复:f5会清除原有session。强制客户端重新建链,重新分配会话到其他member.f5处理方法 (双向发rst包,对客户端、服务器),对自身session 行为:立即清除。 b . 如pool member 的服务port 在16s内(含)恢复up服务状态 客户端后续数据请求包,f5如何处理响应?f5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 总结2025年土木工程师考试各类试题及答案解析
- 施工现场安全风险认知考题
- 益阳高二会考试卷及答案
- 家具设计中的图案与纹理表现技巧试题及答案
- 机电应聘笔试试题及答案
- 一年级下组词试卷及答案
- 教育教学中的合作与竞争反思试题及答案
- 职场英语团队协作中的信任建立能力试题及答案
- 数学活动提升试题及答案
- 如何进行家具设计的用户测试与反馈试题及答案
- 职业健康安全目标 指标及管理方案
- 玻璃幕墙工程劳务分包合同范本
- 幼儿园大班数学《认识左右》课件
- 中等职业学校《计算机应用基础》课程标准1
- 氨基酸多肽蛋白质课件
- 金属矿床地下开采复习题及答案
- Cpk 计算标准模板
- 【小升初】2023小学六年级人教版道德与法治升学毕业试卷及答案(时政+上下册考点)04
- 乳化液废水处理方案
- 军事航天技术
- 新媒体实验影像课件
评论
0/150
提交评论