1.谁有关于“tcp公平性”方面的论文或资料
一种改善TCP 公平性的算法1章淼,吴建平,徐恪(清华大学 计算机科学与技术系,北京 100084)收稿日期:2002-11-04基金项目:国家自然科学基金资助项目(69725003, 90104002, 60203025)作者简介:章淼(1976-),男(汉),浙江,博士研究生。
E-mail: zm@csnet1.cs.tsinghua.edu.cn通讯联系人:徐恪,讲师。E-mail: xuke@csnet1.cs.tsinghua.edu.cn文 摘: 传输控制协议(TCP)是目前在Internet 上使用最广泛的传输协议。
理论和试验表明TCP 连接在一些情况下是不公平的,这些情况包括多拥塞网关、不同的往返延迟和不同报文大小等。该文提出一种“显式公平控制”(EFC)算法来解决这个问题,其主要思想是通过在网关和端系统都增加机制来单独进行公平控制。
在TCP 的报文头中增加一个“速率标签”来携带目前的发送速率,网关可以使用报文头中的这个信息对报文区别对待。试验结果表明EFC算法可以有效的改善TCP 连接的公平性。
该文还讨论了如何在Internet 中逐步使用EFC 算法。关键词:传输控制协议(TCP);公平性;拥塞控制中图分类号: TP393传输控制协议(TCP)是目前Internet 中主要使用的传输协议。
TCP 的一些设计特性使得TCP 连接在一些环境中无法达到公平。TCP 中使用的AIMD算法[1]在反馈延迟不同的情况下无法达到一个公平的平衡点。
TCP 使用的“二值反馈”机制在多拥塞网关的环境下也可以导致不公平的出现。研究表明,一个经过多个拥塞网关的连接只能得到非常低的吞吐量[2]。
Floyd 提出“Constant-Rate”(CR)窗口增加算法[2]来改善TCP 连接在不同往返延迟(RTT)环境下的公平性。每个连接增大窗口的量为a ´RTT ,其中a 是一个常数。
New-ECN[3]在改善公平性方面也使用了类似的思路。CR 和New-ECN 算法都只修改端系统,这使得它们很容易在实际网络中使用,但都无法解决多拥塞网关环境中的不公平问题。
Fair queue[4]和FRED[5]通过在网关中增加机制来改善公平性。它们不需要改变端系统的算法,但在实现上需要使用“单流信息”,在算法的扩展性上存在问题。
本文提出一个“显式公平控制”算法(EFC:Explicit Fairness Control)来改善TCP 的公平性。其主要思想是:通过在端系统和网关中都增加机制来单独进行公平控制。
在TCP 报文头中增加一个“速率标签”(Rate-Tag)来表明TCP 连接当前的发送速率;网关根据发送速率的不同对报文进行区别对待。在算法的设计中,尽量对当前的体系结构只做简单的修改,从而使EFC 算法可以在Internet 中逐步推广使用。
1 背景图1 显示了一个多拥塞网关的典型拓扑结构,其中拥塞的网关为1a, 2a, ⋯, na。假设pi 是在网关ia 处的报文丢失概率,那么连接0 的丢失概率为:Õ== - -nii P p10 1 (1 ) .如果假设p p p p n = = 。
= = 1 2 ,而且p 的值很小,那么:P =1- (1- p) n » np 0 . (1)由于连接0 和其它连接相比经历更多的报文丢失,在其它条件相同的情况下它的性能要比其它连接更差。在实际网络中,一个经过多拥塞网关的连接很有可能经历更大的传播延迟(propagationdelay)和排队延迟(queuing delay),这样它的性能会进一步降低。
在TCP 建模方面的研究为更加准确的评价不同往返延迟和多拥塞网关对TCP 公平性的影响提供了条件。TCP 的一个速率公式为[6]:S 1a 1b 2a 2b na nb 0S1 S2 Sn01 2 nD1 D2 DnD0图1 网络拓扑12) (1 32 )83(332 p p 2ptpRsTRTO + += , (2)其中:T 是TCP 的发送速率,s 是报文大小,R 是往返延迟,p 是稳定状态下的丢失概率,tRTO 是TCP重传时钟的值。
式(2)给出了发送速率的上限。当p很小时,式(2)可以简化为:32 pRsT = . (3)如果2 个连接具有同样的报文大小和丢失概率,但有不同的往返延迟R0 和R1,它们的吞吐量关系为:0110RRTT= . (4)对于多拥塞网关,如果使用式(1),并且不考虑往返延迟的差别,图1 中连接1 和连接0 吞吐量的比值为n 。
式(3)还揭示了报文大小对于TCP 公平性的影响。对于两个往返延迟和报文丢失率相同的连接,如果它们的报文大小不同,它们的吞吐量之间也是不公平的,并且有以下关系:1010ssTT= , (5)其中s0 和s1 分别是两个连接的报文大小。
2 EFC 算法的设计EFC 算法有两个主要设计特点。第一,在网关中使用了单独的公平控制机制。
由网关计算所有通过网关连接的“公平份额”。如果一个连接的发送速率超过“公平份额”,就使用某种拥塞控制机制(如Adaptive RED[7])对这个连接的报文进行处理;如果发送速率低于“公平份额”,这个连接的报文将不受任何影响的转发。
第二,网关通过报文中携带的“速率标签”来获得每个连接的发送速率。通过在报文中携带速率信息,可以避免在网关中保存“单流信息”,从而使算法具有很好的可扩展性。
2.1 端系统的机制为实现EFC 算法,只需要在TCP 的发送端进行简单的修改,在TCP 的接收端不需要任何修改。在TCP 的发送端,当发送一个报文时,在报文头中携带一个“速率标签”来表示连接当前的发送速率。
在拥塞避免阶段,TCP 连接的速率由拥塞窗口的大小(Wcwnd)和往返延迟大小(R)来决定。Rate-Tag的值为:V = Wcwnd / R.在。
2.TCP报文的格式及TCP协议的工作原理
TCP报文格式
源端口和目的端口:都是16个比特,分别表示发送方和接收方的端口号。端口号和IP地址构成套接字(socket)地址的主要内容。源端和目的端的套接字合起来唯一地表示一条连接。网络应用程序在通信时直接向套接字发送和接收数据。
序列号和确认号:都是32位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。
头长度(HLEN):表示TCP报文头的长度。长度以32-bit为单位来计算。所以如果选项部分的长度不是4个字节的整数倍,则要加上填充(padding)。
保留域:紧接在头长度字段后有6个比特,应该把它设置为0。
再后则是6个标志位。标志位特定的含义:
URG(urgent)为紧急数据标志。如果它为1,则表示本数据报中包含紧急数据。此时紧急数据指
针表示的值有效。它表示在紧急数据之后的第一个字节的偏侈值(即紧急数据的总长度)。
ACK(acknowledge)为确认标志位。如果ACK为1,则表示报文中的确认号是有效的。否则,报文
中的确认号无效,接收端可以忽略它。
PSH(push)标志位。被置位后,要求发送方的TCP协议软件马上发送该数据报,接收方在收到数据后也应该立即上交给应用程序,即使其接收缓冲区尚未填满。
RST(reset)标志位。用来复位一条连接。RST标志置位的报文称为复位报文。一般情况下,如果TCP收到的一个报文明显不是属于该主机上的任何个连接,则向远端发送一个复位报文。
SYN(synchronous)标志位。用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据报为连接请求,如SYN=1而ACK=1则表示是接受连接。
FIN(finish)标志位。表示发送方已经没有数据要传输了,希望释放连接。
窗口(window)字段。窗口表示的是从被确认的字节开始,发送方最多可以连续发送的字节的个数。接收方通过设置该窗口值的大小,可以调节源端发送数据的速度,从而实现流控。
校验和(checksum)域。是TCP协议提供的一种检错机制。与我们在前面的章节中学过的UDP协议类似,在计算校验和时不仅要计算TCP报文自身(报文头和数据),还要增加一些额外的信息内容 – 12个字节的“伪包头”。
TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。
在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是“网际网”,它实际上就是将全球各地的局域网连接起来而形成的一个“网之间的网(即网际网)”。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的“世界语”。
TCP/IP协议的开发工作始于70年代,是用于互联网的第一套协议。
3.毕业论文 基于TCP/IP三次握手的端口扫描技术
基于TCP/IP 端口扫描技术 [摘要] 本文讲述了TCP联接的建立过程,以及介绍了一些经典的扫描器以及所谓的SYN扫描器的使用,以及隐藏攻击源的技术,最好介绍了另外一些扫描技术。
考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。
栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 关键字: TCP/IP,UDP,三阶段握手,SYN扫描,FIN扫描,秘密扫描,间接扫描,诱骗扫描,指纹,协作扫描。
-------------------------------------------------------------------------------- 正文: 端口扫描技术 前言 第一部分,我们讲述TCP连接的建立过程(通常称作三阶段握手),然后讨论与扫描程序有关的一些实现细节。 然后,简单介绍一下经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。
第三部分主要讨论间接扫描和秘密扫描,还有隐藏攻击源的技术。 秘密扫描基于FIN段的使用。
在大多数实现中,关闭的端口对一个FIN 段返回一个RST,但是打开的端口通常丢弃这个段,不作任何回答。间接扫描,就像它的名字,是用一个欺骗主机来帮助实施,这台主机通常不是自愿的。
第四部分介绍了一种与应用协议有关扫描。这些扫描器通常利用协议实现中的一些缺陷或者错误。
认证扫描(ident scanning)也被成为代理扫描(proxy scanning)。 最后一部分,介绍了另外一些扫描技术。
考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。
栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 一:TCP/IP相关问题 连接端及标记 IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。
为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。
连接端互相发送数据包。 一个TCP数据包包括一个TCP头,后面是选项和数据。
一个TCP头包含6个标志位。它们的意义分别为: SYN: 标志位用来建立连接,让连接双方同步序列号。
如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。 FIN: 表示发送端已经没有数据要求传输了,希望释放连接。
RST: 用来复位一个连接。RST标志置位的数据包称为复位包。
一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。 URG: 为紧急数据标志。
如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK: 为确认标志位。如果为1,表示包中的确认号时有效的。
否则,包中的确认号无效。 PSH: 如果置位,接收端应尽快把数据传送给应用层。
TCP连接的建立 TCP是一个面向连接的可靠传输协议。面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接。
TCP的可靠性通过校验和,定时器,数据序号和应答来提供。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,TCP协议保证了数据的可靠传输。
数据序号用来保证数据的顺序,剔除重复的数据。在一个TCP会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。
为了了解实现过程,我们假设客户端C希望跟服务器端S建立连接,然后分析连接建立的过程(通常称作三阶段握手): 1: C --SYN XXà S 2: C ?-SYN YY/ACK XX+1------- S 3: C ----ACK YY+1--à S 1:C发送一个TCP包(SYN 请求)给S,其中标记SYN(同步序号)要打开。SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN(XX是一个例子)。
2:服务器端发回应答,包含自己的SYN信息ISN(YY)和对C的SYN应答,应答时返回下一个希望得到的字节序号(YY+1)。 3:C 对从S 来的SYN进行应答,数据发送开始。
一些实现细节 大部分TCP/IP实现遵循以下原则: 1:当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。 2:当一个RST数据包到达一个监听端口,RST被丢弃。
3:当一个RST数据包到达一个关闭的端口,RST被丢弃。 4:当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。
5:当一个SYN位关闭的数据包到达一个监听端口时,数据包被丢弃。 6:当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN ACK数据包。
7:当一个FIN数据包到达一个监听端口时,数据包被丢弃。"FIN行为"(关闭得端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。
所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起"FIN行为"。 二:全TCP连接和SYN扫描器 全TCP连接 全TCP连接是长期以来TCP端口扫描的基础。
扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。连接由系统调用connect()开始。
对于每一个监听端口,。
4.一篇有关TCP/IP局域网的英文论文
(第一篇)这篇简单介绍了TCP/IP协议。
可供参考。What is TCP/IP? TCP/IP (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP.TCP/IP is a two-layer program. The higher layer, Transmission Control Protocol, manages the assembling of a message or file into smaller packets that are transmitted over the Internet and received by a TCP layer that reassembles the packets into the original message. The lower layer, Internet Protocol, handles the address part of each packet so that it gets to the right destination. Each gateway computer on the network checks this address to see where to forward the message. Even though some packets from the same message are routed differently than others, they'll be reassembled at the destination.TCP/IP uses the client/server model of communication in which a computer user (a client) requests and is provided a service (such as sending a Web page) by another computer (a server) in the network. TCP/IP communication is primarily point-to-point, meaning each communication is from one point (or host computer) in the network to another point or host computer. TCP/IP and the higher-level applications that use it are collectively said to be "stateless" because each client request is considered a new request unrelated to any previous one (unlike ordinary phone conversations that require a dedicated connection for the call duration). Being stateless frees network paths so that everyone can use them continuously. (Note that the TCP layer itself is not stateless as far as any one message is concerned. Its connection remains in place until all packets in a message have been received.)Many Internet users are familiar with the even higher layer application protocols that use TCP/IP to get to the Internet. These include the World Wide Web's Hypertext Transfer Protocol (HTTP), the File Transfer Protocol (FTP), Telnet (Telnet) which lets you logon to remote computers, and the Simple Mail Transfer Protocol (SMTP). These and other protocols are often packaged together with TCP/IP as a "suite."Personal computer users with an analog phone modem connection to the Internet usually get to the Internet through the Serial Line Internet Protocol (SLIP) or the Point-to-Point Protocol (PPP). These protocols encapsulate the IP packets so that they can be sent over the dial-up phone connection to an access provider's modem.Protocols related to TCP/IP include the User Datagram Protocol (UDP), which is used instead of TCP for special purposes. Other protocols are used by network host computers for exchanging router information. These include the Internet Control Message Protocol (ICMP), the Interior Gateway Protocol (IGP), the Exterior Gateway Protocol (EGP), and the Border Gateway Protocol (BGP). (第二篇)这篇介绍了TCP/IP的发展。
Development of TCP/IPThe original research was performed in the late 1960s and early 1970s by the Advanced Research Projects Agency (ARPA), which is the research arm of the US Department of Defense (DOD). The DOD wanted to build a network to connect a number of military sites. The key requirements for the network were as follows: * It must continue to function during nuclear war (development took place during the 'cold war'). The 7/8th rule required that the network should continue to function even when 7/8th of the network was not operational * It must be completely decentralized with no key central installation that could be destroyed and bring down the whole network * It must be fully redundant and able to continue communication between A and B even though intermediate sites and links might stop functioning during the conversation * The architecture must be flexible as the envisaged range of applications for the network was wide (anything from file transfer to time-sensitive data such as voice)ARPA hired a firm called BBN to design the network. The prototype was a research network called ARPANET (first operational in 1972). This connected four university sites using a system described as a packet switching network.Prior to this development, any two computers wanting to communicate had to open a direct channel (known 。
5.编写一个TCP报文分析小工具
实现一个简单的局域网报文抓取工具,对在网络共享域中抓取的数据包进行分析,并向屏幕输出TCP报文头部的每一个字段信息。
要求:
(1) 能实现共享域的数据包抓取。
(2) 对抓到的数据包进行解析,要求能够解析出数据包中TCP的报文头部每一个域的信息。
(3) 参考软件wireshark。
实现思路:
根据系统功能要求,可以将问题解决分为以下步骤:
(1) 回顾TCP协议报文头部的格式。
(2) 寻找网络共享域中,数据包抓取的开发工具,目前比较常见的是WinPcap。
(3) 利用WinPcap的数据包抓取功能,对抓到的数据包进行过滤,分析。
(4) 解析数据报文,输出每一个域的对应值。