【发布时间】:2016-01-09 13:58:15
【问题描述】:
1.
socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
Linux 手册页中介绍了此代码。
在socket选项中,如果设置了IP_HDRINCL,我可以制作IP头。我对吗? 对的话,上面的socket也让我做TCP头吧?
那么,如果没有设置IP_HDRINCL,socket上面是什么意思呢?
2.
socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
上面的代码与第一个问题的代码相比是什么意思?
我知道 IPPROTO_RAW 无法接收任何 IP 数据包。在这里,这些套接字只能接收 TCP 数据包,每个 UDP 数据包。(我可以看到 IP 标头,以太网标头吗?) 但是发送呢??这个我不太清楚。
【问题讨论】:
标签: c linux sockets networking