如果是先建立TCP,再進行的HTTP通訊,那為何會說TCP是在HTTP報文外麵包了一層TCP的資訊?

時間 2021-05-06 13:22:08

1樓:劉長元

已經回答的各位都有說到一些問題關鍵點,我嘗試再明確的把問題點指出來,幫助你理解。

TCP和HTTP是不同層,TCP在下、HTTP在上,TCP有自己的協議頭和資料部分,然後資料部分裡面是什麼,TCP是不關心的。而這裡面的資料,可能是HTTP,也可能是其它的。

所以先建TCP請求、再進行HTTP通訊的說法是對的,而TCP是在HTTP報文外麵包了一層TCP的資訊的說法是不正確的。

打下比喻,我們寄快遞的時候,要寄的東西放到紙箱裡,然後紙箱放到快遞車裡去走,就和TCP/HTTP的關係比較像。

快遞車和快遞飛車的鏈結要有,才可以把你的東西送到對方手上,但是你寄什麼東西,汽車和飛機是不那麼關心的。你可以講我寄的是合同檔案,通過這份檔案我們公司間可以建立合作,但不能說快遞公司在這份合同上包了層快遞資訊(雖然在運輸的時候,物理上確實是包了)

2樓:foxgab

」TCP是在HTTP報文外麵包了一層TCP的資訊「這種說法是錯誤的。

各層封裝的報文不是一對一的關係,網路中隨意抓的乙個包中不會包含所有層封裝的報文頭部。對於tcp來說,整個http報文是tcp協議的data,tcp協議並不關心這些data裡面的內容是什麼,只是依據自身協議來傳輸這些資料,當資料大小大於tcp max segment size(MSS)的時候,tcp協議會對資料切割分片傳輸,每個分片都是乙個完整的TCP報文,所以當然會包含tcp的報文頭部,但是http的報文頭部可能只在乙個tcp分片中存在,而在http2中,乙個tcp分片中存在多個http報文也是可能的。

ip協議對待上層報文也是如此,當上層傳送的資料大於MTU(max transmission unit)時也是會切割後傳輸的,每個unit都會包含IP報文頭部,但不一定會包含上層協議報文的頭部。

你會說這與你抓包觀察到的現象不一致,抓包看到的IP報文和TCP報文都是一對一包著的,這有兩個原因,一是因為tcp path-mtu-discovery這種機制的存在,tcp協議會探測MTU的大小,並且根據探測的結果設定MSS,保證每個segment不會超過MTU大小,所以你抓到的報文總是會看到一層IP封裝一層tcp封裝頭部;二是因為ip分包重組的操作會在網絡卡層面完成,通常情況下作業系統層面無法看到真正原始IP報文,等你抓到包的時候已經是重組好的完整包了。這僅僅是常見的做法,IP將tcp分片拆開封裝是可能的,合乎協議規範的。

TCP協議中RST包丟失會怎麼樣?

乙個http包很大,在tcp層被分成了多個tcp包,如果某個tcp包丟失,應用層會讀取這個請求嗎?

無線路由WIFI 5GHz頻段選用其他國家開放但在國內不合法的其它通道,會有什麼後果?

3樓:EQ無

其實這個用專業語言解釋起來比較麻煩,我用非專業語言給您說明一下就好理解了。

我經常用送快遞來描述網路連線。這次依舊吧。

你可以理解成HTTP包是快遞的內容物。而tcp連線是送快遞的過程。需要將內容展示出來之前,需要在內容物外包裹乙個封包頭部。

就是tcp資訊,這個就像是包裹皮和快遞單。在通過tcp資訊確定了內容的送達位置和返回位置後,才能確定是不是將內容物送達到了正確的伺服器/使用者端手裡。

其實可以把問題理解成;先有了快遞,才有了電商行業,為什麼快遞是給電商貨品包裹了乙個快遞資訊?

4樓:任弘迪

因為實現上是應用層寫完http資料給到協議棧,協議棧加元資料,從資料本身看協議棧的元資料就在http的外面。

不過這個說法確實容易對新人產生誤導。

5樓:

因為一般來說我們認為HTTP和TCP工作在不同層次。HTTP應用只負責構建HTTP請求和處理並響應,資料傳輸交給下面TCP處理。因此從分層的角度來看是HTTP的資料交給TCP包裝。

你的圖完全是在TCP層面解釋乙個典型的建立連線,傳送資料,最後關閉連線的過程。絕對不要誤解地認為這個圖上下是TCP,而中間部分就是只HTTP。HTTP資料並沒有在圖中體現,如果硬要給HTTP在這個圖中乙個位置的話,它應該在write()和read()的括號裡。

描述TCP建立連線的三次握手過程,如果最後一次握手失敗會怎樣處理?

參考文章 What if a TCP handshake segment is lost?In other words,if the ACK is dropped but the next packet is not dropped,then everything is fine.意思是說客戶端發出...

女孩子是應該先結婚再工作,還是先工作再結婚?

月亮不會失約 我個人比較看重先工作在結婚 因為我覺得有了經濟基礎的情況下再結婚比較有底氣的,我可不想以後生了孩子在買東西的時候考慮這考慮那 我個人比較把事業放第一的,別介意 芝麻糖糖 不衝突。兩手並抓更為重要。人生就是找個喜歡的人再找個喜歡的工作,當然有些人喜歡單身,有些人只喜歡事業,對我來說我覺得...

現在醫院還是先交錢再救人嗎?如果是在緊急情況下呢?時間就是生命的時候,家屬不在的時候,也要先交錢嗎?

綠色通道的緊急情況不了解,肯定救命要緊。一般的急診,我都盡量讓病人交了錢再去做檢查。因為我們醫院急診病人跑賬欠下的錢由開檢查的大夫償還。現在的社會人心不古,大晚上怪累怪累上個夜班幾十塊錢的夜班費,還要自己搭錢,都是上有老下有小的普通家庭,先交錢實在是無奈之舉。怪領導?怪制度?胳膊扭不過大腿。啥矛盾都...