pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在套接字上設置不分段 (DF) 標志?

How to set the don#39;t fragment (DF) flag on a socket?(如何在套接字上設置不分段 (DF) 標志?)
本文介紹了如何在套接字上設置不分段 (DF) 標志?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試設置 DF(不分段標志)以使用 UDP 發送數據包.

I am trying to set the DF (don't fragment flag) for sending packets using UDP.

看Richard Steven 的書Volume 1 Unix Network Programming;Sockets Networking API,我找不到如何設置它.

Looking at the Richard Steven's book Volume 1 Unix Network Programming; The Sockets Networking API, I am unable to find how to set this.

我懷疑我會用 setsockopt() 來做,但在第 193 頁的表格中找不到它.

I suspect that I would do it with setsockopt() but can't find it in the table on page 193.

請建議如何做到這一點.

Please suggest how this is done.

推薦答案

您可以使用 setsockopt() 調用來實現,使用 IP_DONTFRAG 選項:

You do it with the setsockopt() call, by using the IP_DONTFRAG option:

int val = 1;
setsockopt(sd, IPPROTO_IP, IP_DONTFRAG, &val, sizeof(val));

這是一個解釋這個的頁面更詳細.

Here's a page explaining this in further detail.

對于 Linux,您似乎必須使用值為 IP_PMTUDISC_DO(或 IP_PMTUDISC_DONT 以將其關閉)的 IP_MTU_DISCOVER 選項:

For Linux, it appears you have to use the IP_MTU_DISCOVER option with the value IP_PMTUDISC_DO (or IP_PMTUDISC_DONT to turn it off):

int val = IP_PMTUDISC_DO;
setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val));

我沒有測試過這個,只是查看了頭文件和一些網絡搜索,所以你需要測試它.

I haven't tested this, just looked in the header files and a bit of a web search so you'll need to test it.

至于是否有另一種方式可以設置 DF 標志:

As to whether there's another way the DF flag could be set:

我在我的程序中找不到強制 DF 標志"的任何地方已設置,但 tcpdump 表明已設置.還有其他方法可以設置嗎?

I find nowhere in my program where the "force DF flag" is set, yet tcpdump suggests it is. Is there any other way this could get set?

從這個優秀的頁面這里:

IP_MTU_DISCOVER: 設置或接收套接字的路徑 MTU 發現設置.啟用后,Linux 將在此套接字上執行 RFC 1191 中定義的路徑 MTU 發現.在所有傳出數據報上都設置了不分段標志.系統范圍的默認值由 ip_no_pmtu_disc sysctl 控制,用于 SOCK_STREAM 套接字,并在所有其他套接字上禁用.對于非 SOCK_STREAM 套接字,用戶有責任將數據打包成 MTU 大小的塊,并在必要時進行重新傳輸.如果設置了此標志(使用 EMSGSIZE),內核將拒絕大于已知路徑 MTU 的數據包.

IP_MTU_DISCOVER: Sets or receives the Path MTU Discovery setting for a socket. When enabled, Linux will perform Path MTU Discovery as defined in RFC 1191 on this socket. The don't fragment flag is set on all outgoing datagrams. The system-wide default is controlled by the ip_no_pmtu_disc sysctl for SOCK_STREAM sockets, and disabled on all others. For non SOCK_STREAM sockets it is the user's responsibility to packetize the data in MTU sized chunks and to do the retransmits if necessary. The kernel will reject packets that are bigger than the known path MTU if this flag is set (with EMSGSIZE).

在我看來,您可以使用 sysctl 設置系統范圍的默認值:

This looks to me like you can set the system-wide default using sysctl:

    sysctl ip_no_pmtu_disc

返回<代碼>錯誤:ip_no_pmtu_disc";在我的系統上是一個未知的密鑰,但它可能被設置在你的系統上.除此之外,我不知道還有什么會影響設置(除了前面提到的 setsockopt()).

returns "error: "ip_no_pmtu_disc" is an unknown key" on my system but it may be set on yours. Other than that, I'm not aware of anything else (other than setsockopt() as previously mentioned) that can affect the setting.

這篇關于如何在套接字上設置不分段 (DF) 標志?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉圖像而不使用 OpenCV 函數)
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設置 SVM 參數)
Convert a single color with cvtColor(使用 cvtColor 轉換單一顏色)
主站蜘蛛池模板: 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 首页|成都尚玖保洁_家政保洁_开荒保洁_成都保洁 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 渗透仪-直剪仪-三轴仪|苏州昱创百科| 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 浙江富广阀门有限公司 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 |