TCP與UDP資料報的區別

2021-09-01 17:04:13 字數 2253 閱讀 5339

[size=small][b]tcp與udp的區別:[/b]

[color=darkred] 1、基於連線與無連線

2、對系統資源的要求(tcp較多,udp少)

3、udp程式結構較簡單

4、流模式與資料報模式

5、tcp保證資料正確性,udp可能丟包,tcp保證資料順序,udp不保證另外結合gprs網路的情況具體的談一下他們的區別:[/color]

tcp傳輸存在一定的延時,大概是1600ms(移動提供),udp響應速度稍微快一些。

tcp包頭結構  源埠16位  目標埠 16位  序列號 32位  回應序號 32位  tcp頭長度 4位  reserved 6位  控制**6位  視窗大小16位  偏移量16位  校驗和16位  選項 32位(可選)   這樣我們得出了tcp包頭的最小大小.就是20位元組.   

udp包頭結構  源埠16位  目的埠16位  長度 16位  校驗和 16位  udp的包小很多.確實如此.因為udp是非可靠連線.設計初衷就是盡可能快的將資料報傳送出去.所以udp協議顯得非常精簡.

1. ip

網際協議ip是tcp/ip的心臟,也是網路層中最重要的協議。 ip層接收由更低層(網路介面層例如乙太網裝置驅動程式)發來的資料報,並把該資料報傳送到更高層---tcp或udp層;相反,ip層也把從tcp或udp層接收來的資料報傳送到更低層。ip資料報是不可靠的,因為ip並沒有做任何事情來確認資料報是按順序傳送的或者沒有被破壞。ip資料報中含有傳送它的主機的位址(源位址)和接收它的主機的位址(目的位址)。 高層的tcp和udp服務在接收資料報時,通常假設包中的源位址是有效的。也可以這樣說,ip位址形成了許多服務的認證基礎,這些服務相信資料報是從乙個有效的主機傳送來的。ip確認包含乙個選項,叫作ip source routing,可以用來指定一條源位址和目的位址之間的直接路徑。對於一些tcp和udp的服務來說,使用了該選項的ip包好象是從路徑上的最後乙個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連線。那麼,許多依靠ip源位址做確認的服務將產生問題並且會被非法入侵。

2. tcp

如果ip資料報中有已經封好的tcp資料報,那麼ip將把它們向『上』傳送到tcp層。tcp將包排序並進行錯誤檢查,同時實現虛電路間的連線。tcp資料報中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。 tcp將它的資訊送到更高層的應用程式,例如telnet的服務程式和客戶程式。應用程式輪流將資訊送回tcp層,tcp層便將它們向下傳送到ip層,裝置驅動程式和物理介質,最後到接收方。 面向連線的服務(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(傳送和接收網域名稱資料庫),但使用udp傳送有關單個主機的資訊。

3.udp

udp與tcp位於同一層,但對於資料報的順序錯誤或重發。因此,udp不被應用於那些使用虛電路的面向連線的服務,udp主要用於那些面向查詢---應答的服務,例如nfs。相對於ftp或telnet,這些服務需要交換的資訊量較小。使用udp的服務包括ntp(網落時間協議)和dns(dns也使用tcp)。 欺騙udp包比欺騙tcp包更容易,因為udp沒有建立初始化連線(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與udp相關的服務面臨著更大的危險。

4.icmp

icmp與ip位於同一層,它被用來傳送ip的的控制資訊。它主要是用來提供有關通向目的位址的路徑資訊。icmp的『redirect』資訊通知主機通向其他系統的更準確的路徑,而『unreachable』資訊則指出路徑有問題。另外,如果路徑不可用了,icmp可以使tcp連線『體面地』終止。ping是最常用的基於icmp的服務。

5. tcp和udp的埠結構

tcp和udp服務通常有乙個客戶/伺服器的關係,例如,乙個telnet服務程序開始在系統上處於空閒狀態,等待著連線。使用者使用telnet客戶程式與服務程序建立乙個連線。客戶程式向服務程序寫入資訊,服務程序讀出資訊並發出響應,客戶程式讀出響應並向使用者報告。因而,這個連線是雙工的,可以用來進行讀寫。 兩個系統間的多重telnet連線是如何相互確認並協調一致呢?tcp或udp連線唯一地使用每個資訊中的如下四項進行確認: 源ip位址 傳送包的ip位址。 目的ip位址 接收包的ip位址。 源埠 源系統上的連線的埠。 目的埠 目的系統上的連線的埠。 埠是乙個軟體結構,被客戶程式或服務程序用來傳送和接收資訊。乙個埠對應乙個16位元的數。服務程序通常使用乙個固定的埠,例如,smtp使用25、xwindows使用6000。這些埠號是『廣為人知』的,因為在建立與特定的主機或服務的連線時,需要這些位址和目的位址進行通訊。[/size]

TCP位元組流與UDP資料報的區別

tcp是一種流模式的協議,udp是一種資料報模式的協議 但是,流模式 與 資料報 模式在程式設計的時候有什麼區別呢?打個比方比喻tcp,你家裡有個蓄水池,你可以裡面倒水,蓄水池上有個龍頭,你可以通過龍頭將水池裡的水放出來,然後用各種各樣的容器裝 杯子 礦泉水瓶 鍋碗瓢盆 接水。上面的例子中,往水池裡...

TCP與UDP資料報結構

tcp transport control protocol 傳輸控制協議 a,源埠 標識源端應用程序。b,目的埠 標識目的端應用程序。c,序號 在syn標誌未置位時,該欄位指示了使用者資料區中第乙個位元組的序號 在syn標誌置位時,該欄位指示的是初始傳送的序列號。e,資料偏移 表示以32位字為單位...

關於TCP流模式與UDP資料報文模式區別

tcp是一種流模式的協議,udp是一種資料報模式的協議 這句話相信大家對這句話已經耳熟能詳 但是,流模式 與 資料報模式 在程式設計的時候有什麼區別呢?以下是我的理解,僅供參考!1 tcp 打個比方比喻tcp,你家裡有個蓄水池,你可以裡面倒水,蓄水池上有個龍頭,你可以通過龍頭將水池裡的水放出來,然後...