當前位置:首頁 » 安全設置 » 公司網路如何設置udp通信
擴展閱讀
手機跟電視連接的軟體 2025-08-06 03:14:09
連接不到wifi網路 2025-08-06 03:12:27

公司網路如何設置udp通信

發布時間: 2022-08-08 19:32:34

A. UDP協議如何進行通信

B並不用確定A的埠號,因為UDP本身就是不面向連接的數據傳送,所以不存在連接問題。
參考如下:
UDP是一個無連接協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,並盡可能快地把它扔到網路上。在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
由於傳輸數據不建立連接,因此也就不需要維護連接狀態,包括收發狀態等,因此一台服務機可同時向多個客戶機傳輸相同的消息。

B. 如何實現TCP和UDP傳輸

劃分為使用TCP埠(面向連接如打電話)和使用UDP埠(無連接如寫信)兩種。網路中可以被命名和定址的通信埠是操作系統的一種可分配資源。由網路OSI(開放系統互聯參考模型,)七層協議可知,傳輸層與網路層最大的區別是傳輸層提供進程通信能力,網路通信的最終地址不僅包括主機地址,還包括可描述進程的某種標識。所以TCP/IP協議提出的協議埠,可以認為是網路通信進程的一種標識符。應用程序(調入內存運行後一般稱為:進程)通過系統調用與某埠建立連接(binding,綁定)後,傳輸層傳給該埠的數據都被相應的進程所接收,相應進程發給傳輸層的數據都從該埠輸出。在TCP/IP協議的實現中,埠操作類似於一般的I/O操作,進程獲取一個埠,相當於獲取本地唯一的I/O文件,可以用一般的讀寫方式訪問類似於文件描述符,每個埠都擁有一個叫埠號的整數描述符,用來區別不同的埠。由於TCP/IP傳輸層的TCP和UDP兩個協議是兩個完全獨立的軟體模塊,因此各自的埠號也相互獨立。如TCP有一個255號埠,UDP也可以有一個255號埠,兩者並不沖突。埠號有兩種基本分配方式:第一種叫全局分配這是一種集中分配方式,由一個公認權威的中央機構根據用戶需要進行統一分配,並將結果公布於眾,第二種是本地分配,又稱動態連接,即進程需要訪問傳輸層服務時,向本地操作系統提出申請,操作系統返回本地唯一的埠號,進程再通過合適的系統調用,將自己和該埠連接起來(binding,綁定)。TCP/IP埠號的分配綜合了以上兩種方式,將埠號分為兩部分,少量的作為保留埠,以全局方式分配給服務進程。每一個標准伺服器都擁有一個全局公認的埠叫周知口,即使在不同的機器上,其埠號也相同。剩餘的為自由埠,以本地方式進行分配。TCP和UDP規定,小於256的埠才能作為保留埠。按埠號可分為3大類:(1)公認埠(WellKnownPorts):從0到1023,它們緊密綁定(binding)於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。(2)注冊埠(RegisteredPorts):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其它目的。例如:許多系統處理動態埠從1024左右開始。(3)動態和/或私有埠(Dynamicand/orPrivatePorts):從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。系統管理員可以"重定向"埠:一種常見的技術是把一個埠重定向到另一個地址。例如默認的HTTP埠是80,不少人將它重定向到另一個埠,如8080。如果是這樣改了,要訪問本文就應改用這個地址.cn:8080。埠漏洞:8080埠可以被各種病毒程序所利用,比如BrownOrifice(BrO)特洛伊木馬病毒可以利用8080埠完全遙控被感染的計算機。另外,RemoConChubo,RingZero木馬也可以利用該埠進行攻擊。操作建議:一般我們是使用80埠進行網頁瀏覽的,為了避免病毒的攻擊,我們可以關閉該埠。埠:21服務:FTP說明:FTP伺服器所開放的埠,用於上傳、下載。最常見的攻擊者用於尋找打開anonymous的FTP伺服器的方法。這些伺服器帶有可讀寫的目錄。木馬DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所開放的埠。埠:22服務:Ssh說明:PcAnywhere建立的TCP和這一埠的連接可能是為了尋找ssh。這一服務有許多弱點,如果配置成特定的模式,許多使用RSAREF庫的版本就會有不少的漏洞存在。埠:23服務:Telnet說明:遠程登錄,入侵者在搜索遠程登錄UNIX的服務。大多數情況下掃描這一埠是為了找到機器運行的操作系統。還有使用其他技術,入侵者也會找到密碼。木馬TinyTelnetServer就開放這個埠。埠:25服務:SMTP說明:SMTP伺服器所開放的埠,用於發送郵件。入侵者尋找SMTP伺服器是為了傳遞他們的SPAM。入侵者的帳戶被關閉,他們需要連接到高帶寬的E-MAIL伺服器上,將簡單的信息傳遞到不同的地址。木馬Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都開放這個埠。埠:80服務:HTTP說明:用於網頁瀏覽。木馬Executor開放此埠。埠:102服務:Messagetransferagent(MTA)-X.400overTCP/IP說明:消息傳輸代理。埠:109服務:PostOfficeProtocol-Version3說明:POP3伺服器開放此埠,用於接收郵件,客戶端訪問伺服器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩沖區溢出的弱點至少有20個,這意味著入侵者可以在真正登陸前進入系統。成功登陸後還有其他緩沖區溢出錯誤。埠:110服務:SUN公司的RPC服務所有埠說明:常見RPC服務有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等埠:119服務:NetworkNewsTransferProtocol說明:NEWS新聞組傳輸協議,承載USENET通信。這個埠的連接通常是人們在尋找USENET伺服器。多數ISP限制,只有他們的客戶才能訪問他們的新聞組伺服器。打開新聞組伺服器將允許發/讀任何人的帖子,訪問被限制的新聞組伺服器,匿名發帖或發送SPAM。埠:135服務:LocationService說明:Microsoft在這個埠運行DCERPCend-pointmapper為它的DCOM服務。這與UNIX111埠的功能很相似。使用DCOM和RPC的服務利用計算機上的end-pointmapper注冊它們的位置。遠端客戶連接到計算機時,它們查找end-pointmapper找到服務的位置。HACKER掃描計算機的這個埠是為了找到這個計算機上運行ExchangeServer嗎?什麼版本?還有些DOS攻擊直接針對這個埠。埠:137、138、139服務:NETBIOSNameService說明:其中137、138是UDP埠,當通過網上鄰居傳輸文件時用這個埠。而139埠:通過這個埠進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於windows文件和列印機共享和SAMBA。還有WINSRegisrtation也用它。埠:161服務:SNMP說明:SNMP允許遠程管理設備。所有配置和運行信息的儲存在資料庫中,通過SNMP可獲得這些信息。許多管理員的錯誤配置將被暴露在Internet。Cackers將試圖使用默認的密碼public、private訪問系統。他們可能會試驗所有可能的組合。SNMP包可能會被錯誤的指向用戶的網路埠:177服務:說明:許多入侵者通過它訪問X-windows操作台,它同時需要打開6000埠。埠:389服務:LDAP、ILS說明:輕型目錄訪問協議和共用這一埠。限制埠防非法入侵[分享]一般來說,我們採用一些功能強大的反黑軟體和防火牆來保證我們的系統安全,本文擬用一種簡易的法——通過限制埠來幫助大家防止非法入侵。非法入侵的方式簡單說來,非法入侵的方式可粗略分為4種:1、掃描埠,通過已知的系統Bug攻入主機。2、種植木馬,利用木馬開辟的後門進入主機。3、採用數據溢出的手段,迫使主機提供後門進入主機。4、利用某些軟體設計的漏洞,直接或間接控制主機。非法入侵的主要方式是前兩種,尤其是利用一些流行的黑客工具,通過第一種方式攻擊主機的情況最多、也最普遍;而對後兩種方式來說,只有一些手段高超的黑客才利用,波及面並不廣泛,而且只要這兩種問題一出現,軟體服務商很快就會提供補丁,及時修復系統。對於個人用戶來說,您可以限制所有的埠,因為您根本不必讓您的機器對外提供任何服務;而對於對外提供網路服務的伺服器,我們需把必須利用的埠(比如WWW埠80、FTP埠21、郵件服務埠25、110等)開放,其他的埠則全部關閉。這里,對於採用Windows2000或者WindowsXP的用戶來說,不需要安裝任何其他軟體,可以利用「TCP/IP篩選」功能限制伺服器的埠。具體設置如下:1、右鍵點擊「網上鄰居」,選擇「屬性」,然後雙擊「本地連接」(如果是撥號上網用戶,選擇「我的連接」圖標),彈出「本地連接狀態」對話框。2、點擊[屬性]按鈕,彈出「本地連接屬性」,選擇「此連接使用下列項目」中的「Internet協議(TCP/IP)」,然後點擊[屬性]按鈕。3、在彈出的「Internet協議(TCP/IP)」對話框中點擊[高級]按鈕。在彈出的「高級TCP/IP設置」中,選擇「選項」標簽,選中「TCP/IP篩選」,然後點擊[屬性]按鈕。4、在彈出的「TCP/IP篩選」對話框里選擇「啟用TCP/IP篩選」的復選框,然後把左邊「TCP埠」上的「只允許」選上。這樣,您就可以來自己添加或刪除您的TCP或UDP或IP的各種埠了。添加或者刪除完畢,重新啟動機器以後,您的伺服器就被保護起來了。最後,提醒個人用戶,如果您只上網瀏覽的話,可以不添加任何埠。但是要利用一些網路聯絡工具,比如OICQ的話,就要把「4000」這個埠打開,同理,如果發現某個常用的網路工具不能起作用的時候,請搞清它在您主機所開的埠,然後在「TCP/IP「里把此埠打開以上來源於網路,不過分析得很好了相同點:都處於傳輸層不同點:TCP~面向連接、可靠、傳輸慢、保證數據的順序UDP~面向無連接、不可靠、傳輸快、數據按照不同路徑到,不保證數據順序且兩者傳輸的模式不一樣

C. 求助,怎麼將tcp傳輸通信改成udp通信

答:Udp是面向無連接的,把socket函數的SOCK_STREAM改成SOCK_DGRAM,sever斷不用listen和accept函數,client端不用connect函數,保留原來的數據,謝謝。

D. 什麼是UDP如何打開

UDP UDP(User Datagram Protocol) 用戶數據報協議 用戶數據報協議(UDP)是 OSI 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。是一個簡單的面向數據報的傳輸層協議,IETF RFC 768是UDP的正式規范。 UDP 協議基本上是 IP 協議與上層協議的介面。 UDP 協議適用埠分別運行在同一台設備上的多個應用程序。 由於大多數網路應用程序都在同一台機器上運行,計算機上必須能夠確保目的地機器上的軟體程序能從源地址機器處獲得數據包,以及源計算機能收到正確的回復。這是通過使用 UDP 的「埠號」完成的。例如,如果一個工作站希望在工作站 128.1.123.1 上使用域名服務系統,它就會給數據包一個目的地址 128.1.123.1 ,並在 UDP 頭插入目標埠號 53 。源埠號標識了請求域名服務的本地機的應用程序,同時需要將所有由目的站生成的響應包都指定到源主機的這個埠上。 UDP 埠的詳細介紹可以參照相關文章。 與TCP 不同, UDP 並不提供對 IP 協議的可靠機制、流控制以及錯誤恢復功能等。由於 UDP 比較簡單, UDP 頭包含很少的位元組,比 TCP 負載消耗少。 UDP 適用於不需要 TCP 可靠機制的情形,比如,當高層協議或應用程序提供錯誤和流控制功能的時候。 UDP 是傳輸層協議,服務於很多知名應用層協議,包括網路文件系統(NFS)、簡單網路管理協議(SNMP)、域名系統(DNS)以及簡單文件傳輸系統(TFTP)、動態主機配置協議(DHCP)、路由信息協議(RIP)和某些影音串流服務等等。 協議結構 Source Port — 16位。源埠是可選欄位。當使用時,它表示發送程序的埠,同時它還被認為是沒有其它信息的情況下需要被定址的答復埠。如果不使用,設置值為0。 Destination Port — 16位。目標埠在特殊網際網路目標地址的情況下具有意義。 Length — 16位。該用戶數據報的八位長度,包括協議頭和數據。長度最小值為8。 Checksum — 16位。IP 協議頭、UDP 協議頭和數據位,最後用0填補的信息假協議頭總和。如果必要的話,可以由兩個八位復合而成。 Data — 包含上層數據信息。 UDP協議有如下的特點: 1、UDP傳送數據前並不與對方建立連接,即UDP是無連接的,在傳輸數據前,發送方和接收方相互交換信息使雙方同步。 2、UDP不對收到的數據進行排序,在UDP報文的首部中並沒有關於數據順序的信息(如TCP所採用的序號),而且報文不一定按順序到達的,所以接收端無從排起。 3、UDP對接收到的數據報不發送確認信號,發送端不知道數據是否被正確接收,也不會重發數據。 4、UDP傳送數據較TCP快速,系統開銷也少。 5、由於缺乏擁塞控制(congestion control),需要基於網路的機制來減小因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP發送者不能夠檢測擁塞,所以像使用包隊列和丟棄技術的路由器這樣的網路基本設備往往就成為降低UDP過大通信量的有效工具。數據報擁塞控制協議(DCCP)設計成通過在諸如流媒體類型的高速率UDP流中增加主機擁塞控制來減小這個潛在的問題。 從以上特點可知,UDP提供的是無連接的、不可靠的數據傳送方式,是一種盡力而為的數據交付服務。 相關鏈接 http://www.javvin.com/protocol/rfc768.pdf :User Datagram Protocol(UDP) Specifications http://www.iana.org/assignments/port-numbers :UDP and TCP port numbers 打開方法!你不需要刻意地去打開埠,你用的軟體會自動打開所需要的埠的。 你可以在命令行下輸入「netstat -an」來查看已經打開的埠
採納哦

