這次以無線模塊為例說明數據分割。
假設無線模塊是CC1100,發送緩存是64字節;現在呢,有一篇長度是1500字節的文章要發送。很明顯的一包數據是發送不了一篇文章的。
1500/64 = 23.4375,至少要發送24包數據。
話又說回來,數據包要不要編號呢?需要。因為文章的組織有先后順序。好,我們這里用一個字節給數據包編號。
1500/63 = 23.809523809523809523809523809524,需要發出24包數據
采用TCP協議發送數據。因為文章內容是不可丟失了,一個標點符號都不行。
TCP開始從第一包,發送數據。直到最后一包數據。
完成后,如果中間有數據包沒有被應答,則開啟第二輪數據發送。此時,只發送沒有被應答的數據包。
分割出來的數據,被稱為TCP段
傳輸控制協議(TCP)通常從應用程序中得到大段的信息數據,然后將它分割成若干個數據段。TCP會為這些數據段編號并排序,這樣,在目的方的TCP協議棧才可以將這些數據段再重新組成原來應用數據的結構。
由于TCP采用的是虛電路連接方式,這些數據段在被發送出去后,發送方的TCP會等待接收方TCP給出一個確認性應答,那些沒有收到確認應答的數據段將被重新發送。
|