一.什么是IP
IP是网际协议,用于TCP/IP协议的网络层中,是TCP/IP协议族中的核心部分。其主要完成的功能是实现两台主机之间的数据传输。IP地址是主机的逻辑地址,它统一了网络层一下的层次的主机地址的使用,与物理地址(MAC)具有一一映射的关系;
二.IP地址分类
1)IP地址的格式及子网掩码
目前的IP地址支持的格式为:网络号+子网号+主机号;
子网掩码:其作用是用来识别主机号,它也是一个长度32bit 的值,其取之规则为网络号和子网号置为1,主机号置为0,这样在与的时候就能识别出来主机号;
( A类地址默认的子网号为:255.0.0.0;B类地址默认的子网号为:255.255.0.0;C类地址默认的子网号为:255.255.255.0;)
2)IP地址长度为32bit,根据IP地址的首位数值,IP地址可以分为五类:
A类:首部为0 1.0.0.0 ~ 126.0.0.0 主机号为24位;
B类:首部为10 128.1.0.0 ~191.255.0.0 主机号为16位;
C类:首部为110 192.1.1.0 ~223.255.255.0 主机号为8位;
D类:首部为1110 224.0.0.0 ~239.255.255.255 (此为多播地址)
E类:首部为1111 240.0.0.0 ~255.255.255.254
3)广播IP地址(只能用于UDP协议)分为四种类型,它们分别是:
受限制的广播:255.255.255.255,该地址只用于局域网中,任何路由器不转发目的地址为它的数据报;
指向网络的广播:其指的是主机号全为1的地址,例如A类指向网络的广播地址可以为110.255.255.255;
指向子网的广播:其指的是主机号全为1且有特定的子网号码(就是有子网掩码来确定子网),例如:地址为128.1.2.255数据报,子网掩码为255.255.255.0, 128.1.2.255就是指向子网的广播地址;
指向所有子网的广播:其指的是主机号和子网号全为1的IP地址,这个同样需要子网掩码来对主机号进行判定;
三.IP首部
IP首部除非包含了选项字段,要么其长度为20个字节,IP首部的组成为:
版本号:4bit
首部长度:4bit
服务类型:8bit其中包括3bit的优先子字段,4bit的TOS子字段和1bit未用位必须为0。4bit 的TOS子字段分别代表:最小延时,最大吞吐量,最高可靠性和最小费用
总长度字段:指的是IP数据报的长度,其与首部长度字段相减可以计算出来IP数据报中数据内容的起始位置和长度;
标识字段:唯一标识主机发送的每一份数据报的字段,其通常是主机发送一份就加1;
TTL生存时间字段:其设定了IP数据报可以经过多少个路由器,指定了IP数据报的生存时间。数据报每经过一个路由器的时候其数值就会减1,当数值为0时数据报被丢弃,并发送ICMP报文通知主机;
检验和字段:它是根据IP首部计算的检验和码,不对后面的数据进行计算。其计算方式是,首先把检验和置为0,然后对IP首部中每16bit进行二进制取反求和。当接受方收到数据报后对检验和进行计算,如果检验和为全1,那么说明传输过程没有差错,反之则丢弃数据报;
源IP地址和目的IP地址字段
任意选项:这里就不进行讨论了,主要是我也不知道。呵呵!
四.IP路由选择
1)IP搜索路由表的三个步骤:
第一步:搜索匹配的主机地址;
第二步:搜索匹配的网络地址;
第三步:搜索默认表项;
2)路由表:主机的路由表的复杂性取决于主机所在的网络的拓扑结构
a)最简单的情况是只包含环回接口的路由表,即主机没有与任何网络进行连接;
b)其次是只包含了环回接口和局域网的路由表,即主机只是连接上了局域网;
c)包含了环回接口,局域网和默认表项的路由表,即主机能连接上了其他网络;
b)包含了环回接口,局域网,默认表项和制定的主机或网络路由的路由表
3)一个简单的路由表,在主机上输入:netstat -rn 命令
Destination Getway Flag Refcnt Use Interface
140.252.13.65 140.252.13.35 UGH 0 0 emd0
127.0.0.0 127.0.0.0 UH 1 0 lo0
default 140.252.13.33 UG 0 0 emd0
140.252.13.32 140.252.13.34 U 4 25043 emd0
通过几个字段来认识这个路由表
标志字段(Flag)分为五种不同的标志,它们分别为:
U:表示该路由可以使用;
G:表示该路由是到一个网关(路由器),如果没有设置这个标志则说明是与目的地址直接相连的;
H:表示该路由是到一个主机的,也就是说,目的地址是一个完整的主机地址。如果没有这个地址则说明该地址是到一个网络的;
D:表示该路由是有重定向报文创建的;
M:表示该路由已被重定向报文修改;
Use字段:显示的是通过该路由发送的分组数;
4)ICMP重定向差错报文
当IP数据报应该发送到另一个路由器时,收到数据报的路由器就要发送ICMP重定向差错报文给IP数据报的发送端(就是告诉发送端那个路由地址比我近,以后这一类地址就用那个路由发送吧!)。
重定向一般用来让具有很少路由信息的主机逐渐建立更完善的路由表,ICMP重定向允许TCP/IP主机在进行选路时不需要具备智能特性,而把所有的智能特性放在了路由器端。
5)ICMP路由器发现报文
一般认为,主机在引导以后要广播或多播传送一份路由器请求报文,一台路由器或多台路由器相应一份路由请求报文。另外,路由器定期地广播或多播传送它们的路由器通告报文,允许每个正在监听的主机相应的更新它们的路由表