日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入探索LinuxUDP組播技術(shù)(linuxudp組播)

隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,組播技術(shù)在實(shí)現(xiàn)數(shù)據(jù)傳輸方面成為了一種重要的選擇。組播傳輸可以在網(wǎng)絡(luò)中擴(kuò)展,這種技術(shù)可以實(shí)現(xiàn)單一數(shù)據(jù)包同時傳送到多臺主機(jī)的功能,從而減輕了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān)。Linux作為一種流行的操作系統(tǒng),已經(jīng)在組播技術(shù)中得到廣泛應(yīng)用,為了更好的了解和應(yīng)用Linux中的UDP組播技術(shù),下面將對該技術(shù)進(jìn)行深入的探討和介紹。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供文山州網(wǎng)站建設(shè)、文山州做網(wǎng)站、文山州網(wǎng)站設(shè)計、文山州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、文山州企業(yè)網(wǎng)站模板建站服務(wù),10年文山州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

一、什么是組播技術(shù)

組播技術(shù)是指向多個網(wǎng)絡(luò)節(jié)點(diǎn)傳輸消息的技術(shù)。與單播和廣播不同,組播廣播消息只會傳輸?shù)郊尤虢M播組的一組特定節(jié)點(diǎn)而不是傳輸?shù)剿兄鳈C(jī)。組播可以大幅減少傳輸數(shù)據(jù),因為它沒有浪費(fèi)帶寬傳輸不必要的信息。它也可以提高傳輸速度,因為數(shù)據(jù)可以同時傳輸?shù)蕉嗯_主機(jī),這是單播和廣播不能實(shí)現(xiàn)的。

二、linux udp組播技術(shù)

在Linux中,組播可以通過使用UDP(用戶數(shù)據(jù)報協(xié)議)來實(shí)現(xiàn)。UDP是一種面向無連接的傳輸層協(xié)議,它使用簡單,實(shí)現(xiàn)較為容易。同時,與TCP相比,UDP傳輸速度較快。UDP組播使用IP地址來標(biāo)識組播組和組播節(jié)點(diǎn),每個組播組和節(jié)點(diǎn)都有一個唯一的IP地址。利用IP地址來標(biāo)識具體的組播組和節(jié)點(diǎn),可以很方便的實(shí)現(xiàn)組播傳輸。

Linux使用mroute來支持IP多播路由協(xié)議,mroute會將所有加入組播組的節(jié)點(diǎn)關(guān)聯(lián)起來。因此,多播IP地址只能在同一物理網(wǎng)絡(luò)中使用,除非使用IP在網(wǎng)絡(luò)之間路由。

三、如何使用Linux UDP組播技術(shù)

在Linux中進(jìn)行UDP組播需要以下步驟:

1.創(chuàng)建一個多播組:

使用mcast_join來加入/離開多播組。

2.設(shè)置UDP套接字:

在設(shè)置UDP套接字時,需要使用特定的系統(tǒng)調(diào)用。最重要的是使用SOCK_DGRAM類型的套接字。

int sock;

sock = socket(AF_INET, SOCK_DGRAM, 0);

3.綁定UDP套接字:

在綁定UDP套接字時,需要設(shè)置多播地址,端口和接口信息等。

struct sockaddr_in saddr;

memset(&saddr, 0, sizeof(saddr));

saddr.sin_family = AF_INET;

saddr.sin_port = htons(8888);

inet_pton(AF_INET, “233.0.0.1”, &saddr.sin_addr);

4.進(jìn)行數(shù)據(jù)傳輸:

通過sendto函數(shù)實(shí)現(xiàn)UDP組播數(shù)據(jù)傳輸。sendto函數(shù)會將緩沖區(qū)中的數(shù)據(jù)傳輸至多播組中。

char buf[1024] = “UDP Multicast Test”;

sendto(sock, buf, strlen(buf), 0, (struct sockaddr*)&mcast_addr, sizeof(mcast_addr));

五、

