TCP/IP與UDP究竟有什麼差別
TCP(Transmission Control Protocol,傳輸控制協議)
#是面向連接的協議,也就是說,在收發資料前,必須和對方建立可靠的連結。一個TCP連線必須經過三次「對話」才能建立起來
TCP三次握手過程:
1 主機A透過向主機B 發送一個含有同步序號的標誌位的資料段給主機B ,向主機B 請求建立連線,透過這個資料段, 主機A告訴主機B 兩件事:我想要和你通訊;你可以用哪個序號作為起始資料段來回應我.
2 主機B 收到主機A的請求後,用一個帶有確認應答( ACK)和同步序號(SYN)標誌位的資料段回應主機A,也告訴主機A兩件事: 我已經收到你的請求了,你可以傳輸資料了;你要用哪佧序號作為起始資料段來回應我
3 主機A收到這個資料段後,再發送一個確認應答,確認已收到主機B 的資料段:"我已收到回复,我現在要開始傳輸實際資料了
這樣3次握手就完成了,主機A和主機B 就可以傳輸資料了.
3次握手的特點:
1)沒有應用層的資料
2)SYN這個標誌位元只有在TCP建產連接時才會被置1
3)握手完成後SYN標誌位元被置0
#TCP建立連線要進行3次握手,而斷開連線要進行4次
1 當主機A完成資料傳輸後,將控制位FIN置1,提出停止TCP連線的請求
2 主機B收到FIN後對其作出回應,確認這一方向上的TCP連線將關閉,將ACK置1
3 由B 端再提出反方向的關閉請求,將FIN置1
4 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.
#由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性,使發送數據端和接收端在數據正式傳輸前就有了交互,為數據正式傳輸打下了可靠的基礎
名詞解釋
ACK-TCP標頭的控制位元之一,對資料進行確認.確認由目的端發出,用它來告訴發送端這個序號之前的資料段都收到了.比如,確認號為X,則表示前X-1個資料段都收到了,只有當ACK=1時,確認號才有效,當ACK=0時,確認號無效,這時會要求重傳資料,保證資料的完整性.
#SYN-同步序號,TCP建立連線時將這個位置1
#FIN-傳送端完成傳送任務位元,當TCP完成資料傳輸需要斷開時,提出斷線的一方將此位置1
TCP的包頭結構:
來源埠16位元
目標埠16位元
#序號32位元
回應序號32位元
TCP頭長4位元
#reserved 6位元
控制碼6位元
視窗大小16位元
# #偏移量16位元
校驗與16位元
選項 32位元(可選)
#這樣我們就得到了TCP包頭的最小長度,為20位元組。
UDP(User Data Protocol,使用者資料報協定)
######(1) UDP是一個非連接的協議,傳輸資料之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程式的數據,並儘可能快地把它丟到網路上。在發送端,UDP傳送資料的速度只是受應用程式產生資料的速度、電腦的能力和傳輸頻寬的限制;在接收端,UDP把每個訊息段放在佇列中,應用程式每次從佇列中讀一個訊息段。
(2) 由於傳輸資料不建立連接,因此也不需要維護連接狀態,包括收發狀態等,因此一台服務機可同時傳送相同的消息。
(3) UDP訊息包的標題很短,只有8個位元組,相對於TCP的20個位元組資訊包的額外開銷很小。
(4) 吞吐量不受擁擠控制演算法的調節,只受應用軟體產生資料的速率、傳輸頻寬、來源端和終端主機效能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連結狀態表(這裡面有許多參數)。
(6)UDP是面對封包的。發送方的UDP對應用程式交下來的封包,在新增首部後就向下交付給IP層。既不拆分,也不合併,而是保留這些封包的邊界,因此,應用程式需要選擇合適的封包大小。 我們常使用「ping」指令來測試兩台主機之間TCP/IP通訊是否正常,其實「ping」指令的原理就是向對方主機發送UDP封包,然後對方主機確認收到封包,如果封包是否到達的訊息及時回饋回來,那麼網路就是通的。
UDP的封包結構:
來源埠16位元
#目的連接埠16位元
長度16位元
校驗和16位元
##小結TCP與UDP的差異:
##1.基於連結與無連結;
##2.對系統資源的要求(TCP較多,UDP少);
#####3.UDP程式結構較簡單; ############4. 流模式與資料封包模式; ############5.TCP保證資料正確性,UDP可能丟包,TCP保證資料順序,UDP不保證。 ######以上是TCP/IP與UDP究竟有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Photoshop 中導出帶密碼保護的 PDF:打開圖像文件。點擊“文件”>“導出”>“導出為 PDF”。設置“安全性”選項,兩次輸入相同的密碼。點擊“導出”生成 PDF 文件。

C語言函數是代碼模塊化和程序搭建的基礎。它們由聲明(函數頭)和定義(函數體)組成。 C語言默認使用值傳遞參數,但也可使用地址傳遞修改外部變量。函數可以有返回值或無返回值,返回值類型必須與聲明一致。函數命名應清晰易懂,使用駝峰或下劃線命名法。遵循單一職責原則,保持函數簡潔性,以提高可維護性和可讀性。

C語言函數是可重複利用的代碼塊,它接收輸入,執行操作,返回結果,可將代碼模塊化提高可複用性,降低複雜度。函數內部機制包含參數傳遞、函數執行、返回值,整個過程涉及優化如函數內聯。編寫好的函數遵循單一職責原則、參數數量少、命名規範、錯誤處理。指針與函數結合能實現更強大的功能,如修改外部變量值。函數指針將函數作為參數傳遞或存儲地址,用於實現動態調用函數。理解函數特性和技巧是編寫高效、可維護、易理解的C語言程序的關鍵。

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

在router文件夾下的index.js文件中註冊VueRouter的必要性在開發Vue應用程序時,常常會遇到關於路由配置的問題。特�...

C和C#雖有類似之處,但截然不同:C是面向過程、手動內存管理、平台依賴的語言,用於系統編程;C#是面向對象、垃圾回收、平台獨立的語言,用於桌面、Web應用和遊戲開發。

DOM節點下XPath查找方法詳解在JavaScript中,我們經常需要根據XPath表達式從DOM樹中查找特定的節點。如果需要從某�...

H5與小程序的推廣方式存在差異:平台依賴性:H5依賴瀏覽器,小程序依賴特定平台(如微信)。用戶體驗:H5體驗較差,小程序提供類似原生應用的流暢體驗。傳播方式:H5通過鏈接傳播,小程序通過平台分享或搜索。 H5推廣方式:社交分享、郵件營銷、QR碼、SEO、付費廣告。小程序推廣方式:平台推廣、社交分享、線下推廣、ASO、與其他平台合作。
