• [TCP IP详解:学习笔记]IP:网络协议


    IP:网络协议

           IP是TCP/IP协议簇中最为核心的协议,它提供不可靠、无连接的数据报传输服务。不可靠(unreliable),就是它不能保证IP数据报能成功地到达目的地,IP仅提供传输服务。如果发生某种错误时,如某个路由器缓冲区耗尽,IP将丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。无连接(connectionless),就是IP并不维护任何有关后续数据报的状态信息,即IP数据报可以不按发送顺序接收。

           IP数据报的格式如图1所示。

     

    图1 IP数据报格式及首部中的各字段

     

           在图1中,最高位在左边,记为0 bit;最低位在右边,记为31 bit。4字节的32 bit值值按以下次序传输:首先是0~7 bit,其次是8~15 bit,然后是16~23 bit,最后是24~31 bit,这种传输次序称为Big endian字节序,也成为网络字节序。

          

           IP数据部首部中各字段

    1. 目前常用的协议版本号是4;
    2. 首部长度指的是32 bit字的数目,包括任何选项;
    3. 服务类型(TOS)字段包含一个3 bit的优先权字段,4 bit的TOS子字段和1 bit未用位但必须置0。4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用;
    4. 总长度字段是指整个IP数据报的长度,以字节为单位。当数据报被分片时,该字段的值也随着变化;
    5. 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1;
    6. TTL生存时间字段设置了数据报可以经过的最多路由器数。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机;
    7. 协议字段标示了哪个协议使用IP数据报;
    8. 首部检验和字段是根据IP首部计算的校验和码;
    9. 每份IP数据包都包含源IP地址和目的IP地址
    10. 任选项,是数据报中一个可变长的可选信息。它是以32 bit作为界限,在必要时可使用0作为填充字节。任选项的定义如下:

    l         记录路径

    l         时间戳

    l         宽松的源站选路

    l         严格的源站选路

    IP路由选择

    如果目的主机与源主机是直接连接(即,点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接发送到目的主机上;否则,主机把数据报发往一默认的路由器上,有路由器来进行转发该数据报。

    IP可以从TCP、UDP、ICMP和IGMP接收数据报(即,在本地生成的数据报)并进行发送,或者从网络接口上接收数据报(待转发的数据报)并进行发送。IP层在内存中有一个路由表。

    当收到一份数据报并进行发送时,IP发送函数搜索路由表。当数据包来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。如果确定是这些地址之一,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么(1)如果IP层被设置为路由器功能,则对数据报进行装法;否则(2)数据报被丢弃。

    路由表中每一项都包含的信息

    1. 目的IP地址;
    2. 下一站(或下一跳)路由器(next-hop router)的ip地址,或者有直接连接的网络IP地址。下一跳路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报;
    3. 标志。其中一个标志指明目的IP地址是网络地址还是主机地址;另一个标志指明下一站是路由器还是直接相连的主机;
    4. 为数据报的传输指定一个网络接口。

    IP路由选择是逐跳地进行的,它并不知道到达任何目的的完整路径(除了直接相连的主机)。

    IP路由选择过程(从上到下依次搜索):

    1. 搜索路由表,寻找与目的IP地址完全匹配的标目;
    2. 搜索路由表,寻找能与目的网络号相匹配的表项;
    3. 搜索路由表,寻找标记为“默认”的表项;

    如果满足上述三条之一,则将IP数据报发送给该表项目所指定的下一站路由器或直接连接的网络接口。如果上述步骤都不成功的话,那么该数据报就不能被传送。若不能传送的数据报来自本机,那么一般都会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。

    为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是IP路由选择机制的另一个基本特性。需要注意点是,在以太网上传输的数据帧中,目的IP地址不会发送变化,但是以太网数据帧中的链路层的目的地址始终指的是下一站的链路层地址。

    子网掩码

    给定IP地址和子网掩码后,主机就可以确定IP数据的目的地址是:

    (1)       本子网上的主机;

    (2)       本网络中其他子网中的主机;

    (3)       其他网络上的主机。

  • 相关阅读:
    jqGrid获取选中行id集合
    jqGrid通过行id获取行对象
    【链接】Eclipse中快速打开文件所在的文件夹位置
    springboot下html的js中使用shiro标签功能
    从一次渗透谈到linux如何反弹shell
    安全建设的几个阶段
    BluePrint和ORM
    flask框架实战项目架构
    配置Python实战开发环境
    python 进行抓包嗅探
  • 原文地址:https://www.cnblogs.com/life91/p/3000918.html
Copyright © 2020-2023  润新知