簡體   English   中英

在Debian Etch上缺少IP_MTU套接字選項定義?

[英]Missing IP_MTU socket option define on Debian Etch?

我正在嘗試使用IP_MTU套接字選項讀取TCP連接MTU
根據在我的Debian Etch上安裝的man 7 ip (我知道它已經很舊了,但是現在不能更改):

SYNOPSIS
       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <netinet/ip.h> /* superset of previous */
[CUT]
IP_MTU Retrieve the current known path MTU of the current socket.
Only valid when the socket has been  connected.  Returns  an integer.  
Only valid as a getsockopt(2).

問題是上面的套接字選項在手冊頁命名的任何包含文件中都不存在。 (因此我的代碼未編譯;)
相反,我在<linux/in.h>找到了它( grep是您的朋友)
如果我嘗試將<linux/in.h>添加到我的源代碼中, <linux/in.h>各種多重定義/重新聲明編譯錯誤。 有誰知道為什么標頭中缺少上述參數以及如何解決該問題?
非常感謝
塞爾吉奧

答案是:我認為沒有答案。 我正在運行Red Hat Enterprise Linux AS版本4(Nahant Update 8),並且遇到了完全相同的問題:

  • 男子7 ip說我可以查詢MTU
  • grep -Re IP_MTU / usr / include / *表示該宏僅存在於linux / in.h中
  • 我無法使用linux / in.h或出現大量錯誤

因此,我想唯一要做的就是通過設置MTU發現,不斷調整MTU並觀察內核在嘗試發送太大消息時關閉您的方法來解決。 那就是我要做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM