TCP-IP-part5-IP协议(一)

前言

TCP/IP相关内容第五部分,包含:

  • IP即网际协议
  • IP基础知识
  • IP地址的基础知识

一、IP即网际协议

网络层的作用是实现终端节点之间的通信。

数据链路层的作用是在互连同一种数据链路的节点之间进行包传递,当跨越多种数据链路时就需要借助网络层。作为网络层的IP负责在没有直连的两个网络之间进行通信传输。

主机应指“配备IP地址,但不进行路由控制的设备”,与路由器应区分。“节点”才是主机和路由器的统称。

二、IP基础知识

IP的三大作用:IP寻址,路由,IP分包与组包。

1、IP地址属于网络层地址

MAC地址是用来标识同一链路中不同计算机的一种标识码。而IP地址是连接到网络中的所有主机的标识码。不论一台主机与那种数据链路连接,其IP地址的形式都不会改变。

另外,在网桥或集线器等物理层、数据链路层转发设备中,不需要设置IP地址,因为他们不需要应对IP协议,只需要将IP包转化为0、1比特流进行数据帧转发即可。

交换机没有IP地址,也没有MAC地址。路由器两者都有。

2、路由控制

路由控制指将分组数据发送到最终目标地址的功能。IP路由也叫多跳路由。一跳是一个区间,是指只通过下层链路到达相邻的路由器或主机。路由器或主机在转发IP数据包时只指定下一个路由器或主机。路由器收到IP包(从目的MAC为本路由器的数据帧解析来的),找到下一跳路由器的MAC(可以根据IP进行ARP)地址,把数据包重新封装成适合下一链路传输的,目的MAC地址为下一跳路由器MAC地址的数据帧,再发送出去。

所有路由器都维护这一张路由控制表。

3、数据链路的抽象化

不同数据链路最大的区别,是最大传输单元(MTU)不同。路由器能连接异构的数据链路,因为他有能力根据MTU将IP包进行分片和组装,并把IP包封装成不同类型的帧。拆好了给下层,装好了给上层。因此从IP以上的层来看,根本不知道数据链路有MTU这回事儿,只管发或者收,IP为上层抽象了数据链路层。

4、IP属于面向无连接的

IP包发送之前不需要建立与对端的连接,一有IP包就发,不会几次握手确认与对面建立连接。因为有连接太慢了,IP只需要保证“把IP包送到目的地”,而不用管对方是否收到。这种事交给上层TCP做就可以。TCP会让IP发几个建立连接的包给对方(IP拿到就发),若收到回复,证明连接建立成功,TCP才发长长的数据包。这种分层分工的实施很有效,也很方便。

三、IP地址的基础知识

IP地址由32bit表示,8位一组,用“.”分为4组,再将每组用十进制表示。如:172.20.1.1。IP地址最多允许43亿台电脑接入,每一块儿网卡只配置一个IP地址,一台路由器通常会有多个IP地址。

IP地址由“网络标识”和“主机标识”构成。网络标识必须保证相互连接的每个段的地址不不相重复,相同段内的主机必须有相同的网络地址。同一网段内不能出现重复的主机标识。

路由器是根据网络标识进行路由的。当到了目的网段后,再根据目的IP找到目的主机的MAC发送过去(下一跳的目的地是主机)。

1、IP地址的分类

共4个分类:A、B、C、D类。

  1. A类
    首位以0开头,第1位到第8位是网络标识,网络地址范围:0.0.0.0~127.0.0.0(网络号全1,主机号全0)。后24位是主机标识。

  2. B类
    首位以10开头,1到16位是网络地址,网络地址范围:128.0.0.0~191.255.0.0。后16位是主机标识。

  3. C类
    首位以110开头,1到24位是网络地址,网络地址范围:192.0.0.0~223.255.255.0。后8位是主机标识。

  4. D类
    首位以1110开头,1到32位是网络地址,网络地址范围:224.0.0.0~239.255.255.255。没有主机标识,常用于多播地址。

主机号不可为全0或全1,其有特殊含义。全0代表对应地网络地址或IP地址不可获知。全1代表广播地址。

2、广播地址

主机号全1为广播地址,用于向同一链路的所有主机发送IP数据包。对于以太网,此时主机或者路由器会将以太网数据帧的目的MAC地址设为FF:FF:FF:FF:FF:FF的广播MAC地址。保证在链路层所有主机能收下帧不抛弃。

对于主机和路由器,他们只接收目的IP地址为自己,或广播,或自己组对应的多播地址的IP数据包。解析他们发给自己的上层。

本地广播会被路由器隔离,不会到别的网段。一般路由器会屏蔽本地的广播包,因为再转发它到本地会造成重复广播。而直接广播是不同网络间的广播,路由器会转发广播包到下一个路由器。

3、IP多播

用于将IP包发送给特定组内的所有主机。广播发送的包会让IP的上一层判断是否有必要接收数据,且无法穿透路由器。多播既可实现只给必要的组发数据包,有可以穿透路由器(发数据包给不同网段内的组内设备)。其具体实现上往往采用复制1对1通信的数据,将其同时发送给多个主机的方式。

多播使用D类地址。其中224.0.0.0~224.0.0.255的范围不需要路由控制,即同一链路内的多播地址,往这个地址发,就是往链路中所有属于这个组的设备发,其有既定已知的多播地址,如224.0.0.1是子网内路由器以外的所有主机,224.0.0.2子网内所有路由器。在这范围之外设置多播地址会给全网所有组内成员发多播包。由于范围太大,通常设置TTL生存时间来限制到达范围。

4、子网掩码

A类、B类的主机号太多了,一个网段内不可能有那么多主机。因此将原来A、B、C类的主机地址一部分用作子网地址,将原网络分为多个物理网络。子网掩码必须是IP地址的首位开始连续的“1”。注意子网掩码是原网络号的延长,因此一定要比原来的网络号位数多。如172开头的网络号是B类地址,其原网络后就有16位,因此子网掩码位数一定要大于16。

注意A类地址中以0、10、127开头的A类地址(网络号)是具有特殊意义的保留地址。

5、CIDR和VLSM

CIDR意为“无类型域间路由”,可以采用任意长度分割IP地址的网络标识和主机标识。其用于将许多小的网络(如C类,每个网络只有254个主机)合成一个更大的网络。注意其与子网掩码的区别。子网掩码是将大的A、B类地址分成小的,而CIDR是将多个小的C类合成大的。

VLSM是可变长子网掩码。过去的子网掩码是固定长度的。一个A类地址只能分成固定大小,固定数目的子网,不灵活。采用VLSM,可以将网络任意划分。

6、全局地址与私有地址

没必要为所有的主机分配固定的全局IP地址(公网IP),他们关机或不连公网的时候就不用给他们公网IP。只需要保证他们在网络内的私有地址唯一即可。私有IP范围:
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.16.255.255
C类:192.168.0.0~192.168.255.255

当他们需要连接公网时,利用NAT技术将私有IP和公网IP转化,从而进行互联网通信。缓解了IP地址的紧张。

存在一个提供商来提供全局IP地址,对于FTTH和ADSL服务,提供商会直接给用户分配全局IP地址。一般的用户是向ISP(运营商)提出连网要求,由他们为我们向提供商请求分配全局IP。这个全局IP不是固定的,每次重连分配得到的IP可能都不一样。且每一台主机申请得到一个全局IP。

不过现在很少给每个主机分配全局IP了,往往是一个LAN中只给代理服务器(网关),提供少数几个全局IP,根据NAT技术让子网内的主机连接互联网。

您的支持是我创造源源不断地动力