TCP/IP的一些需要理解的点

Posted hanktown

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP的一些需要理解的点相关的知识,希望对你有一定的参考价值。

1、TCP协议位于网络通信的传输层,与它同在传输层的是UDP协议,TCP是有连接的,UDP是无连接的。传输层其上的应用层协议要么基于TCP要么基于UDP,或二者都有(DNS)。

2、因为网络对包的大小是有限制的,其最大值称为MTU(最大传输单元),大多数网络的MTU为1500字节,有的网络启用了巨帧,能达到9000字节,假如发送方和接收方处于不同大小的网络,TCP在建立连接(三次握手)时,双方都会把自己的MSS(Maximum Segment Size) 告诉对方,MSS加上TCP头和IP头的长度就得到MTU了,TCP选择发送方和接收方中MTU小的值作为通信时的MTU,若一个包的大小超过MTU,TCP层会把包分成几个包来传输。

3、通信双方在用TCP协议进行网络通信时,需要先进行3次“握手”(具体过程课百度),这些建立连接的包的TCP头中用“SYN”标记。建立连接后,双方可互相发送数据包,发送方和接收方各自维护一个Seq值,举个例子发送方发送的一个包是Seq=2532,Len=1238,下一次发的包的Seq就是2532+1238=3770。再来看看接收方,接收方有可能收到2个包是:Seq:3770,Len=1320;Seq=885,Len=1647,那么会发给发送方一个包是:Seq:9952,Len:0,Ack:2532。这里可以看到维护Seq的好处:(1)有序性:包到的时间是无序的,TCP根据Seq可以把包重新排序。(2)可靠性:比如例子中,接收方根据接受到的两个包计算(885+1647)!=3770,所以可以判断网络丢失了(Seq=2532,Len=1238)这个包,于是它发回给接收方一个包,带有Ack=2532,提醒它重传这个包。

 

以上是关于TCP/IP的一些需要理解的点的主要内容,如果未能解决你的问题,请参考以下文章

iSCSI的一些基本概念

理解TCP/IP传输层拥塞控制算法

理解TCP/IP传输层拥塞控制算法

TCP/IP的底层队列实现原理

对TCP/IP网络协议的深入浅出归纳

在实践中深入理解IP协议