首页 理论教育 TCP/IP协议中的主要协议

TCP/IP协议中的主要协议

时间:2023-11-02 理论教育 版权反馈
【摘要】:一个IP数据报能够支持的数据块最大为65535字节。IP是整个TCP/IP协议的基础,并且可应用于大型复杂的互联网络系统。ICMP的作用就是向IP或更高层协议,通告网络的错误和流量控制问题,专门用来处理网络传输数据中的差错报告和控制方式。图4-5 IP数据报头部与ICMP报文的组成关系所有的TCP/IP应用都直接支持ICMP,而无需进行任何配置。故而被称为距离矢量路由寻找协议,该协议的工作过程如下。

TCP/IP协议中的主要协议

1.网际协议(IP

网际协议(Internet Protocol,IP)是一个无连接的分组交换的网络层协议,负责完成寻址和路由选择功能。如果需要的话,IP也可将分组划分成更小的部分,然后将它们在中间站点(通常是一个路由器)或在目的主机重新装配。每一个分组(也叫一个IP数据报Datagram)都配有—个IP报头,并作为一数据帧由下层协议传输如图4-4所示。

978-7-111-48994-8-Chapter04-11.jpg

图4-4 IP数据报格式

数据报(Datagram)是IP最基本的传输单元。对于IPv4,其头部(又被称作“报头”)不同的信息在32位数据报宽度中占据不同的位数,如版本号占4位,IHL占4位,服务类型占8位,……。一个IP数据报能够支持的数据块最大为65535字节。

在实际的应用中,数据报具体的大小可通过软件来调整。若数据报过大,可将其分解成几个较短的数据报。当数据报传输到另一端,被拆解过的数据报按顺序又被重组起来。通常把数据报包装成符合物理网络要求(帧)格式的过程称为封装。不同的物理网络对帧大小的限制是不同的,如以太网限制传送的帧最大不能超过1500字节。还有一些物理网络把MTU(最大传输单元)限制在128字节、甚至更小,像ATM网络的信元长度只有53字节。

根据网络的结构不同,在数据报的源与目的之间可能会有几条路径。IP通过引用中间站点(路由器)的动态路由表,将数据报在互联网上传输。数据报沿途的每一个路由器,都将根据逻辑网络地址和物理设备地址(由ARP提供),决定数据报将被传输到下面哪一个路由器。

IP同时通过报头的校验和方式,对数据报进行简单的差错控制。但校验和差错控制仅针对于IP报头的正确性,不能用于对数据报中数据的差错控制。

IP是整个TCP/IP协议的基础,并且可应用于大型复杂的互联网络系统。广泛使用的IP地址,就是IP不可缺少的关键部分之一。有关IP地址及其IP分组理论和应用,将在4.5节中详细阐述。

2.控制报文协议(ICMP)

Internet控制报文协议(Internet ControI Message Protocol,ICMP),与IP一起工作,提供差错信息及其他控制信息。因为IP是无连接协议,所以它无法检测出网络的运行状况,如判断某一网络是否出现了差错与故障,如线路不通、主机断链、超过生存时间、主机或路由器发生拥塞等。ICMP的作用就是向IP或更高层协议,通告网络的错误流量控制问题,专门用来处理网络传输数据中的差错报告和控制方式。

实质上ICMP只是IP中的一个模块,当IP收到ICMP报文后,即由ICMP模块来处理。ICMP报文不是一个独立的报文,而是封装在IP数据报中,ICMP报文作为网络层数据报的数据,加上数据报的头部,组成IP数据报发送出去。图4-5展示了IP数据报头部与ICMP报文的组成关系,也就是与IC-MP报文结合后的IP数据报格式。

978-7-111-48994-8-Chapter04-12.jpg

图4-5 IP数据报头部与ICMP报文的组成关系

所有的TCP/IP应用都直接支持ICMP,而无需进行任何配置。下面是ICMP发送的一些常用信息。

Time Exceeded(超时):这条消息表明该数据报的生存周期已到,该数据报将被丢弃。这种情况一般发生在网络出现拥塞或由于生命周期设置过小的情况。

Destination Unreachable(到达不了目的地):这条消息表明由于传输中的问题,数据报无法传送至目的主机。可能的原因有:数据报不能被接收;子网或路由器找不到目标;网络阻挡了“小包”,使“DF”标志收不到。

Source Quench(源抑制):这条消息指示发送数据端降低发送速率。一般当网络出现拥塞时,才会要求主机放慢发送速率,以免造成更严重的拥挤。

Redirect(重定向):这条消息通常由中间站点(路由器)发送给发送数据端的站点,有两种情况可能发生:其一,告诉发送端站点有一条通往目的主机的更优路径可使用;其二,因路由器寻址出错(找不到目的地地址),报告发送端主机应改变路由。

Echo Request和Echo Reply(回应请求和回应应答):这两条消息用于检测一个网络站点是否能与其他站点通信。如果指定的其他站点收到了Echo Request消息,将回送一个Echo Reply消息,表明发送Echo Request的站点与回送Echo Reply的站点通信正常。反之,说明二者传输线路有故障。在Windows以及UNIX网络中,用于检测两个站点是否连通正常的ping命令,就是使用了ICMP的Echo Request和Echo Reply消息。

Windows中的ping命令是ICMP最典型的应用之一。

3.路由协议(RIP和OSPF)

(1)RIP

RIP是一个路由寻找信息协议。在RIP路由的网络中,路由器将周期性(一般每隔30s)地向整个网络广播它的路由表,该路由表列出了每个网络及它们距离本路由器的“距离”(hops)。与此相邻的路由器将根据所接收到的路由表,计算出自己到达每个网络的“距离”及路径。故而被称为距离矢量路由寻找协议,该协议的工作过程如下。

如图4-6所示,假设路由器A、B和C分别连接局域网LAN1、LAN2和LAN3。路由器C向网络广播自己到LAN1为1个hops,按照RIP协议的规范,与路由器C邻近的路由器B便自然的计算出自己到LAN1的距离为2个hops。同理,路由器A根据路由器B的路由表,可计算出自己到LAN1的距离为3个hops。但是,与此同时路由器A也接收到了相邻路由器B的路由表,并可计算出路由器A到达LAN1的距离为2个hops。然而,实际路由器A到达LAN1的距离是1个hops。为此,RIP规定取最短距离作为路由器A到达LAN1的“距离(metric)”。即,最终路由器A的路由器表中记录到达LAN1的距离为1个hops。

978-7-111-48994-8-Chapter04-13.jpg

图4-6 RIP路由表的建立

针对局域网中的每个用户而言,在向网络发送数据时,它们将根据路由器中的路由器表,决定数据发送的方向。如LAN3中的主机既接收到了路由器B的路由器表,同时也接收路由器A广播的路由器表,路由器B到达LAN1的距离为2个hops,而路由器A到达LAN1为1个hops。因此,取其hops最小者,可得出LAN3的主机中的所有发往LAN1的数据包都将通过路由器A,而不是路由器B。

在RIP路由的网络应用中,还应特别注意以下两个问题:

1)在一个路由器表中,每个路由器到达任何一个网络的代价(Cost)不能超过16个hops。当距离等于或大于16个hops时,则认为该路由器到达目的地的路由不通。

