TCPIP详解卷三:TCP事务协议HTTPNNTP和UNIX域协议10
学习网络协议基础知识TCPIP和HTTP的解析

学习网络协议基础知识TCPIP和HTTP的解析学习网络协议基础知识:TCP/IP和HTTP的解析网络协议在现代互联网的发展中起到了至关重要的作用,其中TCP/IP和HTTP是两个常见的网络协议。
本文将对TCP/IP和HTTP的基础知识进行解析,帮助读者更好地了解和学习网络协议。
一、TCP/IP协议TCP/IP(Transmission Control Protocol/Internet Protocol)是一种基于分组交换网络的通信协议。
它是互联网的核心协议之一,负责数据在网络中的传输和通信。
1. IP协议IP(Internet Protocol)协议是TCP/IP协议族的核心协议之一。
它负责将数据进行分组,并通过IP地址将数据包送达目的地。
IP地址是一个由数字和点分十进制表示的地址,它唯一标识网络中的每个主机。
2. TCP协议TCP(Transmission Control Protocol)是TCP/IP协议族中的一种协议,它建立在IP协议的基础上,负责实现可靠的数据传输。
TCP通过三次握手建立连接、提供数据流传输、进行数据分片重组和错误恢复等功能,确保数据的可靠传输。
3. UDP协议UDP(User Datagram Protocol)是TCP/IP协议族中的一种协议,它也建立在IP协议的基础上,但是与TCP不同,UDP是一种面向无连接的协议。
UDP不保证数据传输的可靠性和顺序性,但是传输速度较快,适用于一些实时性要求较高的应用场景。
二、HTTP协议HTTP(Hypertext Transfer Protocol)是一种用于在Web上进行数据传输的协议,它是建立在TCP/IP协议之上的。
1. 请求-响应模型HTTP采用了请求-响应模型,即客户端发送请求,服务端返回响应的方式进行数据传输。
客户端发送的请求内容包括请求行、请求头部和请求体,服务端返回的响应内容包括响应状态行、响应头部和响应体。
【设计】毕业设计网络爬虫

