近期正在準備找工作,看了n多筆試題,發現考網路真的還不少,網路中尤其tcp,udp等知識點考的較多,此文做個總結,方便以後查閱,閱讀者歡迎找毛病:
tcp實現可靠性傳輸,通過三次握手機制,這一機制保證校驗了資料,保證了他的可靠性。udp沒有三次握手機制,所以不可靠。不過udp的速度是tcp比不了的,而且udp的反應速度更快,qq就是用udp協議傳輸的,http是用tcp協議傳輸的。
tcp/ip協議介紹
tcp/ip的通訊協議
tcp/ip協議組之所以流行,部分原因是因為它可以用在各種各樣的通道和底層協議(例如t1和x.25、乙太網以及rs-232序列介面)之上。確切地說,tcp/ip協議是一組包括tcp協議和ip協議,udp(user datagram protocol)協議、icmp(internet control message protocol)協議和其他一些協議的協議組。
tcp/ip整體構架概述
tcp/ip中的協議
1.ip
網際協議ip是tcp/ip的心臟,也是網路層中最重要的協議。
ip層接收由更低層(網路介面層例如乙太網裝置驅動程式)發來的資料報,並把該資料報傳送到更高層---tcp或udp層;相反,ip層也把從tcp或udp層接收來的資料報傳送到更低層。ip資料報是不可靠的,因為ip並沒有做任何事情來確認資料報是按順序傳送的或者沒有被破壞。ip資料報中含有傳送它的主機的位址(源位址)和接收它的主機的位址(目的位址)。
高層的tcp和udp服務在接收資料報時,通常假設包中的源位址是有效的。也可以這樣說,ip位址形成了許多服務的認證基礎,這些服務相信資料報是從乙個有效的主機傳送來的。ip確認包含乙個選項,叫作ip source routing,可以用來指定一條源位址和目的位址之間的直接路徑。對於一些tcp和udp的服務來說,使用了該選項的ip包好象是從路徑上的最後乙個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連線。那麼,許多依靠ip源位址做確認的服務將產生問題並且會被非法入侵。
2.tcp
如果ip資料報中有已經封好的tcp資料報,那麼ip將把它們向『上』傳送到tcp層。tcp將包排序並進行錯誤檢查,同時實現虛電路間的連線。tcp資料報中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
tcp將它的資訊送到更高層的應用程式,例如telnet的服務程式和客戶程式。應用程式輪流將資訊送回tcp層,tcp層便將它們向下傳送到ip層,裝置驅動程式和物理介質,最後到接收方。
面向連線的服務(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(傳送和接收網域名稱資料庫),但使用udp傳送有關單個主機的資訊。
3.udp
udp與tcp位於同一層,但對於資料報的順序錯誤或重發。因此,udp不被應用於那些使用虛電路的面向連線的服務,udp主要用於那些面向查詢---應答的服務,例如nfs。相對於ftp或telnet,這些服務需要交換的資訊量較小。使用udp的服務包括ntp(網落時間協議)和dns(dns也使用tcp)。
欺騙udp包比欺騙tcp包更容易,因為udp沒有建立初始化連線(也可以稱為握手,因為在兩個系統間沒有虛電路),也就是說,與udp相關的服務面臨著更大的危險。
4.icmp
icmp與ip位於同一層,它被用來傳送ip的的控制資訊。它主要是用來提供有關通向目的位址的路徑資訊。icmp的『redirect』資訊通知主機通向其他系統的更準確的路徑,而『unreachable』資訊則指出路徑有問題。另外,如果路徑不可用了,icmp可以使tcp連線『體面地』終止。ping是最常用的基於icmp的服務。
(end)
tcp和udp使用總結
tcp tcp 是面向連線的,並且是一種可靠的協議,在基於 tcp 進行通訊時,通訊雙方需要先建立乙個 tcp 連線,建立連線需要經過三次握手,握手成功才可以進行通訊 1 基於連線的,可靠性高 2 有連線過程 3次握手過程 會有延時,實時性較差,3 傳輸相同的資料時,tcp首部開銷20位元組 udp...
TCP和UDP對比總結
傳輸層提供的功能如下 傳輸層提供了兩個傳輸協議 tcp tcp 提供面向連線的服務,在傳送資料之前必須要建立連線,並在核心中為該連線維持一些必要的資料結構,比如連線的狀態 讀寫緩衝區以及諸多定時器等。待資料傳送結束後要釋放連線。由於 tcp 提供可靠的傳輸服務,因此不可避免地增加了許多開銷,如序號 ...
TCP和UDP知識總結
1.tcp粘包 tcp是面向連線 流式傳送的,沒有明確的邊界定義。他有乙個緩衝區,每過一段時間或者快取滿了就傳送出去,造成一次傳送的資料可能是多個包或者包的一部分,這就是傳送端的粘包。接收端的粘包指應用程式沒有及時處理緩衝區中的資料,後續到達的資料繼續放到快取中。解決方法 a.對傳送的資料劃分邊界,...