反向编程指南.pdf

上传人:H****o 文档编号:56648626 上传时间:2022-11-02 格式:PDF 页数:7 大小:128.43KB
返回 下载 相关 举报
反向编程指南.pdf_第1页
第1页 / 共7页
反向编程指南.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《反向编程指南.pdf》由会员分享,可在线阅读,更多相关《反向编程指南.pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、反向隔离装置编程指南一 反向隔离装置密钥协商原理密钥协商主要针对IP 通道,而非 TCP,UDP 通道,也就是说针对机器而非具体应用。密钥协商主要采用UDP 报文进行,具体原理如下:1、外网网关机产生随机数r1,作:A=ECert2(r1)ESkey1(H(r1),将A发送到反向隔离装置;2、反向隔离装置对 A解密并验证外网网关机的签名,产生随机数r2,作:B=ECert1(r2)ESkey2(H(r2),将B发送到外网网关机;3、外网网关机对 B 解密并验证反向隔离装置的签名;4、双方分别合成会话密钥 DK:DK=r1r2。二 密钥协商 DLL 原理应用程序DLL隔离装置12启动 IKE获取

2、共享密钥DLL 里面没有定时协商密钥的时间(即更新密钥时间),用户如果需要重新协商的话,则要调用接口函数重新启动IKE。三 DLL 使用说明头文件包含函数:#define DLL_IMPORT extern C _declspec(dllimport)初始化函数:DLL_IMPORT int InitializeIKE(LPCSTR ip,LPCSTR fname1,LPCSTR fname2);返回值:应该为 1 fname1 隔离装置公钥fname2 网关机私钥如果返回值为 1,则输入的文件路径不对!获取共享密钥函数:DLL_IMPORT int GetShareKey(LPCSTR ke

3、y);返回值:如果为 1,则需要重新协商如果为 3,获取密钥成功具体使用 DLL 的样例 Test 里有使用的具体过程。1加载 DLL hDLL=LoadLibrary(ike.dll);/加载动态链接库 ike.dll文件;if(hDLL=NULL)return;2启动 IKE pInitializeIKE InitializeIKE;if(hDLL=NULL)return;InitializeIKE=(pInitializeIKE)GetProcAddress(hDLL,InitializeIKE);InitializeIKE(m_IP,fname1,fname2);/必须由用户提供3获取

4、共享密钥unsignedchar sharekey8;pGetShareKey GetShareKey;if(hDLL=NULL)return;GetShareKey=(pGetShareKey)GetProcAddress(hDLL,GetShareKey);int i=GetShareKey(LPCSTR)sharekey);if(i!=3)AfxMessageBox(Error for GetKey!n);4释放 DLL 文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4

5、L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V

6、4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6

7、V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F

8、6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10

9、F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R1

10、0F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R

11、10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7if(hDLL=NULL)return;FreeLibrary(hDLL);/卸载 IKE.dll 文件;四 其他问题DLL 功能目前暂定为上面的这些,但是随着用户的使用,可能作相应的调整,但整个框架不变。Dll 里面采用socket 进行

12、密钥协商,所以在配置隔离装置的时候增加一条规则(协议 UDP 端口5555)。五 数据加密头文件 des.h 库:syskeeper.lib 得到通讯密钥以后,就可以加密数据了!在des.h 我们提供封装的两个加密函数,分别针对TCP和UDP.int processTcpData(unsigned char*out,unsigned char*in,int inlen,unsigned char*key);返回值:为加密的数据的长度参数说明:unsigned char*out:为经过密钥加密的数据;unsigned char*in :为用户准备发送的数据;int inlen :为用户准备发送的

13、数据的长度;unsigned char*key:为使用 DLL 协商的密钥;int processUdpData(unsigned char*out,unsigned char*in,int inlen,unsigned char*key);unsigned char*out:为经过密钥加密的数据;unsigned char*in :为用户准备发送的数据;int inlen :为用户准备发送的数据的长度;unsigned char*key:为使用 DLL 协商的密钥;void OnSendData()/举例unsigned char Msg3000;unsigned char outMsg30

14、24;/should bigger 3000+3*8 文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5

15、F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B

16、5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10

17、B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A1

18、0B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A

19、10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6

20、A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7int outle

21、n;/Msg is to be sent!memset(Msg,a,3000);outlen=processUdpData(outMsg,Msg,3000,key);int ret=m_hSock.SendTo(outMsg,outlen,1001,10.144.100.201);编程要点:1用 UDP 发送数据,每次长度不能大于60000,UDP 的最大长度 65535,但是为了隔离装置的安全性,规定加密后每次长度不能大于60,000。2在进行加密的时候,输出的加密数据由于在某些地方增加了负载处理,所以输出的 buffer 长度(len2)要大于输入的长度(len1),具体的增加长度可以参考

22、 processUdpData 和 processTcpData 两个函数。为了方便编程,我们将buffer 的长度设置为 len2=len1+(len1/1000)*8;3用 TCP 发送数据,为了防止系统将数据Nagle 化,也就是将连续发送的报文组装成一个报文,建议设置套接字选项const int TCPNODELAY=true;if(setsockopt(ServerSocket,IPPROTO_TCP,TCP_NODELAY,(const char*)&TCPNODELAY,sizeof(TCPNODELAY)=SOCKET_ERROR)printf(Set TCP_NODELAY

23、failed.Error:%d,WSAGetLastError();return;具体细节参考附录2。4加密数据要调用#include des.h 和库 syskeeper.lib 附录1:TCP socket 选项 文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 H

24、Y1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2

25、HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2

26、 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F

27、2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5

28、F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B

29、5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10

30、B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7尽管有许多 TCP 选项可供程序员操作,而我们却最关注如何处置其中的TCP_NODELAY,这个选项都对网络连接的行为具有重要的作用。许多系统都实现了 TCP_NODELAY选项。TCP_NODELAY 基本上控制了包的“Nagle 化”,Nagle 化在这里的含义是采用 Nagle 算法把较小的包组装为更大的帧。John Nagle是 Nagle 算法的发明人,后者就是用他的名字来命名的,他在1984 年首次用这种方法来尝试解决福特汽车公司的网络拥

31、塞问题(欲了解详情请参看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome,中文称“愚蠢窗口症候群”,具体含义是,因为普遍终端应用程序每产生一次击键操作就会发送一个包,而典型情况下一个包会拥有一个字节的数据载荷以及40 个字节长的包头,于是产生 4000%的过载,很轻易地就能令网络发生拥塞,。Nagle 化后来成了一种标准并且立即在因特网上得以实现。它现在已经成为缺省配置了,但在我们看来,有些场合下把这一选项关掉也是合乎需要的。现在让我们假设某个应用程序发出了一个请求,希望发送小块数据。我们可以选择立即发送数据或者等待产生更多的数据然后再一次发送两种策

32、略。如果我们马上发送数据,那么交互性的以及客户/服务器型的应用程序将极大地受益。例如,当我们正在发送一个较短的请求并且等候较大的响应时,相关过载与传输的数据总量相比就会比较低,而且,如果请求立即发出那么响应时间也会快一些。以上操作可以通过设置套接字的TCP_NODELAY选项来完成,这样就禁用了Nagle 算法。假设应用程序使用sendfile()函数来转移大量数据。应用协议通常要求发送某些信息来预先解释数据,这些信息其实就是报头内容。典型情况下报头很小,而且套接字上设置了TCP_NODELAY。有报头的包将被立即传输,在某些情况下(取决于内部的包计数器),因为这个包成功地被对方收到后需要请求

33、对方确认。这样,大量数据的传输就会被推迟而且产生了不必要的网络流量交换。不幸的是,许多常用的程序并没有考虑到以上问题。例如,Eric Allman编写的 sendmail就没有对其套接字设置任何选项。Apache HTTPD是因特网上最流行的Web 服务器,它的所有套接字就都设置了文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9

34、 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F

35、9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10

36、F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I1

37、0F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I

38、10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2

39、I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O

40、2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7TCP_NODELAY 选项,而且其性能也深受大多数用户的满意。这是为什么呢?答案就在于实现的差别之上。由BSD 衍生的 TCP/IP 协议栈(值得注意的是FreeBSD)在这种状况下的操作就不同。当在TCP_NODELAY 模式下提交大量小数据块传输时,大量信息将按照一次write()函数调用发送一块数据的方式发送出去。然而,因为负责请求交付确认的记数器是面向字节而非面向包(在 Lin

41、ux 上)的,所以引入延迟的概率就降低了很多。结果仅仅和全部数据的大小有关系。而Linux 在第一包到达之后就要求确认,FreeBSD 则在进行如此操作之前会等待好几百个包。在 Linux 系统上,TCP_NODELAY的效果同习惯于 BSD TCP/IP协议栈的开发者所期望的效果有很大不同,而且在Linux 上的 Apache 性能表现也会更差些。其他在Linux 上频繁采用 TCP_NODELAY 的应用程序也有同样的问题。附录 2:示例程序 1UDP测试 文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O

42、2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7

43、O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q

44、7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1

45、Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY

46、1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 H

47、Y1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2

48、HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L72TCP测试使用说明:1)加载 DLL:hDll 如果为空,加载失败;2)启动 IKE 协商:如果返回值为 1,公私路径有错;3)获取密钥:如果范围值为1,则需要重新协商;4)释放 DLL:每次不再发送数据

49、,请释放DLL;5)发送数据:可以根据自己需要修改示例程序;6)如果需要定时更新密钥则重复14 步骤;7)如果一台主机有多个应用,则要考虑将步骤3 获得的密钥分发给多个应用!8)再使用测试样例的时候,一定要配置隔离装置。UDP 端口为 9999,TCP 的端口为 8001。文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7

50、R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD7R10F6V4L7文档编码:CW4Q6A10B5F2 HY1Q7O2I10F9 ZD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com