0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)網(wǎng)絡(luò)包是如何經(jīng)過(guò)應(yīng)用程序的

Linux愛(ài)好者 ? 來(lái)源:平凡人筆記 ? 2023-03-13 09:50 ? 次閱讀

要明白一個(gè)知識(shí)點(diǎn),首先要快速的對(duì)這個(gè)知識(shí)點(diǎn)建立一個(gè)概念模型,有了概念模型之后,再在這個(gè)模型上不斷的去填充一些細(xì)節(jié)的東西,會(huì)有助于我們把握知識(shí)的本質(zhì)。

帶寬是什么?

帶寬是網(wǎng)絡(luò)被發(fā)送的能力,它會(huì)受到網(wǎng)卡復(fù)制網(wǎng)絡(luò)包到內(nèi)核緩沖區(qū)或者搬運(yùn)內(nèi)核緩沖區(qū)的網(wǎng)絡(luò)包到網(wǎng)卡緩沖區(qū)能力的影響,也會(huì)受到接收窗口或擁塞窗口的影響,也就是說(shuō)如果對(duì)端接收能力變小,那么帶寬是不能提升上去的。

當(dāng)整個(gè)網(wǎng)絡(luò)的鏈路變長(zhǎng)以后,網(wǎng)絡(luò)的情況是很復(fù)雜的。網(wǎng)絡(luò)包有可能會(huì)經(jīng)過(guò)多個(gè)路由器或者不同運(yùn)營(yíng)商之間的線路去進(jìn)行數(shù)據(jù)交換,而不同代理商之間的網(wǎng)絡(luò)流量是極其龐大的,它會(huì)導(dǎo)致你的網(wǎng)絡(luò)包產(chǎn)生丟包或者重發(fā)的狀況,針對(duì)于這種情況,平時(shí)在部署服務(wù)節(jié)點(diǎn)時(shí)候,如果有能力在設(shè)計(jì)鏈路的時(shí)候最好能夠避免這種不同代理商之間的網(wǎng)絡(luò)交換,優(yōu)化整個(gè)網(wǎng)絡(luò)傳輸?shù)逆溌愤x擇能力,這也是cdn提供全局加速的一個(gè)原理。

cdn原理是能夠在世界各地部署很多個(gè)節(jié)點(diǎn),然后每個(gè)節(jié)點(diǎn)之間的一個(gè)鏈路選擇是通過(guò)服務(wù)運(yùn)營(yíng)商精心編排過(guò)的,它能夠保證你的整個(gè)網(wǎng)絡(luò)的鏈路是經(jīng)過(guò)優(yōu)化的,能夠讓你的網(wǎng)絡(luò)包更少的產(chǎn)生丟包或者是重發(fā)的狀況。

網(wǎng)絡(luò)包的收發(fā)過(guò)程

我們得明白一個(gè)網(wǎng)絡(luò)包是如何經(jīng)過(guò)應(yīng)用程序的,

b13f35da-bfe6-11ed-bfe3-dac502259ad0.png

一般應(yīng)用程序發(fā)起一個(gè)網(wǎng)絡(luò)請(qǐng)求,這個(gè)網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù)會(huì)寫(xiě)到內(nèi)核的套接字緩沖區(qū)當(dāng)中,然后內(nèi)核會(huì)對(duì)這個(gè)套接字緩沖區(qū)的數(shù)據(jù)去加上tcp頭或udp頭,然后又經(jīng)由ip層,再加上一個(gè)ip頭,中間會(huì)經(jīng)過(guò)防火墻的一系列規(guī)則對(duì)這個(gè)網(wǎng)絡(luò)包進(jìn)行過(guò)濾,看是丟棄還是繼續(xù)往網(wǎng)卡上面去發(fā)送,最終到達(dá)鏈路層之后,這個(gè)網(wǎng)絡(luò)包會(huì)經(jīng)由鏈路層去發(fā)到網(wǎng)卡上的環(huán)形緩沖區(qū)上,最后由網(wǎng)卡發(fā)送到整個(gè)網(wǎng)絡(luò)當(dāng)中,其中每一環(huán)都是有可能會(huì)發(fā)生丟包的。

