- 论坛徽章:
- 0
|
回复 147# 冬瓜头
冬瓜头 发表于 2014-05-20 08:53
关于tcpip运行在host内核还是运行在芯片firmware里更快的问题。个人肤浅理解,还请廖博指正,这也是一直以来 ...
看来还是逃不脱对这个问题展开讨论。
我们看看Wikipedia 怎么说:
TCP is a complex protocol. However, while significant enhancements have been made and proposed over the years, its most basic operation has not changed significantly since its first specification RFC 675 in 1974, and the v4 specification RFC 793, published in September 1981. RFC 1122, Host Requirements for Internet Hosts, clarified a number of TCP protocol implementation requirements. RFC 2581, TCP Congestion Control, one of the most important TCP-related RFCs in recent years, describes updated algorithms that avoid undue congestion. In 2001, RFC 3168 was written to describe explicit congestion notification (ECN), a congestion avoidance signaling mechanism.
The original TCP congestion avoidance algorithm was known as "TCP Tahoe", but many alternative algorithms have since been proposed (including TCP Reno, TCP Vegas, FAST TCP, TCP New Reno, and TCP Hybla).
TCP Interactive (iTCP) [28] is a research effort into TCP extensions that allows applications to subscribe to TCP events and register handler components that can launch applications for various purposes, including application-assisted congestion control.
Multipath TCP (MPTCP) [29][30] is an ongoing effort within the IETF that aims at allowing a TCP connection to use multiple paths to maximise resource usage and increase redundancy. The redundancy offered by Multipath TCP in the context of wireless networks [31]enables statistical multiplexing of resources, and thus increases TCP throughput dramatically. Multipath TCP also brings performance benefits in datacenter environments.[32] The reference implementation[33] of Multipath TCP is being developed in the Linux kernel.[34][35]
TCP Cookie Transactions (TCPCT) is an extension proposed in December 2009 to secure servers against denial-of-service attacks. Unlike SYN cookies, TCPCT does not conflict with other TCP extensions such as window scaling. TCPCT was designed due to necessities of DNSSEC, where servers have to handle large numbers of short-lived TCP connections.
tcpcrypt is an extension proposed in July 2010 to provide transport-level encryption directly in TCP itself. It is designed to work transparently and not require any configuration. Unlike TLS (SSL), tcpcrypt itself does not provide authentication, but provides simple primitives down to the application to do that. As of 2010, the first tcpcrypt IETF draft has been published and implementations exist for several major platforms.
TCP Fast Open is an extension to speed up the opening of successive TCP connections between two endpoints. It works by skipping the three-way handshake using a cryptographic "cookie". It is similar to an earlier proposal called T/TCP, which was not widely adopted due to security issues.[36] As of July 2012, it is an IETF Internet draft.[37]
Hardware implementations[edit]
One way to overcome the processing power requirements of TCP is to build hardware implementations of it, widely known as TCP Offload Engines (TOE). The main problem of TOEs is that they are hard to integrate into computing systems, requiring extensive changes in the operating system of the computer or device. One company to develop such a device was Alacritech.
我发表些谬论供大家参考:
1) TCP 没有一个正则(formal)的单一规范(即以形式语言,或状态机表述)。而是一系列的自然语言的描述文本,有些描述属于需求性的描述而非行为性描述。因此最接近正则描述的就是广为人接受的Linux Kernel中的源代码。由于缺乏正则性描述,而又有诸多需求复杂性,因此,具体实现就成了规范,当然,也就带来了依赖于具体实现的性能局限和开销。比如,恐怕没有人能回答这个问题:TCP单一连接,可否以1Tbps的速率传送数据?因为相关的因素太多,连接的长度?网络延迟, 每一步骤所需的跳变世界,包长?数据长度? ACK的到达时间,是否在不同阶段丢包?
2) TCP在协议栈中所处的核心地位,对上,对下,都耦合了大量其它协议,这些协议是不同的软件模块,因此很难把它单独提取出来硬化。
3) TCP的核心地位,直接影响系统稳定性,兼容性,还直接影响网络协议栈上层和下层的今后发展的耦合关系。因此, Linus要牢牢把握住Kernel 软件对它的绝对掌控,是考虑到这些大局的长远因素。
结论:TCP不能完全硬件化,单一线程TCP的通信速度是不能无限提速的,协议本身已经成为性能瓶颈。想突破这个瓶颈,必须另辟蹊径。
|
|