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 轉換單一顏色)
主站蜘蛛池模板: 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 雪花制冰机(实验室雪花制冰机)百科 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 润滑脂-高温润滑脂-轴承润滑脂-食品级润滑油-索科润滑油脂厂家 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 一航网络-软件测评官网 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 小威小说网 - 新小威小说网 - 小威小说网小说搜索引擎 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 平面钻,法兰钻,三维钻-山东兴田阳光智能装备股份有限公司 | 科客,主见不成见| 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 环比机械 |