1. IP是TCP/IP中最为核心的协议,所有的TCP、UDP、ICMP等协议均以IP数据报的格式传输。IP协议提供不可靠、无连接的服务,它不保证数据报一定可以送达目的,也不保证数据报的先后次序。
2. IP首部
注:网络字节序:32bit传输的次序为0-7bit, 8-15bit, 16-23bit, 24-31bit(即big endian字节序)
3. IP路由
IP路由选择是逐跳进行的。IP并不知道到达任何目的的完整路径(当然,除了那些与主机直接相连的)。所有的IP路由选择只为数据报传输提供下一站路由器的I P地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该主机是直接相连的。
IP路由选择主要完成以下这些功能:
1) 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果
找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标
志字段的值)。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目
指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所
有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表
目进行寻径的。
这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行
讨论。
3) 搜索路由表,寻找标为“默认”的表目。如果找到,则把报文发送给该表目
指定的下一站路由器。
如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自
本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。
IP路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的IP地址始终不变,但
是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络
的数据报都使用默认的下一站路由器。
IP路由选择机制的两个特征:
(1)完整主机地址匹配在网络号匹配之前执行
(2)为网络指定路由,而不必为每个主机指定路由
4. 子网划分
A类和B类地址一般都要进行子网划分. 把主机号再分成一个子网号和一个主机号,这样减少一个网络中的主机数,同时也缩小了路由表的规模。子网对外部路由器来说隐藏了内部网络组织的细节。
5. 子网掩码
子网掩码用来确定多少bit用于网络号和多少bit用于主机号。
给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的是:
(1)本子网上的主机;
(2)本网络中其他子网中的主机;
(3)其他网络上的主机。
如果知道本机的IP地址,那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知),也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。
6. 特殊IP地址
7. ifconfig、netstat
ifconfig可以用来配置和查询网络接口信息:ifconfig
netstat也可以提供接口上的信息:netstat -in
netstat还可以查询路由表的信息:netstat -rn