频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

网络基础知识讲座之九:初步理解TCP协议

作者: 东缘 出处:天极网  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-03-29 16:47
关 键 词:TCP协议
阅读提示:TCP协议很复杂,不过不用担心,我们不是让你去阅读RFC 793,本文只是一篇启蒙讲座。

TCP协议到处都在使用。理解TCP协议的工作原理能够帮助管理员正确诊断网络通信的故障。
TCP协议很复杂。不过不用担心。我们不是让你去阅读RFC 793。本文只是一篇启蒙讲座。在本次讲座中,我们将仅仅介绍为了让你理解下一篇关于TCP协议的讲座所需的知识。经过本文的学习你会了解一些TCP相关的术语,理解TCP包头的各组成部分,然后,我们将在后面一篇文章中重点讲解TCP协议常见的一些问题,包括TCP窗口可伸缩性问题、阻塞和TCP连接机制等问题。
我们有时候听到人们提到“TCP/IP协议栈”。这意味着他们在谈论1至4层和7层的问题,TCP协议位于第四层。其代表的含义是传输控制协议(Transmission Control Protocol)。还记得IP协议那篇文章中的协议头的构成吗?当一个数据包被封装之后,第三层当然有个IP协议头,紧接着就是这个TCP协议头。TCP协议头成为了IP协议头中的“数据”。就像其它协议都有自己的术语一样,TCP协议也有自己的专门术语,如以太网帧、IP数据报和现在的TCP段等。你可以把它们都当作数据包。但是,当它们之间在进行通讯的时候,一定要使用正确的术语。
TCP协议是一种端对端的协议。使用TCP没有任何广播或类似的概念。要用TCP协议与另一台计算机通信,两台机之间必须像打电话一样连接在一起,每一端都都为通话做好准备。“流传输”(Stream delivery)是谈到TCP时的另一个常用词语。这个短语的含义是TCP协议主要用来处理数据流,可以正确处理乱序的数据包。TCP协议甚至还允许存在丢失的或者损坏的数据包,最终它可以再次得到这些数据包。你很可能听一位程序员在谈论“流”的概念。他指的是这样一个事实:数据到底是在什么时候发送的是很难说清楚的,你也可以在TCP流中发送非结构化数据。TCP协议以它自己的方式缓存数据。不过,其缓存过程对程序员和用户是透明的。
TCP协议每发送一个数据包将会收到一个确认信息。这种发送/应答模式是提供可靠的协议的唯一方法:你必须让对方知道你否收到了数据。当然,这也会造成一些性能损失,而人们需要改善系统效率不高的状况。所以引入了“捎带确认(piggybacking ACKs)”的方法。TCP协议之所以是全双工的就是因为这个“捎带确认”信息,因为它允许双方同时发送数据。这是通过在当前的数据包中携带以前收到的数据的确认信息方式实现的。从提高网络利用率的角度看,这比单纯发送一个通知对方“信息已收到”的数据包要好得多。最后,还有一个批量确认的概念:也即一次确认一个以上的数据包,表示“我收到了包括这个数据包在内的全部数据包”。
在IP协议中,我们处理的单个数据包是一个更大的数据报的一部分。请记住,一个TCP段就是一个单个的TCP数据包。TCP是一个数据流,因此,除了“连接”之外,没有任何需要真正担心的其它概念。最大报文段长度(MSS)是在连接的时候协商的,但是,它总是在不断地改变。默认的最大报文段长度是536字节,这是576字节(IP协议保证的最小数据包长度)减去用于IP头的20个字节和用于TCP头的20个字节以后的长度。TCP协议要设法避免在IP级别上的分段。因此,TCP协议总是从536字节开始的。
TCP协议最有魅力的功能仍然保留着。这就是滑动窗口协议。这个窗口实际上是已经发出的“没有签收确认的”数据总数。这个窗口可以根据意愿放大和缩小。这是很有趣的。下一讲将介绍这方面的内容。
一个TCP数据包的头是20个字节,就像一个IP数据包一样。如果使用一些选项,IP和TCP数据包头都可以放大。TCP头不包含IP地址,它仅需要知道要连接哪一个端口。不过,你不要被这弄晕了。TCP工作时要一直跟踪状态表中的端对端的连接。这个状态表包含IP地址和端口。这就是说,只是TCP头不需要IP信息,因为它来自于IP头。
把一个数据包设想为一个字节跟着一个字节的数据流是很容易的。很多人都想要一个显示TCP头的表格。但是,这常会把事情搞乱。TCP头从第一位开始依次是下面这些内容:
•源端口,16位:用于这次连接的本地TCP端口。
•目的地端口,16位:通讯目标机器的TCP端口。
•序列号,32位:用来跟踪数据包顺序的号码。
•确认编号,32位:我们确认的以前收到的序列号。
•头长度,4位:报头中的32位字(words)的数量。如果不使用选项,这个值设定为5。
•保留,6位:为将来的使用保留的字节。
•标记,一共6位:每一个标记一个字节(开或者关)
-URG:紧急字段指针。
-ACK:本数据包是(或者包含)一个确认信息。
-PSH:推送功能(没有使用)。
-RST:重置,或者中断本次连接。
-SYN:同步数据包,也就是开始连接。
-FIN:最后一个数据包,开始挂断序列。
•窗口尺寸,16位:从接收方将收到的确认字段开始。
•校验和,16位:TCP头和数据的校验和。
•应急指针,16位:指向跟在URG数据后面的数据的序列号的偏移值。
•选项:MSS、窗口比例等等。我们在关于TCP协议的下一讲中将重点介绍这个部分。
TCP连接的两端使用两对IP地址和端口识别这个连接,并且向监听这个端口的应用程序发送数据。
先介绍这么多内容。有关TCP协议的内容还有很多。

小结
TCP是一种最常用的协议,在协议栈中位于第四层。
TCP协议提供阻塞控制、可靠性和发送数据的流。
为了提高效率,TCP协议在得到确认之前努力发送尽可能多的数据。

 
(责任编辑: 51CTO.com TEL:010-68476606)

网络基础知识讲座之八:初步理解IP协议
网络基础知识讲座之七:理解和使用ICMP协议
网络基础知识讲座之六:实现子网(包括IPv6)
网络基础知识讲座之五:学习生成树协议
网络基础知识讲座之四:理解数据链路层
网络基础知识讲座之三:理解OSI网络分层
网络基础知识讲座之二:理解子网和CIDR
网络基础知识讲座之一:理解IPv4地址的含义
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·路由器设置与口令恢复 (查看59936次)
·常用交换机典型配置 (查看36045次)
·网络管理员考试全真模拟试题(八.. (查看32718次)
·三层交换技术专题 (查看28417次)
·子网掩码教程 (查看25599次)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有