linux發udp包
UDP協議全稱是用戶數據報協議,在網路中它與TCP協議一樣用於處理數據包,是一種無連接的協議。在OSI模型中,在第四層--傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。UDP用來支持那些需要在計算機之間傳輸數據的網路應用。包括網路視頻會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網路傳輸層協議。
B. 我的linux伺服器成肉雞了,向同一ip地址發送大量的udp包,把我的伺服器資源都消耗光了,怎麼解決,
1連上伺服器 找出發包進程kill掉(這一步做不到可以無視)
2數據備份(有重要數據的話)
3重做系統
4還原數據
5做好安全防護(iptables禁用不用的埠,不需要的服務關閉,升級bash最近有漏洞)
C. linux內核驅動程序怎麼發udp數據包
socket編程只有三種方式TCP、UDP、和RAW。既然你已經知道不是TCP、UDP之類的,那一定就是RAW了,不過RAW是需要root滴...
D. 怎樣在Linux下每分鍾發送一個特定的Udp數據包
在Linux上,編寫一個每秒接收100萬UDP數據包的程序究竟有多難 udp是數據報協議,一次發送只要不超過65535位元組(一般為6000位元組以下才能發送成功),協議棧就加上udp頭一次發送,當然IP層會分片。但接收端肯定是一次收到或者沒收到
E. 為什麼linux UDP包只能發送4096
有沒有問過接收端那邊的設置呢。從理論上來說,UDP數據的總長度為 65535(IP最大長度)-20(IP頭)-8(UDP頭) = 65507個位元組,但大多數系統都達不到這個長度。這一般是受到兩個方面的因素限制:
1) 應用程序編程介面限制。一般socket的緩沖區大小是8K,但都提供API來設置緩沖區的大小(SetSockOpt)。一般發送UDP最好不要超過512位元組,這樣基本可以保證不丟包(因為大部分網路和主機的MTU都大於512).
2) TCP/IP內核的限制。可能存在一些實現特性使得IP長度不能達到65535。
由於IP能夠發送或接收特定長度的數據報並不意味著接收應用程序可以讀取該長度的數據。因此,UDP編程介面允許應用程序指定每次返回的最大位元組數。如果接收到的數據報長度大於應用程序所能處理的長度,那麼會發生什麼情況呢?典型的Berkeley版socket API對數據報進行截斷,並丟棄任何多餘的數據;SVR4下的socket API(包括Solaris 2.x) 並不截斷數據報。超出部分數據在後面的讀取中返回。它也不通知應用程序從單個UDP數據報中多次進行讀取操作;TLI API不丟棄數據。相反,它返回一個標志表明可以獲得更多的數據,而應用程序後面的讀操作將返回數據報的其餘部分。
UDP不會分片,分片是IP層做的事,而且分片重組也是IP層負責的。
如果用UDP發送數據,數據量最好不要太大,應該避免IP層和鏈路層分包,防止分片丟失,導致整個UDP數據包丟失
F. 在linux下如何每隔30s發送一個使用udp協議的包
每隔30秒可以通過crontab實現
發送udp你可以自己用命令實現或者寫程序實現
設置crontab每隔30秒調用這個命令,就可以達到你說的要求了
自己網上看crontab的資料吧,配置文件在/etc/crontab
G. linux udp 如何發數據包 我要發送一個5M左右的數據,如何實現分片發送 或者分包發送
這個- - 肯定得自定義私有報文頭,然後組裝了。
感覺樓主好像還是新手,很難簡單講清楚啊。
我們說說比如某個下載軟體的udp私有協議,裡面還設計了udp層的3次握手,丟包請求等等。
如果你不考慮丟包,不考慮身份驗證,假設全部能收到,那麼肯定也得設計一個順序欄位。
報文頭(標志、序號)
把數據分割更1024位元組的小段,每個小段都帶著報文頭出去,
接收端收到後,根據報文頭的序號,剔除掉報文頭,把後面每個小段的內容重新組合成5m的時間數據。
不知道你聽明白了沒有- - 如果有編程基礎,實際編程中,不用講自己就明白了,如果沒有基礎,的確挺難說明白的
H. 關於linux下udp廣播包
你確認你的廣播包在eth0和wlan0上都發出了嗎?我估計只在eth0上發了。
教你一個辦法確認,在linux上使用tcpmp 抓包:
tcpmp -i eth0
tcpmp -i wlan0
I. 求教linux向指定目標機器發一個udp包,應該怎麼發呢
用iperf命令
#iperf -u -c 10.32.0.254
-u 就是以udp包發送
-c 就是目標機器ip