1樓:嘰嘰咕顧
一、回答這個問題之前,要考慮tcp協議為什麼會丟包,在什麼樣的情況下會丟包。
1、tcp協議定義(transimission control protocol)是以一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。
2、tcp是基於不可靠的網路實現可靠傳輸,肯定會存在丟包問題。
3、如果在通訊過程中,發現缺少資料或者丟包,那邊麼最大的可能性是程式傳送過程或者接受過程中出現問題。
例如:我有2臺伺服器 ,a和b伺服器。
a伺服器傳送資料給b伺服器頻率過高時,b伺服器來不及處理,造成資料丟包。(原因可能是程式邏輯問題,多執行緒同步問題,緩衝區溢位問題)
如果a伺服器不對傳送頻率進行控制,或者資料進行重發的話,那麼b伺服器收到資料就會少。就會造成丟失資料
二、tcp協議丟包後,如何解決丟包的問題
為了滿足tcp協議不丟包。tcp協議有如下規定
1、資料分片:傳送端對資料進行分片,接受端要對資料進行重組,由tcp確定分片的大小並控制分片和重組
2、到達確認:接收端接收到分片資料時,根據分片資料序號向傳送端傳送乙個確認
3、超時重發:傳送方在傳送分片時設定超時定時器,如果在定時器超時之後沒有收到相應的確認,重發分片資料
4、滑動視窗:tcp連線的每一方的接受緩衝空間大小固定,接收端只允許另一端傳送接收端緩衝區所能接納的資料,tcp在滑動視窗的基礎上提供流量控制,防止較快主機致使較慢主機的緩衝區溢位
5、失序處理:作為ip資料報來傳輸的tcp分片到達時可能會失序,tcp將對收到的資料進行重新排序,將收到的資料以正確的順序交給應用層;
6、重複處理:作為ip資料報來傳輸的tcp分片會發生重複,tcp的接收端必須丟棄重複的資料;
7、資料校驗:tcp將保持它首部和資料的檢驗和,這是乙個端到端的檢驗和,目的是檢測資料在傳輸過程中的任何變化。如果收到分片的檢驗或有差錯,tcp將丟棄這個分片,並不確認收到此報文段導致對端超時並重發
2樓:榷予
tcp是乙個「流」協議,乙個詳細的包將會被tcp拆分為好幾個包上傳,也是將會把小的封裝成大的上傳,這就是說tcp粘包和拆包難題。
3樓:
1.確認網路鏈路問題,ping測和traceroute確認鏈路是否健康。如果鏈路有問題,找對應網路管理員排查網路。
2.確認系統問題,通過wireshark或者tcpdump在應用系統兩端抓包,定位問題所在,排查是傳送或者接受系統網絡卡、效能問題
3.從tcp應用本身排查,通過在程式上新增除錯**,核查是否應用邏輯處理問題
4樓:匿名使用者
從tcp應用本身排查,通過在程式上新增除錯**,核查是否應用邏輯處理問題
5樓:無薙
確認網路鏈路問題,確認系統問題,從tcp應用本身排查
6樓:
將乙個大的拆成好幾個小的傳輸
7樓:隴東槍
這個得看你的網路是否穩定
8樓:不三不四的女子
看看網路是否卡頓,是否流暢
9樓:他咯兔卡
這個你給加固它的傳輸通道。
10樓:匿名使用者
可以通過**除錯,從而解決丟包
學生在跑操中眼鏡掉落該如何解決?
學生在跑步中由於劇烈運動,所以眼鏡容易掉落。除了給眼鏡的腳綁上繩子綁在腦後以外,還可以把眼鏡摘下來,放到乙個安全的地方,等跑好操以後,再把眼鏡帶上。眼鏡掉落地上很容易摔裂,眼鏡摔裂了就沒用了,而且配眼鏡也比較麻煩,時間還比較長,不僅費錢,而且還會耽誤學習和上課。所以學生在跑操時要保護好眼鏡。如果上體...
如何解決「該虛擬機器似乎正在使用中」
如果該虛擬機器未在使用,請按 獲取所有權 t 按鈕獲取它的所有權。否則,請按 取消 c 按鈕以防損壞。配置檔案 d x64 windows 7 vmware workstation該虛擬機器似乎正在使用中解決方法 例如我們的配置檔案是 d x64 windows 7 那麼我們就開啟 d x64 目錄...
職場中受到同事排擠,該如何解決這個問題?
找到同時排擠的原因,而且也可以和其中乙個比較好說話的同事一起溝通一下,爭取到自己在職場上的好朋友。您好,您的問題我已經看到了,正在整理答案,請稍等一會兒哦 提問。您好。1 首先,我們應該從自己身上找原因,看看自己有沒有做的不好的地方,有的話改正。請稍等啊,我是在乙個個打字的。提問。您能快一點嗎。您好...