TCP IP 協議筆記四

2022-05-07 04:36:09 字數 1456 閱讀 7598

一、tcp首部

t c p提供了一種可靠的面向連線的位元組流運輸層服務。

t c p將使用者資料打包構成報文段;它傳送資料後啟動乙個定時器;另一端對收到的資料進行確認,對失序的資料重新排序,丟棄重複資料; t c p提供端到端的流量控制,並計算和驗證乙個強制性的端到端檢驗和。 

每個t c p段都包含源端和目的端的埠號,用於尋找發端和收端應用程序。這兩個值加上i p首部中的源端i p位址和目的端i p位址唯一確定乙個t c p連線。

序號用來標識從t c p發端向t c p收端傳送的資料字節流,它表示在這個報文段中的的第乙個資料位元組。如果將位元組流看作在兩個應用程式間的單向流動,則 t c p用序號對每個位元組進行計數。序號是32 bit的無符號數,序號到達2 3 2-1後又從0開始。

此處序號的作用就是告訴對方,這是這些位元組流的第乙個位元組是整個檔案的第幾個位元組。

既然每個傳輸的位元組都被計數,確認序號包含傳送確認的一端所期望收到的下乙個序號。因此,確認序號應當是上次已成功收到資料位元組序號加 1。只有a c k標誌(下面介紹)為 1時確認序號欄位才有效。

視窗:使用者告訴對方本人的接收視窗多大,你的傳送視窗不得大於我的接收視窗,否則將出現大量的包被丟棄。

例如,如果1~1 0 2 4位元組已經成功收到,下一報文段中包含序號從 2 0 4 9~3 0 7 2的位元組,收端並不能確認這個新的報文段。它所能做的就是發回乙個確認序號為 1 0 2 5的a c k。它也無法對乙個報文段進行否認。例如,如果收到包含 1 0 2 5~2 0 4 8位元組的報文段,但它的檢驗和錯, t c p接收端所能做的就是發回乙個確認序號為 1 0 2 5的a c k。

在t c p首部中有6個標誌位元。它們中的多個可同時被設定為 1。

u r g緊急指標(u rgent pointer)有效(見2 0 . 8節)。

a c k確認序號有效。

p s h接收方應該盡快將這個報文段交給應用層。

r s t重建連線。

s y n同步序號用來發起乙個連線。這個標誌和下乙個標誌將在第 1 8章介紹。

f i n發端完成傳送任務。

檢驗和覆蓋了整個的t c p報文段:t c p首部和t c p資料。這是乙個強制性的字段,一定是由發端計算和儲存,並由收端進行驗證。

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

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

在乙個連線建立和乙個連線終止時,雙方交換的報文段僅有 t c p首部。如果一方沒有資料要傳送,也使用沒有任何資料的首部來確認收到的資料。在處理超時的許多情況中,也會傳送不帶任何資料的報文段。 

TCP IP協議筆記

iso osi 國際標準化組織 開放系統互聯 參考模型把資料通訊協議分為7層,自底向上分別是物理層,資料鏈路層,網路層,傳輸層,會話層,表示層,應用層。ietf的tcp ip的層次模型可以看作比osi少幾層的結構。一般分為4層,自底向上分別是網路訪問層,網際層,傳輸層,應用層。不同層次對資料使用有不...

TCP IP協議族(四)

在tcp中面向連線的傳輸需要三個過程 連線建立,資料傳輸,連線終止。tcp ip三次握手 tcp ip四次揮手 timewait的作用 在客戶端傳送完四次揮手的最後乙個ack之後,會進入乙個time wait的階段。time wait是為了保證最後乙個ack能夠正常到達,並且保證老的tcp請求不會影...

TCP IP協議學習筆記

最近正在上網路協議分析的課程,課程已經接近尾聲,因此做一些總結性的記錄。為什麼要進行分層呢 我們思考這樣乙個問題 我打算實現乙個qq,我需要解決哪些問題呢?假設qq伺服器現在已經知道了我要登入,然後他傳送給我乙個訊息告訴我說他就是qq的伺服器,那麼我可以相信他嗎?會不會是其他的搗蛋鬼冒充qq伺服器給...