您的位置:首页 > 理论基础 > 计算机网络

TCP的特点及报文格式

2017-06-27 11:30 232 查看
相对于UDP而言,TCP提供以下服务(TCP的特点):

可靠的

面向连接的

字节流服务

 

如何理解TCP面向流的概念:

TCP中“流”指的是流入到进程或从进程流出的字节序列。“面向细节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。



TCP报文段先要传送到IP层,加上IP首部后,再传送到数据链路层。再加上数据链路层的首部和尾部后,才离开主机发送到物理链路。

 

TCP和UDP在发送报文时所采用的方式完全不同。TCP并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。如果应有进程传送到TCP缓存的数据块太长,TCP就可以把它划分短一些再传送。如果应用进程一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。

TCP报文段的首部格式:

一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中各字段的作用。TCP报文段首部的前20个字节是固定的(对应下图中的前5行:4bytes*5=20bytes),后面有4n字节是根据需要而增加的选项。因此TCP首部的最小长度是20字节。



补充内容:

端到端问题:

TCP连接是跨整个Internet的连接,而不是点到点的连接

TCP滑动窗算法需要考虑以下问题:

 TCP支持不同计算机进程在网络上的逻辑连接

 TCP连接可能具有很大不同的RTT

 数据包可能会在网络上重新reordered

 TCP需要一个机制知道每次连接时对方送的数据量(流量控制)

 TCP需要一个机制需要让发送端知道网络的容量(拥塞控制)

流量控制和拥塞控制:

Ø  流量控制为避免传送端传送的数据量超过接收端的容量

Ø  拥塞控制为避免传送端传送的数据量超过网络的容量,从而造成路由器或链路负载过大

 

前者要好处理一些,因为sender可以明确告诉receiver送多少,但是它却没法知道网络上有多少封包,是否阻塞,何处阻塞,阻塞的原因,因此后者的挑战是必须有一个方法去判断网络是否阻塞。

 

拥塞控制和流量控制的区别?

答:拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制
4000
所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性过程,涉及到所有主机、所有的路由器,以及与降低网路传输性能有关的所有因素。但TCP连接的端点只要迟迟不能收到对方的确认信息,就猜想在网络中的某处很可能发生了拥塞,但这时却无法知道拥塞到底发生在网络的何处,也无法知道发生的拥塞的具体原因。

相反,流量控制往往指点对点通信量的控制,是一个端到端的问题(接收到控制发送端)。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: