软考网络工程师知识点利用TCPIP优化数据传输计算机网络与通信_计算机-网络与通信.pdf
《软考网络工程师知识点利用TCPIP优化数据传输计算机网络与通信_计算机-网络与通信.pdf》由会员分享,可在线阅读,更多相关《软考网络工程师知识点利用TCPIP优化数据传输计算机网络与通信_计算机-网络与通信.pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软考网络工程师知识点:利用 TCP/IP优化数据传输 网络工程师的利用 TCP/IP 优化数据传输,减少网络流量当然是非常重要的优化举措之一,不过这种手段也仅仅是实现高性能网络数据传输领域的一个方面。其他 TCP 选项也可能显着提供传输性能同时在某些条件下减少服务器的响应时间延迟。下面就让我们来了解一些此类选项。TCP_DEFER_ACCEPT 我们首先考虑的第 1 个选项是 TCP_DEFER_ACCEPT(这是 Linux 系统上的叫法,其他一些操作系统上也有同样的选项但使用不同的名字)。为了理解 TCP_DEFER_ACCEPT 选项的具体思想,我们有必要大致阐述一下典型的 HTTP 客
2、户/服务器交互过程。请回想下 TCP 是如何与传输数据的目标建立连接的。在网络上,在分离的单元之间传输的信息称为 IP 包(或 IP 数据报)。一个包总有一个携带服务信息的包头,包头用于内部协议的处理,并且它也可以携带数据负载。服务信息的典型例子就是一套所谓的标志,它把包标记代表TCP/IP 协议栈内的特殊含义,例如收到包的成功确认等等。通常,在经过“标记”的包里携带负载是完全可能的,但有时,内部逻辑迫使 TCP/IP 协议栈发出只有包头的 IP 包。这些包经常会引发讨厌的网络延迟而且还增加了系统的负载,结果导致网络性能在整体上降低。现在服务器创建了一个套接字同时等待连接。TCP/IP 式的连
3、接过程就是所谓“3 次握手”。首先,客户程序发送一个设置 SYN 标志而且不带数据负载的 TCP 包(一个 SYN 包)。服务器则以发出带 SYN/ACK 标志的数据包(一个 SYN/ACK 包)作为刚才收到包的确认响应。客户随后发送一个 ACK 包确认收到了第 2 个包从而结束连接过程。在收到客户发来的这个 ACK 包之后,服务器会唤醒一个接收进程等待数据到达。当 3次握手完成后,客户程序即开始把“有用的”的数据发送给服务器。通常,一个 HTTP 请求的量是很小的而且完全可以装到一个包里。但是,在以上的情况下,至少有 4 个包将用来进行双向传输,这样就增加了可观的延迟时间。此外,你还得注意到
4、,在“有用的”数据被发送之前,接收方已经开始在等待信息了。为了减轻这些问题所带来的影响,Linux(以及其他的一些操作系统)在其 TCP 实现中包括了TCP_DEFER_ACCEPT 选项。它们设置在侦听套接字的服务器方,该选项命令内核不等待最后的 ACK 包而且在第 1 个真正有数据的包到达才初始化侦听进程。在发送 SYN/ACK 包之后,服务器就会等待客户程序发送含数据的 IP 包。现在,只需要在网络上传送 3 个包了,而且还显着降低了连接建立的延迟,对 HTTP 通信而言尤其如此。这一选项在好些操作系统上都有相应的对等物。例如,在 FreeBSD 上,同样的行为可以用以下代码实现:/*为
5、明晰起见,此处略去无关代码*/structaccept_filter_argaf=“dataready”,“”;setsockopt(s,SOL_SOCKET,SO_ACCEPTFILTER,&af,sizeof(af);这个特征在 FreeBSD 上叫做“接受过滤器”,而且具有多种用法。不过,在几乎所有的情况下其效果与TCP_DEFER_ACCEPT 是一样的:服务器不等待最后的 ACK 包而仅仅等待携带数据负载的包。要了解该选项及其对高性能 Web 服务器的重要意义的更多信息请参考 Apache 文档上的有关内容。就 HTTP 客户/服务器交互而言,有可能需要改变客户程序的行为。客户程序为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络工程师 知识点 利用 TCPIP 优化 数据传输 计算机网络 通信 计算机 网络
限制150内