全球旧事资料 分类
网络基础知识讲座之九:初步理解TCP协议
TCP协议到处都在使用。理解TCP协议的工作原理能够帮助管理员正确诊断网络通信的故障。
TCP协议很复杂。不过不用担心。我们不是让你去阅读RFC793。本文只是一篇启蒙讲座。在本次讲座中,我们将仅仅介绍为了让你理解下一篇关于TCP协议的讲座所需的知识。经过本文的学习你会了解一些TCP相关的术语,理解TCP包头的各组成部分,然后,我们将在后面一篇文章中重点讲解TCP协议常见的一些问题,包括TCP窗口可伸缩性问题、阻塞和TCP连接机制等问题。
我们有时候听到人们提到“TCPIP协议栈”。这意味着他们在谈论1至4层和7层的问题,TCP协议位于第四层。其代表的含义是传输控制协议Tra
smissio
Co
trolProtocol。还记得IP协议那篇文章中的协议头的构成吗当一个数据包被封装之后,第三层当然有个IP协议头,紧接着就是这个TCP协议头。TCP协议头成为了IP协议头中的“数据”。就像其它协议都有自己的术语一样,TCP协议也有自己的专门术语,如以太网帧、IP数据报和现在的TCP段等。你可以把它们都当作数据包。但是,当它们之间在进行通讯的时候,一定要使用正确的术语。
TCP协议是一种端对端的协议。使用TCP没有任何广播或类似的概念。要用TCP协议与另一台计算机通信,两台机之间必须像打电话一样连接在一起,每一端都都为通话做好准备。“流传输”Streamdelivery是谈到TCP时的另一个常用词语。这个短语的含义是TCP协议主要用来处理数据流,可以正确处理乱序的数据包。TCP协议甚至还允许存在丢失的或者损坏的数据包,最终它可以再次得到这些数据包。你很可能听一位程序员在谈论“流”的概念。他指的是这样一个事实数据到底是在什么时候发送的是很难说清楚的,你也可以在TCP流中发送非结构化数据。TCP协议以它自己的方式缓存数据。不过,其缓存过程对程序员和用户是透明的。
TCP协议每发送一个数据包将会收到一个确认信息。这种发送应答模式是提供可靠的协议的唯一方法你必须让对方知道你否收到了数据。当然,这也会造成一些性能损失,而人们需要改善系统效率不高的状况。所以引入了“捎带确认(piggybacki
gACKs)”的方法。TCP协议之所以是全双工的就是因为这个“捎带确认”信息,因为它允许双方同时发送数据。这是通过在当前的数据包中携带以前收到的数据的确认信息方式实现的。从提高网络利用率的角度看,这比单纯发送一个通知对方“信息已收到”的数据包要好得多。最后,还有一个批量确认的概念:也即一次r
好听全球资料 返回顶部