理解了網(wǎng)絡(luò)包的收發(fā)過(guò)程,建立起了這樣一種概念模型之后,會(huì)有助于我們對(duì)丟包問(wèn)題的排查。

如何去衡量網(wǎng)絡(luò)情況的好壞

對(duì)應(yīng)用服務(wù)進(jìn)行監(jiān)控的時(shí)候,如何去衡量網(wǎng)絡(luò)情況的好壞,一般也用來(lái)衡量硬件資源的好壞。

一個(gè)通用套路,一般我們會(huì)先看一下,在系統(tǒng)層面上網(wǎng)絡(luò)指標(biāo)的一個(gè)表現(xiàn),再看下具體是哪個(gè)進(jìn)程造成這種表現(xiàn)的異常,再去定位到問(wèn)題代碼。

具體對(duì)網(wǎng)絡(luò)而言,如何從系統(tǒng)的層面或者是我們要使用哪些工具去看這個(gè)網(wǎng)絡(luò)的好壞?

從系統(tǒng)層面看網(wǎng)絡(luò)有幾個(gè)重要的指標(biāo),MBS 代表網(wǎng)卡每秒發(fā)送多少或者是接收多少個(gè)M字節(jié),Mbps是每秒多少M(fèi)比特位。通常說(shuō)的帶寬的單位就是Mbps,一般100M帶寬的話換算成MBS等于Mbps除以8。

平時(shí)選擇服務(wù)器節(jié)點(diǎn)的時(shí)候,除了帶寬,還有pps就是每秒發(fā)送、接收包的數(shù)量,它也是有限制的。

當(dāng)我們?cè)谟龅骄W(wǎng)絡(luò)性能問(wèn)題的時(shí)候,首先可以去觀察你的機(jī)器節(jié)點(diǎn)上這兩個(gè)指標(biāo)是否是已經(jīng)達(dá)到了一個(gè)瓶頸的狀態(tài)。如果帶寬只有100Mbps,然后通過(guò)工具查看機(jī)器上面的節(jié)點(diǎn)帶寬,馬上就要超過(guò)這個(gè)值的時(shí)候,很有可能這個(gè)時(shí)候帶寬已經(jīng)成為瓶頸,可能要對(duì)機(jī)器的配額去進(jìn)行升級(jí)。

sar

# 使用sar每一秒統(tǒng)計(jì)一次網(wǎng)絡(luò)接口的活動(dòng)狀況,連續(xù)顯示5次

sar -n DEV 1 5

b157cef6-bfe6-11ed-bfe3-dac502259ad0.png

IFACE是網(wǎng)卡接口名稱(chēng)

rxpck/s、txpck/s 每秒收或發(fā)的數(shù)據(jù)包數(shù)量

rxkB/s、txkB/s 每秒收或發(fā)的字節(jié)數(shù),以kB/s為單位

rxcmp/s、txcmp/s 每秒收或發(fā)的壓縮過(guò)的數(shù)據(jù)包數(shù)量

rxmcst/s 每秒收到的多播(多播是一點(diǎn)對(duì)多點(diǎn)的通信)數(shù)據(jù)包

看完了整個(gè)系統(tǒng)層面的網(wǎng)絡(luò)情況,可以再精細(xì)點(diǎn)的從進(jìn)程的角度去看這個(gè)問(wèn)題。

iftop

# 

yum  -y install libpcap libpcap-devel ncurses ncurses-devel

yum install epel-release

yum install -y iftop

iftop -P

b1bd3034-bfe6-11ed-bfe3-dac502259ad0.png

