一.引言:
IP是TCP/IP协议族中最为核心的协议,所有的TCP,UDP,ICMP和IGMP数据都以IP数据报格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。
二.IP首部:
IP数据报格式如下,普通的IP首部长为20个字节,除非含有选项字段
四个字节的32bit,首先是0-7bit,8-15,16-23,24-31
服务类型TOS,其中3位是优先权字段(已经忽略),4bit的TOS分别代表最小延时,最大吞吐量,最高可靠性和最小费用。
Te l n e t和R l o g i n这两个交互应用要求最小的传输时延,因为人们主要用它们来传输少量的交互数据。另一方面, F T P文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理(S N M P)和路由选择协议。用户网络新闻( Usenet news, NNTP)是唯一要求最小费用的应用。
ICMP,IGMP,UDP,TCP在它们格子的首部中均含有同时覆盖首部和数据检验和码。
I C M P、I G M P、U D P和T C P都采用相同的检验和算法,尽管T C P和U D P除了本身的首部和数据外,在I P首部中还包含不同的字段。在RFC中有关于如何计算I n t e r n e t检验和的实现技术。由于路由器经常只修改 T T L字段(减1) ,因此当路由器转发一份报文时可以增加它的检验和,而不需要对 I P整个首部进行重新计算。 R F C为此给出了一个很有效的方法。
三IP路由选择:
当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货"的呢?
最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。
稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。路由器或者主机将会用如下的方式来处理某一个IP数据包
这再一次证明了,ip包是不可靠的。因为它不保证送达。
路由表中的每一项都包含下面这些信息。
1目的IP地址
2下一站路由器
3标志是网络地址还是主机地址,标志下一站路由器是否为真正的下一站路由器
4为数据报的传输指定一个网络接口
四.子网寻址:
IP地址的定义是网络号+主机号。但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。最终一个IP地址就成为 网络号码+子网号+主机号
五.子网掩码:
C类地址的子网掩码是255.255.255.0
B类地址的子网掩码是255.255.0.0
...以此类推
子网掩码转化为二进制,为一的代表网络位,以零的代表主机位
IP AND 子网掩码=网络号
IP AND 子网掩码取非=主机号
2的主机号位(0的部分)=主机数
下面是两个具体的例子:
a.欲将B类IP地址168.195.0.0划分成27个子网
解1)27化成二进制=11011
2)该二进制为5位数,所以N=5
3)将B类地址的子网掩码的255.255.0.0的主机地址前5位置1,得到255.255.248.0.即为划分27个子网的B类IP地址168.195.0.0的子网掩码
b.欲将IP地址168.195.0.0划分为若干子网,每个子网有700台主机
解1)700化为二进制=1010111100
2)该二进制位数=10,即N=10
3)将B类地址的子网掩码255.255.0.0的后面10位变成0,得255.255.252.0,即为划分成主机700台的B类IP地址168.195.0.0的子网掩码
六.两个命名
1ipconfig/all(windows),ifconfig(linux)
2netstat
小结:
如果目的主机在直接相连的网络上,那么就把数据报直接传给目的主机,否则传给默认路由器。在进行路由选择决策时,主机和路由器都使用路由表。在表中有三种类型的路由:特定主机型、特定网络型和默认路由型。路由表中的表目具有一定的优先级。在选择路由时,主机路由优先于网络路由,最后在没有其他可选路由存在时才选择默认路由。
I P路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的 I P地址始终不变,但是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络的数据报都使用默认的下一站路由器。
两个小题:
202.105.192.0/24没有划分子网,C类IP地址,子网掩码为255.255.255.0,/24为掩码位数
问题:分配给某校园网的地址块是202.105.192.0/18,该校园网包含多少个C类网络?
解,因为次IP是C类IP地址,且掩码位数不为24,则划分了子网。
1.IP地址=网络号+子网号+主机号
2.网络号和子网号全是1,主机号全是0
3.因为子网掩码位数代表的全是1
4.所以子网位数=子网掩码位数(24)-子网掩码位数(18)=6
5.所以包含了2的6次方-2个网络,除去一个全0和全1的情况。
补充:
属于同一个网段的两台主机进行通信是不需要通过路由器的,除了一种情况,使用了VLAN,虚拟局域网。
以C类IP地址为例:C类IP地址的子网掩码为255.255.255.0
IP地址=网络号+主机号------》IP地址=网络号+网络ID+主机ID这个时候就是划分了子网,使用VLAN,这个时候的,两台主机通信的时候,是要通过路由器的。
当掩码为24的时候,没有划分子网。
当掩码为26的时候,划分了2的2次方,划分了4个子网,此时主机数为2的6次方-2台
当掩码为22的时候,划分了C类网络,划分了2的2次方,即4个C类网络(这个并不是虚拟的)。