IP相当于OSI参考模型的第三层
网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点通信”。
准确的说,主机的定义应该是指“配置有IP地址,但是不进行路由控制的设备”。既配有IP地址又具有路由控制能力的设备叫做“路由器”,跟主机有所区别。而节点则是主机和路由器的统称。
网络层与数据链路层的关系
数据链路层提供直连两个设备之间的通信功能。与之相比,作为网络层的IP则负责在没有直连的两个网络之间进行通信传输。
为什么一定要这样呢?
比喻一下:一次旅游,数据链路层好比火车票或机票; 网络层好比旅行的行程表。
每张票只能够在某一限定区间内移动。此处的“区间内”就如同通信网络上的数据链路层。而这个区间内的出发地点和目的地点就如同某一个数据链路的源地址和目标地址等首部信息。整个全程的行程表的作用就相当于网络层。二者只有相互配合才能实现最终目标地址的通信
IP基础知识
IP地址属于网络层地址
在计算机通信中,为了识别通信对端,必须要有一个类似地址的识别码进行标识。第三章中,我们介绍过数据链路的MAC地址。MAC地址正是用来标识同一个链路中不同计算机的一种识别码。
作为网络层的IP,也有这样的地址信息。一般叫做IP地址。IP地址用于在“连接到网络中所有主机中识别出进行通信的目标地址”。因此,在TCP/IP通信中所有主机或路由器必须设定自己的IP地址。
路由控制
路由控制是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。
发送数据至最终目标地址:
IP数据包的传输类似于一步一步问路:当某个IP包到达路由器时,路由器首先查找其目标地址,从而再决定下一步应该将这个包发往哪个路由器,然后将包发送过去。这样反复,直到找到最终的目标地址。
路由控制表:
为了将数据包发送目标主机,所有主机都维护着一张路由控制表。该表记录IP数据在下一步应该发给哪个路由器。IP包将根据这个路由表在各个数据链路上传输。
不同的数据链路层有个最大的区别:==他们各自的传输单位不同==
IP属于面向无连接型
原因有两点:一是为了简化,二是为了提速。
为了提高可靠性,上一层的TCP采用面向有连接型。(为什么不将二者合并呢,因为要一种协议完成所有的功能和作用,那该协议会变得无比复杂,所以分层通信更加好)
IP地址的基础知识
IP地址就像是TCP/IP通信的一块基石。
IP地址由网络和主机两部分标识组成
通过网络地址和主机地址,使得IP地址有了唯一性。(同一网段的网络地址一定是相同的)
IP地址的分类
IP地址分为四个级别,分别为A类,B类,C类,D类。它根据IP地址中从第1位到第4位的比特列对其网络标识和主机标识进行区分。
A类地址
A类地址是首位以“0”开头地址。从第1位到第8位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0是A类的网络地址。A类地址的后24位相当于主机标识。因此一个网段内可容纳的主机地址上限为16777214个。
B类地址
B类地址是前两位为“10”的地址。从第1位到第16位是它的网络标识。用十进制表示的话,128.0.0.1~191.255.0.0是B类的网络地址。B类地址的后16位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65534个。
C类地址
C类IP地址是前三位为“110”的地址。从第1位到第24位是它的网络标识。用十进制表示的话,192.168.0.0~239.255.255.0是C类的网络地址。C类地址的后8位相当于主机标识。因此,一个网段可容纳的主机地址上限为254个。
D类地址
D类地址是前四位为“1110”地址。从第1位到第32位是他的网络标识。用十进制表示的话
224.0.0.0~239.255.255.255是D类地址。D类地址没有主机标识,常被用于多播。
需要注意的是:在分配IP地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可全部为0或1.因为全部为0只有在表示对应的网络地址或IP地址不可获的情况下才使用。而全部为1的主机地址通常作为广播地址。
广播地址
将IP地址中的主机标识全部设置为1.就成为了广播地址。
IP多播
同时发送提高效率
多播用于将包发送给特定组内的所有主机。由于其直接使用IP协议,因此也不存在可靠协议。
IP多播与地址
多播使用D类地址。
子网掩码
例如B类网址,可以连接六万五千个,但实际生活中一个网段不可能连接那么多,就会造成浪费。
子网和子网掩码就这样产生了。
通过子网掩码通过子网网络地址细分出比A类B类C类更小粒度的网络。
自从引入子网后,一个IP地址就有了两种识别码:一是IP本身,另一个是表示网络部的子网掩码。
子网掩码:如果用二进制表示的话,也是一个32位的数字。它对应IP地址网络标识部分全部为1,对应IP地址标识则全部为0。
由此一个IP地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由的定位自己的网络标识长度。当然,子网掩码必须是IP地址的首位开始连续的1。
私有网络IP:
私有IP最早没有计划连接互联网,而只用于互联网之外的独立网络。然而当一种能够互换私有IP和全局IP的NAT技术诞生以后,配有私有地址的主机与配有全局地址的互联网主机实现了通信。
全局IP地址基本上要在整个互联网范围内保持唯一,但私有地址不需要。只要在同一个域里保证唯一即可。在不同的域里出现相同的私有IP不会影响使用。
路由控制
发送数据包时所使用的地址是网络层的地址,即IP地址,然而仅仅有IP地址还不足以实现将数据包发送到对端的目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。实现IP通信的主机和路由器都必须持有这样一张路由控制表。
如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。所谓最为吻合是指相同位数最多的意思。
IPv6
IPv6是原来长度的四倍,即128比特。8个16字节。
IPv4首部
IP首部包含着用于ip协议进行发包控制时所有的必要信息。
关于IP版本号