Sonyfe25cp的玩具

home

TCP/IP详解之第三章:IP:网际协议

04 Apr 2015

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP和IGMP都要以IP数据报格式传说。

IP协议的不可靠性是说它不能保证IP数据报能够成功的到达目的地。IP仅提供尽力而为的传输服务。如果发生某种错误,IP有一个简单的错误处理办法就是丢掉该数据报,然后用ICMP消息报给信号源。

IP协议的无连接性是指IP协议并不维护任何关于后续的数据报的状态,每个数据报之间是相互独立的。

###IP首部

普通的IP首部长20个字节,除非含有选项字段。总长度字段是指整个IP数据报的长度,以字节为单位。总长度字段是IP首部中必要的内容,因为一些数据报小于最小长度,而链路会自动填充。

每一份IP数据报都包含源IP地址和目的IP地址。

###IP路由选择

如果目的主机和源主机直接相连或者都在一个共享网络,那么IP数据报会直接送达目的主机。否则,主机把数据报发往某一默认的路由器上,由该路由器进行转发。

IP层在内存中有一个内存表,当接收到一份数据报并进行发送时,它都会对该表搜索一次。当数据报来自某一个网络接口时,IP首先检查目的地IP是否是本机IP地址或者IP广播地址。若是,数据报就由IP首部协议字段所指定的协议模块进行处理。若不是,那么:(1)如果IP层被设置为路由器功能,那么久对数据报进行转发;否则(2)数据报被丢弃。

###子网寻址 现在所有的主机都要求支持子网编址。不是把IP地址看成由单纯的网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。

这样做的原因是因为A类和B类地址为主机号分配了太多的空间,可以容弹的主机数是。事实上,一个网络中人们安排不了这么多主机。

从InterNIC获得某类IP网络号之后,由当地的系统管理员来分配,由他决定是否建立子网,以及分配多少比特给子网号和主机号。

子网对外部路由器来说隐藏了内部网络组织的细节。但是对于子网内部路由器不是透明的。

###子网掩码

任何主机在引导时进行的部分配置是指定主机IP地址,大多数系统把IP地址存在一个磁盘中供引导时读取。无盘系统的方式以后再说。

除了IP地址之外,主机还需要知道多少比特用于子网号以及多少比特用于主机号。这个在引导过程中由子网掩码来确定。

掩码是32bit的值,其中值为1的比特位留给网络号和子网号,为0的比特留给主机号。

尽管IP地址一般用点分十进制表示,但是子网掩码通常是用16进制表示,特别是当分界不是一个字节时。

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

  1. 本子网上的主机
  2. 本网络中其他子网的主机
  3. 其他网络上的主机

如果也知道本机IP地址,那么久知道它是否是A类、B类或C类地址,也就知道网络号和子网号的分界线。而根据子网掩码就可以知道子网号和主机号的分界线。