2)原则上,RIP取最短距离为路由的选择标准,但也可配置路由器强制使用hops数量较大的一条路径作为某两个网络之间通信的路径。这种技术可用于回避某个路由器流量太大时或用于利用某个路径流量不足的情形。

RIP路由协议是一个非常流行的路由协议,但是RIP有许多弱点,可能会限制它在将来网络扩充时的使用,特别是在大的和复杂的互联网上,RIP经常工作的不是太好。对大型而复杂的网络。建议使用OSPF路由管理协议。

(2)OSPF协议

OSPF(首先打开最短路径)协议的实现,可以弥补RIP的缺陷。它是一个连接状态的路由寻找协议,具有提供寻找网络的特定拓扑结构的能力。在互联网中,OSPF比RIP的性能更好。在TCP/IP协议的互联网络中,最常用的路由器协议是OSPF,因为它是基于服务类的路由选择,使负载平衡变得更容易。

OSPF建立路由表的过程与RIP不同,在OSPF路由的网络中,路由器非周期性地向网络广播一个Hello包(注意:不是整个路由器表),以“介绍”自己的网络连接状态,该Hello包将被所有路由器接收,每个路由器根据接收到的所有Hello包,便可计算出自己的路由器表。这就是OSPF建立路由器表的基本过程。与RIP不同的是,OSPF协议在网络上广播的不是整张路由器表,而仅仅是一个很小的Hello包。其最大的优势是缩短了同步“收敛”时间,减少了网络系统维护流量,从而增加了网络应用数据的流量。

因此,OSPF被认为是比RIP更优越的路由器协议。具体的优势如下:

1)OSPF是大型网络的最佳选择。因为RIP的数据包最多只能通过15个路由器进行传送,当路径距离超过15个路由器(16个hops)时,则被认为此路不同。而OSPF的数据包可通过的最多路由器高达655359个。可想而知,Internet网络只能使用OSPF路由器协议,RIP无法胜任。

