第四章 网络层协议的测试分析及NAT

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章网络层协议的测试分析及NAT4.1TCP/IP的网络层TCP/IP协议体系中的网络层常常称为网际层(internetlayer)或IP层,其中最核心的协议是网际协议IP(InternetProtocol)。IP协议是TCP/IP协议族中的主要网络层协议,与TCP协议结合组成整个因特网协议的核心。与IP协议配套使用的还有四个协议:地址解析协议ARP(AddressResolutionProtocol)、反向地址解析协议RARP(ReverseAddressResolutionProtocol)、因特网控制报文协议ICMP(InternetControlMessageProtocol)和因特网组管理协议(InternetGroupManagementProtocol)。除了ARP和RARP,其它TCP/IP协议族中的协议,包括TCP、UDP、ICMP、IGMP等报文都以IP数据报格式传输。当前IP协议有两种版本:IPv4和IPv6,本章实验使用IPv4。4.1.1网际协议IP将若干网络互连就成为互联网,使用网络层IP协议,可以把高层的数据以IP数据报的形式通过互联网进行传输。网际协议IP提供的基本服务有:提供无连接、不可靠、“尽力传递”的IP数据报传送。无连接指IP协议并不在数据传输前先建立连接、并不为后续IP数据报维护任何状态信息,每个数据报的处理都是相互独立的。不可靠指不保证每个IP数据报都能成功地到达目的地。IP协议仅提供“尽力传递”的传输服务。如果发生了某种错误,会丢弃该IP数据报、发送ICMP报文给源端,同时IP协议也不检查数据链路层是否丢弃过报文。任何可靠性的要求必须由上一层来提供。为了克服各网络的数据链路层对帧大小的限制,IP协议提供IP数据报的分片及重组功能,以支持在各网络中由于不同MTU(最大传输单元,为帧中数据字段的最大长度)传输产生的问题,这使得很大的IP数据报能以分片在MTU较小的网络中传输。网络层提供的最重要服务是在互联网络中进行路由选择。在网络的中间结点(路由器)上,根据每个IP数据报中的目的IP地址进行路由选择,决定路径中的下一跳怎么走,从而在各个路由器中依次存储、转发,直至传到目的结点。在发送端,高层协议将数据传给IP层,IP层将数据封装为IP数据报,并交给其下的数据链路层,组成帧后通过物理线路传送。若目的主机直接连在本网中,可直接通过网络接口将IP数据报传给目的主机;若目的主机在远方网络中即不与源主机直接相连,则向路径中的下一路由器转发IP数据报。一般来说,路由器中的路由表项主要有两个字段,一个是目的地址字段,另一个是到该目的地址经由的下一个路由器IP,即下一跳IP地址。IP数据报在路由表中找到匹配项后向下一跳地址转发,被传送到下一个路由器,在下一路由器中重复此过程,又被传送到再下一个路由器,依此方法找路,直至最后传到目的主机。搜索路由表进行IP寻路的过程如下:(1)搜索路由表中目的地址字段与IP数据报目的IP地址完全匹配的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;(2)若(1)不成功,则搜索路由表中目的地址字段与IP数据报目的网络号相匹配的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;(3)若(2)不成功,则搜索路由表中目的地址字段为默认路由(“default”或0.0.0.0mask0.0.0.0)的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;;(4)若以上都不成功,则说明该IP数据报不可投递,通常将一个“主机不可达”或“网络不可达”的ICMP出错报文发送给源结点产生这个IP数据报的应用进程。4.1.2因特网控制报文协议ICMP在网络体系结构的相关层次中,需要进行一些控制。由于IP协议提供的是一种不可靠的、无连接的报文分组传送服务,协议自身没有内在机制来获取并处理差错信息,为了处理这些错误,在网络层加入了一类特殊用途的报文机制,即因特网控制报文协议ICMP。它是一种差错和控制报文协议,主要完成差错控制与报警及测试等功能。通常在目的主机接收分组或中继路由器转发分组发现问题后,会产生相应的ICMP报警报文反馈给源主机。如果一个分组不能传送,ICMP报文便可以被用来警告发送端,说明网络、主机或端口不可达。ICMP报文也可以用来进行测试,如经常使用的ping命令可以测试网络连通性,就使用了一种回送类型的ICMP报文。ICMP报文被封装在IP数据报中发送,它在功能上属于网络层。4.2IP数据报的格式下面简单介绍IP数据报的格式,如图4.1所示。IP数据报分为首部和数据部分。首部的前一部分为固定部分,共20字节,是所有IP数据报必须具有的。固定部分后是可变部分,为选项,其长度0-40字节可变,但很少用到。版本:IP协议的版本号,现在为IPv4,故此字段值为0100。首部长度:IP数据报头(包含选项部分)以双字(32位)数表示的长度。一般的IP数据报头只有固定部分,无可变部分,此时其首部长度的双字数为5(即0101)。填充片偏移首部长度协议服务类型首部校验和标志总长度数据部分……选项(0~40字节可变)目的IP地址源IP地址生存时间标识版本固定部分(20字节)可变部分首部数据部分04816192431图4.1IP数据报的格式服务类型(TOS):包括一个3位的优先权子字段(忽略),4位的TOS子字段和1位未用位(须置0)。4位的TOS分别代表:最小延时、最大吞吐量、最高可靠性和最小费用。4位中只能置其中一位,如4位均为0,则意味着是一般服务。总长度:指整个IP数据报的长度,包括数据部分和首部,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长为16位,所以IP数据报最长可达64KB。总长度字段是IP首部中必要的内容,因为一些局域网(如以太网)传送帧时,如果帧中数据很少,需要在数据字段填充一些数据以达到帧数据字段的最小长度,如以太网最小帧中,数据字段长度必须达到46字节。当IP数据很短、用帧封装必须填充凑满46字节时,如果没有该IP数据报总长度字段,那么接收结点的网络层就不知道这46字节中有多少是IP数据报的内容。标识:唯一地标识主机发送的每一个IP数据报。通常每发送一个IP数据报该值就会加1。标志:由3位字段构成,其中最高位不使用,低两位的DF、MF标志位控制分片。DF标志位指出数据包是否可进行分片。MF标志位指出在一系列数据包分片中该IP数据包分片是否是最后的分片。片偏移:13位字段,指出分片后某片数据在原IP数据报的数据字段中的相对位置,以支持目标结点的网络层在接收各分片后重建原IP数据报。片偏移以8字节为偏移单位。生存时间TTL(Time-To-Live):设置了IP数据报可以经过的最多路由器数目。它指定了该IP数据报的生存时间。TTL的初始值由源主机设定,一旦经过一个路由器,它的值就被减1。当该字段值为0时,路由器就丢弃该IP数据报,并发送ICMP报文通知源主机通知该数据报超时。协议:指出在IP协议处理完成后,其后封装的IP数据报中的数据由哪种上层协议的实体来接收处理,常用的高层协议有:1=ICMP,2=IGMP,3=TCP,17=UDP。首部校验和:根据IP首部计算的检验和,这里仅对首部、不对后面的数据进行校验,以减少每次在路由器中的计算工作量和计算时间。IP数据报中数据的校验会在高层协议ICMP、IGMP、UDP、TCP处理时才进行,那时它们在各自的首部字段中均包含有同时覆盖其首部和数据的检验和码。为了计算IP数据报首部的校验和,首先把校验和字段置0,然后对首部中以16位字为单位进行二进制反码累加,最后结果取反后存放在校验和字段中。当某结点收到IP数据报后,同样对首部中的每个16位字进行二进制反码求和。由于接收方在计算过程中包含了发送方放在首部中的校验和,因此如果在传输没发生差错的情况下,接收方计算的校验和结果应为全1,否则认为出错(即校验和错误),丢弃收到的数据报。此处不生成差错报告报文,差错由之后的上层去发现数据报是否丢失并进行重传。源IP地址和目的IP地址:每一个IP数据报都包含这两个字段。选项:是数据报中一个0~40字节的可变长字段。目前这些选项定义如下:安全和处理限制(用于安全领域)记录路径(让每个路由器都记录下它的IP地址)时间戳(让每个路由器都记录下它的IP地址和时间)宽松的源站选路(为数据报指定一系列必须经过的IP地址)严格的源站选路(与宽松源站选路类似,但要求只能经过这些指定的地址,不能经过其它地址)。这些选项很少被使用,并非所有的主机和路由处理都支持这些选项。选项字段以32位的双字作为边界,在必要时必须插入值为0的填充字节,这样才能保证IP首部长度始终是32位双字的整数倍(这是首部长度字段所要求的)。4.3ICMP数据报格式ICMP数据报被封装在IP信包中,IP首部位于ICMP数据报之前,如图4.2所示。此时IP首部的协议字段值为1,说明该IP信包的数据部分是一个ICMP报文。ICMP数据报的前4个字节的格式是统一的,共有三个字段:即类型、代码和校验和。类型字段用于标识ICMP数据报的用途,代码字段用于进一步区分某种类型中的几种不同的情况,校验和字段用来校验整个ICMP报文。接着的标识符和序列号字段与具体的ICMP报文类型有关,再后面是数据部分,其长度取决于ICMP的类型。ICMP的类型、代码字段与ICMP数据报类型的对应关系,见表4.1所示。其中最常用的几种ICMP报文类型有:3(终点不可达)、11(TTL超时)、8或0(回送请求或回答)。序列号数据部分标识符校验和代码类型081631ICMP数据报数据部分首部IP数据报图4.2ICMP数据报的格式表4.1类型、代码字段与ICMP数据报类型的对应关系类型代码描述类型代码描述0000EchoReply0400SourceQuench0300NetworkUnreachable0500RedirectdatagramsfortheNetwork01HostUnreachable01RedirectdatagramsfortheHost02ProtocolUnreachable02RedirectdatagramsfortheTypeofServiceandNetwork03PortUnreachable03RedirectdatagramsfortheTypeofServiceandHost04FragmentationneededandDF(Don'tFragment)set0800EchoRequest05Sourceroutefailed0900RouterAdvertisement06DestinationNetworkunknown1000RouterSolicitation07DestinationHostunknown1100TTLCountExceeded08SourceHostisolated01FragmentReassemblyTimeExceeded09CommunicationwithDestinationNetworkAdministrativelyProhibited1200ParameterProblem10CommunicationwithDestinationHostAdministrativelyProhibited1300TimestampRequest11NetworkUnreachableforTypeOfService1400TimestampReply12HostUnreachableforTypeOfService1700AddressMaskRequest13CommunicationAdministrativelyProhibitedbyFiltering1800AddressMaskReply14HostPrecedenceViolation15Prece

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功