分類: linux系統
2012-10-21 20:28
520人閱讀收藏
舉報還有就是謝老師寫的《計算機網路》第五版,.tcp/ip詳解(卷一,卷二)以及《unix網路程式設計》以及linux源**之外,rfc
一、概念:
key:tcp是一種面向連線的、可靠的、位元組流服務
2.可靠性:tcp提供端到端的流量控制,對收到的資料進行確認,採用超時重發,對失序的資料進行重新排序等機制保證資料通訊的可靠性。而udp是一種不可靠的服務,接收方可能不能收到傳送方的資料報。
3.tcp是一種流模式的協議,udp是一種資料報模式的協議。程序的每個輸出操作都正好產生乙個udp資料報,並組裝成乙份待傳送的ip資料報。tcp應用程式產生的全體資料與真正傳送的單個ip資料報可能沒有什麼聯絡。tcp會有粘包和半包的現象。
4.效率上:速度上,一般tcp速度慢,傳輸過程中需要對資料進行確認,超時重發,還要對資料進行排序。udp沒有這些機制所以速度快。資料比例,tcp頭至少20個位元組,udp頭8個位元組,相對效率高。組裝效率上:tcp頭至少20個位元組,udp頭8個位元組,系統組裝上tcp相對慢。
對於第三點的理解。tcp可能傳送100個「包」,而接收到50個「包」,不是丟「包」了,而是每次接受的「包」都比傳送的多,其實tcp並沒有包的概念。例如,每次發10個位元組,可能讀得時候一次讀了20個位元組。tcp是一種流模式的協議,在接收到的快取中按照傳送的包得順序自動按照順序拼接好,因為資料基本來自同乙個主機,而且是按照順序傳送過來的,tcp的快取中存放的就是,連續的資料。感覺好像是多封裝了一步比udp。而udp因為可能兩個不同的主機,給同乙個主機傳送,(乙個埠可能收到多個應用程式的資料),或者按照tcp那樣合併資料,必然會造成資料錯誤。我覺得關鍵的原因還是,tcp是面向連線,而udp是無連線的,這就導致,tcp接收的資料為乙個主機發來且有序無誤的,而udp可能是多個主機發來的無序,可能錯誤的。
tcp和udp使用總結
tcp tcp 是面向連線的,並且是一種可靠的協議,在基於 tcp 進行通訊時,通訊雙方需要先建立乙個 tcp 連線,建立連線需要經過三次握手,握手成功才可以進行通訊 1 基於連線的,可靠性高 2 有連線過程 3次握手過程 會有延時,實時性較差,3 傳輸相同的資料時,tcp首部開銷20位元組 udp...
TCP和UDP的總結
近期正在準備找工作,看了n多筆試題,發現考網路真的還不少,網路中尤其tcp,udp等知識點考的較多,此文做個總結,方便以後查閱,閱讀者歡迎找毛病 tcp實現可靠性傳輸,通過三次握手機制,這一機制保證校驗了資料,保證了他的可靠性。udp沒有三次握手機制,所以不可靠。不過udp的速度是tcp比不了的,而...
TCP和UDP對比總結
傳輸層提供的功能如下 傳輸層提供了兩個傳輸協議 tcp tcp 提供面向連線的服務,在傳送資料之前必須要建立連線,並在核心中為該連線維持一些必要的資料結構,比如連線的狀態 讀寫緩衝區以及諸多定時器等。待資料傳送結束後要釋放連線。由於 tcp 提供可靠的傳輸服務,因此不可避免地增加了許多開銷,如序號 ...