第十七章 TCP 傳輸控制協議

2021-06-22 18:12:12 字數 1422 閱讀 2436

tcp是一種面向連線的、可靠的位元組流服務。

tcp通過以下方式來提供可靠性:

·應用資料被分割成tcp認為你最適合傳送的資料塊

·傳輸後啟動定時器(超時重傳)

·接收端收到資訊後傳送乙個確認資訊

·對失序的報文段進行重排

·丟棄重複的報文段

·強制性計算和儲存端對端的校驗和(覆蓋tcp首部和tcp資料)

·端到端的流量控制

tcp不在位元組流中插入記錄識別符號

tcp對位元組流的內容不作任何解釋

tcp資料封裝在乙個ip資料報中,如下圖所示

下圖顯示tcp首部的資料格式。如果不計任選字段,它通常是20個位元組。

確認序號包含傳送確認一段所期望收到的下乙個序號,因此確認序號應當是上次收到資料位元組序號加1.

首部長度給出首部中32bit字的數目.需要這個值是因為任選欄位的長度是可變的.這個欄位佔4bit,因此

tcp首部最多有60位元組

在tcp首部中有6個標誌位元.他們中的多個可同時被設定為1.

urg      緊急指標有效

ack       確認序號有效

psh       接收方應盡快將此報文交給應用層.

rst       重建連線

syn       同步序號用來發起乙個連線.

fin         發端完成傳送任務

tcp的流量控制由連線的每一端通過宣告視窗大小來提供.視窗大小為位元組數,起始於確認序號指明的值,這個值是接收端正期望接受的位元組.視窗大小最大為65535位元組

校驗和覆蓋了整個tcp報文段:tcp首部和tcp資料.

只有當urg標誌為1時緊急指標才有效.緊急指標是乙個正的偏移量,和序號欄位中的值相加表示緊急資料最後乙個位元組的序號.

最常見的可選字段是最長報文段大小,又稱mss.每個連線方通常在通訊的第乙個報文段(為建立連線而設定syn標誌的那個報文段)中指明這個選項.它指明本段所能接收的最長報文段.

習題:除了udp外,ip、icmp、igmp、tcp都是強制計算檢驗和

除了ip校驗和只覆蓋首部,其它均覆蓋整個 首部+資料

為什麼tcp首部的開始便是源埠號和目的埠號?

icmp返回ip資料首部和後面報文段的前8個位元組,包含埠號

為什麼tcp首部有首部長度欄位而udp首部中卻沒有?

tcp首部中有可選字段

第十七章 Size Classes

通常,您希望應用程式的介面根據螢幕的尺寸和方向而顯示不同的布局。在本章中,您將修改homepwner中的detailviewcontroller的介面,以便當它出現在具有相對較小高度的螢幕上時,文字字段集合和影象檢視併排而不是堆疊在一起 圖17.1 圖17.1 homepwner 的 detailv...

第十七章 部署

總的來說,部署遇到了許多坑,而且還有好多坑還沒有踩。去cocode找了許多教程,才踩了一些坑,但是關於資料庫的坑,先留著。所有的db.session.add 後面都加上db.session.commit 才行。記得,這是狗書的問題!部署教程 每次修改後需要一下命令重新部署下 git add git ...

第十七章 包

1 如果a資料夾所在目錄在環境變數,a資料夾中的 ma 模組可以被以下方式匯入 import a.ma form a import ma 2 如果 a 資料夾所在目錄在環境變數,a 資料夾中的 b 資料夾的 mb 模組可以被以下方式匯入 import a b mb from a.b import m...