組播技術(shù)是一種非常有用的網(wǎng)絡(luò)傳輸技術(shù),它可以實(shí)現(xiàn)數(shù)據(jù)在多臺主機(jī)之間的同時傳輸,從而減輕了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān)。在Linux系統(tǒng)中,可以使用UDP協(xié)議實(shí)現(xiàn)組播傳輸,使用mroute來支持IP多播路由協(xié)議。開發(fā)者們可以根據(jù)自己的實(shí)際需求使用Linux UDP組播技術(shù)來實(shí)現(xiàn)高效、便捷和自由的數(shù)據(jù)傳輸。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220

Linux使用TPROXY進(jìn)行UDP的透明代理

在進(jìn)行TCP的代理時,只要在旁帶NET表上無腦進(jìn)行REDIRECT就好了。例如使用ss-redir,你只要把tcp的流量redirect到ss-redir監(jiān)聽的端口上就OK了。但是當(dāng)你使用這種方法的時候,就會不正常,因為對于UDP進(jìn)行redirect之后,原始的目的地址和端口就找不到了。

這是為什么呢?

ss-redir的原理很簡單:使肆橋用iptables對PREROUTING與OUTPUT的TCP/UDP流量進(jìn)行REDIRECT(REDIRECT是DNAT的特例),ss—redir在捕獲網(wǎng)絡(luò)流量后,通過一些技術(shù)手段獲取REDIRECT之前的目的地址(dst)與端口(port),連同網(wǎng)絡(luò)流量一起轉(zhuǎn)發(fā)至遠(yuǎn)程服務(wù)器。

針對TCP連接,的確是因為Linux Kernel連接跟蹤機(jī)制的實(shí)現(xiàn)才使獲取

數(shù)據(jù)包

原本的dst和port成為可能,但這種連接跟蹤機(jī)制并非只存在于TCP連接中,UDP連接同樣存在,conntrack -p udp便能看到UDP的連接跟蹤記錄。內(nèi)核中有關(guān)TCP與UDP的NAT源碼/net/netfilter/nf_nat_proto_tcp.c和/net/netfilter/nf_nat_proto_udp.c幾乎一模一樣,都是根據(jù)NAT的類型做SNAT或DNAT。

那這究竟是怎么一回事?為什么對于UDP連接就失效了呢?

回過頭來看看ss-redir有關(guān)獲取TCP原本的dst和port的源碼,核心函數(shù)是getdestaddr:

在內(nèi)核源碼中搜了下有關(guān)SO_ORIGINAL_DST的東西,裂啟猛看到了getorigdst:

We only do TCP and SCTP at the moment。Oh,shit!只針對TCP與SCTP才能這么做,并非技術(shù)上不可行,只是人為地阻止罷了。

為了在redirect UDP后還能夠獲取原本的dst和port,ss-redir采用了TPROXY。Linux系統(tǒng)有關(guān)TPROXY的設(shè)置是以下三條命令:

大意就是在mangle表的PREROUTING中為每個UDP數(shù)據(jù)包打上0x2333/0x2333標(biāo)志,之后在路由選擇中將具有0x2333/0x2333標(biāo)志的數(shù)據(jù)包投遞到本地環(huán)回設(shè)備上的1080端口;對監(jiān)聽0.0.0.0地址的1080端口的socket啟用IP_TRANSPARENT標(biāo)志,使IPv4路由能夠?qū)⒎潜緳C(jī)的數(shù)據(jù)報投遞到

傳輸層

,傳遞給監(jiān)聽1080端口的ss-redir。IP_RECVORIGDSTADDR與IPV6_RECVORIGDSTADDR則表示獲取送達(dá)數(shù)據(jù)包的dst與port。

可問題來了:要知道m(xù)angle表并不會修改數(shù)據(jù)包,那么TPROXY是如何做到在不修改數(shù)據(jù)包的前提下將非本機(jī)dst的數(shù)據(jù)包投遞到換回設(shè)備上的1080端口呢?

這個問題在內(nèi)核中時如何實(shí)現(xiàn)的,還待研究,但是確定是TPROXY做了某些工作。

TPROXY主要功能:

TPROXY要解決的兩個重要的問題

參考:

關(guān)于linux udp組播的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計算機(jī)網(wǎng)絡(luò)、設(shè)計、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!


當(dāng)前標(biāo)題:深入探索LinuxUDP組播技術(shù)(linuxudp組播)
網(wǎng)頁地址:http://www.dlmjj.cn/article/djdhspd.html