① TCP/IP通信和UDP通信的區別
UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據報協議,是OSI(Open System Interconnection,開放式系統互聯) 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768是UDP的正式規范。UDP在IP報文的協議號是17。
UDP協議全稱是用戶數據報協議[1] ,在網路中它與TCP協議一樣用於處理數據包,是一種無連接的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。UDP用來支持那些需要在計算機之間傳輸數據的網路應用。包括網路視頻會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網路傳輸層協議。
與所熟知的TCP(傳輸控制協議)協議一樣,UDP協議直接位於IP(網際協議)協議的頂層。根據OSI(開放系統互連)參考模型,UDP和TCP都屬於傳輸層協議。UDP協議的主要作用是將網路數據流量壓縮成數據包的形式。一個典型的數據包就是一個二進制數據的傳輸單位。每一個數據包的前8個位元組用來包含報頭信息,剩餘位元組則用來包含具體的傳輸數據。
TCP/IP協議
Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/網際網路互聯協議,又名網路通訊協議,是Internet最基本的協議、Internet國際互聯網路的基礎,由網路層的IP協議和傳輸層的TCP協議組成。TCP/IP 定義了電子設備如何連入網際網路,以及數據如何在它們之間傳輸的標准。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給網際網路的每一台聯網設備規定一個地址。
② Socket的UDP方式通信
UDP廣播數據包的原理如下,其實很簡單:1)專門用於同時向網路中所有工作站進行發送的一個地址叫做廣播地址。主機標識段host ID 為全1
的IP
地址為廣播地址。如果你的IP為:192.168.1.39,子網掩碼為:255.255.255.0,則廣播地址為:192.168.1.255;如果
IP為192.168.1.39,子網掩碼為:255.255.255.192,則廣播地址為:192.168.1.63。
2)如果只想在本網路內廣播數據,只要向廣播地址發送數據包即可,這種數據包可以被路由,它會經由路由器到達本網段內的所有主機,此種廣播也叫直接廣播;如果想在整個網路中廣播數據,要向255.255.255.255發送數據包,這種數據包不會被路由,它只能到達本物理網路中的所有主機,此種廣播叫有限廣播。
詳細的資料可以參考:「對於UDP組播的一些認識」
http://wenku..com/view/985c0a160b4e767f5acfce14.html
③ 用UDP進行通信要連接網路嗎
當然需要!UDP面向不連接是說,在數據傳輸過程中,不建立固定的端到端連接,而是數據包在傳輸過程中隨機選擇可用網路線路進行傳輸,以到達目的地,實現通信過程!不連接網路是無法進行數據傳輸的,也就無法通信。
④ 前端項目中如何使用udp協議和後端交互
先使用後端交互,UDP協議一般指UDP。 Internet 協議集支持一個無連接的傳輸協議,後端交互,支持發送各種HTTP請求及任何形式展示響應。
⑤ 伺服器的UDP通訊是什麼
用戶數據文報協議 (UDP) 是一個無連接協議。跟 TCP 的操作不同,計算機並不建立連接。另外 UDP 應用程序可以是客戶機,也可以是伺服器。
為了傳輸數據,首先要設置客戶計算機的 LocalPort 屬性。然後,伺服器計算機只需將 RemoteHost 設置為客戶計算機的 Internet 地址,並將 RemotePort 屬性設置為跟客戶計算機的 LocalPort 屬性相同的埠,並調用 SendData 方法來著手發送信息。於是,客戶計算機使用 DataArrival 事件內的 GetData 方法來獲取已發送的信息。
⑥ TCP和UDP網路通訊的區別及實現方式是什麼
TCP:Transmission Control Protocol 傳輸控制協議TCP是一種面向連接(連接導向)的、可靠的、基於位元組流的運輸層(Transport layer)通信協議,在 OSI模型中,它完成第四層傳輸層所指定的功能。
UDP:是User Datagram Protocol的簡稱,用戶數據包協議,是 OSI 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
TCP和UDP傳輸就類似於我們的手機通電話和手機發簡訊,一種必需連通了,才能夠通話,相對來說比較可靠,傳輸速度比較快,另一種可以在關機狀態(無連接)發送信息,相對來說,可靠性比較差,傳輸速度較慢。具體的差別如下:
TCP協議面向連接,UDP協議面向非連接
TCP協議傳輸速度慢,UDP協議傳輸速度快
TCP協議保證數據順序,UDP協議不保證
TCP協議保證數據正確性,UDP協議可能丟包
TCP協議對系統資源要求多,UDP協議要求少
不管是基於TCP還是基於UDP的網路通訊編程,都要區分伺服器端和客戶端,下面以TCP為例,實現客戶端和伺服器端通訊的實現步驟:
TCP伺服器端的編寫步驟:
1. 首先,你需要創建一個用於通訊的套介面,一般使用socket調用來實現。這等於你有了一個用於通訊的電話:)
2. 然後,你需要給你的套介面設定埠,相當於,你有了電話號碼。這一步 一般通過設置網路套介面地址和調用bind函數來實現。
3. 調用listen函數使你的套介面成為一個監聽套接字。 以上三個步驟是TCP伺服器的常用步驟。
4. 調用accept函數來啟動你的套接字,這時你的程序就可以等待客戶端的連接了。
5. 處理客戶端的連接請求。
6. 終止連接。
TCP編程的客戶端一般步驟是:
1、創建一個socket,用函數socket();
2、設置socket屬性,用函數setsockopt();* 可選
3、綁定IP地址、埠等信息到socket上,用函數bind();* 可選
4、設置要連接的對方的IP地址和埠等屬性;
5、連接伺服器,用函數connect()(相當於撥號);
6、收發數據,用函數send()和recv(),或者read()和write()(相當於通話);
⑦ udp雙向通信的問題
首先,UDP和TCP均指通信協議,那麼,既然代表通信協議,UDP和TCP都是建立一個「通道」就可以進行服務端/客戶端間的數據收發。
它們的區別主要在於:
UDP協議是面向非連接(不可靠)的傳輸協議,也就是不需要與服務端建立連接,就直接將數據發送給服務端,同時,無機制保證這條數據已成功發送給服務端。
TCP協議是面向連接(可靠)的傳輸協議,在客戶端向伺服器端傳輸數據之前,客戶端必須與伺服器端通過「三次握手」來完成連接的建立,在之後的數據傳輸過程中,為了可靠傳輸,接受方還會發送ACK包來使發送方獲知該數據包已經成功發送,否則,發送端將重新發送數據包直至超時或發送成功。
因此,無論UDP協議還是TCP協議,均要有一個服務端先行監聽某埠才能服務。
例如:服務端監聽9090埠,客戶端使用3456(隨機分配)埠,與伺服器建立連接,那麼通道只有一條,即:A:9090 <-> B:3456。
希望可以幫助你!
⑧ 什麼叫UDP連接
UDP(User Datagram Protocol) 用戶數據報協議 (RFC 768)
用戶數據報協議(UDP)是 OSI 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。 UDP 協議基本上是 IP 協議與上層協議的介面。 UDP 協議適用埠分辨運行在同一台設備上的多個應用程序。
由於大多數網路應用程序都在同一台機器上運行,計算機上必須能夠確保目的地機器上的軟體程序能從源地址機器處獲得數據包,以及源計算機能收到正確的回復。這是通過使用 UDP 的「埠號」完成的。例如,如果一個工作站希望在工作站 128.1.123.1 上使用域名服務系統,它就會給數據包一個目的地址 128.1.123.1 ,並在 UDP 頭插入目標埠號 53 。源埠號標識了請求域名服務的本地機的應用程序,同時需要將所有由目的站生成的響應包都指定到源主機的這個埠上。
與 TCP 不同, UDP 並不提供對 IP 協議的可靠機制、流控制以及錯誤恢復功能等。由於 UDP 比較簡單, UDP 頭包含很少的位元組,比 TCP 負載消耗少。
UDP 適用於不需要 TCP 可靠機制的情形,比如,當高層協議或應用程序提供錯誤和流控制功能的時候。 UDP 是傳輸層協議,服務於很多知名應用層協議,包括網路文件系統(NFS)、簡單網路管理協議(SNMP)、域名系統(DNS)以及簡單文件傳輸系統(TFTP)。
協議結構
Source Port — 16位。源埠是可選欄位。當使用時,它表示發送程序的埠,同時它還被認為是沒有其它信息的情況下需要被定址的答復埠。如果不使用,設置值為0。
Destination Port — 16位。目標埠在特殊網際網路目標地址的情況下具有意義。
Length — 16位。該用戶數據報的八位長度,包括協議頭和數據。長度最小值為8。
Checksum — 16位。IP 協議頭、UDP 協議頭和數據位,最後用0填補的信息假協議頭總和。如果必要的話,可以由兩個八位復合而成。
Data — 包含上層數據信息。
UDP的特點:
UDP協議使用IP層提供的服務把從應用層得到的數據從一台主機的某個應用程序傳給網路上另一台主機上的某一個應用程序。
UDP協議有如下的特點:
1、UDP傳送數據前並不與對方建立連接,即UDP是無連接的,在傳輸數據前,發送方和接收方相互交換信息使雙方同步。
2、UDP不對收到的數據進行排序,在UDP報文的首部中並沒有關於數據順序的信息(如TCP所採用的序號),而且報文不一定按順序到達的,所以接收端無從排起。
3、UDP對接收到的數據報不發送確認信號,發送端不知道數據是否被正確接收,也不會重發數據。
4、UDP傳送數據較TCP快速,系統開銷也少。
從以上特點可知,UDP提供的是無連接的、不可靠的數據傳送方式,是一種盡力而為的數據交付服務。
⑨ udp通訊時是一直發數據還是只發一次
您好,在進行UDP編程的時候,我們最容易想到的問題就是,一次發送多少bytes好?
當然,這個沒有唯一答案,相對於不同的系統,不同的要求,其得到的答案是不一樣的,我這里僅對
像ICQ一類的發送聊天消息的情況作分析,對於其他情況,你或許也能得到一點幫助:
首先,我們知道,TCP/IP通常被認為是一個四層協議系統,包括鏈路層,網路層,運輸層,應用層.
UDP屬於運輸層,下面我們由下至上一步一步來看:
乙太網(Ethernet)數據幀的長度必須在46-1500位元組之間,這是由乙太網的物理特性決定的.
這個1500位元組被稱為鏈路層的MTU(最大傳輸單元).
但這並不是指鏈路層的長度被限制在1500位元組,其實這這個MTU指的是鏈路層的數據區.
並不包括鏈路層的首部和尾部的18個位元組.
所以,事實上,這個1500位元組就是網路層IP數據報的長度限制.
因為IP數據報的首部為20位元組,所以IP數據報的數據區長度最大為1480位元組.
而這個1480位元組就是用來放TCP傳來的TCP報文段或UDP傳來的UDP數據報的.
又因為UDP數據報的首部8位元組,所以UDP數據報的數據區最大長度為1472位元組.
這個1472位元組就是我們可以使用的位元組數。:)