发明名称 一种基于跨层的车载网移动切换方法
摘要 本发明公开了一种基于跨层的车载网移动切换方法,所述车载网包括接入路由器、基站,以及行驶在道路上的车辆节点共三类节点;接入路由器与互联网的骨干网相连,基站与一个接入路由器相连,通过接入路由器接入互联网,车辆节点通过基站实现与互联网的通信。所述车载网中所有基站覆盖整个车载网区域;将与一个接入路由器相连的所有基站所覆盖的区域设置为一个路域,将一个基站覆盖的区域设置为路段。本发明可保持移动过程中通信的连续性,缩短移动切换延迟,降低数据包丢失率,从而提高了车载网的服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
申请公布号 CN103237326B 申请公布日期 2015.09.02
申请号 CN201310117534.8 申请日期 2013.04.07
申请人 常熟理工学院 发明人 王晓喃
分类号 H04W36/08(2009.01)I 主分类号 H04W36/08(2009.01)I
代理机构 江苏圣典律师事务所 32237 代理人 胡建华
主权项 一种基于跨层的车载网移动切换方法,其特征在于,所述车载网包括接入路由器、基站,以及行驶在道路上的车辆节点共三类节点;接入路由器与互联网的骨干网相连;一个基站仅与一个接入路由器相连,并通过相连的接入路由器接入互联网;车辆节点通过基站实现与互联网的通信;所述车载网中所有基站覆盖整个车载网区域;将与一个接入路由器相连的所有基站所覆盖的区域设置为一个路域,将一个基站覆盖的区域设置为路段;车辆节点包括三类:簇首节点、簇内节点和孤立节点;簇首节点具有路由转发功能,簇内节点不具有路由转发功能;簇首节点与基站直接通信,簇内节点通过簇首节点实现与互联网的通信,孤立节点是没有加入任何簇的车辆节点;一个簇包含一个簇首节点和一个以上簇内节点;一个路域包括一个以上路段,一个路段包括一个以上簇;基站和簇首节点之间通信的链路协议为Wimax协议,簇首节点与簇内节点之间通信的链路协议为Wifi;簇首节点具有两个通信接口,分别接收Wimax和Wifi的消息;车辆节点在移动过程中,由家乡地址唯一标识,无需配置转交地址;车载网节点的IPv6地址由三部分组成:第一部分是作为全局路由前缀唯一标识一个路域的路域ID,一个路域中所有基站的路域ID都相同,车辆节点从同一个路域内获取的地址的路域ID都相同,基站和车辆节点路域ID的值等于相同路域中接入路由器的路域ID;第二部分为唯一标识一个路段的路段ID,车辆节点从同一个路段获取的地址的路段ID都相同,车辆节点路段ID值等于该路段中基站的路段ID;第三部分为车辆ID,它唯一标识一个路段中的车辆节点;接入路由器的路段ID和车辆ID为0,基站的车辆ID为0;簇首节点设置在车载网内的公共大型汽车上,公共大型汽车启动后,将簇首节点启动,簇首节点定期广播消息,消息负载包括节点类型、速度、移动角度、地理坐标、工作信道以及所在路段的基站的IPv6地址;设置在非公共大型汽车节点上的孤立节点在非公共大型汽车节点启动后,扫描所有信道,通过接收簇首节点广播的消息选择链路关联时间最长的簇首节点,并加入由该簇首节点所在的簇,然后将自己标记为簇内节点,同时定期广播消息,消息负载包括自身节点类型,移动速度、移动角度和地址坐标,以及其簇首节点的速度、移动角度、地理坐标和工作信道;每个车辆节点都配有全球定位系统,用于获取自己的地址坐标;如果车辆节点V<sub>i</sub>的地理坐标为(x<sub>i</sub>,y<sub>i</sub>),车辆节点V<sub>j</sub>的地理坐标为(x<sub>j</sub>,y<sub>j</sub>),车辆节点V<sub>i</sub>的速度v<sub>i</sub>,车辆节点V<sub>j</sub>的速度为v<sub>j</sub>,车辆节点V<sub>i</sub>的移动角度为θ<sub>i</sub>,车辆节点V<sub>j</sub>的移动角度为θ<sub>j</sub>,车辆节点的传输半径为r,那么,车辆节点V<sub>i</sub>和V<sub>j</sub>的链路连接时间T<sub>ij</sub>为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>T</mi><mi>ij</mi></msub><mo>=</mo><mfrac><mrow><msqrt><mrow><mo>(</mo><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>c</mi><mn>2</mn></msup><mo>)</mo></mrow><msup><mi>r</mi><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>(</mo><mi>ad</mi><mo>-</mo><mi>bc</mi><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mrow><mo>(</mo><mi>ab</mi><mo>+</mo><mi>cd</mi><mo>)</mo></mrow></mrow><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>c</mi><mn>2</mn></msup></mrow></mfrac></mrow>]]></math><img file="FDA0000684257620000021.GIF" wi="1401" he="155" /></maths>其中,参数a、b、c、d采用以下公式计算:a=v<sub>i</sub> cosθ<sub>i</sub>‑v<sub>j</sub> cosθ<sub>j</sub>,b=x<sub>i</sub>‑x<sub>j</sub>,c=v<sub>i</sub> sinθ<sub>i</sub>‑v<sub>j</sub> sinθ<sub>j</sub>,d=y<sub>i</sub>‑y<sub>j</sub>,基站保存邻居基站所在位置的地理坐标以及邻居基站的工作信道;当簇首节点C1在由基站B1所确定的路段S1内移动时,基站B1通过接收簇首节点C1广播的消息确定其地理坐标;如果基站B1检测到簇首节点C1即将离开自己的通信范围,则将与簇首节点C1所在地理坐标最接近的邻居基站B2所确定的路段作为簇首节点C1即将进入的路段,如果基站B1和基站B2同属于同一个路域且路域的接入路由器为R1,那么基站B1执行以下步骤:步骤101:开始;步骤102:基站B1向接入路由器R1发送切换消息,消息负载为簇首节点C1和基站B2的IPv6地址;步骤103:接入路由器R1收到切换消息后,将簇首节点C1关联的基站更新为基站B2,同时向基站B1返回切换确认消息;步骤104:基站B1收到切换确认消息后,向簇首节点C1发送切换消息,消息负载为基站B2的工作信道;步骤105:簇首节点C1收到切换消息后,采用基站B2工作信道直接实现链路切换,并开始从基站B2接收数据;步骤106:结束;当簇首节点C1在由基站B1所确定的路段S1内移动时,基站B1通过接收簇首节点C1广播的消息确定其地理坐标;如果基站B1检测到簇首节点C1即将离开自己的通信范围,基站B1则将与簇首节点C1所在地理坐标最接近的邻居基站B2所确定的路段作为簇首节点C1即将进入的路段,如果基站B1和基站B2属于不同路域且基站B1所在路域的接入路由器为R1,基站B2所在路域的接入路由器为R2,那么基站B1执行以下步骤:步骤201:开始;步骤202:基站B1向接入路由器R2发送切换消息,消息负载为簇首节点C1和基站B2的IPv6地址;步骤203:接入路由器R2收到切换消息后,通过基站B1的IPv6地址判定基站B1属于不同的路域,接入路由器R2建立簇首节点C1与基站B2的关联关系,同时向簇首节点C1获取家乡地址所在路域的接入路由器HR发送切换消息,消息负载为簇首节点C1的IPv6地址;步骤204:接入路由器HR收到切换消息后,将簇首节点C1关联的接入路由器更新为接入路由器R2,同时向接入路由器R2返回切换确认消息;步骤205:接入路由器R2收到切换确认消息后,向基站B1发送切换确认消息,基站B1收到切换确认消息后,向簇首节点C1发送切换消息,消息负载为基站B2的工作信道;步骤206:簇首节点C1收到切换消息后,采用基站B2的工作信道直接实现与基站B2的链路切换,并开始从基站B2接收数据;步骤207:结束;当簇内节点M1所在簇的簇首节点为簇首节点C1,簇首节点C1所在路段的基站为基站B1,簇首节点C1所在路域的接入路由器为接入路由器R1的情况下,簇首节点C1通过接收簇内节点M1广播的消息获取簇内节点M1的地理坐标;如果簇首节点C1检测到簇内节点M1即将离开自己的通信范围,则将与簇内节点M1所在地理坐标最接近的邻居簇首节点C2所在的簇作为簇内节点M1即将进入的簇;如果簇首节点C1和簇首节点C2属于同一个路段且簇内节点M1正在与IPv6节点进行通信,那么簇首节点C1执行以下步骤:步骤401:开始;步骤402:簇首节点C1向基站B1发送切换消息,消息负载为簇内节点M1和簇首节点C2的IPv6地址;步骤403:基站B1收到切换消息后,将簇内节点M1关联的簇首节点更新为簇首节点C2,同时向簇首节点C1返回切换确认消息;步骤404:簇首节点C1收到切换确认消息后,向簇内节点M1发送切换消息,消息负载为簇首节点C2的工作信道;步骤405:簇内节点M1收到切换消息后,通过簇首节点C2的工作信道直接实现与簇首节点C2的链路切换,并开始从簇首节点C2接收数据;步骤406:结束;簇首节点C2在收到簇内节点M1的数据包后,如果簇内节点M1没有链路接入到簇首节点C2,簇首节点C2则保存簇内节点M1的数据包,等到簇内节点M1链路接入到簇首节点C2之后,再将缓存的数据包转发到簇内节点M1;当簇内节点M1所在簇的簇首节点为簇首节点C1,簇首节点C1所在路段的基站为基站B1,簇首节点C1所在路域的接入路由器为接入路由器R1的情况下,簇首节点C1通过接收簇内节点M1广播的消息获取簇内节点M1的地理坐标;如果簇首节点C1检测到簇内节点M1即将离开自己的通信范围,则将与簇内节点M1所在地理坐标最接近的邻居簇首节点C2所在的簇作为M1即将进入的簇;簇首节点C1和簇首节点C2属于相同的路域但是不同的路段,簇首节点C2所在路段的基站为B2,如果簇内节点M1正在与IPv6节点进行通信,那么簇首节点C1执行以下步骤:步骤501:开始;步骤502:簇首节点C1向基站B2发送切换消息,消息负载为簇内节点M1和簇首节点C2的IPv6地址;步骤503:基站B1收到切换消息后,建立簇内节点M1和簇首节点C2的关联关系,同时向接入路由器R1发送切换消息;步骤504:接入路由器R1收到切换消息后,将簇内节点M1关联的簇首节点更新为簇首节点C2,同时向基站B2返回切换确认消息,基站B2收到切换确认消息后,向簇首节点C1发送切换确认消息;步骤505:簇首节点C1收到切换确认消息后,向簇内节点M1发送切换消息,消息负载为簇首节点C2的工作信道;步骤506:簇内节点M1收到切换消息后,采用簇首节点C2的工作信道直接实现与簇首节点C2的链路切换,并开始从簇首节点C2接收数据包;步骤507:结束;簇首节点C2在收到簇内节点M1的数据包后,如果簇内节点M1没有链路接入到簇首节点C2,簇首节点C2则保存簇内节点M1的数据包,等到簇内节点M1链路接入到簇首节点C2之后,再将缓存的数据包转发到簇内节点M1;当簇内节点M1所在簇的簇首节点为簇首节点C1,簇首节点C1所在路段的基站为基站B1,簇首节点C1所在路域的接入路由器为R1的情况下,簇首节点C1通过接收簇内节点M1广播的消息获取簇内节点M1的地理坐标;如果簇首节点C1检测到簇内节点M1即将离开自己的通信范围,则将与簇内节点M1所在地理坐标最接近的邻居簇首节点C2所在的簇作为M1即将进入的簇;如果簇首节点C1和簇首节点C2属于不同的路域,簇首节点C2所在路段的基站为基站B2,所在路域的接入路由器为接入路由器R2,簇内节点M1正在与IPv6节点进行通信且该IPv6节点所在子网的接入路由器为接入路由器R3,那么簇首节点C1执行以下步骤:步骤601:开始;步骤602:簇首节点C1向基站B2发送切换消息,消息负载为簇内节点M1、簇首节点C2以及接入路由器R3的IPv6地址;步骤603:基站B2收到切换消息后,建立簇内节点M1和簇首节点C2的关联关系,同时向接入路由器R2发送切换消息,接入路由器R2收到切换消息后,建立簇内节点M1和簇首节点C2的关联关系,同时向接入路由器R3发送切换消息;步骤604:接入路由器R3收到切换消息后,建立与接入路由器R2的隧道并通过该隧道将目的地址为簇内节点M1的数据包发送到接入路由器R2,然后向接入路由器R2返回切换确认消息,接入路由器R2收到切换确认消息后,向基站B2发送切换确认消息,基站B2收到切换确认消息后,向簇首节点C1发送切换确认消息;步骤605:簇首节点C1收到切换确认消息后,向簇内节点M1发送切换消息,消息负载为簇首节点C2的工作信道;步骤606:簇内节点M1收到切换消息后,采用簇首节点C2的工作信道直接实现与簇首节点C2的链路切换,并开始从簇首节点C2接收数据包;步骤607:结束;簇首节点C2在收到簇内节点M1的数据包后,如果簇内节点M1没有链路接入到簇首节点C2,簇首节点C2则保存簇内节点M1的数据包,等到簇内节点M1链路接入到簇首节点C2之后,再将缓存的数据包转发到簇内节点M1。
地址 215500 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院