當前位置:編程學習大全網 - 編程語言 - TCP協議中如果有512B大小的數據,要怎麽傳送?

TCP協議中如果有512B大小的數據,要怎麽傳送?

解答:要傳送的512B的數據必須劃分為6個報文段傳送,前5個報文段各100B,最後壹個報文段傳送12B.圖T-5-41是雙方交互的示意圖。

下面進行簡單的解釋。

報文段#1:A發起主動打開,發送SYN報文段,處於SYN-SENT狀態,並選擇初始序號seq=100。

B處於LISTEN狀態。報文段#2:B確認A的SYN報文段,因此ack=101(是A的初始序號加1)。

B選擇初始序號seq=200。B進入到SYN-RCVD狀態。報文段#3:A發送ACK報文段來確認報文段#2,ack=201(是B的初始序號加1)。A沒有在這個報文段中放入數據。

因為SYN報文段#1消耗了壹個序號,因此報文段#了的序號是seq=101.這樣,A和B都進入了ESTABLISHED狀態。報文段#4:A發送100字節的數據。

報文段#3是確認報文段,沒有數據發送,報文段#3並不消耗序號,因此報文段#4的序號仍然是seq=101.A在發送數據的同時,還確認B的報文段#2,因此ack=201。報文段#S:B確認A的報文段#4。

由於收到了從序號101到200***100字節的數據,因此在報文段#5中,ack=201(所期望收到的下壹個數據字節的序號)。

B發送的SYN報文段#2消耗了壹個序號,因此報文段#5的序號是seq=201,比報文段#2的序號多了壹個序號。

在這個報文段中,B給出了接收窗口rwnd=100.從報文段彬6到報文段#13都不需要更多的解釋。到此為止,A已經傳送了500字節的數據。

值得註意的是,B發送的所有確認報文段都不消耗序號,其序號都是seq=201.報文段#14:A發送最後12字節的數據,報文段#14的序號是seq=601。

擴展資料:

TCP建立連接

TCP是因特網中的傳輸層協議,使用三次握手協議建立連接。當主動方發出SYN連接請求後,等待對方回答SYN+ACK,並最終對對方的 SYN 執行 ACK 確認。這種建立連接的方法可以防止產生錯誤的連接,TCP使用的流量控制協議是可變大小的滑動窗口協議。

TCP三次握手的過程如下:

客戶端發送SYN(SEQ=x)報文給服務器端,進入SYN_SEND狀態。

服務器端收到SYN報文,回應壹個SYN (SEQ=y)ACK(ACK=x+1)報文,進入SYN_RECV狀態。

客戶端收到服務器端的SYN報文,回應壹個ACK(ACK=y+1)報文,進入Established狀態。

三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。

百度百科-TCP

  • 上一篇:毛線棉鞋編織花樣教程
  • 下一篇:怎樣做壹個輿情報告?
  • copyright 2024編程學習大全網