TCP-IP协议简述及其应用
协议简述及其应用
TCP/IP
TCP/IP协议在网络中的应用
摘 要:TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP 是供已连接因特网的计算机进行通信的通信协议,是传输控制协议/网际协议。它定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。是互联网中的基本通信语言或协议。它在计算机网络中发挥了重要的作用,本文即概述了TCP/IP协议在网络中的应用。
关键词:TCP/IP;计算机;因特网;应用;安全;
The applications of TCP/IP protocol in network
Abstract :TCP protocol IP(Transmission Control Protocol/Internet Protocol) the simplified, chinese translated name is a transmission control agreement with the agreement, and interconnected network of communication and internet protocols the agreement is the most basic agreement, internet international the internet. In short, with IP network layer of the agreement and the transport layer of the TCP protocol. TCP/IP is for the computers are connected via the internet communications, a transmission control agreement internet protocols. It defines the electronic devices ( such as computer ) how the Internet, and the transmission of data between them. Internet standards are the basic communications language or protocols. It is in a computer network played an important role, this provides an overview of the TCP protocol in a network IP applications.
Key words:TCP/IP;computer;Internet;application;security;
目录
1 TCP/IP协议的概况 ....................................................................................................................... 4
1.1 TCP/IP协议的定义 ............................................................................................................ 4
1.2TCP/IP协议的主要特点 ..................................................................................................... 5
1.3 TCP/IP协议的优势 ............................................................................................................ 5
2、深入理解TCP/IP协议 ............................................................................................................... 6
2.1TCP/IP协议的结构 ............................................................................................................. 6
1.网络接口 ..................................................................................................................... 6
2.网络层 ............................................................................................................................ 7
3.传输层 ......................................................................................................................... 7
4.应用层 ......................................................................................................................... 7
2.2主要协议 ............................................................................................................................. 8
1. IP ............................................................................................................................... 8
2. TCP ............................................................................................................................... 9
3.UDP ................................................................................................................................ 9
4.ICMP .............................................................................................................................. 9
5. TCP和UDP的端口结构............................................................................................. 9
2.3IP地址及其分类 ............................................................................................................ 10
2.3.1. A类地址 ............................................................................................................... 11
2.3.2. B类地址 ............................................................................................................... 11
2.3.3. C类地址 ............................................................................................................... 11
2.3.4IP地址类别 RFC 1918内部地址范围 ............................................................... 12
3、拥塞........................................................................................................................................... 12
3.1 产生拥塞的原因 .............................................................................................................. 12
4、TCP/IP协议的安全设计 .......................................................................................................... 17
4.1 链路加密 .......................................................................................................................... 17
4.2 节点加密 .......................................................................................................................... 17
4.3 端到端加密 ...................................................................................................................... 17
结论 ................................................................................................................................................ 18
1 TCP/IP协议的概况
1.1 TCP/IP协议的定义
TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。
TCP/IP(传输控制协议/网际协议)是互联网中的基本通信语言或协议。在私网中,它也被用作通信协议。
TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。 TCP/IP使用客户端/服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。 许多用户熟悉使用TCP/IP协议的高层应用协议。包括万维网的超文本传输协议(HTTP),文件传输协议(FTP),远程网络访问协议(Telnet)和简单邮件传输协议(SMTP)。这些协议通常和TCP/IP协议打包在一起。 使用模拟电话调制解调器连接网络的个人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P)。这些协议压缩IP包后通过拨号电话线发送到对方的调制解调器中。 与TCP/IP协议相关的协议还包括用户数据包协议(UDP),它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括Internet控制信息协议(ICMP),内部网关协议(IGP),外部网关协议(EGP),边界网关协议(BGP)。
1.2TCP/IP协议的主要特点
(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;
(2)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;
(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;
(4)标准化的高层协议,可以提供多种可靠的用户服务。
TCP/IP模型的主要缺点有:
首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。
1.3 TCP/IP协议的优势
在长期的发展过程中,IP逐渐取代其他网络。这里是一个简单的解释。IP传输通用数据。数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。下面是一个普通的过程:
一个专有的网络开发出来用于特定目的。如果它工作很好,用户将接受它。 为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。
通过一点点的投资IP 基础设施逐渐在专有数据网络周边出现。
用IP取代专有服务的需求出现,经常是一个用户要求。
IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。
专有网络受到压制。许多用户开始维护使用IP替代品的复制品。
IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。人们开发了一种能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。
大多数用户为了削减开销,专有网络被取消。
1.2TCP/IP协议的主要特点
(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;
(2)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;
(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;
(4)标准化的高层协议,可以提供多种可靠的用户服务。
TCP/IP模型的主要缺点有:
首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模
型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。
1.3 TCP/IP协议的优势
在长期的发展过程中,IP逐渐取代其他网络。这里是一个简单的解释。IP传输通用数据。数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。下面是一个普通的过程:
一个专有的网络开发出来用于特定目的。如果它工作很好,用户将接受它。 为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。
通过一点点的投资IP 基础设施逐渐在专有数据网络周边出现。
用IP取代专有服务的需求出现,经常是一个用户要求。
IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。
专有网络受到压制。许多用户开始维护使用IP替代品的复制品。
IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。人们开发了一种能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。
大多数用户为了削减开销,专有网络被取消。
2、深入理解TCP/IP协议
2.1TCP/IP协议的结构
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。 表1-1是 TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和
Linux TCP/IP四层概念模型对应,然后将各种网络协议归类。
图一 TCP/IP协议结构图
1.网络接口
网络接口把数据链路层和物理层放在一起,对应TCP/IP概念模型的网络接
口。对应的网络协议主要是:Ethernet、FDDI和能传输IP数据包的任何协议。
2.网络层
网络层对应Linux TCP/IP概念模型的网际层,网络层协议管理离散的计算机间的数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达 目的机器。这一过程中,IP和其他网络层的协议共同用于数据传输,如果没有使用一些监视系统进程的工具,用户是看不到在系统里的IP的。网络嗅探器 Sniffers是能看到这些过程的一个装置(它可以是软件,也可以是硬件),它能读取通过网络发送的每一个包,即能读取发生在网络层协议的任何活动,因 此网络嗅探器Sniffers会对安全造成威胁。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网 际协议)等。
3.传输层
传输层对应Linux TCP/IP概念模型的传输层。传输层提供应用程序间的通信。其功能包括:格式化信息流;提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认信 息,如果分组丢失,必须重新发送。传输层包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),它们是传输层中最主要的协议。TCP建立在IP之上,定义了网络上程序到程序的数据传输格式和规则,提供了IP数据 包的传输确认、丢失数据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制。TCP 协议是面向连接的协议,类似于打电话,在开始传输数据之前,必须先建立明确的连接。UDP也建立在IP之上,但它是一种无连接协议,两台计算机之间的传输 类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间没有明确的连接。UDP不保证数据的传输,也不提供重新排列次序或重新请求的功能,所以说 它是不可靠的。虽然UDP的不可靠性限制了它的应用场合,但它比TCP具有更好的传输效率。
4.应用层
应用层、表示层和会话层对应Linux TCP/IP概念模型中的应用层。应用层位于协议栈的顶端,它的主要任务是应用。一般是可见的,如利用FTP(文件传输协议)传输一个文件,请求一个和目 标计算机的连接,在传输文件的过程中,用户和远程计算机交换的一部分是能看到的。常见的应用层协议有:HTTP,FTP,Telnet,SMTP和 Gopher等。应用层是Linux网络设定最关键的一层。Linux服务器的配置文档主要针对应用层中的协议。TCP/IP模型各个层次的功能和协议如 表1-2所示。
2.2主要协议
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
1. IP
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不
是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
2. TCP 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
3.UDP
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
4.ICMP
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
5. TCP和UDP的端口结构
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进
程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
源IP地址 发送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用
25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
2.3IP地址及其分类 在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。
Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。
我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。
目前,在Internet里,IP地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。
IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。
2.3.1. A类地址 A类地址的表示范围为:1.0.0.1~126.255.255.255,默认网络屏蔽为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。 127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。
0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。 一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。每个A类地址理论上可连接16777214台主机(-2是因为主机中要用去一个网络号和一个广播号),Internet有126个可用的A类地址。A类地址适用于有大量主机的大型网络。
2.3.2. B类地址
B类地址的表示范围为:128.0.0.1~191.255.255.255,默认网络屏蔽为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。每个B类地址可连接65534(2^16-2, 因为主机号的各位不能同时为0,1)台主机,Internet有16383(2^14-1)个B类地址(因为B类网络地址128.0.0.0是不指派的,而可以指派的最小地址为128.1.0.0[COME06])。
2.3.3. C类地址
C类地址的表示范围为:192.0.0.1~223.255.255.255,默认网络屏蔽为:255.255.255.0;C类地址分配给小型网络,如一般的局域网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。
一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”,即第一段数字范围为192~223。每个C类地址可连接254台主机,Internet有2097152个C类地址段(32*256*256),有532676608个地址(32*256*256*254)。
RFC 1918留出了3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址。在这个范围内的IP地址不能被路由到Internet骨干网上;Internet路由器将丢弃该私有地址。
2.3.4IP地址类别 RFC 1918内部地址范围
A类 10.0.0.0到10.255.255.255 B类 172.16.0.0到172.31.255.255 C类 192.168.0.0到192.168.255.255 使用私有地址将网络连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。
实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:
D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。 D类地址范围:224.0.0.1到239.255.255.254 。 D类地址用于多点播送。D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。
E类地址保留给将来使用。
连接到Internet上的每台计算机,不论其IP地址属于哪类都与网络中的其它计算机处于平等地位,因为只有IP地址才是区别计算机的唯一标识。所以,以上IP地址的分类只适用于网络分类。
在Internet中,一台计算机可以有一个或多个IP地址,就像一个人可以有多个通信地址一样,但两台或多台计算机却不能共享一个IP地址。如果有两台计算机的IP地址相同,则会引起异常现象,无论哪台计算机都将无法正常工作。 顺便提一下几类特殊的IP地址:
1. 广播地址 目的端为给定网络上的所有主机,一般主机段为全1
2. 单播地址 目的端为指定网络上的单个主机地址
3. 组播地址 目的端为同一组内的所有主机地址
4. 环回地址 127.0.0.1 在环回测试和广播测试时会使用
3、拥塞
3.1 产生拥塞的原因
当一个网络中出现太多报文分组的时候,网络的性能开始下降,这种情况称为拥塞。拥塞是一种持续过载的网络状态,此时用户对网络资源的需求超过了其固有的容量,这是产生拥塞的根本原因,而端到端之间却存在着直接的原因,主
要有:1.存储空间相对不足。主要表现在理由器上,虽然增加存储空间有时可以缓解拥 塞的产生,但有时候不但不能缓解拥塞,反而会加剧拥塞。2.带宽容量不足。低速链路对高速数据流的输入也会产生拥塞。3.链路与CPU的处理速度不匹配, 造成处理能力弱,速度慢从而引起拥塞。
3.2 TCP的拥塞控制机制
3.2.1 加法增加乘法减少(AIMD)算法
TCP作为Internet上使用最广泛的端到端传输协议,它的拥塞控制机制主要基于加法增加乘法减少(AIMD)算法,该算法定义了3个窗口变量:
(1) 拥塞窗口(cwnd):它限定了在拥塞控制中源端在一时间段里的最大数据传输量,是来自源端的流量控制。
(2) 通告窗口(awnd):接受端与源端建立连接后,接收端通告源端它的最大可接受速率,它是来自接受端的流量控制。
(3) 有效窗口(win):即源端发送数据的实际窗口大小,定义为
win=min(cwnd,awnd)
AIMD的工作过程可分为两步:
(1)源端每收到一个来自接受端的ACK确认,拥塞窗口按
cwnd=cwnd+MSS*(MSS/cwnd) (MSS为分组大小)增大,它所表示的实际意义是如果源端发送的分组都在最近的往返时间(RTT)内获得确认,源端就将cwnd加1,即加法增加思想。
(2)当数据传送发生超时,TCP认为路线上出现拥塞,并开始减小源端的数据发送速率。每发生一次超时,源端就会重新计算拥塞窗口的值,公式如下:
cwnd=cwnd/2
它表示发生一次超时,拥塞窗口将在原来基础上减小一半,即乘法减少思想。
3.2.2 TCP拥塞控制的四个阶段
这是TCP拥塞控制的核心,也体现了TCP拥塞控制的基本思想,它分为启动阶段,拥塞避免,快速重传和快速恢复阶段。
(1) 启动阶段
当连接刚建立或在发生一次超时的情况下,进入慢启动阶段。
一个新的TCP连接建立后,cwnd被初始化为1,源端只被允许发送一个报文段。当发出的报文收到接受端的ACK确认后,cwnd加1,即增加一个报文段发送。在这个阶段中,cwnd随RTT呈指数增长。
采用慢启动方法,可以防止TCP在启动一个新的连接时发送过多的数据而造成数据丢失和网络拥塞,同时,由于cwnd实际上以指数规律增长也就避免了单纯的AIMD算法造成的吞吐量增加过慢的问题。
cwnd的无限增长必将引起网络拥塞,于是引入一个状态变量:慢启动阈值ssthresh。
当cwndssthresh是,则采用拥塞避免算法,减缓cwnd的增长速度。
(2) 拥塞避免阶段
在拥塞避免阶段,当TCP探测到网络将要发生拥塞,并没有直接采用复位cwnd=1,重新开始慢启动的方法。因为一旦发生拥塞,需要很长的时间来恢 复,而慢启动算法中cwnd的指数增长就显得有些激进,它很可能会加重网络拥塞。因此,在这个阶段,采用相对更保守的调节机制改变awnd的增长方式,使 它由指数增长变成线性增长,具体过程如下:
1. 将慢启动阈值ssthresh设置为当前cwnd的一半,即ssthresh=cwnd/2;
2. 发生超时时,置cwnd=1,在cwnd
3. awnd>=ssthresh时,执行拥塞避免算法,cwnd每收到一个ACK确认时,只增加1/cwnd个数据包这就使得cwnd随RTT呈线性增长。
(3) 快速重传和快速恢复阶段
由于在拥塞避免阶段,当发生超时时,cwnd重新置1,进入慢启动,这将导致过大减小发送窗口尺寸,很大程度上降低了TCP连接的吞吐量。为了完善TCP的性能,又引入了快速重传和快速恢复机制。
快速重传阶段,当源端收到3个或者3个以上的重复ACK确认,即认为发生了数据包丢失,此时将ssthresh设置为当前cwnd的一半,ssthresh=awnd/2,并重新传送丢失的数据包,进入快速恢复阶段。
在快速恢复阶段,源端每收到一个重复的ACK,则cwnd加1;若收到非重复的ACK,置cwnd=ssthresh,转入拥塞避免;当发生超时重传时,置
ssthresh=cwnd/2,cwnd=1,进入慢启动阶段。
快速重传和快速恢复机制避免了数据包一发生超时就直接进入慢启动,在很大程度上提高了TCP的性能和吞吐量。
3.2.3 典型TCP拥塞控制算法分析比较
TCP发展到现在已经形成了TCP Tahoe、TCP Reno、TCP NewReno、SACK、Vegas等不同版本,算法各有利弊。
Tahoe算法是TCP的早期版本。它的核心思想是:让cwnd以指数增长方式迅速逼近可用信道容量,然后慢慢接近均衡。它包括了3个基本的拥塞控制 算法:慢启动、拥塞避免、快速重传。Tahoe的缺点体现在快速重传后转向慢启动算法,这样不能有效的利用网络带宽并且还引入较大的延时。
针对Tahoe算法的不足,提出了改进算法Reno。改进主要有两方面:一是对于收到连续3个重复的ACK确认,算法不经过慢启动,而直接进入拥塞避 免阶段;二是增加了快速重传和快速恢复机制。Reno算法以其简单、有效和鲁棒性成为TCP源算法的主流,被广泛的采用。但它不能有效的处理多个分组从同 一数据窗口丢失的情况。
NewReno对Reno中快速恢复算法进行了补充,它考虑了一个发送窗口内多个分组同时丢失的情况。Reno算法中,发送方收到一个不重复的应答后 就退出
快速恢复,而NewReno中,只有当所有的分组都被应答后才退出快速恢复状态。NewReno的实现只要修改TCP发送端的实现代码,实现简单。
SACK算法也针对一个窗口内多个分组丢失的情况而对Reno算法进行改进:SACK定义了一个变量pipe来表示出现在路由器上分组的估计数量,接 收方TCP发送SACK分组来通知发送方接收数据的情况,这样源端就能准确的知道那些数据被正确的传到接收端,从而避免不必要的重传,减少延时,提高网络 吞吐量。但SACK算法的实现需要修改TCP发送端和接收端的实现代码,增加了TCP的复杂性,因此不易大规模的应用。
Vegas与上述的算法不同,它是以RTT的变化来作为拥塞信号,调节源端的发送速率。通过监测RTT的变化来改变cwnd的大小。由于Vegas采 用RTT的改变来判断网络的可用带宽,能较好的预测网络带宽的使用情况,其公平性、效率都较好。但是,由于Vegas与其它算法在竞争带宽方面存在不公平 现象,因此未能在Internet上普遍采用,还需要不断改进。
3.3 基于路由器技术的拥塞控制机制
路由器作为Internet的核心部件,需要同时维护一个或多个队列,这是基于它分组交换的特性。而队列管理算法又将直接影响到路由器的各种性能以及 拥塞控制能力。通过在路由器中引入队列管理的拥塞控制算法,使网络本身也参与资源控制从而能有效的实现对拥塞的监测和预防。
3.3.1随机早期丢弃算法(RED)
RED是主动队列管理算法中最早也是最著名的一个,以RED算法为例来描述基于路由器技术拥塞控制的基本原理。RED算法通过平均队列长度预测可能到 来的网络拥塞,并采用随机选择的策略对分组进行标记,在拥塞尚未出现时提示源端降低其发送速率以达到拥塞避免的目的。由于RED算法采用随机标记策略,使 不同TCP流的拥塞异步化,因而解决了TCP流的全局同步问题。
RED算法采用指数加权平均算法来计算系统的平均队列长度,作为拥塞预测的依据,计算公式如下:
RED算法有效的避免了TCP流全局同步现象,提高了网络资源的利用率,并能有效地控制平均队列长度,使得系统吞吐率和分组时延达到很好的平衡,并采 取一定的附加机制来保障系数的公平性。RED算法基于简单的控制机制,易于实现,因此也得到了广泛的认可和支持。但RED算法也存在一些缺点:对控制参数 过于敏感,难以优化参数设定;不支持服务分区,没有考虑不同等级服务之间不同用户之间的差别,无法提供有效的公平性保障。
基于路由器技术的队列管理算法现今已经有很多中,例如:加权随机早期检测算法(WRED),加权循环调度算法(WRR),公平排队算法(FQ),加权公平排队算法(WFQ)等,采用不同或者改进的算法来实现路由器的各种功能以及拥塞控制能力和QoS能力。
3.3.2 缓冲管理和分组调度相结合
广义的队列管理,是指以队列为依托,对数据分组,数据流进行传输控制的多种机制,主要包括了缓冲管理和分组调度两方面的内容。图1给出了采用输入输出队列结构路由器中的分组处理流程。
图 1输入输出排队路由器的分组处理流程
而目前,在绝大多数队列管理方案中,缓冲管理和分组调度都是分开进行的,缺乏一定的联系,使缓冲资源和带宽资源的分配相互独立,协作性差。而只有当缓 冲资源与带宽资源的分配相一致时,才能最大程度的利用缓冲队列的特性,使得系统吞吐量和分组丢失率综合性能最优。因此,把缓冲管理和分组调度结合起来考 虑,在缓冲管理算法中引入带宽分配是一个很有价值的研究方向。
4、TCP/IP协议的安全设计
4.1 链路加密
链路加密(又称在线加密)是传输数据仅在物理层前的数据链路层进行加密。它是把网络上传输的数据报文每一个比特进行加密。它不仅对数据报文正文加密,而且把路由信息、校验和等控制信息全部加密。当数据报文传输到某个中间节点时,必须被解密以获得路由信息和校验和,进行路由选择,随后再被加密,发送给下一个节点,直到数据报文到达目的节点为止。
4.2 节点加密
节点加密与链路加密类似,是在节点处采用一个与节点机相连的密码装置(被保护的外围设备),密文在该装置中被解密并被重新加密,明文不通过节点机,避免了链路加密在节点处易受攻击的弱点。但这种加密方式同链路加密方式一样,需要目前公共网络提供者的配合,修改交换节点,增加安全单元或保护装置。
4.3 端到端加密
由发送方加密的数据在没有达到最终目的地节点之前是不被加密的。加、解密只在源、宿节点进行。因此,这种方式可以按各种通信对象的要求改变加密密钥以及按应用程序进行密钥管理等,而且采用这种方式可以解决文件加密问题。
结论
通过对TCP/IP协议的分析,使我们对TCP/IP协议有了大致的了解,并且熟悉它在网络中的应用的问题。正是有了TCP/IP协议,才有了今天“地球村”因特网的巨大发展。TCP/IP协议作为网络层中最基本也是最重要的协议,随着现代科技的进步与发展,该协议也会逐渐走向完善。
参考文献
[1] 陈永军.什么是TCP/IP协议 [J].化工管理.2000年08期.
[2] 凌俊峰.TCP/IP协议浅释 [J].韶关学院学报.2001年09期.
[3] 电脑虎.网络大厦的互联基础——TCP/IP协议 [N].中国电脑教育
报.2004:12-23.
[4] 高传善.数据通信与计算机网络[M].北京:高等教育出版社.2002.
[5] 梁振军,梁波.计算机互联网技术与TCP/IP协议[M].北京:海洋出版
社.2006.
[6] 胡道元.网络安全[M].北京:清华大学出版社.2004.
[7] 夏阳,陆余良,孙乐昌.基于网络攻击的安全防范策略 [J].安徽大学学报
(自然科学版).2002年02期.
[8] 葛志辉,李陶深.TCP/IP协议的脆弱性与相应的对策 [J].信息技术.2004年
08期.
[9] 沈建苗.排除TCP/IP的基本故障 [N].计算机世界.2005年.
[10]陈中炜.从计算机和计算机网络的发展看TCP/IP协议的重要性 [J].中州大
学学报.2005年04期.
[11]谢希仁.计算机网络教程.第3版.人民邮电出版社.