好贷网好贷款

《TCPIP详解卷一》第三章(IP网际协议)学习笔记

发布时间:2016-12-4 18:23:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"《TCPIP详解卷一》第三章(IP网际协议)学习笔记",主要涉及到《TCPIP详解卷一》第三章(IP网际协议)学习笔记方面的内容,对于《TCPIP详解卷一》第三章(IP网际协议)学习笔记感兴趣的同学可以参考一下。

3.1引言 I P提供不可靠、无连接的数据报传送服务: 不可靠(u n r e l i a b le)的意思是它不能保证I P数据报能成功地到达目的地。I P仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,I P有一个简单的错误处理算法:丢弃该数据报,然后发送I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。 无连接(c o n n e c t i on l e s s)这个术语的意思是I P并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,I P数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。   3.2 IP首部 传输模式(网络字节序): 首先是0~7 bit,其次8~15 bit,然后1 6~23 bit,最后是24~31 bit。这种传输次序称作bigendian字节序。由于T C P / I P首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。其他存储方式(如little endian格式),则必须转换为网络字节序。 I P数据报的格式:          抓包工具得到的IP数据报: 4位版本:版本包好V4和V6,目前最多的是V4,所以IP协议也称作IPV4协议。 4位首部长度:首部占32 bit字的数目(也就是首部有多少个4字节),包括选项。由于它是一个4比特字段,因此首部最长为60个字节(4bit最大值为15,15乘以4字节=60字节)。普通I P数据报(没有任何选择项)字段的值是5(20字节除以4字节)。 8位服务类型:包括一个3 bit的优先权(Precedence)子字段(现在已被忽略),4bit的TO S子字段和1 bit保留位(Reserved)但必须置0。4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。 16位总长度(字节数):指整个I P数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道I P数据报中数据内容的起始位置和长度。由于该字段长1 6比特,所以I P数据报最长可达6 5 53 5字节。 16位标识:唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。 8位生存时间(TTL):该字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。T T L的初始值由源主机设置(通常为3 2或6 4),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送I C M P报文通知源主机。 8位协议:该字段可以区分是哪个协议向IP传送数据。图中6,则标识是TCP协议。 16位首部检验和:根据I P首部计算的检验和码。它不对首部后面的数据进行计算。I C M P、I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。 计算一份数据报的I P检验和: 首先把检验和字段置为0。然后,对首部中每个16 bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。当收到一份I P数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么I P就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。 32位源I P地址和目的I P地址:用于存储源I P地址和目的I P地址。 选项:数据报中的一个可变长的可选信息。一般都没有NONE。选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字节。这样就保证I P首部始终是32 bit的整数倍(这是首部长度字段所要求的)。   3.3 IP路由选择 I P路由选择:目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么I P数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。 I P可以从T C P、U D P、I C M P和I G M P接收数据报(即在本地生成的数据报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。 路由选择是逐跳地(h o p - b y- h o p)进行的。从这个路由表信息可以看出,I P并不知道到达任何目的的完整路径(当然,除了那些与主机直接相连的目的)。所有的I P路由选择只为数据报传输提供下一站路由器的I P地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该主机是直接相连的。 I P层路由表:I P层在内存中的一个路由信息表。当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报来自某个网络接口时,I P首先检查目的I P地址是否为本机的I P地址之一或者I P广播地址。如果是,数据报就被送到由I P首部协议字段所指定的协议模块进行处理。如果数据报的目的不是路由表中的地址,那么两种情况: (1)如果I P层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下面对待发出的数据报一样处理); (2)数据报被丢弃。 路由表中的每一项的信息: (1)目的I P地址。可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定(如下所述)。 (2)下一站(或下一跳)路由器(next-hop router)的I P地址,或者有直接连接的网络I P地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。          (3)标志。其中一个标志指明目的I P地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。          (4)为数据报的传输指定一个网络接口。 I P路由选择完成的功能:          (1)搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标 志字段的值)。          (2)搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行讨论。          (3)搜索路由表,寻找标为“默认(d e f a u l t)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。 如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。 为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是I P路由选择机制的另一个基本特性。这样做可以极大地缩小路由表的规模,比如I n t e r n e t上的路由器有只有几千个表目,而不会是超过1 0 0万个表目。   3.4子网寻址(子网划分) 子网编址: A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为 。事实上,在一个网络中人们并不安排这么多的主机。由于全0或全1的主机号都是无效的,因此我们把总数减去2。所以,现在不是把I P地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。现在所有的主机都要求支持子网编址。如B类IP地址组成如下: 在I n t e r N I C获得某类I P网络号后,就由当地的系统管理员来进行分配,由他(或她)来决定是否建立子网,以及分配多少比特给子网号和主机号。例如,这里有一个 B类网络地址(1 4 0 . 2 5 2),在剩下的16 bit中,8 bit用于子网号,8 bit用于主机号,格式如图3 - 5所示。这样就允许有2 5 4个子网,每个子网可以有2 5 4台主机。          子网划分不一定是8比特子网号和8比特的主机号,其实可以随意划分的,只是这样以点分十进制方法表示的I P地址就可以比较容易确定子网号。   3.5子网掩码 子网掩码:用于确定IP地址中有多少比特用于子网号及多少比特用于主机号。 子网掩码是一个32 bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号。下图是一个B类地址的两种不同的子网掩码格式: (1)子网掩码(255.255.255.0),是通常网络采用的子网划分方法,子网号和主机号都是8 bit宽(低8bit为0)。 (2)子网掩码(255.255.255.192),是一个B类地址划分成10 bit的子网号和6 bit的主机号(低6bit为0)。 尽管I P地址一般以点分十进制方法表示,但是子网掩码却经常用十六进制来表示,特别是当界限不是一个字节时,因为子网掩码是一个比特掩码。 给定I P地址和子网掩码以后,主机就可以确定I P数据报的目的是: (1)本子网上的主机; (2)本网络中其他子网中的主机; (3)其他网络上的主机。 如果知道本机的I P地址,那么就知道它是否为A类、B类或C类地址(从I P地址的高位可以得知),也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。   3.6特殊情况的IP地址 7个特殊的I P地址: 0表示所有的比特位全为0; - 1表示所有的比特位全为1; n e t i d表示不为全0; s u b n e t i d和h o s t i d表示全1的对应字段。    

上一篇:tomcat欢迎页面不能显示问题解决方法
下一篇:MIS

相关文章

相关评论