更快的网络与TCP慢启动机制(精选5篇)由网友“鬼鬼”投稿提供,下面小编为大家整理后的更快的网络与TCP慢启动机制,希望大家喜欢!
篇1:更快的网络与TCP慢启动机制
还在纠结到哪里能找到“最好最快的”网络提供商?最近我听取并比较了十多个不同的方案之后,有人提醒了我一个简单的事实:业界采用的主要指标(带宽)实际上极具误导性,其实对于大部分网站浏览的应用来说,超过几兆的网络连接对于性能只有很小的提升。
罪魁祸首之一就是“TCP慢启动”,对,这是个功能,不是缺陷。要理解其中的原因,我们必须到TCP栈里面一探究竟,这样我们也能学到一些建立更快速网络服务的有趣的小技巧。
TCP慢启动
TCP协议提供了许多内置的功能,其中我们感兴趣的两个是拥塞控制和拥塞避免。TCP慢启动是TCP层内部实现拥塞控制的一种机制。
慢启动和其它一些算法联合使用,避免发送过多的数据以至网络无力传输,也就是防止网络拥塞。
-
表面上的流程很简单:客户端发送一个SYN包,它告知本端的最大缓存大小(rwnd - 接收窗口),发送端回传几个包作为应答(cwnd-拥塞窗口),之后,每次它收到来自客户端的ACK包,它就把发送包(传输中并未收到确认的)的数量加倍。
这个过程也被称作TCP连接的“指数增长”阶段。OSI学院有一个很好的动画演示这个过程:(滚动到底点击播放)。那么,这和我们有什么关系呢?不管你的带宽有多大,每一个TCP连接都要经历这个过程,这也就是说,通常情况下,实际用到的带宽受制于发送端和接收端的缓存大小的设置,
HTTP和TCP慢启动
或者,稍微换个说法,一个10M的带宽平均上只用了16%的容量。老天!这说明,如果我们要提高网速,我们应该着眼于降低客户端和服务器之间的往返时延,而不一定要一味地花钱提高带宽。当然,当你在缓冲一个大文件的时候高带宽很有用,或者跑个速度测试也能唬唬人。问题是,基于HTTP的交互倾向于应用短暂、突发的连接 - 在这样的情况下,我们常常无法占用信道的全部容量!Google做一个研究表明,当带宽从5M升高到10M,页面加载时间只提高了让人失望的5%。
CWND的故事
如果TCP慢启动很慢的话,我们不能让它快一点么?其实,直到最近,Linux TCP栈本身把拥塞窗口(cwnd)的初始值硬编码为3到4个包,这也就是4kb的大小(一个包大约1360字节)。还有个频繁发生的问题,HTTP有每获取一个资源要建立一个连接的毛病。这些加在一块,你的性能就受到了严重限制。
在内核2.6.33版本里,经过了长期讨论和提交很多的IETF修改建议之后,cwnd的初始值被设为10个包。这本身就是一个很大的进步。但是有个问题,猜猜现在大部分服务器跑的是什么版本的内核?没错,也许现在是时候更新你的服务器了。给你个实用的小提示,如果你考虑你的网络服务开始使用SPDY,那么如果不在最近的几个内核上面跑,你实际上不会得到任何的性能提升!TCP栈的一个小小的改动在全局能产生巨大的变化。
那么我该怎么办?
TCP慢启动是一个功能,不是缺陷,而且它的确包含有趣而重大的意义。作为开发者,我们经常会忽视客户端到服务器的往返时延,但是如果如果我们真有志于建立更快的网站,现在该去研究一下这些选择了:在和网络服务通信的时候重用TCP连接,建立支持HTTP keep-alive和流水线的网络应用,重视端到端的时延。噢,还有,别在高于10兆的宽带上浪费钱了,可能你根本就不需要。
篇2:优化网络链路之TCP的慢启动
为了提高网络数据传输效率以减少页面加载时间,年前做过网络链路的优化,主要是根据网络情况和具体应用修改linux内核关于拥塞窗口、慢启动等参数的值,前两天刚好有人问到,这里再解释下,
为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答( selective acknowledgement,SACK)算法,还有其他方面的大大小小的改进,成为网络研究的一个热点。
TCP的拥塞控制主要原理依赖于一个拥塞窗口(cwnd)来控制,在之前我们还讨论过TCP还有一个对端通告的接收窗口(rwnd)用于流量控制。窗口值的大小就代表能够发送出去的但还没有收到ACK的最大数据报文段,显然窗口越大那么数据发送的速度也就越快,但是也有越可能使得网络出现拥塞,如果窗口值为1,那么就简化为一个停等协议,每发送一个数据,都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。TCP的拥塞控制算法就是要在这两者之间权衡,选取最好的cwnd值,从而使得网络吞吐量最大化且不产生拥塞。
由于需要考虑拥塞控制和流量控制两个方面的内容,因此TCP的真正的发送窗口=min(rwnd, cwnd)。但是rwnd是由对端确定的,网络环境对其没有影响,所以在考虑拥塞的时候我们一般不考虑rwnd的值,我们暂时只讨论如何确定cwnd值的大小。关于cwnd的单位,在TCP中是以字节来做单位的,我们假设TCP每次传输都是按照MSS大小来发送数据的,因此你可以认为cwnd按照数据包个数来做单位也可以理解,所以有时我们说cwnd增加1也就是相当于字节数增加1个MSS大小。
慢启动:最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。我们可以简单计算下:
开始 —> cwnd = 1
经过1个RTT后 —> cwnd = 2*1 = 2
经过2个RTT后 —> cwnd = 2*2= 4
经过3个RTT后 —> cwnd = 4*2 = 8
如果带宽为W,那么经过RTT*log2W时间就可以占满带宽。
拥塞避免:从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。
上面讨论的两个机制都是没有检测到拥塞的情况下的行为,那么当发现拥塞了cwnd又该怎样去调整呢?
首先来看TCP是如何确定网络进入了拥塞状态的,TCP认为网络拥塞的主要依据是它重传了一个报文段,
上面提到过,TCP对每一个报文段都有一个定时器,称为重传定时器(RTO),当RTO超时且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,TCP反应比较“强烈”:
1.把ssthresh降低为cwnd值的一半
2.把cwnd重新设置为1
3.重新进入慢启动过程。
从整体上来讲,TCP拥塞控制窗口变化的原则是AIMD原则,即加法增大、乘法减小。可以看出TCP的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退避,可以给其他新建的流留有足够的空间,从而保证整个的公平性。
其实TCP还有一种情况会进行重传:那就是收到3个相同的ACK。TCP在收到乱序到达包时就会立即发送ACK,TCP利用3个相同的ACK来判定数据包的丢失,此时进行快速重传,快速重传做的事情有:
1.把ssthresh设置为cwnd的一半
2.把cwnd再设置为ssthresh的值(具体实现有些为ssthresh+3)
3.重新进入拥塞避免阶段。
后来的“快速恢复”算法是在上述的“快速重传”算法后添加的,当收到3个重复ACK时,TCP最后进入的不是拥塞避免阶段,而是快速恢复阶段。快速重传和快速恢复算法一般同时使用。快速恢复的思想是“数据包守恒”原则,即同一个时刻在网络中的数据包数量是恒定的,只有当“老”数据包离开了网络后,才能向网络中发送一个“新”的数据包,如果发送方收到一个重复的ACK,那么根据TCP的ACK机制就表明有一个数据包离开了网络,于是cwnd加1。如果能够严格按照该原则那么网络中很少会发生拥塞,事实上拥塞控制的目的也就在修正违反该原则的地方。
具体来说快速恢复的主要步骤是:
1.当收到3个重复ACK时,把ssthresh设置为cwnd的一半,把cwnd设置为ssthresh的值加3,然后重传丢失的报文段,加3的原因是因为收到3个重复的ACK,表明有3个“老”的数据包离开了网络。
2.再收到重复的ACK时,拥塞窗口增加1。
3.当收到新的数据包的ACK时,把cwnd设置为第一步中的ssthresh的值。原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。
快速重传算法首次出现在4.3BSD的Tahoe版本,快速恢复首次出现在4.3BSD的Reno版本,也称之为Reno版的TCP拥塞控制算法。
可以看出Reno的快速重传算法是针对一个包的重传情况的,然而在实际中,一个重传超时可能导致许多的数据包的重传,因此当多个数据包从一个数据窗口中丢失时并且触发快速重传和快速恢复算法时,问题就产生了。因此NewReno出现了,它在Reno快速恢复的基础上稍加了修改,可以恢复一个窗口内多个包丢失的情况。具体来讲就是:Reno在收到一个新的数据的ACK时就退出了快速恢复状态了,而NewReno需要收到该窗口内所有数据包的确认后才会退出快速恢复状态,从而更一步提高吞吐量。
SACK就是改变TCP的确认机制,最初的TCP只确认当前已连续收到的数据,SACK则把乱序等信息会全部告诉对方,从而减少数据发送方重传的盲目性。比如说序号1,2,3,5,7的数据收到了,那么普通的ACK只会确认序列号4,而SACK会把当前的5,7已经收到的信息在SACK选项里面告知对端,从而提高性能,当使用SACK的时候,NewReno算法可以不使用,因为SACK本身携带的信息就可以使得发送方有足够的信息来知道需要重传哪些包,而不需要重传哪些包
篇3:网格计算中的TCP拥塞控制机制网络知识
一、引言 目前,网格的发展越来越受到大家的重视,它们可以在不同国家甚至不同州的机器之间传输甚至到达几千G字节的大文件,将大规模的数据处理分散到世界范围的各个组织中,网格的应用需要高速远距离 网络 的支持,这可能需要网络速度达到622Mbit/s或是更高
一、引言
目前,网格的发展越来越受到大家的重视,它们可以在不同国家甚至不同州的机器之间传输甚至到达几千G字节的大文件,将大规模的数据处理分散到世界范围的各个组织中。网格的应用需要高速远距离网络的支持,这可能需要网络速度达到622Mbit/s或是更高。在这种情况下,传统的TCP拥塞控制算法就不太适用了。这主要有以下三方面的原因:
(1)传统的TCP拥塞控制机制在高速网络中反应性比较差,这是因为TCP在高速网络中对分组丢失的反应要敏感得多。这主要是由于它的拥塞避免算法是基于AIMD(Additive Increase Multiplicative Decrease,和式增加积式减少)的。所以一个分组的丢失在高速网络中所造成的后果是很严重的:一个分组丢失被检测出来之后,TCP连接就会将带宽减半(积式减少),这样就会不止花上几百毫秒或是多达几秒钟,甚至花上几分钟或是几个小时来恢复所有的可用带宽(和式增加)。另外,慢启动也会造成TCP在高速网络中性能的下降,但是它的影响要比拥塞避免小点。因为通过三个重复的ACK来判断分组丢失的情况要比超时经常得多,因此TCP连接会花费大多数时间在拥塞避免算法上。
(2)传统的TCP总是把分组丢失解释为拥塞,而假定链路错误造成的分组丢失是可以忽略的,但是在高速网络中,这种假设是不成立的。当数据传输速率比较高时,链路错误是不能忽略的。由链路错误引起的分组丢失和由网络拥塞引起的分组丢失的可能性是相同的。因此,不能笼统地认为分组丢失都是由网络拥塞引起的。因此,当一个TCP分组丢失后我们不应该认为就是出现了网络拥塞,拥塞的判断需要两个连续的分组丢失。
(3)传统的TCP不能使用网络链路的所有容量。这主要是由于在AIMD算法中,TCP从一个分组丢失到带宽的恢复所用的时间比较长。这是目前所有TCP版本(TCPTahoe、TCPReno、New-Reno、SACK、Vegas等)的一个固有的问题。而高速远距离网络的造价是比较高的,所以对容量的浪费是不可原谅的。
针对以上TCP传统算法的缺陷,网格计算中的TCP拥塞控制提出了一个新的带宽使用的公平性原则和增减算法,对于克服传统TCP在快速远距离网络中的不足起到了很好的作用。
二、带宽减少算法
在适用于网格应用的快速远距离网络中,可以假设连接的可用带宽在相当长的时间(大致是10min到1h)内是保持不变的,这个假设对与其他类型的网络基本上也是成立的。根据这个假设,可以做如下的近似:对于一个长时间的TCP连接,可用带宽ABW可以看作是一些分段表示的常数。
根据以上的简化模型,我们可以对TCP和式增加积式减少的带宽增减算法进行修改。在用于网格计算的TCP拥塞控制中,当一个TCP连接检测到网络拥塞时(用于网格计算的TCP拥塞控制,对于拥塞的判断标准是在一个相同的拥塞窗口中至少有两个连续的分组丢失,只有一个分组丢失被认为是链路错误),并不是将带宽减半,而是减少ABWi-ABWi+1,ABWi+1由式(1)得出 =-1
(1)
式中 ABWi- 在阶段i的可用带宽;
C- 链路容量的估计值; ABWi在较长时间(一般式10min到1h)内是常数,
由于 ABWi是C的一部分,所以
A i,E αi,(0≤αi≤1)∧(ABWi=αiC) (2)
由式(1)和式(2)可以得到
αi+1= (3)
ABWi-ABWi+1= (4)
式(4)就是用于网格计算的TCP拥塞控制,采用新的减少带宽的算法,相应传统TCP的减少算法可以由以下表示
ABWJi-ABWJi+1== (5)
由式(5)可以得出
αi+1=αi /2 (6)
当αi=5%时,由(3)式可得αi+1=4.76%,而由(6)式得到αi+1=2.5%,如果C=622Mbit/s,那么新的算法可以节省14Mbit/s的带宽;当αi=20%时,由(3)式可得αi+1=16.7%,而由(6)式得到αi+1=10%,如果C=622Mbit/s,那么新的算法可以节省41Mbit/s的带宽。所以,当拥塞发生后,新的算法减少的带宽比较少,这样恢复起来也比较快。当αi=0或αi=100%时,也就是当链路中只有一个或有无限多TCP流时,两种算法取得一致。但是,在网格应用的网络中,这两种情况出现的比较少。
三、带宽增加算法
用于网格计算的TCP拥塞控制所使用的带宽增加算法有些复杂,它可以分为五种情况来分析:
(1)当链路刚刚经历了拥塞,并且我们假定这个拥塞现象是暂时的,我们首先根据式(4)来减少带宽,然后再通过二分检索法增加带宽到以前的稳定状态:ABWi。如果在这个过程中没有新的分组丢失,那么TCP连接就应该保持在阶段i,然后根据情况(3)来处理;如果我们检测到同一个拥塞窗口中至少有两个分组丢失,那么TCP连接就应该从阶段过渡i到阶段i+1,并且根据情况(2)来处理。
(2)当网络出现新的拥塞问题时,我们来得到一个新的带宽稳定值ABWi+1,ABWi+1要比ABWi小。在这种方法中,增加和减少带宽都使用二分检索法,一旦有分组丢失我们就减少带宽,否则就增加带宽。这种方法能比较迅速地使可用带宽稳定到ABWi+1。网络稳定在阶段i+1后,在根据情况(3)来处理。
(3)在这种情况下,TCP连接以速率ABWi传输数据。当检测到拥塞发生时,就根据情况(1)来处理;如果直到TCP占用计时器(它的值由经验获得,但一般希望是10min到1h)关闭仍没有拥塞发生,就根据情况(4)来处理。
(4)TCP已经以速率ABWi传输数据很长时间而没有检测到拥塞,因此我们希望可用带宽增加,进入一个新的阶段i+1,在这个阶段ABWi+1应该比现在的ABWi大。所以,一旦TCP占用计时器关闭,我们就开始增加带宽到ABWi+1,ABWi+1可以根据式(7)获得=+1 (7)
如果在这个过程中检测到拥塞,就根据情况(1)来处理。
(5)建立一个新的TCP连接,并且为可用带宽ABW0赋初始值为链路的容量C,然后再根据第(2)种情况来分析。
四、结束语
以上是用于网格计算的TCP拥塞控制所使用的新的带宽增减的算法,它克服了传统的AIMD算法的保守性,可以较充分地使用链路容量,所以在高速远距离网络中,它的效率比较好。但是这种算法还存在着一些缺陷:链路容量C的估计总是近似的,而且精确度也未知;容量的估计需要花费时间,对于短时存在的TCP连接,有可能用于容量估计的时间比连接存在的时间还要长;实际的网络中,路由是会改变的,所以发送端计算出的容量有可能和实际TCP连接使用的容量不一致。
原文转自:www.ltesting.net
篇4:网络信息安全机制与防范
网络信息安全机制与防范
摘 要:随着网络应用的高速发展,计算机网络已经深入到社会生活的每一个领域。
在为社会发展带来强大推动力的同时,网络信息安全问题已经成为影响网络发展的重要问题。
由于计算机网络具有联结形式多样性、终端分布不均匀性、网络开放性和互联性等特征,致使网络易受黑客和其它不轨行为的攻击,它在为人们带来极大的快捷和便利的同时,也给人们带来了巨大的风险。
计算机网络信息安全已经涉及到国家安全与主权的重大问题,并已成为崭新的学术领域。
关键词:网络 信息 安全
一、引言
互联网正以惊人的速度改变着人们的生活方式和工作效率。
从商业机构到个人都将越来越多地通过互连网处理银行事务、发送电子邮件、购物、炒股和办公。
这无疑给社会、企业乃至个人带来了前所未有的便利,所有这一切都得益于互连网的开放性和匿名性特征。
然而,正是这些特征也决定了互连网不可避免地存在着信息安全隐患。
网络安全所包含的范围很广:我们日常上网时碰到的邮件病毒,qq密码被盗,大一点的比如一个企业或政府的网站被黑,数据内容被篡改,更大的乃至一个国家的国防,军事信息泄漏,被截获。
所有这些都属于网络安全所研究讨论的范畴。
物理安全是指对网络与信息系统的电磁装备的保护。
重点保护的是网络与信息系统的机密性、生存性、可用性等属性,涉及的是动力安全、环境安全、电磁安全、介质安全、设备安全、人员安全等。
运行安全是指对网络与信息系统的`运行过程和运行状态的保护。
主要涉及网络与信息系统的可控性、可用性等;所面对的威胁包括系统资源消耗、非法侵占与控制系统、安全漏洞的恶意利用等;数据安全是指对信息在数据处理、存储、传输、显示等使用过程中的保护,是在数据处理层面保障信息依据授权使用,不被窃取、篡改、冒充、抵赖。
主要涉及信息的机密性、完整性、真实性、不可抵赖性、可鉴别性等属性;内容安全是指对信息真实内容的隐藏、发现、分析、管理等。
主要涉及信息的机密性、可控性、可鉴别性等;所面对的主要问题包括信息隐藏、隐私保护及信息管理和挖掘。
二、计算机信息网络采用的安全机制
计算机网络安全机制应该在保障计算机信息网络可靠性的前提下,保证计算机信息网络中的信息的保密性、完整性、可用性、可控性和不可否认性。
目前采用的安全机制主要有以下几种:
加密和隐蔽机制。
加密是改变信息,使攻击者无法读懂信息的内容从而保护信息。
隐藏是将有用的信息隐藏在其他信息中,使攻击者无法发现。
这种机制需要采用密码技术。
密码技术是集数学、计算机科学、电子与通信等诸多学科于一身的交叉学科,它不仅能够保证机密信息的加密,而且能完成数字签名、身份验证、系统安全等诸多功能。
使用密码技术可以防止信息被篡改、伪造和假冒,从而保证信息的机密性、完整性和可用性。
认证和身份鉴别机制 认证是网络安全的基本机制。
网络设备之间应互相认证对方身份,以保证正确赋予操作权力和数据的存取控制。
目前在网络中常采用数字签名帮助对用户身份的确定。
通信和数据系统的安全性常常取决于能否正确识别通信用户或终端的个人身份。
目前用于身份认证的技术主要有:验证用户知道什么(如口令、密钥等)、验证用户拥有什么(如钥匙、徽标、IC卡等)、验证用户的生理特征(如指纹、声音等)、验证用户的习惯动作(如笔迹等)。
审计。
审计是防止内部犯罪和事故后调查取证的基础。
通过对一些重要的事件进行记录, 从而在系统发现错误或受到攻击时能定位错误和找到攻击成功的因素。
审计信息应具有防止非法删除和修改的措施。
完整性保护。
所谓数据完整性是保证数据在存储或传输过程中不被非法修改、破坏或丢失。
首先,要充分利用数据库管理系统提供的数据完整性的约束机制和各种输入数据的“引用完整性约束”设计,以便保证数据完整、准确的输入和储存。
其次,在数据传输过程中可视情况选用相应的数据校验方式对传输数据进行校验检查。
如在发送的消息中加入一个鉴别码并经加密后发送给接收者。
完整性的另一用途是提供不可抵赖服务。
当信息源的完整性可以被验证却无法模仿时,收到信息的一方可以认定信息的发送者。
数字签名就可以提供这种手段。
权利控制和访问控制。
权利管理和存取控制是主机系统必备的安全手段。
系统根据正确的认证,赋予某用户适当的操作权利,使其不能进行越权的操作。
在正确认证的前提下,系统应给正确的用户予正确的存取控制能力和限制。
权利控制一般采用角色管理办法,针对系统需要定义各种角色,如经理、会计等,然后对他们赋予不同的执行权利。
三、网络安全防范
现阶段为了保证网络信息的安全,企业办公的正常运行,我们将采用以下几种方式来对网络安全进行防范。
在网络环境下,病毒传播扩散快,仅用单机防病毒产品已经很难彻底清除网络病毒,必须有适合于局域网的全方位防病毒产品。
如果与互联网相连,就需要网关的防病毒软件,加强上网计算机的安全。
如果在网络内部使用电子邮件进行信息交换,还需要一套基于邮件服务器平台的邮件防病毒软件,识别出隐藏在电子邮件和附件中的病毒。
所以最好使用全方位的防病毒产品,针对网络中所有可能的病毒攻击点设置对应的防病毒软件,通过全方位、多层次的防病毒系统的配置,通过定期或不定期的自动升级,使网络免受病毒的侵袭。
利用防火墙可以将不允许的用户与数据拒之门外,最大限度地阻止网络中的黑客来访问自己的网络,防止他们随意更改、移动甚至删除网络上的重要信息。
防火墙是一种行之有效且应用广泛的网络安全机制,防止Internet上的不安全因素蔓延到局域网内部,所以,防火墙是网络安全的重要一环。
四、结语
随着网络的发展,技术的进步,网络安全面临的挑战也在增大。
一方面,对网络的攻击方式层出不穷,攻击方式的增加意味着对网络威胁的增大;随着硬件技术和并行技术的发展,计算机的计算能力迅速提高。
另一方面,网络应用范围的不断扩大,使人们对网络依赖的程度增大,对网络的破坏造成的损失和混乱会比以往任何时候都大。
这些网络信息安全保护提出了更高的要求,也使网络信息安全学科的地位越显得重要,网络信息安全必然随着网络应用的发展而不断发展。
篇5:OSI七层网络模型与TCP/IP四层网络模型
网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议,这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。
为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况。为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即协议族),而不是孤立地开发每个协议。
在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。图1表示了OSI分层模型。
图1 OSI七层参考模型
OSI模型的七层分别进行以下的操作:
第一层 物理层
第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。
第二层 数据链路层
数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。
数据链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link Control,LLC)。MAC描述在共享介质环境中如何进行站的调度、发生和接收数据。MAC确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC规则定义了地址,以标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2标准定义了LLC。LLC支持无连接服务和面向连接的服务。在数据链路层的信息帧中定义了许多域。这些域使得多种高层协议可以共享一个物理数据链路。
第三层 网络层
网络层负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同MAC标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的MAC标准之间的数据传输都涉及到网络层。例如IP路由器工作在网络层,因而可以实现多种网络间的互联。
第四层 传输层
传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。传输控制协议(TCP)是提供可靠数据传输的TCP/IP协议族中的传输层协议。
第五层 会话层
会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现,
它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。
第六层 表示层
表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机系统可以相互交换数据;转化模式通过使用不同的文本和数据表示,在系统间交换信息,例如ASCII(American Standard Code for Information Interchange,美国标准信息交换码);标准数据压缩模式确保原始设备上被压缩的数据可以在目标设备上正确的解压;加密模式确保原始设备上加密的数据可以在目标设备上正确地解密。
表示层协议一般不与特殊的协议栈关联,如QuickTime是Applet计算机的视频和音频的标准,MPEG是ISO的视频压缩与编码标准。常见的图形图像格式PCX、GIF、JPEG是不同的静态图像压缩和编码标准。
第七层 应用层
应用层是最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。
OSI的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。
TCP/IP分层模型
TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。图2表示了TCP/IP分层模型的四层。
图2 TCP/IP四层参考模型
TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
TCP/IP分层模型的四个协议层分别完成以下的功能:
第一层 网络接口层
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
第二层 网间层
网间层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。
第三层 传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
第四层 应用层
应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。
★ 全景作文
★ 电脑网络基础知识
★ 网络基础知识总结
★ 我·电脑·网络
【更快的网络与TCP慢启动机制(精选5篇)】相关文章:
巧设Firefox参数 提升网页浏览速度2022-11-09
控制协议2022-05-04
网络管理协议的发展历史和新趋势2022-10-25
如何提高宽带网速技巧2023-11-17
RIP协议理解2023-07-12
计算机生产实习报告2023-07-02
瑞星防火墙使用心得2023-06-19
linux服务器内存占用过大解决办法linux操作系统2022-05-06
TCP/IP详解之IP协议ARP协议和RARP协议2022-05-07
计算机网络应用范文2023-06-28