自动驱使变更封包长度以符合通道宽度的系统与方法

文档序号:7966409阅读:319来源:国知局

专利名称::自动驱使变更封包长度以符合通道宽度的系统与方法
技术领域
:本发明提供一种自动驱使变更封包长度以符合通道宽度的系统与方法。当来源端主机收到ICMPUnreachable(FragmentationRequired)错误信息后,若来源端主机有处理此种ICMPUnreachable(FragmentationRequired)错误信息的能力,则之后传送数据封包往该目的地主机时,数据封包便会予以切割以符合该MTU值,使得送出的封包能通过原先无法通过的路径;但是,该MTU值只有记录在该来源端单一主机上,其他主机并不知道这个MTU值,故当另一台主机传送数据封包到同一目的地主机时,须再经过相同的处理情形,即得等收到ICMPUnreachable(FragmentationRequired)错误信息,再重新切割重传,造成时间效益上的浪费。若来源端主机并没有处理这种ICMPUnreachable(FragmentationRequired)错误信息的能力,则不知传送前,应该将数据封包做适当的切割,将使得数据封包依旧无法通过该绕送路径,且会持续重传数据封包,直到来源端主机与目的地主机间断线。由此可知,已知的封包传送方式仍存在有诸多缺点,而有必要予以改进,发明人爰因于此,本着积极发明的精神,亟思一种可以解决上述问题的“自动驱使变更封包长度以符合通道宽度的系统与方法”,几经研究终至完成此项嘉惠世人的发明。根据本发明的一特色,所提出的自动驱使变更封包长度以符合通道宽度的系统,主要包括至少第一来源主机与第二来源主机;一第一路由器;一第二路由器,是与该第一路由器间存有一较小的通道宽度;一第三路由器,是与该至少第一来源主机与第二来源主机直接或间接连接,并与该第一路由器直接或间接相连接,且位于该第一路由器与该至少第一来源主机与第二来源主机之间;以及一目的主机,是与该第二路由器直接或间接相连接;其中,该第三路由器能自动收集网际网路控制信息协定的无法抵达错误信息(InternetControlMessageProtocolUnreachableError),并记录该信息中到该原目的主机间通道的最大传输单元(MaximumTransmissionUnit,MTU)的最小值与该原目的主机的网际网路IP地址,使得尔后当该第一或第二来源主机与该目的主机连线时,对该来源主机所发出的连线封包(SYNCPacket)中的最大数据段长度值(MaximumSegmentSize,MSS)与记录的最大传输单元(MTU)做一比较处理,再传送至该目的主机,而该目的主机将会比对该连线封包中的“最大数据段长度(MaximumSegmentSize,MSS)值与其所预设的最大数据段长度值,并采用较小的最大数据段长度值,该目的主机再传回一含有该较小的最大数据段长度值的认可的连线封包(SYNC/ACKPacket)给该来源主机,该来源主机收到该认可的连线封包后,亦会采用该较小的最大数据段长度值,以达成来源端与目的端主机均采用相同较小的最大数据段长度值。其中该第三路由器对该来源主机所发出的连线封包进行比较处理,若该连线封包中的最大数据段长度值,大于该第三路由器的绕送路径表记录对应的同一目的地的最大传输单元减去特定固定长度标头值,则依照传输单元值计算一新的最大数据段长度值,再将计算后的结果取代该连线封包中的最大数据段长度值,否则,保留原本的最大数据段长度值。其中该至少第一来源主机与第二来源主机是与该目的主机建立TCP连线。根据本发明的另一特色,所提出的自动驱使变更封包长度以符合通道宽度的方法,主要包括下述的步骤(A)若该第一来源主机经由该第三路由器、第一路由器、及第二路由器传送一大于该第一路由器与第二路由器间通道宽度的数据封包至该目的主机,且该数据封包的IP标头设定了不可分割比特(Don’tFragmentBit),则该第一路由器将会抛弃数据封包,并传回一个网际网路控制信息协定的无法抵达错误信息(InternetControlMessageProtocolUnreachableError)封包给该第一来源主机,该信息封包中并含有无法通过的通道宽度的最大传输单元(MaximumTransmissionUnit,MTU)值;(B)当该网际网路控制信息协定的无法抵达错误信息封包经过该第三路由器,则由该第三路由器将该信息封包中的最大传输单元值及原无法送达的目的主机的网际网路地址,记录储存于其绕送路径表中;(C)当该第一或第二来源主机与该目的主机再建立连线,该来源主机所送出的连线封包将先通过该第三路由器,该第三路由器将查询绕送路径表以比对处理该连线封包中的最大数据段长度值与先前记录的最大传输单元值,再将该连线封包送至该目的主机;(D)该目的主机接收该连线封包,并比对该连线封包的最大数据段长度值与该目的主机预设的最大数据段长度值,且采用较小的最大数据段长度值;以及(E)该目的主机传回一含有较小的最大数据段长度值的认可连线封包(SYNC/ACKPacket)至该来源主机,使得该来源主机与该目的主机达成采用相同较小的最大数据段长度值。其中于步骤(A),当该大于该第一路由器与第二路由器间的通道宽度的数据封包通过该第一路由器,则该第一路由器丢弃该数据封包,并发出一网际网路控制信息协定的无法抵达错误信息封包给该第一来源主机,且该信息封包中尚含有该第一路由器与该第二路由器间通道宽度的最大传输单元值。其中于步骤(B),该第三路由器能取出该网际网路控制信息协定的无法抵达错误信息封包中的最大传输单元值以及无法送达的目的主机的网际网路地址,并记录储存于该第三路由器的绕送路径表中。其中于步骤(C),若该连线封包的最大数据段长度值,大于该第三路由器的绕送路径表记录对应的同一目的地的最大传输单元减去特定固定长度标头值,则依该最大传输单元值计算一新的数据段长度值,且将计算后的结果取代该连线封包中的最大数据段长度值,否则,保留该连线封包原本的最大数据段长度值。其中该至少第一来源主机与第二来源主机是与该目的主机建立TCP连线。由于本发明构造新颖,能提供产业上利用,且确有增进功效,故依法申请发明专利。图4是本发明的储存于第三路由器中的绕送路径表的一部份;图5是本发明再度连线时第三路由器比对、修改MSS值的动作流程图。请先参阅图1所显示的系统架构图,其包括有网路中的来源端1、第三路由器2、第一路由器3、第二路由器4、以及目的主机5。其中,来源端1中包括第一来源主机11、第二来源主机12、以及第三来源主机13等三台主机。前述中本发明的第三路由器2,可能直接或间接与第一来源主机11、第二来源主机12、及第三来源主机13相连接。第三路由器2可能直接或间接与第一路由器3相连接,而第一路由器3与第二路由器4间为直接连接,中间存在一较小的通道。第二路由器4的另一端则可能直接或间接连接至目的主机5。图2显示本发明的来源端送出数据封包过大时,第一路由器3及第三路由器2的动作流程图,当来源端1中的第一来源主机11已经与目的主机5建立TCP连线,且第一路由器3与第二路由器4间的连线通道宽度为522字符(byte)。第一来源主机11开始传送数据封包(步骤S201),直到突然有一个数据封包长度为600字符(且IP标头设定了不可分割比特),其超过第一路由器3与第二路由器4间的连线通道宽度,则第一路由器3将会丢弃该长度为600字符的数据封包(步骤S202),且第一路由器3会传送一个网际网路控制信息协定(InternetControlMessageProtocol,ICMP)的无法抵达(Unreachable)必须分割(FragmentationRequired)的错误信息(type=3,code=4)封包给第一来源主机11,以告知第一路由器3与第二路由器4间所允许传送的“最大传输单元”(MaximumTransmissionUnit,MTU)值为552字符(步骤S203)。图3显示出ICMPUnreachable(FragmentationRequired)错误信息的内容,其包含着二路由器间所允许传送的MTU值。当此ICMPUnreachable(FragmentationRequired)错误信息封包经过第三路由器2时,第三路由器2会将封包中原IP标头的目的主机5的IP地址及MTU值取出,以记录到本身的绕送路径表(routingtable)中(步骤S204)。图4显示出数据封包中的目的主机IP地址,搭配MTU值552字符储存于绕送路径表的一部份。图5显示来源端1的主机建立新连线时,驱使连线后,来源端送出数据封包长度符合通道宽度的动作流程图。当第一来源主机11或第二来源主机12或第三来源主机13与目的主机5建立新的TCP连线时,由来源端1所发出的连线封包经过第三路由器2(步骤S501),则第三路由器2将会比对连线封包的目的地栏位与绕送路径表中的目的地栏位,并比较绕送路径表中所储存的MTU值552字符与连线封包中的MSS值,若连线封包中所带的MSS值1500字符,大于其储存的MTU值552字符减去某些固定长度标头的值(假设为40字符),则第三路由器2将依照MTU值552字符,计算出适当的新MSS值512字符,并取代原连线封包的MSS值1500字符(步骤S502),反之,若是连线封包中所带的MSS值,小于或等于其储存的MTU值552字符减去某些固定长度标头的值,则保留原连线封包中的MSS值(步骤S503),再传送至该目的主机5。当目的主机5收到连线封包时,目的主机5会比较连线封包中的MSS值512字符与其本身所预设的MSS值1500字符,若目的主机5所预设的MSS值1500字符大于修改过的连线封包中的MSS值512字符,目的主机5将采用修改过较小的MSS值512字符(步骤S504),并传回一个含有修改过较小的MSS值512字符的认可的连线封包给原先的来源端1的主机(第一来源主机11或第二来源主机12或第三来源主机13)(步骤S505),则来源端1的主机将会认为目的主机5的MSS值512字符是其允许的MSS值,小于原先来源端1的主机的MSS值1500字符,而达成协定采用此一较小MSS值512字符,来切割送出的数据封包。如此,来源端1的主机所送出的数据封包便能通过第一路由器3与第二路由器4间较小的连线通道宽度,并节省来源端1的主机处理ICMPUnreachable(FragmentationRequired)错误信息,及再切割重传的时间,也解决来源端1的主机因不能处理ICMPUnreachable(FragmentationRequired)错误信息,而无法将数据封包切割,使得数据封包无法送至目的主机5而导致断线的问题。综上所述,本发明无论就目的、方法及功效,再均显示其迥异于已知技术的特征,实为一极具实用价值的发明。惟应注意的是,上述诸多实施例仅为了便于说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。权利要求1.一种自动驱使变更封包长度以符合通道宽度的系统,其特征在于,主要包含至少第一来源主机与第二来源主机;一第一路由器;一第二路由器,其是与该第一路由器直接连接,且其间存有一较小的通道宽度;一第三路由器,是与该至少第一来源主机与第二来源主机直接或间接连接,并与该第一路由器直接或间接相连接,且位于该第一路由器与该至少第一来源主机与第二来源主机之间;以及一目的主机,是与该第二路由器直接或间接相连接;其中,该第三路由器能自动收集网际网路控制信息协定的无法抵达错误信息,并记录到该目的主机间通道的最大传输单元的最小值与该目的主机的网际网路地址,使得当该第一或第二来源主机与该目的主机连线时,对该来源主机所发出的连线封包做一比较处理再传送至该目的主机,而该目的主机将会比对该连线封包中的最大数据段长度值与其所预设的最大数据段长度值,并采用较小的最大数据段长度值,该目的主机再传回一含有该较小的最大数据段长度值的认可连线封包给该来源主机,该来源主机收到该认可的连线封包后,并采用该较小的最大数据段长度值,以达成来源端与目的端均采用相同较小的最大数据段长度值。2.根据权利要求1所述的自动驱使变更封包长度以符合通道宽度的系统,其特征在于,其中该第三路由器对该来源主机所发出的连线封包进行比较处理,若该连线封包中的最大数据段长度值,大于该第三路由器的绕送路径表记录对应的同一目的地的最大传输单元减去特定固定长度标头值,则依照传输单元值计算一新的最大数据段长度值,再将计算后的结果取代该连线封包中的最大数据段长度值,否则,保留原本的最大数据段长度值。3.根据权利要求1所述的自动驱使变更封包长度以符合通道宽度的系统,其特征在于,其中该至少第一来源主机与第二来源主机是与该目的主机建立TCP连线。4.一种自动驱使变更封包长度以符合通道宽度的方法,是利用至少第一来源主机及第二来源主机,与一目的主机建立连线及传送数据封包,一第一路由器与一第二路由器间存在一较小的通道宽度,且有一第三路由器与该第一来源主机与第二来源主机直接或间接相连接,该第一路由器直接或间接与该第三路由器相连接,该第二路由器直接或间接与该目的主机相连接,其特征在于,该方法主要包括下述的步骤(A)若该第一来源主机经由该第三路由器、第一路由器、及第二路由器传送一大于该第一路由器与第二路由器间通道宽度的数据封包至该目的主机,且该数据封包的IP标头设定了不可分割比特,则该第一路由器将会丢弃该数据封包,并传回一网际网路控制信息协定的无法抵达错误信息封包给该第一来源主机,该信息封包中并含有无法通过的通道宽度的最大传输单元值;(B)当该网际网路控制信息协定的无法抵达错误信息封包经过该第三路由器,则该第三路由器将该信息封包中的最大传输单元值及无法送达的目的主机的网际网路地址,记录储存于其绕送路径表中;(C)当该每一或第二来源主机与该目的主机再度建立连线,该来源主机所发出的连线封包将先通过该第三路由器,该第三路由器将查询绕送路径表以比对处理该连线封包中的最大数据段长度值与先前记录的最大传输单元值,再将该连线封包送至该目的主机;(D)该目的主机接收该连线封包,并比对该连线封包的最大数据段长度值与该目的主机预设的最大数据段长度值,且采用较小的最大数据段长度值;以及(E)该目的主机传回一含有较小的最大数据段长度值的认可连线封包至该来源主机,使得该来源主机与该目的主机达成采用相同较小的最大数据段长度值。5.根据权利要求4所述的自动驱使变更封包长度以符合通道宽度的方法,其特征在于,其中于步骤(A),当该大于该第一路由器与第二路由器间的通道宽度的数据封包通过该第一路由器,则该第一路由器丢弃该数据封包,并发出一网际网路控制信息协定的无法抵达错误信息封包给该第一来源主机,且该信息封包中尚含有该第一路由器与该第二路由器间通道宽度的最大传输单元值。6.根据权利要求4所述的自动驱使变更封包大小以符合通道宽度的方法,其特征在于,其中于步骤(B),该第三路由器能取出该网际网路控制信息协定的无法抵达错误信息封包中的最大传输单元值以及无法送达的目的主机的网际网路地址,并记录储存于该第三路由器的绕送路径表中。7.根据权利要求4所述的自动驱使变更封包大小以符合通道宽度的方法,其特征在于,其中于步骤(C),若该连线封包的最大数据段长度值,大于该第三路由器的绕送路径表记录对应的同一目的地的最大传输单元减去特定固定长度标头值,则依该最大传输单元值计算一新的数据段长度值,且将计算后的结果取代该连线封包中的最大数据段长度值,否则,保留该连线封包原本的最大数据段长度值。8.根据权利要求4所述的自动驱使变更封包大小以符合通道宽度的方法,其特征在于,其中该至少第一来源主机与第二来源主机是与该目的主机建立TCP连线。全文摘要一种自动驱使变更封包长度以符合通道宽度的系统与方法,是利用本发明的路由器自动蒐集网际网路控制信息协定的无法抵达必须分割的错误信息封包,记录某一目的端主机间的最大传输单元的最小值,及目的端主机的IP地址,使得当某来源端主机欲与系统记录中的目的端主机进行连线时,来源端主机所发出的连线封包将在路由器上进行一比较处理后,再传送至目的端主机,而目的端主机将会比对连线封包中最大数据段长度值与其原先预设最大数据段长度值,并采用较小最大数据段长度值放在认可的连线封包中传回来源主机,以达成来源端与目的端主机均采用相同较小最大数据段长度值,自动驱使两端连线后送出的封包大小符合经过的通道宽度。文档编号H04B1/66GK1426204SQ01144118公开日2003年6月25日申请日期2001年12月11日优先权日2001年12月11日发明者林军鼐申请人:财团法人资讯工业策进会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1