这次以无线模块为例说明数据分割。
假设无线模块是CC1100,发送缓存是64字节;现在呢,有一篇长度是1500字节的文章要发送。很明显的一包数据是发送不了一篇文章的。
1500/64 = 23.4375,至少要发送24包数据。
话又说回来,数据包要不要编号呢?需要。因为文章的组织有先后顺序。好,我们这里用一个字节给数据包编号。
1500/63 = 23.809523809523809523809523809524,需要发出24包数据
采用TCP协议发送数据。因为文章内容是不可丢失了,一个标点符号都不行。
TCP开始从第一包,发送数据。直到最后一包数据。
完成后,如果中间有数据包没有被应答,则开启第二轮数据发送。此时,只发送没有被应答的数据包。
分割出来的数据,被称为TCP段
传输控制协议(TCP)通常从应用程序中得到大段的信息数据,然后将它分割成若干个数据段。TCP会为这些数据段编号并排序,这样,在目的方的TCP协议栈才可以将这些数据段再重新组成原来应用数据的结构。
由于TCP采用的是虚电路连接方式,这些数据段在被发送出去后,发送方的TCP会等待接收方TCP给出一个确认性应答,那些没有收到确认应答的数据段将被重新发送。
|