- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP 连接断连问题剖析.doc
TCP 连接断连问题剖析
引言
在官方的正式文档中,TCP/IP 协议簇也称为国际互联网协议簇。TCP/IP 协议簇是目前使用最为广泛的全球互联网技术,其分层结构如图 1 所示:
图 1. TCP/IP 协议簇分层结构
如图 1 所示,数据链路层主要负责处理传输媒介等众多的物理接口细节;网络层负责处理数据分组在网络中的活动,包括上层数据报文的分割、选路 phost2008-08-21T00:00:00 等;传输层则负责为两台主机提供端到端的通信;应用层将负责处理应用程序的特定细节。其中,IP 协议是网络层的核心协议,用来提供不可靠、无连接的数据传递服务;而 TCP 协议则处于传输层,其基于不可靠无连接的 IP 协议能够为两台主机提供面向连接的、可靠的通信。UDP?
由于 TCP 是面向连接的协议,因此在两台主机通信之前,需要首先建立起一条连接。下面我们将简要介绍 TCP 连接的建立以及通信双方是如何保持已建立的 TCP 连接的。
TCP 连接的建立及保持
一个 TCP 连接的建立需要通过著名的三次握手来完成。下面的例子将直观给出一个 TCP 连接的建立过程。
在本文的下述描述中,客户端主机均为 testClient..ibm.(Linux),服务器主机均为 testServer..ibm.(AIX)。在 testClient 主机的一终端上执行 tcpdump ndash;i eth0 host testServer 命令,启动 tcpdump 监听网络数据(其中,eth0 是客户主机与外部网络进行通信所使用的网卡);与此同时,在客户主机的另一个终端上执行下述命令: (roottestClient /)gt;tel testServer。此时客户主机上 tcpdump 的输出如清单 1 所示。
清单 1. 创建一个 TCP 连接的三次握手
# tcpdump ndash;S -i en0 host testServer
1 14:02:38.384918 IP testClient..ibm..43370 gt;
testServer..ibm..tel: S 3392458353:3392458353(0)
2 14:02:38.629578 IP testServer..ibm..tel gt;
testClient..ibm..43370: S 881279296:881279296(0) ack 3392458354
3 14:02:38.629592 IP testClient..ibm..43370 gt;
testServer..ibm..tel: . ack 881279297
注意:我们删除了 tcpdump 输出结果中的部分无关信息。为了便于理解,我们将上述输出转换为实际序列图 2。
图 2. TCP 建立创建三次握手的实际序列
从图 2 中我们可以清楚地看到,在 testClient 与 testServer 之间建立连接时,要经过以下三次握手过程:
testClient 向 testServer 主动发送握手协议,报文序列号为 3392458353,大小为 1 个字节。
testServer 向 testClient 主动发送握手协议,报文序列号为 881279296,大小为 1 个字节;同时返回 ACK 3392458354,作为对 testClient 发来的 3392458354 包的应答。
testClient 向 testServer 返回 ACK 881279297,作为对 testServer 发来的 881279296 包的应答。
一个 TCP 连接在完成上述的三次握手之后便建立完毕;此后,连接的两端即可进行信息的相互传递。因此,TCP 连接可以认为是以两端 IP 地址和端口进行标识的一个通信信道,而 TCP 连接的建立就是向通信双方进行上述通信信道注册的过程。TCP 连接一旦建立,只要通信双方之间的中间结点(包括网关和交换机、路由器等网络设备)工作正常,那么在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
TCP 连接的这种特性,使得一个长期不交换任何信息的空闲连接可以长期保持数小时、数天甚至数月。中间路由器可以崩溃、重启,网线可以被挂断再连通,只要两端的主机没有被重启,TCP 连接就可以被一直保持下来。
导致 TCP 连接断连的因素
理想状态下,一个 TCP 连接可以被长期保持。然而,在实际应用中,客户端或服务器端上维持的一个看似正常的 TCP 连接可能已经断连。TCP 连接主要受到两个方面的影响而导致断连:网络中间节点和客户端 / 服务器节点参与通信的两方节点?
您可能关注的文档
- OCT在多发性硬化症视网膜神经纤维层的应用现状及研究进展.doc
- OCT在无症状的不完全玻璃体后脱离诊断中的价值.doc
- ODBC API常用函数诠释--.doc
- Office Space- 构建 Office Open XML 文件.doc
- OpenSSH 密钥管理:ssh.doc
- Oracle中优化SQL的原则--.doc
- p15mRNA在肺癌组织中的表达及其意义.doc
- P16、P53、PCNA在膀胱癌中的表达及意义.doc
- P16、P63、Survivin、Ki67在宫颈上皮内瘤变及宫颈鳞癌的表达及意义.doc
- P21 ras、骨桥蛋白及CD44v6与肺鳞癌和腺癌关系的研究.doc
- +第13课亚非拉民族独立运动导学案 高中历史统编版(2019)必修中外历史.pdf
- 2022-2023学年山东省枣庄市滕州市荆河街道滕南中学七年级(上)期末语文.pdf
- 2021护士年终工作总结5篇 .pdf
- 2017新人教版部编二年级上册语文教学工作计划 .pdf
- 2007-2008-2Java语言程序设计期中11考试试题 .pdf
- 2021-2022学年三年级上学期数学期末试卷A卷 .pdf
- 2021年福建省漳州市漳浦第一中学高一地理模拟试题含解析 .pdf
- 2020年资格考试《中级法律法规与综合能力》考前练习(第41套).pdf
- 2021年优质课《莫高窟》教学设计与反思 .pdf
- 2021-2022学年湖南省娄底市新化县九年级(上)期末化学试卷(附详解).pdf
文档评论(0)