IP 协议有两个基本任务:提供无连接的和最有效的数据包传送;提供数据包的分割及重组以支持不同最大传输单元大小的数据连接。对于互联网络中 IP 数据报的路由选择处理,有一套完善的 IP 寻址方式。每一个 IP 地址都有其特定的组成但同时遵循基本格式。IP 地址可以进行细分并可用于建立子网地址。
1.1 分类的IP地址
IP地址的五种类型:net-id—网络号;host-id——主机号
(1) 常用的A类、B类和C类地址都由两个字段组成,即:
网络号字段net-id。A类、B类和C类地址的网络号字段分别为1,2和3字节长,在网络号字段的最前面有1—3bit的类别比特,其数值分别规定为0,10和110。
主机号字段host-id。A类、B类和C类地址的主机号字段分别为3,2和1字节长。
(2) D类地址是多播地址,主要留给因特网体系结构研究委员会IAB(Internet Architecture Board)使用。左边第一字节值:224-239,例如 230.138.43.85
(3) E类地址保留在今后使用。左边第一字节值:>=240,例如 243.13.143.185
注意:
给节点分配IP地址时:net-id所在字节(A类地址的左边第一字节,B类地址的左边2字节,C类地址的左边3字节)全0,全1都不可用。host-id全0,全1都不可用。
1.2 IP地址具有的重要特点:
上图中体现的IP地址的特点:
(1)与某个局域网相连接的计算机或路由器的IP地址中的网络号都必须是一样的。
(2)用网桥(它只在链路层工作)互连的局域网仍然是一个局域网。
(3)路由器总是具有两个或两个以上的IP地址。
(4)当两个路由器直接相连时,这一段连线就构成了一种只包含一段线路的特殊“网络”(如图中的Nl,N2和N3)。此IP地址表示单个网络的地址。
1.3 IP地址与硬件地址
1.4 地址解析协议ARP和逆地址解析协议RARP
(1) 地址解析协议ARP(IP地址—>硬件地址(MAC地址))
(2) 逆地址解析协议ARP(MAC地址—>IP地址)
1.5 IP数据报的格式
首部长度(IHL), 以4字节为单位。
总长度(Total Length): 总长度指首部和数据之和的长度,单位为字节。
标识(Identification):不同的IP数据报有不同的编号。
标志(flag) :
MF(More Fragment),MF=1即表示后面“还有分片”的数据报。
DF(Don‘t Fragment),意思是“不能分片”。
片偏移(Fragment Offset):以8个字节为偏移单位。
…
例: 在TCP/IP网络中,一个原始IP数据报含有1000字节的数据部分和36字节的报头,该数据报通过最大数据部分长为256字节的网关时,被分解为多个报片分别投递,按照格式(THL,TL,I,DF,MF,F),原始数据报首部的上述值为:(9,1036,26483,0,0,0),试写出各报片的上述格式的6个值。
THL | TL | I | DF | MF | F |
---|---|---|---|---|---|
9 | 292 | 26483 | 0 | 1 | 0 |
9 | 292 | 25483 | 0 | 1 | 32 |
9 | 292 | 25483 | 0 | 1 | 64 |
9 | 268 | 25483 | 0 | 0 | 96 |
1.6 IP层转发分组的流程
(1) 从数据报的首部提取目的站的IP地址D,得出目的网络地址为N。
(2) 若N就是与此路由器直接相连的某个网络地址,则直接交付;否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为D的特定主机路由,则传送给相应的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络N的路由,则将数据报传送给路由表中所指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错(通过ICMP报文报错)。
1.7 因特网控制报文协议ICMP
IP地址的设计确实不够合理: 例如,某个单位申请到一个B类地址。但该单位只有1万台主机。于是,在一个B类地址中的其余5万5千多个主机号就白白地浪费了。
将本单位所属主机划分为若干个子网(subnet),用IP地址中的主机号字段中的前若干个比特作为“子网号字段”,后面剩下的仍为主机号字段。这样做就可在本单位的各子网之间用路由器来互连,从外部看,这个单位仍只有一个网络号。只有当外面的分组进入到本单位范围后,本单位的路由器再根据子网号进行选路,最后找到目的主机。
子网掩码(subnet mask): 32bit, “1”对应于网络号和子网号字段,而“0”对应于主机号字段。
IP地址的子网掩码: ff.ff.fc.00(即255.255.252.0)