我想构建一个特定的代理服务器和相应的特定客户端程序。我想定义自己的 tcp 标头选项。这些 tcp 标头选项仅由代理服务器和客户端程序使用。我不想使 tcp 标头选项通用。
我注意到没有使用 TCP 标头选项种类编号 31-252。
http://www.networksorcery.com/enp/protocol/tcp.htm#Options
所以我可以从范围中选择定义我自己的 tcp 头选项,它只被我的代理程序和客户端使用。
但问题是,我怎样才能让一个常规的 tcp 服务器对带有标头选项的 tcp 数据包做出反应?例如,当我使用类似的东西时:
listenfd=socket(AF_INET,SOCK_STREAM,0);
bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
listen(listenfd,1024);
connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);
n = recvfrom(connfd,mesg,1000,0,(struct sockaddr *)&cliaddr,&clilen)
tcp 选项不mesg
正确?那么如何让 tcp 服务器处理我定义的 tcp 选项呢?
tcp 选项协商是如何完成的?例如,SACK。在常规 tcp 服务器上默认启用哪些选项?
是否有与 tcp 标头选项相关的源代码?谢谢!