2)OSPF支持变长子网屏蔽。该功能可以让网络管理员为每一网段分配不同子网屏蔽值,从而可增加在单一网络地址中可包含的子网和主机数量。

3)同步快速收敛。OSPF可帮助网络快速检测网络的变化,并重新计算新的路由,收敛过程简捷,开销最小。在OSPF网络中,不会出现计数至无穷大问题。(www.xing528.com)

4)增加了应用数据流量,减少了网络管理流量。在OSPF路由的网络中,为建立维护路由器信息所发生的网络流量比RIP小。通常RIP路由器需要每隔30s就向网络广播一次其整个路由表数据库,而OSPF路由器只在开机时和连接状态发生变化时,才向网络广播自己的连接状态信息。

不过,OSPF路由器的配置和应用都要比RIP路由器复杂,其中有较多的RIP没有的原理和方法。

4.数据传输协议(TCP和UDP)

(1)TCP

传输控制协议(Transmission Control Protocol,TCP)是Internet重要的应用协议之一。TCP属于OSI传输层中的协议。TCP的主要功能是提供可靠通信的有效报文协议,一旦数据报被破坏或丢失,TCP负责将被破坏或丢失的数据报进行重新传输,而不需要其他高层应用程序的帮助。此外,TCP同时会检测数据传输中可能发生的错误,并具有纠正错误的能力。具体的过程如下:

TCP从上层协议接收任意长度的报文,并提供全双工、面向连接的传输服务。TCP仅负责在网络间传输数据的工作,它把接收到的数据流划分成段,然后将这些段送给IP。因为IP的数据传输服务是无连接的方式,为此TCP必须给每个段提供顺序同步,且通过在字节一级分配顺序号来完成此任务。为节省时间和最优化地使用传输带宽,TCP能够把大量并发的上层对话组合到一个段里,也可以把一个大的数据包分解成若干个小段进行发送。最终段的发送,均通过一个连接标识符的虚电路方式完成。这个连接标识符称为端口。

可见,TCP的根本目的是保证数据传输可靠,所采用的连接服务是标准的OSI传输层面向连接的服务方式。对于TCP,当要求传输数据的正确性较高或很严格时(如Telnet,FTP),选择使用TCP进行数据的传输无疑是最佳的选择。

(2)UDP

用户数据报协议(User Datagram Protocol,UDP)与TCP一样,用于进行数据的传输服务。与TCP不同的是,UDP不是面向连接的,并且接收方在接收到数据后也不发确认。可以这样认为,UDP只是简单地接收和传输数据报,而TCP可确保数据传输可靠性。UDP和TCP可用于不同的数据传输可靠性要求的服务中。

不过,UDP数据报的传送也是通过分配给一个端口地址来完成的。但是,这个端口只是一个指向一个本地进程的指针,而不是一个虚电路连接。因为UDP没有建立连接和拆除连接流量控制及执行其他TCP功能的额外开销,所以UDP通常比TCP传输数据的开销小,自然传输数据的速度也更快。

UDP与TCP各有不同的使用场合,对于数据量较小且数据传输的正确性要求不是很高的情况,可考虑使用UDP协议。

5.地址解析协议(ARP和RARP)

地址解析协议是TCP/IP中的一组协议ARP、RARP等。这些TCP/IP协议利用网络物理设备和逻辑网络地址与IP地址的对应关系,提供物理设备地址和它们所对应的IP地址的地址转换服务。

IP是根据IP地址传输报文,但IP地址中的网络标识号、路由器标识号和目标主机标识号等,都是ICP/IP内部使用的逻辑标识,并不是网络设备的物理地址。而数据在网络中传输时,需要使用源或目的设备的硬地址——物理设备地址。地址转换协议的作用,就是提供网络设备IP地址与物理设备地址的转换服务,且这种服务是双向的。

当上层协议提供一个带有数据和目的设备IP地址的数据包时,地址解析协议ARP,则利用广播分组或一个上次查找的缓存表,根据数据链路层协议的要求,提供该目的物理设备的物理设备地址和逻辑网络地址。反过来,反向地址解析协议RARP(Reverse ARP),则是根据硬件地址获取其相关联的IP地址。

实际上,任何联网设备(主机、路由器、交换机等)在网络中可唯一标识的地址(或标识)只有其物理地址(MAC地址)。但是,网络中的设备类型较多,即使是同一种设备,通常又来自不同的厂家,且还使用不同的协议,使设备的物理地址的实际长度、格式等都不尽相同。为此,TCP/IP网络采用统一的IP地址,正是为了屏蔽这些差别。