能夠列出這個(gè)系統(tǒng)里面每一條鏈接的一個(gè)Mbps,能夠找出哪個(gè)ip消耗流量最多。更多的時(shí)候其實(shí)不是系統(tǒng)網(wǎng)絡(luò)達(dá)到瓶頸,而是進(jìn)程處理網(wǎng)絡(luò)包的能力跟不上。

nethogs

yum install nethogs

# 查看進(jìn)程占用帶寬的情況
nethogs ens33

列出每個(gè)進(jìn)程的收發(fā)流量的數(shù)據(jù),找出哪個(gè)進(jìn)程是最消耗流量的,能夠更方便的讓我們?nèi)ザㄎ荒膫€(gè)進(jìn)程出的問(wèn)題。

go trace這個(gè)工具能夠去分析出網(wǎng)絡(luò)調(diào)度帶來(lái)的延遲問(wèn)題,其實(shí)也能夠從側(cè)面去反饋出你的程序在某一塊代碼上面可能是在進(jìn)行頻繁的網(wǎng)絡(luò)調(diào)度,有可能是進(jìn)行頻繁調(diào)度之后,比較消耗帶寬,從而可能間接的反映出延遲會(huì)略有提高,go trace也能夠從讓我們?cè)诰W(wǎng)絡(luò)性能問(wèn)題當(dāng)中能夠比較間接去找出一塊問(wèn)題的代碼。

b1d88956-bfe6-11ed-bfe3-dac502259ad0.png

網(wǎng)絡(luò)性能當(dāng)中比較重要的一個(gè)點(diǎn)就是如何查找你的一個(gè)丟包問(wèn)題,對(duì)于上面的圖[網(wǎng)絡(luò)包傳輸過(guò)程],從上到下依次分析,先看應(yīng)用層,通過(guò)listen這個(gè)方法去監(jiān)聽(tīng)套接字的時(shí)候,在三次握手的時(shí)候,會(huì)有兩個(gè)隊(duì)列,首先服務(wù)器接收到客戶端的syn包的時(shí)候,會(huì)創(chuàng)建一個(gè)半連接隊(duì)列 ,這個(gè)半連接隊(duì)列會(huì)將那些還沒(méi)有完成三次握手但是卻發(fā)送了一個(gè)syn包的這種連接放到里面,會(huì)回復(fù)客戶端一個(gè)syn+ack,客戶端收到了這個(gè)ack和syn包之后,會(huì)回復(fù)給服務(wù)端一個(gè)ack,這個(gè)時(shí)候內(nèi)核就會(huì)將這個(gè)連接放到全連接隊(duì)列,當(dāng)服務(wù)器調(diào)用accept方法的時(shí)候,會(huì)將這條連接從全連接隊(duì)列里取出來(lái),所以這個(gè)時(shí)候涉及了兩個(gè)隊(duì)列,如果這兩個(gè)隊(duì)列滿了的話,就會(huì)可能會(huì)產(chǎn)生丟包的行為。

b1e49c46-bfe6-11ed-bfe3-dac502259ad0.jpg

b208d5ac-bfe6-11ed-bfe3-dac502259ad0.jpg

首先來(lái)看一下半連接隊(duì)列,它是由內(nèi)核參數(shù)決定的,這個(gè)也是可以調(diào)整的。通過(guò)三次握手,才能夠去建立連接,但是由于這種隊(duì)列的機(jī)制很有可能在并發(fā)量大的時(shí)候,會(huì)產(chǎn)生隊(duì)列滿了,然后丟包的行為,所以內(nèi)核提供了一個(gè)tcp_syncookies參數(shù),它能夠去啟用tcp_syncookies這個(gè)機(jī)制,當(dāng)半連接隊(duì)列溢出的時(shí)候,它能夠讓內(nèi)核不直接去丟棄這個(gè)新包,而是回復(fù)帶有syncookie的包,這個(gè)時(shí)候客戶端再去向服務(wù)器進(jìn)行請(qǐng)求的時(shí)候,它會(huì)去驗(yàn)證這個(gè)syncookie,這樣能夠防止半連接隊(duì)列溢出的時(shí)候造成服務(wù)不可用的一個(gè)情況。

