關於tcp udp 的個人理解

2021-08-25 08:57:21 字數 1233 閱讀 2507

tcp採用流式傳輸,資料以絕對的順序像水流一樣從傳送端流到接收端,接收端就像乙個小姑娘拿著水瓢一瓢一瓢地接著水(這個過程就是recv()),但是這條水流並不是平穩的小溪,而是泛著波浪,所以小姑娘每次舀出的水並不是一樣多,但是因為有一條河流連線著傳送端和接收端,所以可以保證通訊的順序和可靠性。

udp與tcp不同,採用的是資料報的形式,相當於把水凍成冰塊,傳送端直接隔空扔給接收端,接收端接收的資料長度固定為單個資料報的長度。然而這種投擲的精準度並不理想,離得越遠,扔錯地方的機率就越大。因而相對與面向連線的tcp協議,udp協議的可靠性並不強。但是其優點在於udp可以以極快的速度傳輸,而tcp中的資料始終受傳輸檢測機制的制約,速度並不會太快。

所以tcp 和 udp 各有各的優點,如何選擇要看具體應用的場合。

tcp協議的資料傳輸的前提是建立連線。可以把server端看作乙個大戶,有個叫client的遠方親戚要來投奔這個大戶。試想,有錢大戶肯定有那個排場,肯定不能我有錢我還求你和我往來。但畢竟是親戚,所以server就和管家說了,要是有人來找我,就叫他見我(可以理解成 listen函式 )。然後server開始等他那個叫client的親戚,直到client按照位址找到了server的家(理解為connect函式),server受到管家提醒停止等待(理解為 accept函式)。然後兩者開始交談,然後server給client起了個名叫 賢侄,當然也知道了client的位址(ip)。至此,叔侄二人就可以愉快的玩耍了。

server:賢侄,讓管家給你買的macbook你收到了嗎?

client:  啥?並沒有

server:啥情況,我催催他

client : 好的,server叔

client :server叔,電腦我收到了

server:好的,賢侄

。。。。。。。。。。。。。。。。。。。有種一臉黑線的感覺

udp協議是不需要確認連線的,這個情況可以參照末世喪屍的故事背景。比如server是一名執行物資空投的飛行員,他們的職責是向有倖存者的地方空投彈藥槍枝以及藥品食品,這些東西都是打包好的乙個箱子。server從某神秘情報人員得知在192.168.1.111:800處有個倖存者需要物資投送,於是server開上小飛機,拉著補給箱,沒一會就往該處投下了箱子(理解為 sendto函式) ,然後頭也不回,去搭救其他人了。但是這箱子摔沒摔壞,有沒有被喪屍啃掉,或者倖存者能不能找到箱子誰也說不准,但是勝在速度快。而倖存者則一直在等待補給(理解為recvfrom函式),如果辛苦等來的補給摔壞了,掉水裡了,那也只能忍飢挨餓眼巴巴守著 recvfrom函式 乾瞪眼,等待下一次的補給。

對TCP UDP協議的個人理解

先來談談osi和tcp ip模型吧 osi模型 osi模型是一種開放系統互連的參考模型,以標準化網路中裝置通訊的方式。osi模型將網路通訊分為7個不同的層,分別為應用層,資料鏈路層,網路層,傳輸層,會話層,表示層和物理層,該模型為確保在網路裝置之間實現互操作性做出巨大貢獻。tcp ip模型 tcp ...

關於TCP UDP協議的理解

一.區別 tcp是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議,由ietf的rfc 793定義。在簡化的計算機網路osi模型中,它完成第四層傳輸層所指定的功能。udp是osi參考模型中一種無連線的傳輸層協議,它主要用於不要求分組順序到達的傳輸中,分組傳輸順序的檢查與排序由應用層完成,提供面向...

關於TCP UDP協議的理解

協議簡介 協議對於網路安全管理有非常重要的意義,它可以用於檢測病毒的存在,發現病毒,阻止病毒。比如防火牆,防火牆就是通過檢測網路資料報,來判斷是否違反了事先設定好的規則,從而達到對網路安全進行管理的目的。網路七層協議 所以網路七層協議 osi 便成為開放性的通訊系統互連參考模型,因為它是乙個定義得非...