如下是上傳圖片文件時 , tcp的傳輸過程服務器
15:38:07.695683 IP localhost.35648 > localhost.tproxy: Flags [S], seq 87768135, win 43690, options [mss 65495,sackOK,TS val 130193903 ecr 0,nop,wscale 7], length 0 15:38:07.695692 IP localhost.tproxy > localhost.35648: Flags [S.], seq 872635961, ack 87768136, win 43690, options [mss 65495,sackOK,TS val 130193903 ecr 130193903,nop,wscale 7], length 0 15:38:07.695699 IP localhost.35648 > localhost.tproxy: Flags [.], ack 1, win 342, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.695949 IP localhost.35648 > localhost.tproxy: Flags [.], seq 1:21846, ack 1, win 342, options [nop,nop,TS val 130193903 ecr 130193903], length 21845 15:38:07.695953 IP localhost.tproxy > localhost.35648: Flags [.], ack 21846, win 1365, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.696828 IP localhost.35648 > localhost.tproxy: Flags [.], seq 21846:87329, ack 1, win 342, options [nop,nop,TS val 130193903 ecr 130193903], length 65483 15:38:07.696833 IP localhost.tproxy > localhost.35648: Flags [.], ack 87329, win 2388, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.697173 IP localhost.35648 > localhost.tproxy: Flags [.], seq 87329:152812, ack 1, win 342, options [nop,nop,TS val 130193903 ecr 130193903], length 65483 15:38:07.697177 IP localhost.tproxy > localhost.35648: Flags [.], ack 152812, win 3411, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.697499 IP localhost.35648 > localhost.tproxy: Flags [P.], seq 152812:154298, ack 1, win 342, options [nop,nop,TS val 130193903 ecr 130193903], length 1486 15:38:07.697503 IP localhost.tproxy > localhost.35648: Flags [.], ack 154298, win 3625, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.698058 IP localhost.35648 > localhost.tproxy: Flags [F.], seq 154298, ack 243, win 350, options [nop,nop,TS val 130193903 ecr 130193903], length 0 15:38:07.698122 IP localhost.tproxy > localhost.35648: Flags [F.], seq 243, ack 154299, win 3625, options [nop,nop,TS val 130193903 ecr 130193903], length 0
三次握手的過程tcp
客戶端===>服務器[S] 標誌位SYN 是1 , mss 65495 (每一個包傳輸的最大數據部分是65495字節) seq序列號是87768135大數據
服務器===>客戶端[S.] 標誌位SYN是1 , 標誌位ACK是1 , seq 序列號是872635961 , ack確認是 87768136 (上面seq+1)spa
客戶端===>服務器[.] 標誌位ACK是1 code
開始上傳文件:blog
客戶端===>服務器 seq 1:21846排序
服務器===>客戶端 ack確認收到 21846圖片
客戶端===>服務器 seq 21846:87329io
服務器===>客戶端 ack確認收到 87329class
客戶端===>服務器 seq 87329:152812
服務器===>客戶端 ack確認收到 152812
客戶端===>服務器 seq 152812:154298
服務器===>客戶端 ack確認收到 154298
結束
這裏能夠看到保證TCP鏈接的可靠性的幾種方式
1.數據包校驗,發送方計算校驗和,接收方結算校驗和,進行對比 2.應答機制,seq序列號與ack確認號 3.超時重傳機制,發送後啓動定時器,進行重傳 4.鏈接管理,三次和四次 5.對失序數據包重排序 6.流量控制和擁塞控制,使用滑動窗口協商大小