如何去確定是由于半連接隊(duì)列溢出導(dǎo)致的丟包?

通過(guò)dmesg去日志里面去搜尋tcp drop,是能夠發(fā)現(xiàn)丟包的情況,dmesg是一個(gè)內(nèi)核的日志記錄,我們能夠從里面去找出一些內(nèi)核的行為,

dmesg|grep "TCP: drop open erquest form"

然后看下全連接隊(duì)列該怎么看,通過(guò)ss命令的話,能夠去看到你的服務(wù)在listen的時(shí)候,全連接隊(duì)列的大小

ss -lnt

# -l 顯示正在監(jiān)聽(tīng) 
# -n 不解析服務(wù)名稱(chēng)
# -t 只顯示 tcp socket

b2193528-bfe6-11ed-bfe3-dac502259ad0.png

對(duì)于你的那個(gè)監(jiān)聽(tīng)服務(wù)而言,它的一個(gè)Send-Q,就是代表當(dāng)前全連接隊(duì)列長(zhǎng)度,也就是當(dāng)前已完成三次握手并等待服務(wù)端 accept() 的 TCP 連接。Recv-Q是指當(dāng)前全連接隊(duì)列的大小,上面的輸出結(jié)果說(shuō)明監(jiān)聽(tīng) 9000 端口的 TCP 服務(wù),最大全連接長(zhǎng)度為 128。Recv-Q一般都是為0,如果存在一種大于0的情況并且會(huì)持續(xù)一個(gè)較長(zhǎng)時(shí)間的話,就說(shuō)明你的服務(wù)處理連接的能力比較慢了,會(huì)導(dǎo)致全連接隊(duì)列過(guò)滿或者丟棄,這個(gè)時(shí)候應(yīng)該會(huì)加快你的服務(wù)處理連接的能力。

ss命令對(duì)于狀態(tài)為ESTAB的連接,它看的不是你這個(gè)監(jiān)聽(tīng)服務(wù),而是去看一條已經(jīng)建立好的連接相關(guān)指標(biāo),Recv-Q是代表收到但未被應(yīng)用程序讀取的一個(gè)字節(jié)數(shù),Send-Q已發(fā)送但未收到確認(rèn)的字節(jié)數(shù),通過(guò)這兩個(gè)指標(biāo),能夠去看到是應(yīng)用程序?qū)σ粋€(gè)數(shù)據(jù)的處理能力慢,還是說(shuō)是客戶端對(duì)接收的數(shù)據(jù)處理的比較慢的情況,一般這兩個(gè)值也都是為0,如果有其中一個(gè)不為0 ,你可能要去排查一下是客戶端的問(wèn)題還是服務(wù)器的問(wèn)題。

當(dāng)全連接隊(duì)列滿了之后,內(nèi)核默認(rèn)會(huì)將包丟棄,但是也已可指定內(nèi)核的一個(gè)其他行為,如果是將tcp_abort_on_overflow這個(gè)值設(shè)為1的話,那會(huì)直接發(fā)一個(gè)reset的包給客戶端,直接將這個(gè)連接斷開(kāi)掉,表示廢掉這個(gè)握手過(guò)程和這個(gè)連接。

經(jīng)過(guò)應(yīng)用層之后,網(wǎng)絡(luò)包會(huì)到達(dá)到傳輸層,傳輸層會(huì)有防火墻的存在,如果防火墻開(kāi)啟的話,那和防火墻有關(guān)的連接跟蹤表:nf_conntrack這個(gè)是linux為每個(gè)經(jīng)過(guò)內(nèi)核網(wǎng)絡(luò)棧的數(shù)據(jù)包,會(huì)生成一個(gè)連接的記錄項(xiàng),當(dāng)服務(wù)器處理過(guò)多時(shí),這個(gè)連接記錄項(xiàng)所在的連接跟蹤表就會(huì)被打滿,然后服務(wù)器就會(huì)丟棄新建連接的數(shù)據(jù)包,所以有時(shí)候丟包有可能是防火墻的連接跟蹤表設(shè)計(jì)的太小了。