对于设备的物理地址和设备的逻辑地址,可以从两个角度理解它们的差异。其一,从网络互联的角度看,设备的逻辑地址在整个互联网络中有效,而设备的物理地址只是在子网内部有效;其二,从网络协议分层的角度看,逻辑地址在网际层(网络互联时)使用,而设备的物理地址则提供给网络接口层(数据链路层)协议使用。这两种地址需要一种映像关系把它们对应起来,这就是ARP和RARP。ARP和RARP在源和目的设备两端,实现逻辑IP地址和物理地址的相互转换,它们是IP协议的一个子集,实际上执行的是数据链路层功能。具体的工作过程如下:

当有要求ARP把某一IP地址转换为物理地址时,ARP会先查找本地内存的ARP地址对照表,若发现被要求转换的IP地址,就传回其对应的物理地址。否则,ARP会将报文广播到它所在的局域网。该报文内含有要求转换的IP地址等信息,网络上所有的主机都会收到该报文,若其中的一台发现该报文中的IP地址与自己吻合,则会回答一个内含它的物理地址的报文给发出广播的ARP主机,该主机的ARP收到此报文后,除了将对应的物理地址传回要求者外,还要将它存放在ARP的动态对照表中。

反过来,系统有时会要求把物理地址转换成IP地址,这时就要用到RARP、RARP与ARP的工作方式相同。

6.域名服务协议(DNS)

域名系统(Domain Name System,DNS)是一个分布式数据库系统。DNS根据用户应用的要求,进行地址/名字(域名)的翻译。也就是说,DNS服务器维护一个层次型命名结构,使网络用户能够用域名,而不是必需使用IP地址来识别每一台主机。

DNS已经成为Internet中不可或缺的服务之一,使用户能够在任何一个浏览器的URL处,直接输入Internet上的任何一个主机的域名,如www.sohu.com,DNS便可返回该域名的IP地址,使浏览器连接用户所要访问的网站。这就是为什么每当在浏览器输入了某个网站域名之后,在浏览器的状态栏看到的“地址已找到,正在连接…”或“地址未找到”等信息的原因。关于DNS更详细的介绍,请参阅4.5.2节。

7.文件传输协议(FTP和TFTP)

(1)FTP

文件传输协议(File Transfer Protcol,FTP)是DOD模型中“进程/应用层”协议。FTP的最基本作用是能够让用户在两个互连的计算机之间传输文件(不是数据!)。在Internet应用广泛使用的文件下载服务,就是FTP协议的典型应用。

一个FTP服务器,提供登录、目录查询、文件操作、命令执行及其他会话控制功能。并且这些功能是独立于本地操作系统和系统硬件而执行的,完全属于一个“网络行为”而依靠其他应用程序的支持与帮助。尤其是FTP可用于在两个不同的本地操作系统间移动文件,因为它提供的是一个通用的独立于本地操作系统的文件请求结构。

FTP用户在主机之间建立虚电路连接,在文件传输服务之前,需要验证用户账号和口令,但也可以根据应用的需要,将FTP设置为匿名用户访问方式。

(2)普通文件传输协议(TFTP)

普通文件传输协议(Trivial File Transfer Protocol,TFTP)与FTP类似,它允许用户在两个系统之间传输文件,但无须账号和口令。并具有以下两个重要特征。

1)通过TFTP,可以下载文件,但不能列出文件或目录。

2)与FTP不同,TFTP并不需要一个可靠的传输服务,它运行在UDP或其他任何不需要可靠传送的应用系统上。

8.简单邮件传输协议(SMTP)

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个电子邮件路由协议。SMTP使用TCP和IP,在网络主机之间传输邮件报文。

SMTP不提供本地邮件用户界面。用户需要写信或建立信箱,就必须使用一个本地邮件界面,而SMTP仅仅定义了一个在网络主机之间交换邮件的方法,仅能将邮件从一台主机传输到另—台主机。可见,SMTP是用于主机上电子邮件系统之间交换邮件的协议,还无法解决网络接发送邮件系统的全部问题。因此,在现实的电子邮件系统中,还有两个常用的协议,与SMTP一道,共同实现电子邮件系统的正常运作。这两个协议分别是:POP3和IMAP。有关这两个协议的具体功能,请参见9.2.2节。

9.超文本传输协议(HTTP)

超文本传输协议(Hyper Text Transfer Protocol,HTTP)提供了一种用于访问全球咨询网或企业内部网的请求/响应的方法——访问Web服务器。

使用HTTP,可在客户机与服务器之间建立连接,并发出请求。这个请求表明了HTTP的目的,并提供简单查询功能。包括消息类型、获取信息的方法、资源识别符、URL和协议版本。

在TCP/IP网络中,实现Web服务的最基本的网络协议,就是HTTP。Web服务使用网页就是按照HTTP的要求编写的超文本文件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