- 浏览: 482399 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
alvin198761:
renzhengzhi 写道我参与过12306余票查询系统的开 ...
别给12306 辩解了 -
renzhengzhi:
我参与过12306余票查询系统的开发,用户请求被前面3层缓存拦 ...
别给12306 辩解了 -
renzhengzhi:
写的很好。
JAVA线程dump的分析 -
liyonghui160com:
说好的附件呢
分布式服务框架 Zookeeper -- 管理分布式环境中的数据 -
ghpaas:
orbeon作为xforms标准的实现,不论其设计器还是运行时 ...
XForms 1.1 中文翻译—第1章 关于XForms标准
段按顺序处理,首先抛弃重复的段,对于以后的处理要根据SEG.SEQ的大小进行。如果有的段内的新老内容重叠在一起,那只用处理新的那一部分。下面是对接收到的数据的可接受性测试中的四种情况: 段长度 接收窗口 测试 0 0 SEG.SEQ = RCV.NXT 0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND >0 0 不接受 >0 >0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND或RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND 如果RCV.WND = 0,除了合法的ACK,URG和RST段外拒绝其它的数据段。如果接收到的数据段不可接受,应该返回一个应答,格式如下:<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>。在发送完应答后,抛弃不可接受的数据段,然后返回。 第二步检查RST位。 如果处于SYN-RECEIVED 状态时,而且处于设置了RST的情况下,如果连接以被动OPEN开始,将连接返回到LISTEN状态,不需要通知用户;如果连接以主动OPEN打开,拒绝连接,并通知用户"connection refused"。在上面任何一种情况下,所有在重发队列中的数据都要删除。在主动OPEN的那种情况下,进入CLOSED状态,删除TCB然后返回。 如果处于ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2或CLOSE-WAIT状态时,而且RST已经设置,那么任何存在的RECEIVE和SEND都会收到"reset"。所有队列中的数据段都应该立即发送。用户也会收到"connection reset"。进入CLOSED状态,删除TCB并返回。 如果处于CLOSING状态,LAST-ACK状态或TIME-WAIT状态,而且RST已经设置,进入CLOSED状态,删除TCB并返回。 检查安全和优先级 在SYN-RECEIVED状态下 如果段中的security/compartment和优先级和TCB中的不匹配,发送RST并返回。 在ESTABLISHED状态下 如果段中的security/compartment和优先级和TCB中的不匹配,发送RST ,所有存在的RECEIVE和SEND接收到"reset",立即发送所有队列中的数据段,用户接收到"connection reset"。进入CLOSED状态,删除TCB并返回。 第四步检查SYN位,如果连接处于以下状态 SYN-RECEIVED ESTABLISHED状态 FIN-WAIT STATE-1 FIN-WAIT STATE-2 CLOSE-WAIT状态 CLOSING状态 LAST-ACK状态 TIME-WAIT状态 如果SYN在窗口中就是错误,发送RST,任何存在的RECEIVE和SEND收到"reset",所有在队列中的数据段立即发送,用户也接收到"connection reset",进入CLOSED状态,删除TCB并返回。如果SYN未在窗口中,这一步不会发生。 第五步检查ACK域 如果ACK位关闭,抛弃数据段返回。如果ACK域打开的情况下,如果连接处于 SYN-RECEIVED状态时 如果SND.UNA =< SEG.ACK =< SND.NXT,进入ESTABLISHED状态。如果段的确认消息不可接受,形成如下形式的RST并发送: <SEQ=SEG.ACK><CTL=RST> ESTABLISHED状态时 如果SND.UNA < SEG.ACK =< SND.NXT,设置SND.UNA <- SEG.ACK。因此而对重新传送队列中数据段的确认也带来了对这些数据段的删除。用户应该接收对缓冲区的主动确认,如果ACK是重复的(SEG.ACK < SND.UNA)可以忽略这个ACK。如果ACK确认了还未发送的东西(SEG.ACK > SND.NXT),那么可以发送ACK,抛弃数据段并返回。 如果SND.UNA < SEG.ACK =< SND.NXT,应该更新发送窗口。如果(SND.WL1 < SEG.SEQ)或(SND.WL1 = SEG.SEQ且SND.WL2 =< SEG.ACK),设置SND.WND <- SEG.WND,SND.WL1 <- SEG.SEQ和SND.WL2 <- SEG.ACK。 FIN-WAIT-1状态 除了对于ESTABLISHED状态的处理外,如果确定了FIN,则进入FIN-WAIT-2状态并在这个状态下继续处理。 FIN-WAIT-2状态时 除了对于ESTABLISHED状态的处理外,如果重新发送队列为空,确认用户的CLOSE,但不删除TCB。 CLOSE-WAIT状态时 同ESTABLISHED状态的处理。 CLOSING状态时 除了对于ESTABLISHED状态的处理外,如果确定了FIN,则进入TIME-WAIT状态,如果未确认,则忽略这个段。 LAST-ACK状态时 在此状态下唯一可能发生的就是重要发送远程FIN。如果确认了FIN,则删除TCB,进入CLOSED状态并返回。 TIME-WAIT状态时 在此状态下唯一可能发生的就是重要发送远程FIN。确认它,并重新开始2 MSL超时。 第六步检查URG位,如果连接处于ESTABLISHED状态,FIN-WAIT-1状态或FIN-WAIT-2 状态,而且URG位被设置,那么RCV.UP <- max(RCV.UP,SEG.UP),通知用户远方有紧急数据,如果用户已经处于紧急状态,不用再多嘴了。连接在此时不会处于CLOSE-WAIT状态,CLOSING状态,LAST-ACK状态或TIME-WAIT状态,因为还没有从远方获得FIN。 第七步处理段数据 处于ESTABLISHED状态,FIN-WAIT-1 状态或FIN-WAIT-2 状态时,在进入ESTABLISHED状态后才可能向用户接收缓冲区传送数据。段中的数据可以移向缓冲区,直到缓冲区满或段为空为止。如果段为空并带有标记PUSH,在返回缓冲区数据后要通知用户接收到PUSH。TCP传送数据时必须对接收到的数据也发给确认。前面已经说过对RCV.NXT和RCV.WND的处理,这里不再多说了。发送的确认有如下格式:<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>。 而CLOSE-WAIT状态,CLOSING状态,LAST-ACK状态或TIME-WAIT 状态根本不会发生,因为还未从远程TCP接收到FIN。 第八步检查FIN位。如果状态是CLOSED,LISTEN或SYN-SENT,不要处理FIN,因为此时的SEG.SEQ不会的意义,应该直接抛弃数据段返回。如果设置了FIN位,通知用户"connection closing"中止所有正在进行的RECEIVE,增加RCV.NXT超过FIN,对FIN发送确认。 如果此时处于:SYN-RECEIVED状态或ESTABLISHED状态进入CLOSE-WAIT状态。 如果此时处于FIN-WAIT-1 状态 如果确定了FIN段,那么进入TIME-WAIT状态,打开time-wait计数器,关闭其它计数器,如果没有确认,进入CLOSING状态。 如果此时处于FIN-WAIT-2状态 进入TIME-WAIT状态,关闭其它计数器,打开time-wait计数器。 如果此时处于CLOSE-WAIT状态或CLOSING状态或LAST-ACK状态,保留各自原来的状态。 如果此时处于TIME-WAIT状态,保持在TIME-WAIT状态。重新开始2 MSL time-wait超时。 用户超时 对于任何一种状态,用户超时的情况下,发送队列中的数据,返回"error: connection aborted due to user timeout",删除TCB,进行CLOSED状态并返回。 重发超时 在任何状态下,如果重发队列中的数据段发送超时,将它再次放到队列首部重新发送。 TIME-WAIT超时 如果time-wait超时,删除TCB,进行CLOSE状态并返回。
http://www.longen.com/s-z/details-z/TCP.htm
发表评论
-
IT人的良好阅读习惯
2014-01-23 09:52 1426一、学会挑剔只看经典 人的精力是十分有限的,只能有 ... -
IT领域2014年发展趋势
2013-12-23 22:13 0虽然2013年还有一个月 ... -
15分钟学会使用Git和远程代码库
2013-12-23 10:28 2047Git是个了不起但却复 ... -
传输控制协议(Transmission Control Protocol, TCP)之一
2011-03-11 13:05 977传输控制协议(Transmission Control P ... -
史蒂夫·乔布斯很懂团队建设
2011-01-27 18:01 919我偶然读到了由Rama Dev Jager 和 Rafae ... -
如何分析Flex应用的内存泄露问题?
2010-10-26 15:11 1316随着Web 2.0技术的深入 ... -
克服在企业中应用敏捷方法的技术挑战
2010-10-20 10:59 844在企业中应用敏捷方法 ... -
服务器端编程的十大性能问题
2010-08-31 17:01 831年5月底,瑞士计算机世界杂志上刊登了Web性能诊断专家Be ... -
Yahoo推出开源YUI跨浏览器测试工具Yeti
2010-08-31 17:00 1025YUI是一款企业级的JavaScript开发工具包,被广大 ... -
MSDN中关于Working Set的一些说明
2010-08-31 15:10 2196*The working set of a proces ... -
Server2003对决2008系列之内存性能对比
2010-08-05 23:46 1031内存带宽:2003 ... -
神奇的句型
2010-08-03 23:42 777要是以为单靠熟练的技能和辛勤的工作就能在职场上出人头地,那 ... -
如何给上司反馈
2010-07-08 13:06 1078艾米•加洛 与别 ... -
如何管理你的压力指数
2010-07-08 12:57 754明天,你就要向公司的最大客户进行一场销售展示。你的老板,还 ... -
你在浪费智慧型失败吗?
2010-07-08 12:52 722尽管人们普遍认识到,富有挑战性的时代对人们和企业提出了不可预知 ... -
怎样做一名“技术布道者”
2010-05-15 23:03 902作者:子排牛柳 ... -
雷曼的败因:太过和谐
2010-05-13 21:33 728雷曼兄弟(Lehman Brother ... -
拒绝借口之前言
2010-04-05 00:11 782任何借口都可能把人推向失败的边缘。在通常情况下,借口让 ... -
最令人深思的6句“微博”
2010-04-05 00:03 875推特(Twitter) 已为自己赢取“新媒体新天王”位置。 ... -
24部经典电影的24句话的24个哲理
2010-04-04 01:27 1436原文:24部经典电影的 ...
相关推荐
### 传输控制协议TCP实验知识点总结 #### 一、实验目的 本次实验旨在深入理解传输控制协议(TCP)的关键概念和技术细节,具体包括以下几个方面: 1. **掌握TCP协议的报文格式**:理解TCP报文由哪些字段组成及其各自...
传输控制协议TCP
php面试题 php面试题之传输控制协议TCP
传输控制协议传输控制协议T
TCP 协议传输相应的数据处理,JAVA程序的源码
rfc793(tcp传输控制协议),tcp协议标准规范...
传输控制协议TCP(Transport Control Protocol)是TCP/IP协议栈中至关重要的传输层协议,它负责在源主机和目标主机之间提供可靠的数据流服务。TCP通过序列号确认和包重传机制,确保数据的正确性和顺序,同时具备对...
《TCP传输控制协议详解》 TCP(Transmission Control Protocol),即传输控制协议,是网络通信中的一种基础协议,它为两台计算机之间的数据交换提供可靠、有序的连接。TCP的连接和建立过程遵循客户服务器模式,其中...
标题中的"TCP/IP协议(传输控制协议/网际协议)"指的是TCP(Transmission Control Protocol)和IP(Internet Protocol),它们分别是TCP/IP模型的传输层和网络层的关键协议。 **TCP**是传输控制协议,它负责在两个...
3.1 端到端通信和端口号 3.2 用户数据报协议UDP 3.3 传输控制协议TCP 3.4 TCP与UDP的比较 习题
TCP(Transmission Control Protocol)传输控制协议是互联网上最常用的一种通信协议之一,它提供了一种可靠的、面向连接的字节流服务。在TCP协议中,数据被分成多个数据段进行传输,并通过序列号、确认应答、重传...
TCP(Transmission Control Protocol)是一种广泛使用的面向连接的、可靠的传输层协议,它是互联网协议栈(TCP/IP)的重要组成部分。在TCP中,客户端(TCP Client)是发起连接请求的一方,而服务器端(TCP Server)...
TCP/IP 传输层协议详解 TCP(Transmission Control Protocol)是 TCP/IP 协议族中的一员,负责确保数据的可靠传输。下面是对 TCP 协议的详细解释和思维导图: TCP 协议的基本概念 * 连接建立:客户端和服务器端...
### TCP传输控制协议知识点概述 #### 一、TCP协议概览 - **定义与作用**: - **传输控制协议**(Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。其设计目标是为了在...
3. **掌握TCP协议的流量控制机制**:理解TCP如何调整发送窗口大小来控制数据传输速率,避免拥塞。 4. **学会协议分析软件发送自定义数据包的方法**:熟悉使用协议分析工具(如Wireshark、Iris等)来发送和分析自定义...
3. **文件传输控制**:客户端需要告知服务器要传输的文件名,服务器需要根据文件名找到对应的文件并打开。在传输过程中,服务器可能会使用文件指针来定位和读取文件内容。 4. **错误检测与恢复**:TCP协议的滑动...