E. 如何設置路由器的TCP和UDP地址請詳細說明。

一、TCP(傳輸控制協議):
1、提供IP環境下的數據可靠傳輸(一台計算機發出的位元組流會無差錯的發往網路上的其他計算機,而且計算機A接收數據包的時候,也會向計算機B回發數據包,這也會產生部分通信量),有效流控,全雙工操作(數據在兩個方向上能同時傳遞),多路復用服務,是面向連接,端到端的傳輸;
2、面向連接:正式通信前必須要與對方建立連接。事先為所發送的數據開辟出連接好的通道,然後再進行數據發送,像打電話。
3、TCP支持的應用協議:Telnet(遠程登錄)、FTP(文件傳輸協議)、SMTP(簡單郵件傳輸協議)。TCP用於傳輸數據量大,可靠性要求高的應用。
二、UDP(用戶數據報協議,User Data Protocol)
1、面向非連接的(正式通信前不必與對方建立連接,不管對方狀態就直接發送,像簡訊,QQ),不能提供可靠性、流控、差錯恢復功能。UDP用於一次只傳送少量數據,可靠性要求低、傳輸經濟等應用。
2、UDP支持的應用協議:NFS(網路文件系統)、SNMP(簡單網路管理系統)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。
TCP和UDP的總結:
TCP:面向連接、傳輸可靠(保證數據正確性,保證數據順序)、用於傳輸大量數據(流模式)、速度慢,建立連接需要開銷較多(時間,系統資源)。
UDP:面向非連接、傳輸不可靠、用於傳輸少量數據(數據包模式)、速度快。

