日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php接收dup,TCP与DUP简单对比

發布時間:2025/3/13 php 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php接收dup,TCP与DUP简单对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看回顧一下OSI 7層協議網絡模型

再回顧一下OSI每一層的作用

OSI 7層協議模型與TCP/IP 5層協議模型的對應關系

從上述圖片中可以看出tcp與udp 是傳輸層的協議。

TCP與DUP比較:

1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接

2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付

3、tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制(TCP粘包處理)。

3、UDP具有較好的實時性,工作效率比TCP高,適用于對高速傳輸和實時性有較高的通信或廣播通信。

4、TCP對系統資源要求較多,UDP對系統資源要求較少。

TCP可能存在的問題:

TCP通信特點

TCP 是流式協議沒有消息邊界,客戶端向服務器端發送一次數據,可能會被服務器端分成多次收到。客戶端向服務器端發送多少數據。服務器端可能一次全部收到。

2.保證傳輸的可靠性,順序。

3.TCP有擁塞控制,所以數據包可能會延后發送。

粘包問題

1什么是 TCP 粘包?

TCP 粘包是指發送方發送的若干包數據?到?接收方接收時粘成一包,從接收緩沖區看,后一包數據的頭緊接著前一包數據的尾。(多條信息可能會合成一條消息)

2 TCP 出現粘包的原因?

發送方:發送方需要等緩沖區滿才發送出去,造成粘包

接收方:接收方不及時接收緩沖區的包,造成多個包接收

3.TCP粘包的處理

方式一:手動解決粘包,客戶端發送明文消息,在消息結尾加上特定的EOF標記。服務端接收到消息后,通過特定EOF將數據報分割多條,每條即是原始消息。

方式二:客戶端按照約定的封包類型對消息進行封包pack操作,服務端開啟消息的包格式校驗,符合條件后對消息進行解包操作。

TCP消息傳遞過程

2.緩沖區擁堵或溢出

每個 socket 被創建后,都會分配兩個緩沖區,輸入緩沖區和輸出緩沖區。

write()/send() 并不立即向網絡中傳輸數據,而是先將數據寫入緩沖區中,再由TCP協議將數據從緩沖區發送到目標機器。

一旦將數據寫入到緩沖區,函數就可以成功返回,不管它們有沒有到達目標機器,也不管它們何時被發送到網絡,這些都是TCP協議負責的事情。

TCP協議獨立于 write()/send() 函數,數據有可能剛被寫入緩沖區就發送到網絡,

也可能在緩沖區中不斷積壓,多次寫入的數據被一次性發送到網絡,

這取決于當時的網絡情況、當前線程是否空閑等諸多因素,不由程序員控制。

總結

以上是生活随笔為你收集整理的php接收dup,TCP与DUP简单对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。