1. 程式人生 > >TCP報文段、UDP資料報、IP資料報區別

TCP報文段、UDP資料報、IP資料報區別

重要說明:既然TCP/IP現在如此成熟,那麼裡面的技術必然是經過各種各樣的大牛們千錘百煉而來,它的每個特有片語,十分肯定的說不是隨隨便便命名的,其背後隱含著設計者的考慮,例如,TCP傳輸給IP的資料單元為什麼叫TCP報文段(TCPsegment)(詳見《TCP/IP詳解卷1》->第一章概述 ->1.6 封裝),不叫TCP資料報;為什麼IP傳輸給網路介面層的資訊單元卻叫IP資料報,而區別這兩個概念最關鍵的一點是理解:

IP是無連線的,而TCP是有連線的。

那什麼是“無連線”,什麼是“有連線”?

先說《TCP/IP詳解卷1》上的定義:無連線( connectionless)這個術語的意思是 IP並不維護任何關於後續資料報的狀態資訊。每個資料報的處理是相互獨立的。顧名思義,有連線的TCP就需要維護後續資料的狀態資訊,而它處理的資料段之間是存在關係的。(實際上這種關係指的是:有序性)

定義一般很抽象,舉個列子:

假設,源應用程式(比如QQ)需要傳送1K(比如QQ密碼,不能亂序吧)的有序資料,將這1K的資料分成A、B兩條,然後連續先後傳送A、B兩條訊息,那麼,TCP協議需要保證A先於B到達目的程式;相反,IP協議則不會有這種保證,每個資料報都是獨立地進行路由選擇,可能選擇不同的路線,因此B可能先於A之前到達。

所以,每個需傳輸的TCP資料單元都是應用程式總傳輸資料的一部分(段),它們存在著先後順序,而不是單獨的,(有時一個TCP資料單元就是整個傳輸資料的全部),而IP資料單元都是單獨處理的。    

下面是整理出來的相關概念,注意理解英文部分的意思。(具體定義請自行檢視《TCP/IP詳解卷1》)

(1)TCP報文段(TCP segment)

        TCP傳輸給IP的資料單元稱作TCP報文段。


        segment: part of sth separated or marked off from the other parts.          

                   (注意:它是part of sth,不是independent)

        TCP報文段:TCP傳輸給IP的資料單元稱作TCP報文段TCP協議是面向有連線的協議,“有連線”的意思是TCP協議需要維護後續資料的狀態資訊。

(2)UDP資料報(User Datagram)

UDP傳輸給IP的資訊單元稱作UDP資料報。


datagram:a self-contained,independent entity of data carrying sufficient information to be routed fromthe source to the destination computer without reliance on earlier exchangesbetween this source and destination computer and the transporting network.

UDP資料報:與TCP協議面向有連線不同,UDP是一個簡單的面向資料報的運輸層協議:程序的每個輸出操作都正好產生一個UDP資料報,並組裝成一份待發送的IP資料報,即每個資料報是獨立的,不屬於某個整體。(詳見IP資料報)


(3)IP資料報(IP datagram),更準確的說法叫分組(packet)。

(分組指IP資料報既可以是一個IP資料報,也可以是IP資料報的一個片(fragment))

IP傳輸給網路介面層的資料單元稱作IP資料報。

packet: small package or parcel.

IP資料報(或分組):IP協議並不維護任何關於後續資料報的狀態資訊,每個資料報的處理都是相互獨立的。

另:為什麼說IP協議提供的是點對點的通訊,而TCP協議(UDP協議)提供的是端到端的通訊?

                  (提示:資料從應用A到應用B,有兩個問題需要解決:怎麼在複雜的網路中找到B的位置;找到位置後怎麼把資料交給B)

PS:歡迎各位大蝦指正小弟的錯誤,謝謝!

相關推薦

TCP報文UDP資料IP資料區別