F. UDP和Socket通信步驟

UDP Server程序
1、編寫UDP Server程序的步驟
(1)使用socket()來建立一個UDP socket,第二個參數為SOCK_DGRAM。
(2)初始化sockaddr_in結構的變數,並賦值。sockaddr_in結構定義:
struct sockaddr_in {
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
這里使用「08」作為服務程序的埠,使用「INADDR_ANY」作為綁定的IP地址即任何主機上的地址。
(3)使用bind()把上面的socket和定義的IP地址和埠綁定。這里檢查bind()是否執行成功,如果有錯誤就退出。這樣可以防止服務程序重復運行的問題。
(4)進入無限循環程序,使用recvfrom()進入等待狀態,直到接收到客戶程序發送的數據,就處理收到的數據,並向客戶程序發送反饋。這里是直接把收到的數據發回給客戶程序。

2、udpserv.c程序內容:
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>

#define MAXLINE 80
#define SERV_PORT 8888

void do_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)
{
int n;
socklen_t len;
char mesg[MAXLINE];

for(;;)
{
len = clilen;
/* waiting for receive data */
n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);
/* sent data back to client */
sendto(sockfd, mesg, n, 0, pcliaddr, len);
}
}

int main(void)
{
int sockfd;
struct sockaddr_in servaddr, cliaddr;

sockfd = socket(AF_INET, SOCK_DGRAM, 0); /* create a socket */

/* init servaddr */
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);

/* bind address and port to socket */
if(bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)
{
perror("bind error");
exit(1);
}

do_echo(sockfd, (struct sockaddr *)&cliaddr, sizeof(cliaddr));

return 0;
}

