【发布时间】:2011-05-10 15:03:18
【问题描述】:
问题跟进packet fragmentation for raw sockets
如果我有一个这样实现的原始套接字:
if ((sip_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0)
{
cout << "Unable to create the SIP sockets."<< sip_socket<<" \n";
return -3;
}
if ( setsockopt(sip_socket, IPPROTO_IP, IP_HDRINCL, &one, sizeof(one)) == -1)
{
cerr << "Unable to set option to Raw Socket.\n";
return -4;
};
如果我有一个大小为 1756 的数据包(不包括 IP 标头),我如何设置 ipHdr->fragment_offset(16 位,包括 3 位标志)?
我是否需要准备两个数据包——一个大小为 1480,另一个大小为 276,然后在两个数据包上打 IP 标头?
谁能指出一个示例代码?
【问题讨论】:
标签: c++ sockets udp fragmentation