重要說明:既然TCP/IP現在如此成熟,那麼裡面的技術必然是經過各種各樣的大牛們千錘百煉而來,它的每個特有片語,十分肯定的說不是隨隨便便命名的,其背後隱含著設計者的考慮,例如,TCP傳輸給IP的資料單元為什麼叫TCP報文段(TCPsegment)(詳見《TCP/IP詳解卷

為什麼TCP傳輸單元叫作TCP報文,而UDP的叫作UDP資料

為什麼TCP傳輸單元叫作“TCP報文段”,而UDP的叫作UDP傳輸單元“UDP資料報”? 這個問題也是我剛接觸網路時感到疑惑的問題,最近幾天看書過程中,我總結一點。這點純屬個人觀點,如果不對還請多指教

2【網路程式設計】TCP報文/網路位元組序/主機位元組序/網-主位元組序轉換函式

一、TCP報文段格式     TCP雖然是面向位元組流的,但TCP傳送的資料單元卻是報文段。一個TCP報文段分為首部和資料兩個部分。TCP報文段首部的前20個位元組是固定的,後面有4n位元組是根據需要增加的選項。TCP首部的最小長度是20位元組,最大長度是60位元組。

TCP報文大小(MSS)MTU

寫這篇部落格是因為直到今天才搞懂什麼叫做最大報文段長度。這也讓我想起了當初我面試騰訊實習時,面試官問我的TCP相關的問題“TCP報文的長度在TCP三次握手中那一次確定的?”因為當初相關網路的知識剛剛複

TCP報文格式和三次握手——三次握手三個tcp包(header+data),此外,TCP 報文中的數據部分是可選的,在一個連接建立和一個連接終止時,雙方交換的報文僅有 TCP 首部。

pan 內容 由於 clas nts data 奇偶校驗 rom 加載中 from:https://blog.csdn.net/mary19920410/article/details/58030147 TCP報文是TCP層傳輸的數據單元,也叫報文段。 1、端口號:用來標

[計算機網路] TCP報文中的序號和確認號

本篇內容參考自:《計算機網路 自頂向下方法》原書第六版前言序號欄位和確認號欄位是TCP報文段首部中兩個最重要的欄位,這兩個欄位是TCP可靠傳輸服務的關鍵部分。TCP把資料看成一個無結構的、有序的位元組流。序號是建立在傳送的字元流之上的,而不是建立在傳送的報文段的序列之上序號一

TCP報文格式

時間戳選項(Timestamps):使用該欄位就很容易區分相同序列號的不同報文段(迴繞序列號),還可以計算RTT(往返時間),當傳送端傳送一個報文段的時候把當前時間放入這個時間戳選項,當接收方收到後將其複製到確認報文段,傳送方接收到這個確認報文段後就可以計算往返時間了。

TCP報文的首部格式

源埠 目的埠                                                              序號                                                          

計算機網絡(三),TCP報文詳解

ber 緊急指針 span align 有序性 目標 緊急 ima cal 目錄 1.TCP(Transmission Control Protocol傳輸控制協議)作用 2.TCP報文段詳解 三、TCP報文段詳解 1.TCP(Transmission Control Pr

計算機網路-TCP報文格式

TCP面向位元組流,為網路提供可靠的連線,是以報文段為資料單位的。 源埠:佔16位字,記錄傳送方的埠值; 目的埠:佔16位字,記錄接收方的埠值; 序號:佔32位字,序號使用 mod 2^3

使用Wireshark捕獲資料幀和IP資料包教程

About Wireshark   Wireshark is one of the world's foremost network protocol analyzers, and is the standard in many parts of the in

乙太網幀格式IP資料格式TCP格式+UDP格式 詳解

1、ISO開放系統有以下幾層: 7 應用層 6 表示層 5 會話層 4 傳輸層 3 網路層 2 資料鏈路層 1 物理層 2、TCP/IP 網路協議棧分為應用層(Application)、傳輸層(Transport)、網

IPTCP報文UDP數據格式的匯總

ip包、tcp報文、udp數據段格式的匯總一、IP包格式IP數據包是一種可變長分組,它由首部和數據負載兩部分組成。首部長度一般為20-60字節(Byte),其中後40字節是可選的,長度不固定,前20字節格式為固定。數據負載部分的長度一般可變,整個IP數據包的最大長度為65535B。1、版本號(Version)

一篇文章講懂IP資料分片組裝以及與TCP/UDP的聯絡

http://www.mamicode.com/info-detail-1465195.html https://blog.csdn.net/leex_brave/article/details/51971053 https://blog.csdn.net/buptzwp/article

報文報文分組資料資料流的概念區別

1.報文(message) 我們將位於應用層的資訊分組稱為報文。報文是網路中交換與傳輸的資料單元,也是網路傳輸的單元。報文包含了將要傳送的完整的資料資訊,其長短不需一致。報文在傳輸過程中會不斷地封裝成分組、包、幀來傳輸,封裝的方式就是新增一些控制資訊組成的首部,那些就是報文頭。 2.報文段(se

報文報文分組資料的概念區別

分組、包,packet,資訊在網際網路當中傳輸的單元,網路層實現分組交付。用抓包工具抓到的一條條記錄就是包。 幀,frame,資料鏈路層的協議資料單元。我們將鏈路層分組稱為幀。 資料報,Datagram,通過網路傳輸的資料的基本單元,包含一個報頭(header)和資料本身,

乙太網幀IP資料TCP報文的格式詳解,TCP的三次握手和四次揮手過程

乙太網幀、IP資料報、TCP報文等各級報文在更底層的報文或(幀)中的位置: 乙太網幀格式: 上面的源地址和目的地址是指網絡卡的硬體地址(MAC地址),長度均為6B。 網絡卡晶片(例如DM9000A)收到的資料就是如上所示的一長串資料;其中包括乙太網幀頭、IP報報

資料資料資料幀的區別與聯絡

幀與資料包 首先不容易理解的是資料包和幀。 資料包,就是從最上層,一層一層封裝,直到網路層的,最後藉由資料鏈路層傳送出去的資料單元。 幀,是資料鏈路層的傳輸單元。 這麼一看,資料包和幀好像沒什麼不一樣,好像資料傳遞的都是一樣的。可是為什麼會把它們區分開呢?學習 TCP/IP 協議的同

tcpudpipicmp報文格式分析

  TCP 、UDP 、IP、 ICMP協議報文格式分析   Tcp報文格式:   Wireshark抓包如圖:     源埠/目的埠(16bit): 在TCP報文中包涵了源埠/目的埠,源埠標識了傳送程序,目的埠標識了接收方程序。由上圖可

乙太網幀IPUDP/TCPhttp 報文結構解析

我們從 OSI/RM 參考模型入手,來看 OSI/RM 七層模型中的每一層資料幀結構。 一 OSI/RM 結構 OSI 是不同製造商的裝置和應用軟體在網路中進行通訊的標準,此模型已經成為計算機間和網路間進行通訊的主要結構模型, 目前使用的大多數網路通訊協議的結構都是基於 OSI 模型的。