UDP Client程序
1、編寫UDP Client程序的步驟
(1)初始化sockaddr_in結構的變數,並賦值。這里使用「8888」作為連接的服務程序的埠,從命令行參數讀取IP地址,並且判斷IP地址是否符合要求。
(2)使用socket()來建立一個UDP socket,第二個參數為SOCK_DGRAM。
(3)使用connect()來建立與服務程序的連接。與TCP協議不同,UDP的connect()並沒有與服務程序三次握手。上面我們說了UDP是非連接的,實際上也可以是連接的。使用連接的UDP,kernel可以直接返回錯誤信息給用戶程序,從而避免由於沒有接收到數據而導致調用recvfrom()一直等待下去,看上去好像客戶程序沒有反應一樣。
(4)向服務程序發送數據,因為使用連接的UDP,所以使用write()來替代sendto()。這里的數據直接從標准輸入讀取用戶輸入。
(5)接收服務程序發回的數據,同樣使用read()來替代recvfrom()。
(6)處理接收到的數據,這里是直接輸出到標准輸出上。

2、udpclient.c程序內容:
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <unistd.h>

#define MAXLINE 80
#define SERV_PORT 8888

void do_cli(FILE *fp, int sockfd, struct sockaddr *pservaddr, socklen_t servlen)
{
int n;
char sendline[MAXLINE], recvline[MAXLINE + 1];

/* connect to server */
if(connect(sockfd, (struct sockaddr *)pservaddr, servlen) == -1)
{
perror("connect error");
exit(1);
}

while(fgets(sendline, MAXLINE, fp) != NULL)
{
/* read a line and send to server */
write(sockfd, sendline, strlen(sendline));
/* receive data from server */
n = read(sockfd, recvline, MAXLINE);
if(n == -1)
{
perror("read error");
exit(1);
}
recvline[n] = 0; /* terminate string */
fputs(recvline, stdout);
}
}

int main(int argc, char **argv)
{
int sockfd;
struct sockaddr_in srvaddr;

/* check args */
if(argc != 2)
{
printf("usage: udpclient <IPaddress>\n");
exit(1);
}

/* init servaddr */
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
{
printf("[%s] is not a valid IPaddress\n", argv[1]);
exit(1);
}

sockfd = socket(AF_INET, SOCK_DGRAM, 0);

do_cli(stdin, sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));

return 0;
}

運行例子程序
1、編譯例子程序
使用如下命令來編譯例子程序:
gcc -Wall -o udpserv udpserv.c
gcc -Wall -o udpclient udpclient.c
編譯完成生成了udpserv和udpclient兩個可執行程序。

2、運行UDP Server程序
執行./udpserv &命令來啟動服務程序。我們可以使用netstat -ln命令來觀察服務程序綁定的IP地址和埠,部分輸出信息如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:32768 0.0.0.0:*
udp 0 0 0.0.0.0:8888 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:882 0.0.0.0:*
可以看到udp處有「0.0.0.0:8888」的內容,說明服務程序已經正常運行,可以接收主機上任何IP地址且埠為8888的數據。
如果這時再執行./udpserv &命令,就會看到如下信息:
bind error: Address already in use
說明已經有一個服務程序在運行了。

3、運行UDP Client程序
執行./udpclient 127.0.0.1命令來啟動客戶程序,使用127.0.0.1來連接服務程序,執行效果如下:
Hello, World!
Hello, World!
this is a test
this is a test
^d
輸入的數據都正確從服務程序返回了,按ctrl+d可以結束輸入,退出程序。
如果服務程序沒有啟動,而執行客戶程序,就會看到如下信息:
$ ./udpclient 127.0.0.1
test
read error: Connection refused
說明指定的IP地址和埠沒有服務程序綁定,客戶程序就退出了。這就是使用connect()的好處,注意,這里錯誤信息是在向服務程序發送數據後收到的,而不是在調用connect()時。如果你使用tcpmp程序來抓包,會發現收到的是ICMP的錯誤信息。

G. 使用路由器或者內網的玩家,如何在網路上設置使UDP數據通過

內到外,默認全通
外到內,路由器上做轉發

H. 兩台電腦怎麼樣進行UDP通信

我這里有UDP 的SERVER和CLIENT的代碼,在區域網里設置好IP地址的話,可以實現通信。需要的話可以留下郵箱,

I. 如何開啟路由器的UDP協議傳輸

這個要路由器支持才行。有的不支持。。進路由器內找到UDP..打勾就行。