【关键字】设计毕业设计网络爬虫篇一:网络爬虫的设计与实现毕业设计(论文)说明书学院软件学院专业软件工程年级姓名张凤龙指导教师陈锦言XX年3月 6 日毕业设计(论文)任务书题目:网络爬虫设计与实现学生姓名张凤龙学院名称软件学院专业软件工程学号指导教师陈锦言职称讲师一、原始依据(包括设计或论文的工作基础、研究条件、应用环境、工作目的等。
)互联网是一个庞大的非结构化的数据库,将数据有效的检索并组织呈现出来有着巨大的应用前景。
搜索引擎作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
但是,这些通用性搜索引擎也存在着一定的局限性。
不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
所以需要一个能基于主题搜索的满足特定需求的网络爬虫。
为了解决上述问题,参照成功的网络爬虫模式,对网络爬虫进行研究,从而能够为网络爬虫实现更深入的主题相关性,提供满足特定搜索需求的网络爬虫。
二、参考文献[1]Winter.中文搜索引擎技术解密:网络蜘蛛[M].北京:人民邮电出版社,XX年.[2]Sergey等.The Anatomy of a Large-Scale Hypertextual Web Search Engine [M].北京:清华大学出版社,1998年.[3]Wisenut.WiseNut Search Engine white paper [M].北京:中国电力出版社,XX年.[4]Gary R.Wright W.Richard Stevens.TCP-IP协议详解卷3:TCP事务协议,HTTP,NNTP 和UNIX域协议[M].北京:机械工业出版社,XX 年1月. [5]罗刚王振东.自己动手写网络爬虫[M].北京:清华大学出版社,XX年10月.[6]李晓明,闫宏飞,王继民.搜索引擎:原理、技术与系统——华夏英才基金学术文库[M].北京:科学出版社,XX年04月.三、设计(研究)内容和要求(包括设计或研究内容、主要指标与技术参数,并根据课题性质对学生提出具体要求。
网络协议详解

网络协议详解一、引言网络协议是计算机网络中用于数据传输和通信的规则集合。
它们定义了数据传输的格式、顺序、错误检测和纠正等方面的规范。
本协议详解将对常见的网络协议进行介绍和解释,包括TCP/IP协议、HTTP协议、FTP协议和DNS协议。
二、TCP/IP协议TCP/IP协议是互联网的核心协议,它包含了TCP和IP两个部分。
TCP(传输控制协议)负责数据的可靠传输,它使用三次握手建立连接,通过序列号和确认应答机制保证数据的完整性和有序性。
IP(互联网协议)负责数据的路由和分组传输,它使用IP地址标识网络中的主机和路由器,通过IP数据报进行数据的传输。
三、HTTP协议HTTP协议是应用层的协议,它用于在客户端和服务器之间传输超文本数据。
HTTP使用请求-响应模式,客户端发送HTTP请求,服务器返回HTTP响应。
HTTP请求由请求行、请求头和请求体组成,请求行包含请求方法、URL和协议版本;请求头包含请求的附加信息;请求体包含要发送的数据。
HTTP响应由状态行、响应头和响应体组成,状态行包含状态码和状态描述;响应头包含响应的附加信息;响应体包含响应的数据。
四、FTP协议FTP协议是文件传输协议,用于在客户端和服务器之间传输文件。
FTP使用两个连接:控制连接和数据连接。
控制连接用于发送命令和接收响应,数据连接用于传输文件。
FTP支持匿名登录和用户登录,匿名登录可以访问公共资源,用户登录需要提供用户名和密码。
FTP命令包括登录、上传、下载、删除等操作,服务器响应包括成功、失败和中间状态。
五、DNS协议DNS协议是域名系统协议,用于将域名转换为IP地址。
DNS使用分布式数据库来存储域名和IP地址的映射关系。
当客户端向DNS服务器发送域名查询请求时,DNS服务器会返回对应的IP地址。
DNS协议使用UDP进行数据传输,使用域名层次结构进行域名管理。
DNS还支持缓存机制和负载均衡,以提高查询效率和可靠性。
六、总结网络协议是计算机网络中的重要组成部分,它们定义了数据传输和通信的规则。
TCPIP协议详解

TCPIP协议详解协议名称:TCP/IP协议详解一、引言TCP/IP协议是互联网中最常用的网络协议之一,它是一种通信协议,用于在网络中传输数据。
本协议详解旨在提供对TCP/IP协议的全面理解,包括协议的结构、功能和工作原理。
二、协议概述TCP/IP协议是一个分层协议,由四个层次组成:网络接口层、网络层、传输层和应用层。
每个层次都有特定的功能和任务,协同工作以实现可靠的数据传输和网络通信。
1. 网络接口层网络接口层负责将数据从主机发送到网络,并从网络接收数据。
它定义了物理连接和数据传输的规范,包括硬件接口、数据格式和数据传输速率。
2. 网络层网络层负责在不同网络之间传输数据。
它使用IP协议将数据包从源主机传输到目标主机,并通过路由选择算法确定最佳路径。
网络层还处理数据包的分片和重组,以适应各种网络环境。
3. 传输层传输层负责提供端到端的数据传输服务。
它使用TCP协议和UDP协议来实现可靠的数据传输。
TCP协议提供面向连接的、可靠的数据传输,而UDP协议提供无连接的、不可靠的数据传输。
4. 应用层应用层提供各种网络应用程序,如电子邮件、文件传输和远程登录。
它使用各种协议,如HTTP、FTP和SMTP,来实现特定的应用功能。
三、协议功能TCP/IP协议具有以下主要功能:1. 数据分段和重组TCP/IP协议将数据分成适当的大小,并在发送端进行分段。
在接收端,它将接收到的分段重组成原始数据。
2. 可靠的数据传输TCP协议提供可靠的数据传输,通过使用序列号、确认和重传等机制来确保数据的可靠性。
3. 连接管理TCP协议使用三次握手和四次挥手来建立和终止连接。
它还负责管理连接状态和处理连接中断。
4. 路由选择网络层使用路由选择算法来确定数据包的最佳路径。
它考虑网络拓扑、网络负载和其他因素,以确保数据包能够快速、可靠地传输。
5. 地址解析TCP/IP协议使用IP地址和MAC地址来标识主机和网络设备。
地址解析协议(ARP)用于将IP地址转换为MAC地址,以实现数据传输。
tcp ip协议详解

tcp ip协议详解TCP/IP协议详解一、引言TCP/IP协议是互联网的核心协议之一,它定义了互联网上数据传输的规则和标准。
本协议详解将对TCP/IP协议的各个层次进行逐一解析,包括物理层、数据链路层、网络层、传输层和应用层。
二、物理层物理层是TCP/IP协议的最底层,它负责将数据从计算机转换成电信号,并通过物理媒介传输。
在这一层,数据以比特流的形式传输,常见的物理媒介包括以太网、无线电波和光纤等。
三、数据链路层数据链路层建立在物理层之上,主要负责将数据分割成帧并传输。
它通过MAC地址来识别网络中的设备,并通过帧的发送和接收来保证数据的可靠传输。
常见的数据链路层协议包括以太网、无线局域网(WLAN)和令牌环网等。
四、网络层网络层是TCP/IP协议的核心层次,它负责将数据从源主机传输到目标主机。
在这一层,数据被分割成数据包,并通过IP地址进行路由选择和转发。
网络层的主要协议是Internet协议(IP),它定义了数据包的格式和传输规则。
五、传输层传输层建立在网络层之上,主要负责在源主机和目标主机之间建立可靠的数据传输通道。
在这一层,数据被分割成报文段,并通过端口号进行进程间的通信。
常见的传输层协议包括传输控制协议(TCP)和用户数据报协议(UDP)。
六、应用层应用层是TCP/IP协议的最高层,它负责为用户提供各种网络服务和应用程序。
在这一层,数据被封装成消息或请求,并通过应用层协议进行传输。
常见的应用层协议包括超文本传输协议(HTTP)、文件传输协议(FTP)和域名系统(DNS)等。
七、总结TCP/IP协议是互联网的基础,它通过分层的结构和各个层次的协议,实现了数据的可靠传输和网络的互联互通。
物理层负责数据的物理传输,数据链路层负责数据的分割和传输,网络层负责数据的路由选择和转发,传输层负责数据的可靠传输,应用层负责为用户提供各种网络服务和应用程序。
以上是对TCP/IP协议的详细解析,希望对您有所帮助。
计算机经典教材

1前言。
2Mathematics(数学)。
3DataStructures&Algorithms(数据结构、算法)。
4Compiler(编译原理)。
5OperatingSystem(操作系统)。
6Database(数据库)。
7C(C语言)。
8C++(C++语言)。
9Object-Oriented(面向对象)。
10SoftwareEngineering(软件工程)。
11UNIXProgramming(UNIX编程)。
12UNIXAdministration(UNIX系统管理)。
13Networks(网络)。
14WindowsProgramming(Windows编程)。
15Other(*)。
Mathematics(数学)。
书名(英文):DiscreteMathematicsandItsApplications(FifthEdition)。
书名(中文):离散数学及其应用(第五版)。
原作者:KennethH.Rosen。
书名(英文):ConcreteMathematics:AFoundationforComputerScience(SecondEdition)。
书名(中文):具体数学:计算机科学基础(第2版)。
原作者:RonaldL.Graham/DonaldE.Knuth/OrenPatashnik。
DataStructures&Algorithms(数据结构、算法)。
书名(英文):DataStructuresandAlgorithmAnalysisinC,SecondEdition。
书名(中文):数据结构与算法分析--C语言描述(第二版)。
原作者:MarkAllenWeiss。
书名(英文):DataStructures&ProgramDesignInC(SecondEdition)。
书名(中文):数据结构与程序设计C语言描述(第二版)。
原作者:RobertKruse/C.L.Tondo/BruceLeung。
TCPIP协议详解

TCPIP协议详解TCP/IP协议详解TCP/IP协议是互联网最常用的协议之一,它负责网络中数据的传输和通信。
本文将详细讲解TCP/IP协议的基本概念、架构和各层的功能。
一、引言随着互联网的不断发展,TCP/IP协议被广泛应用于各种网络环境中。
它是一个开放的协议,能够支持多种不同的网络设备和操作系统之间的通信。
二、TCP/IP协议的层次结构TCP/IP协议采用分层的设计结构,共分为四层,分别是网络接口层、网络层、传输层和应用层。
下面将对每一层进行详细介绍。
2.1 网络接口层网络接口层是TCP/IP协议的最底层,它负责处理网络物理接口和网络设备之间的通信。
主要包括硬件驱动程序、网络数据帧的封装和解封装等功能。
2.2 网络层网络层是建立在网络接口层之上的一层,它主要负责数据包的路由和转发。
在网络层中,使用IP地址来标识网络中的设备,并通过路由器来实现数据包的转发。
2.3 传输层传输层是TCP/IP协议的核心层,它提供可靠的数据传输和面向连接的通信服务。
在传输层中,有两个主要的协议,即传输控制协议(TCP)和用户数据报协议(UDP)。
2.4 应用层应用层是TCP/IP协议的最高层,它提供各种网络应用程序之间的通信服务。
在应用层中,有很多常见的协议,比如HTTP、FTP、SMTP等。
三、TCP/IP协议的工作原理TCP/IP协议是通过数据包来进行通信的。
发送端将数据按照一定的格式封装成数据包,然后通过网络传输到接收端,接收端再解析数据包并进行相应的处理。
TCP/IP协议的传输方式可以分为面向连接和面向无连接两种。
面向连接的传输方式是指在发送数据之前,需要先在发送端和接收端之间建立一个连接,然后再进行数据传输。
而面向无连接的传输方式则不需要建立连接,直接进行数据传输。
四、TCP/IP协议的优缺点TCP/IP协议作为互联网最主要的协议之一,具有许多优点。
首先,它是一个非常健壮和可靠的协议,能够提供稳定的数据传输服务。
tcp ip协议详解

tcp ip协议详解协议名称:TCP/IP协议详解一、介绍TCP/IP协议是一种网络通信协议,它是互联网的基础协议,用于在网络中传输数据。
本协议旨在详细解释TCP/IP协议的工作原理、数据传输过程和相关概念。
二、TCP/IP协议的组成1. TCP(传输控制协议)- 描述:TCP是一种面向连接的协议,提供可靠的数据传输和错误检测机制。
- 功能:- 分割和重组数据流- 确保数据按顺序传输- 提供可靠的错误检测和纠正- 运行方式:三次握手建立连接,四次挥手断开连接。
2. IP(互联网协议)- 描述:IP是一种无连接的协议,负责将数据包从源主机发送到目标主机。
- 功能:- 将数据分割为数据包并添加源和目标地址- 路由选择:选择最佳路径将数据包传输到目标主机- 版本:IPv4和IPv6三、TCP/IP协议的工作原理1. 数据传输过程- TCP层:- 将数据分割为适当的数据块(称为段)- 添加TCP头部,包含源端口、目标端口和序列号等信息- 发送段到网络层- IP层:- 将TCP段封装为数据包(称为IP数据报)- 添加IP头部,包含源IP地址和目标IP地址等信息- 发送数据包到网络- 网络层:- 通过路由选择算法选择最佳路径- 将数据包传输到目标主机- 目标主机接收到数据包后,按照相反的顺序进行解封装,将数据包逐层传递到应用层。
2. 概念解释- 端口:用于标识应用程序或服务的数字,范围从0到65535。
- IP地址:用于标识网络中的设备,IPv4地址由32位二进制数组成,IPv6地址由128位二进制数组成。
- 数据包:在网络中传输的数据单元,包含数据和控制信息。
- 路由选择:选择传输数据包的最佳路径的过程。
- 三次握手:建立TCP连接的过程,包括客户端发送连接请求、服务器确认请求和客户端确认连接。
- 四次挥手:断开TCP连接的过程,包括客户端发送断开请求、服务器确认请求、服务器发送断开通知和客户端确认断开。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下载第10章T/TCP实现:TCP函数10.1 概述本章包括了T /T C P作过修改的各个T C P函数。
也就是说,t c p_o u t p u t( 前一章) 、t c p_i n pu t,和t c p_u s rr eq( 后两章) 以外的所有函数。
本章定义了两个新的函数,tcp_rtlookup和tcp_gettaocache,用于在TA O缓存中查找记录项。
tcp_close函数修改以后,当使用T/TCP 的连接关闭时,可以在路由表中记录往返时间估计值(平滑的平均值和平均偏差估计)。
常规协议只在连接上传送了至少16个满数据报文段后才记录。
然而,T/TCP通常只发送少量数据,但与同一对等端之间的这些不同连接的估计值应该保留下来。
T / T C P 中对M S S 选项的处理也有所改变。
有一部分改变是为了在N e t / 3 中清理过载的tcp_mss函数,这样就把它分成了一个计算MSS以便发送的函数(tcp_mssend)和另一个处理接收到的MSS选项的函数(tcp_mssrcvd)。
T/TCP同时也将从对等端收到的最新MSS值保存到TAO缓存记录项中。
在接收到服务器的SYN和最新的MSS之前,如果要随SYN发送数据,T/TCP就用这个记录来初始化发送MSS。
Net/3中的tcp_dooptions函数修改以后能够识别三个新的T/TCP选项:CC、CCnew和CCecho。
10.2 tcp_newtcpcb函数用PRU_ATTACH请求创建新的插口时要调用该函数。
图10-1中的五行代码用来代替卷2第667页的第177~178行。
图10-1 tcp_newtcpcb 函数:T/TCP所做的修改180 在前面图8-3有关的介绍中提到过,t_maxopd是每个报文段中可以发送的TCP选项加上数据的最大字节数。
它和t_maxseg的默认值均为512(tcp_mssdflt)。
由于这两个值相等,表明报文段中不能再有TCP 选项。
在后面的图10-13和图10-14中,如果时间戳选项或者CC选项(或者两者同时)需要在报文段中发送,就要减小t_maxseg的值。
183-184 如果全局变量tcp_do_rfcl644非零(它的默认值为1),且设置了TF_REQ_CC标志,这将使tcp_output伴随SYN发出CC或CCnew选项(图9-6)。
第10章 T/TCP 实现:TCP 函数85下载10.3 tcp_rtlookup 函数tcp_m ss (卷2 第7 1 7 ~ 7 1 8 页) 执行的第一项操作是读取为该连接所缓存的路由 (存储在 图10-2 route 结构图10-3 tcp_rtlookup 函数图10-4 在Internet PCB 中缓存的路由全貌插口对其中rn_key 为128.32.33.586第一部分 TCP 事务协议下载图10-5 tcp_gettaocache 函数60-468 tcp_rtlookup 返回的指针指向外部主机的 rtentry 结构。
如果查找成功,并 且RTF_UP 和RTF_HOST 标志均打开了,则宏 rmx_taop (见图6-3)返回的指针指向 rmxp_tao 构。
0.5 重传超时间隔的计算Net/3的TCP 要测量数据报文段往返时间、跟踪平滑的 RTT 估计器(s r t t )和平滑的平均偏差 计器(rttvar ),并据此计算重传超时间隔 (RTO)。
平均偏差是标准差的良好逼近,比较容易计 ,因为与标准差不一样,平均偏差不需要做平方根运算。
文献 [Jacobson 1988]给出了RTT 测 的其他细节,并导出以下的计算公式:delta=data -srtt srtt ←srtt+g ×delta rttvar ←rttvar+h(|delta |-rttvar)RTO=srtt+4×rttvar中,delta 是刚刚得到的往返时间测量值 (data )与当前的平滑的 RTT 估计器(s r t t )之差;g 是应 于RTT 估计器的增益,等于 1/8;h 是应用于平均偏差估计器的增益,等于 1/4。
在RTO 计算Internet PCB 的inp_route 字段中),如果该路由还没有缓存过,则调用 rtalloc 查找路由。
现在这项操作安排在另一个独立的函数 tcp_rtlookup 中实现,我们将在图 10-3中介绍。
这 样做是因为连接的路由表记录项中包括有 TAO 信息,T/TCP 需要更经常地执行这一项操作。
438-452 如果这个连接的路由还没有在缓存中记录, rtalloc 就计算出路由。
但仅仅当 P C B 中的外部地址非 0 时才能计算路由。
在调用 rtalloc 之前,要先填写 route 结构中的 sockaddr_in 结构。
图10-2给出了route 结构,其中的一个结构在每个 Internet PCB 中都有。
图10-4给出了这个结构的全貌,图中假定外部地址为 128.32.33.5。
10.4 tcp_gettaocache 函数一个给定主机的 T A O 信息保存在该主机的路由表记录项中,确切地说,是在 r t _ metrics 结构的rmx_filler 字段中(见6.5节)。
图10-5所示的函数tcp_gettaocach e 返回 指向该主机TA O 缓存的指针。
487第10章 T/TCP 实现:TCP 函数下载的。
黑点就是测量得到的 RTT 。
另外的三条实线 (从上至下依次是 RTO 、srtt 和rttvar )是运用本中的两个增益和乘数 4特意取为2的乘幂,因此可以通过移位操作来代替乘除运算。
卷 2的第25 章给出了如何用定点整数来保存这些值的有关细节。
在常规的TCP 连接中,在计算 srtt 和rttvar 这两个估计器时,通常要对多个 RTT 取样,对于 图1-9中的给定最小 TCP 连接来说,至少要有两个样本。
而且,在一定条件下, Net/3将对相同 主机之间的多个连接运用这两个估计器。
这是 tcp_close 函数实现的,在一个连接关闭时, 如果有关对等端的路由表记录项不是默认路由,并且至少得到了 16个RTT 样值。
估计的结果 存储在路由表记录项中 rt_metrics 结构的rmx_rtt 和rmx_rttvar 字段中。
新连接建立时, tcp_mssrcvd (见10.8节)从路由表记录项中取出这两个值作为 srtt 和rttvar 这两个估计器的初 始值。
T/TCP 中出现的问题是,一个最小连接只有一个 RTT 测量值,而且少于 16个样值是很正常 的,因此在两个对等端之间相继建立拆除的 T/TCP 连接对上述测量和估计一点贡献也没有。
这就意味着在 T/TCP 中,第一个报文段发出去时根本就不知道 RTO 的取值应该是多少。
卷 2的 25.8节讨论了tcp_newtcpcb 执行初始化时是怎样确定第一个 RTO 应该是6秒的。
让tcp_close 在即使只收集到少于 16个样值也存储对 T/TCP 连接的平滑估计结果并不难 (在10.6节中我们会看到为此所做的修改 ),但问题是:如何将新估计值与以前的估计值进行归 并?不幸的是,这仍然还是一个正在研究的问题 [Paxson 1995a]。
为了理解各种不同的可能性,请考虑图 10-6中的情况。
从作者的一台主机上通过 Internet 向另一台主机上的回显服务器发送 100个400字节长的UDP 数据报(在一个工作日的下午,通常 是Internet 上最为拥挤的时候 )。
93个数据报有回显返回 (还有7个不知在Internet 的哪些地方丢失 了),在图10-6中给出了前91个数据报。
样值是在 30分钟的时间内采集到的,前后数据报之间 的时间间隔是在0~30秒之间均匀分布的随机数。
实际的 RTT 是在客户主机上运行 Tcpdump 得到时间 (ms)样值图10-6 RTT 测量和对应的RTO 、srtt 和rttvar88 第一部分TCP事务协议下载节开头的公式从测得的RTT计算出来的。
计算是用浮点算术完成的,而不是Net/3中实际所用的定点整数方法。
图上所示的RTO就是从相应的数据点计算出来的值。
也就是说,第一个数据点(大约2200 ms)的RTO是从第一个数据点计算得来的,将用作下一个报文段发送时的RTO。
尽管所测得的RT T值平均都在800 ms 以下(作者的客户系统是通过拨号线上的PPP连接到Internet上的,穿越整个国家才能到达服务器),第26个样值的RTT几乎达到1400 ms ,此后有少量的一些点在1000 ms 左右。
[Jacobso n 1994] 指出,“只要是有竞争的连接共享一条路由,瞬间RTT波动达到2倍最小值是完全正常的(它们仅仅表示另外一个连接的开始或丢失后重新开始),因此,RTO小于2×RTT从来就不会是合理的”。
当估计器有新值存储到路由表记录项中时,必须做出判断,对应于已经过去的历史,有多少信息是新的。
这样,计算公式就为:savesrtt=g×savesrtt+(1-g)×srttsaverttvar=g×saverttvar+(1-g)×rttvar这是一个低通滤波器,其中g是取值在0~1之间的过滤增益常量,savesrtt和saverttvar是存储在路由表记录项中的数值。
当Net/3用这些公式更新路由表记录时(当一个连接关闭,并假定得到了16个样值),它采用的增益是0.5:存储在路由表中的值有一半是路由表中的旧值,另有一半是当前估计的值。
Bob Braden的T/TCP代码中取增益为0.75。
时间(ms)样值图10-7 TCP平滑与T/TCP平滑的比较图10-7给出了从图10-6中的数据用常规TCP计算方法算出的结果与用滤波器增益0.75平滑的计算结果之间的比较。
图中的三条虚线就是图10-6中的三个变量(R TO在最上方,srtt在中间,rttvar在底部)。
三条实线则是假定每一个数据点都是一个独立T/TCP连接(每一个连接有一个RTT测量值)所对应的变量,并且采用滤波增益0.75进行了平滑。
要知道有这样的差别:虚线对应的是一个TCP连接在30分钟内的91个RTT样本;而实线对应的则是在同样的30分钟内9189第10章 T/TCP 实现:TCP 函数下载图10-8 tcp_close 函数:为T/TCP 事务保存RTT 估计值个独立的T/TCP 连接,每个连接有一次 RTT 测量。
实线同时还是 91个连接的所有相继两个估计 值归并后记录到两个路由度量值中的。