參照這篇部落格:
* 檢視主機當前網絡卡,哪塊在使用.
ifconfig
lo0: flags=8049mtu 16384
options=3inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=1gif0: flags=8010mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863mtu 1500
ether a4:5e:60:d6:57:17
inet6 fe80::a65e:60ff:fed6:5717%en0 prefixlen 64 scopeid 0x4
inet 192.168.16.103 netmask 0xffffff00 broadcast 192.168.16.255
nd6 options=1media: autoselect
status: active
en1: flags=963mtu 1500
options=60ether 4a:00:01:33:73:10
media: autoselect status: inactive
en2: flags=963mtu 1500
options=60ether 4a:00:01:33:73:11
media: autoselect status: inactive
p2p0: flags=8843mtu 2304
ether 06:5e:60:d6:57:17
media: autoselect
status: inactive
awdl0: flags=8943mtu 1484
ether 7a:00:b6:6c:ea:a0
inet6 fe80::7800:b6ff:fe6c:eaa0%awdl0 prefixlen 64 scopeid 0x8
nd6 options=1media: autoselect
status: active
bridge0: flags=8822
mtu 1500
options=63ether a6:5e:60:6d:62:00
configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x2
member: en1 flags=3ifmaxaddr 0 port 5 priority 0 path cost 0
member: en2 flags=3ifmaxaddr 0 port 6 priority 0 path cost 0
media: status: inactive
ifconfig 輸出
ifconfig en0
en0: flags=8863mtu 1500
ether a4:5e:60:d6:57:17
inet6 fe80::a65e:60ff:fed6:5717%en0 prefixlen 64 scopeid 0x4
inet 192.168.16.103 netmask 0xffffff00 broadcast 192.168.16.255
nd6 options=1media: autoselect
status: active
可以看到en0網絡卡有有效的ip位址net 192.168.16.103, 說明這塊網絡卡在使用, linux環境通常是eth0.
* 建立檔案main.c
#include #include #include #include #include #include #include #include int get_mtu(const char *nic)
close(fd);
return ifr.ifr_mtu;
}int main(int argc, const char * argv)
* 編譯執行
1500
program ended with exit code: 0
得出mtu為1500
* 一些函式原型
#include
int socket(int domain, int type, int protocol);
socket.h
* types
#define sock_stream 1 /* stream socket */
#define sock_dgram 2 /* datagram socket */
#define sock_raw 3 /* raw-protocol inte***ce */
* [xsi] structure used by kernel to store most addresses.
struct sockaddr ifr_ifru;
#define
ifr_addr
ifr_ifru.ifru_addr /* address */
#define
ifr_dstaddr
ifr_ifru.ifru_dstaddr /* other end of p-to-p link */
#define
ifr_broadaddr
ifr_ifru.ifru_broadaddr /* broadcast address */
ioctl -- control device
synopsis
#include
int ioctl(int fildes, unsigned long request, ...);
MTU 最大傳輸單元
maximum transmission unit mtu 最大傳輸單元 pppoe的最大接收單元為1492,乙太網最大載荷為1500 octets,pppoe頭為6 octets,ppp協議id為2 octets,所以ppp的mtu最大不能超過1492 ppoe協議要求所有客戶機上的mtu值不超過...
最大傳輸單元MTU
維基百科,自由的百科全書 本條目沒有列出任何參考或 2015年2月25日 維基百科所有的內容都應該可供查證。請協助新增來自可靠 的引用以改善這篇條目。無法查證的內容可能被提出異議而移除。最大傳輸單元 英語 maximum transmission unit 縮寫mtu 是指一種通訊協議的某一層上面所...
關於最大傳輸單元(MTU)的整理
mtu設定不當,可能會導致許多網路問題,如某些網路應用無法使用,某些 無法訪問等。下面是在網上搜尋整理的關於mtu設定的東西,某些可能未作驗證,僅供參考。1.如何確定網路mtu 某些isp接入的mtu可能會比常規使用的mtu小,這時如果設定了過大的mtu,就可能會導致很多服務無法使用的問題。可以通過...