那如何去看連接跟蹤表的大小呢

# 查看nf_conntrack表最大連接數(shù)

cat /proc/sys/net/netfilter/nf_conntrack_max

# 查看nf_conntrack表當(dāng)前連接數(shù)

cat /proc/sys/net/netfilter/nf_conntrack_count

b2556e62-bfe6-11ed-bfe3-dac502259ad0.png

通過(guò)這個(gè)文件看連接跟蹤表的一個(gè)最大連接數(shù)nf_conntrack_max,所以在丟包的時(shí)候,可以對(duì)這一部分去進(jìn)行排查,看下連接跟蹤表是不是被打滿了。

網(wǎng)絡(luò)包經(jīng)過(guò)傳輸層之后,再來(lái)看網(wǎng)絡(luò)層和物理層,提到網(wǎng)絡(luò)層和物理層,就要看網(wǎng)卡了,通過(guò)netstat命令,能夠去看整個(gè)機(jī)器上面網(wǎng)卡的丟包和收包的情況。

RX-DRP這個(gè)指標(biāo)數(shù)據(jù),如果它大于0,說(shuō)明這個(gè)網(wǎng)卡是有丟包情況,這里記錄的是從開(kāi)機(jī)到目前為止的數(shù)據(jù)情況,所以在分析的時(shí)候,隔一定的時(shí)間去看這個(gè)指標(biāo)是否有上漲。

RX-OVR指標(biāo)說(shuō)明這個(gè)網(wǎng)卡的環(huán)形緩沖區(qū)滿了之后產(chǎn)生的丟棄行為。

通過(guò)netstat能夠分析網(wǎng)卡丟包的情況,

# netstat可以統(tǒng)計(jì)網(wǎng)路丟包以及環(huán)形緩沖區(qū)溢出

netstat -i

b2653efa-bfe6-11ed-bfe3-dac502259ad0.png

netstat還能夠統(tǒng)計(jì)網(wǎng)絡(luò)協(xié)議層的丟包情況,

b2f30a14-bfe6-11ed-bfe3-dac502259ad0.png

MTU

應(yīng)用層的網(wǎng)絡(luò)包通過(guò)網(wǎng)絡(luò)層的時(shí)候會(huì)根據(jù)數(shù)據(jù)包的大小去進(jìn)行分包發(fā)送。

當(dāng)tcp數(shù)據(jù)包的大小發(fā)送網(wǎng)絡(luò)層之后,網(wǎng)絡(luò)層發(fā)現(xiàn)這個(gè)包會(huì)大于它的mtu值,這個(gè)數(shù)據(jù)包會(huì)進(jìn)行一個(gè)分包的操作。在進(jìn)行網(wǎng)卡設(shè)置的時(shí)候,會(huì)設(shè)置為你的傳輸層包,如果大于了mtu這個(gè)值,那就可以直接將這個(gè)網(wǎng)絡(luò)包丟棄,這也是在現(xiàn)實(shí)生活中經(jīng)常會(huì)碰到的一個(gè)丟包問(wèn)題。

所以你在檢查鏈路的時(shí)候,通常鏈路長(zhǎng)了可能不太好排查,鏈路短一點(diǎn),可能會(huì)很容易看到整條鏈路當(dāng)中mtu的情況,看一下是不是每條鏈路上對(duì)應(yīng)的每個(gè)網(wǎng)卡的mtu指標(biāo)是不一樣的,如果不一樣的話,有可能會(huì)造成你的丟包問(wèn)題,因?yàn)橐粋€(gè)包的轉(zhuǎn)發(fā)跟網(wǎng)絡(luò)上面設(shè)置的mtu值大小有關(guān)系,比如設(shè)置為大于mtu之后會(huì)把這個(gè)包給丟棄掉。如果發(fā)送的mtu包的大小超過(guò)網(wǎng)卡規(guī)定的大小,并且網(wǎng)卡不允許分片,那么則會(huì)產(chǎn)生丟包。








審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)絡(luò)協(xié)議

    關(guān)注

    3

    文章

    270

    瀏覽量

    21584
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3738

    瀏覽量

    114109
  • UDP協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    12717
  • MBS
    MBS
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    8300
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4257

原文標(biāo)題:如何排查網(wǎng)絡(luò)丟包問(wèn)題

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于UDP協(xié)議的網(wǎng)絡(luò)通信應(yīng)用程序

    )嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(8)TCP-IP網(wǎng)絡(luò)通信應(yīng)用程序(TCP-Server) 相比起TCP/IP協(xié)議的可靠,面向連接,基于字節(jié)流通信這些特性,UDP協(xié)議是種...
    發(fā)表于 11-05 08:29

    基于TCP/IP的網(wǎng)絡(luò)通信應(yīng)用程序分享

    網(wǎng)絡(luò)通信應(yīng)用程序(TCP-Client)本章節(jié),將以服務(wù)端的角色進(jìn)行講解,如何開(kāi)發(fā)個(gè)TCP服務(wù)端(TCP-Server)。目標(biāo):使用QT提供的TCP/IP
    發(fā)表于 12-23 08:12

    OpenHarmony應(yīng)用程序包整體說(shuō)明

    用戶應(yīng)用程序泛指運(yùn)行在設(shè)備的操作系統(tǒng)之上,為用戶提供特定服務(wù)的程序,簡(jiǎn)稱(chēng)“應(yīng)用”。個(gè)應(yīng)用所對(duì)應(yīng)的軟件文件,稱(chēng)為“
    發(fā)表于 09-20 15:34

    proteus8.6應(yīng)用程序安裝免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是proteus8.6應(yīng)用程序安裝免費(fèi)下載。
    發(fā)表于 08-01 08:00 ?91次下載
    proteus8.6<b class='flag-5'>應(yīng)用程序</b>安裝<b class='flag-5'>包</b>免費(fèi)下載

    Protel DXP軟件安裝應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Protel DXP軟件安裝應(yīng)用程序免費(fèi)下載,防局域網(wǎng)沖突。
    發(fā)表于 03-09 08:00 ?0次下載
    Protel DXP軟件安裝<b class='flag-5'>包</b><b class='flag-5'>應(yīng)用程序</b>免費(fèi)下載

    演示個(gè)基本的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)照明應(yīng)用程序

    Sense 2板建立個(gè)藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)。將供應(yīng)兩塊板作為燈,塊板作為開(kāi)關(guān)。由Silicon Labs開(kāi)發(fā)的藍(lán)牙網(wǎng)狀智能手機(jī)應(yīng)用程序,可以控
    的頭像 發(fā)表于 06-15 11:13 ?2042次閱讀

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(1)第一個(gè)嵌入式QT應(yīng)用程序

    一個(gè)嵌入式QT應(yīng)用程序在成功安裝 Qt Creator 開(kāi)發(fā)環(huán)境后,我們通過(guò)個(gè)簡(jiǎn)單的嵌入式Qt應(yīng)用程序,來(lái)說(shuō)明
    發(fā)表于 11-01 17:21 ?16次下載
    嵌入式Linux<b class='flag-5'>應(yīng)用程序</b>開(kāi)發(fā)-(1)第<b class='flag-5'>一個(gè)</b>嵌入式QT<b class='flag-5'>應(yīng)用程序</b>

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(9)UDP網(wǎng)絡(luò)通信應(yīng)用程序(UDP-Socket)

    )嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(8)TCP-IP網(wǎng)絡(luò)通信應(yīng)用程序(TCP-Server) 相比起TCP/IP協(xié)議的可靠,面向連接,基于字節(jié)流通信這些特性,UDP協(xié)議是種...
    發(fā)表于 11-02 12:21 ?35次下載
    嵌入式Linux<b class='flag-5'>應(yīng)用程序</b>開(kāi)發(fā)-(9)UDP<b class='flag-5'>網(wǎng)絡(luò)</b>通信<b class='flag-5'>應(yīng)用程序</b>(UDP-Socket)

    構(gòu)建個(gè)移動(dòng)應(yīng)用程序

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建個(gè)移動(dòng)應(yīng)用程序.zip》資料免費(fèi)下載
    發(fā)表于 07-04 14:33 ?0次下載
    構(gòu)建<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>移動(dòng)<b class='flag-5'>應(yīng)用程序</b>

    OneInstall Windows驅(qū)動(dòng)程序應(yīng)用程序工具

    電子發(fā)燒友網(wǎng)站提供《OneInstall Windows驅(qū)動(dòng)程序應(yīng)用程序工具.exe》資料免費(fèi)下載
    發(fā)表于 07-26 17:34 ?0次下載
    OneInstall Windows驅(qū)動(dòng)<b class='flag-5'>程序</b>和<b class='flag-5'>應(yīng)用程序</b>工具<b class='flag-5'>包</b>

    OneInstall Windows驅(qū)動(dòng)程序應(yīng)用程序工具分享

    電子發(fā)燒友網(wǎng)站提供《OneInstall Windows驅(qū)動(dòng)程序應(yīng)用程序工具分享.exe》資料免費(fèi)下載
    發(fā)表于 07-27 09:29 ?0次下載
    OneInstall Windows驅(qū)動(dòng)<b class='flag-5'>程序</b>和<b class='flag-5'>應(yīng)用程序</b>工具<b class='flag-5'>包</b>分享

    OneInstall驅(qū)動(dòng)程序應(yīng)用程序工具為Windows

    電子發(fā)燒友網(wǎng)站提供《OneInstall驅(qū)動(dòng)程序應(yīng)用程序工具為Windows.exe》資料免費(fèi)下載
    發(fā)表于 08-02 14:58 ?0次下載
    OneInstall驅(qū)動(dòng)<b class='flag-5'>程序</b>和<b class='flag-5'>應(yīng)用程序</b>工具<b class='flag-5'>包</b>為Windows

    OneInstall Windows驅(qū)動(dòng)和應(yīng)用程序工具

    電子發(fā)燒友網(wǎng)站提供《OneInstall Windows驅(qū)動(dòng)和應(yīng)用程序工具.exe》資料免費(fèi)下載
    發(fā)表于 08-03 11:26 ?0次下載
    OneInstall Windows驅(qū)動(dòng)和<b class='flag-5'>應(yīng)用程序</b>工具<b class='flag-5'>包</b>

    如何使用Tokio 和 Tracing模塊構(gòu)建異步的網(wǎng)絡(luò)應(yīng)用程序

    ,并在調(diào)試和故障排除時(shí)提供有用的信息。 在本教程中,我們將介紹如何使用 Tokio 和 Tracing 模塊來(lái)構(gòu)建個(gè)異步的網(wǎng)絡(luò)應(yīng)用程序,并使用 Tracing 來(lái)記錄
    的頭像 發(fā)表于 09-19 15:29 ?724次閱讀

    網(wǎng)絡(luò)問(wèn)題解析

    數(shù)據(jù): 1.應(yīng)用程序的數(shù)據(jù),在TCP層增加TCP報(bào)文頭,形成可傳輸?shù)臄?shù)據(jù)。 2.在IP層增加IP報(bào)頭,形成IP報(bào)文。 3.經(jīng)過(guò)數(shù)據(jù)網(wǎng)卡
    的頭像 發(fā)表于 11-09 15:10 ?943次閱讀
    <b class='flag-5'>網(wǎng)絡(luò)</b>丟<b class='flag-5'>包</b>問(wèn)題解析