Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2258911
  • 博文数量: 292
  • 博客积分: 10016
  • 博客等级: 中将
  • 技术积分: 3381
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-06 11:26
文章分类

全部博文(292)

文章存档

2011年(1)

2010年(4)

2009年(3)

2008年(6)

2007年(47)

2006年(63)

2005年(168)

分类: LINUX

2005-11-07 13:46:29

TCP/IP协议相关算法

一.IP选路算法:
                                                             算法:
                                    RouteDatagram(Datagram,RoutingTable)

从数据报中提取目的IP地址D,并计算网络前缀N:
if N 与任何直接相连的网络的地址匹配
   then 通过该网络把数据报交付到目的地D(其中涉及到D转换成一个屋里地址,庾笆?莶⒎⑺透弥?
   else if 表中包含特定与具体主机的一个到D路由
      then 把数据报发送到表中指定的下一跳
   else if 表中包含到网络N的一个路由
      then 把数据报发送到表中指定的下一跳
   else if 表中包含一个默认路由
      then 把数据报发送到表中指定的默认路由器
   else 宣布选路由错:

PS:用来转发数据报的IP算法.给定下一个IP数据报和一个选路表,该算法选择数据报要发往的下一跳.所有路由都必须指定
   直接连接的网络上的下一跳!


二.子网选路算法:

    大家知道传统的选路表包含如下形式的表项:
        (网络地址,下一条地址)
    其中网络地址(network address)字段指明了目的网络N的IP地址,下一跳地址(next hop address)
字段表明了目的地为N的数据报将被发往的路由器的地址.标准选路算法吧目的地址的网络部分与选路表中
每一表项的网络地址字段比较,直到找到一个匹配.因为下一跳地址字段是用来指定直连接网络上的一个可
达机器的,所以只需要查一次表.
    标准算法知道地址是如何划分成网络部分与本地部分的,因为前三个比特对地址类型和格式进行了编码
(即类型A.B.C和D).对于子网方式,单从地址上不可以判断那些比特对应于网络,那些比特对应于主机.所以,
子网方式的修改过的算法要在选路表中维护附加信息.每个表项都包含一个附加的字段,指明该项中的网络所
使用的子网掩码:
         (子网掩码,网络地址,下一跳地址)
   在选择路由时,修改过的算法使用子网掩码(subnet mask)提取目的地址的某些比特与表项进行比较.也就
是说,它把32比特目的IP地址与选路表的表项中的"子网掩码"逐比特比较进行布尔"与"运算,再把结果与该表
项中的"网络地址"相比较,看是否相等.若相等,则它把数据报发给该表项中的"下一跳地址"地段所指定的路由器.


三.统一的选路算法:
                                                        算法:
                           Route_Ip_Datagram(datagram,routing,routing_table)

从数据报中提取目的IP地址ID:
if ID的前缀匹配某直接相连的网络协议
  then 通过该网络把数据报发送到目的站(包含ID转换成无力地址,封装数据报及发送该帧.)
  else
   for 选路表中的每一项 do
   N = ID 逐比特与子网掩码想"与"
    if N 等于项中的网络字段
    then 将本数据报发往白哦项中下一跳地址所指定的路由器
   endforloop
if 没有找到匹配的表项
  then 宣布选路出错

    事实上,大多数实现方法都去掉了对直接相连的明确测试.为了做到这一点,必须再表中为每个直接相连的网络
添加一个表项.与其他表项类似,每个对应直接相连网络的表项都包含一个掩码,指定了前缀中的比特数.

四.要求安全的算法:

    IPsec定义强制需要的(也就是所以实现必须提供的)算法的最小集.再每种情况下,该标准都定义了特殊的用途.
                                             
                                              鉴别
      
                              带有MD5的HMAC      RFC 2403
                              带有SHA-1的HMAC    RFC 2404
                         
                              封装安全有效载荷
 
                              CBC模式中的HMAC    RFC 2405
                              带有MD5的HMAC      RCF 2403
                              带有SHA-1的HMAC    RFC 2404
                              无鉴别
                              无封装   

               
                              PS:IPsec必须的安全算法  

最近在学习有关用TCP/IP协议进行网际互联的相关知识,上面是自己列出的一些算法.

阅读(1457) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~