计算机网络_网络层
网络层
网络层完成将分组报文传输到它们的目的地址的工作。注意,目的地只精确到网络接口(port to port),并不精确到应用程序。
我们熟悉的路由器,工作在这一层。
网络层最重要的两个功能即转发和路由选择。
IP协议
IP协议属于网络层,它是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包(packet)的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
IP协议传输的数据单位是数据包,数据包的首部(一般20个字节)包含有源和目标的IP地址以及其他的相应的寻址和控制信息。
IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。
IP协议具有以下两个显著的特点:
-
不可靠(Unreliable): IP协议只能“尽力而为best effort”提供最好的传输服务,但不能保证数据报能够成功地抵达目的地。如果发生某种错误,需要依赖ICMP协议,来发送错误报告。
-
无连接(Connectionless):IP协议并不维护任何关于后续数据报的状态信息,每一个数据报都是被独立处理的。
ICMP: Internet Control Message Protocol 即Internet消息控制协议。 ICMP报文分为两种类型(1)ICMP差错报告报文 (2)ICMP询问报文
IP地址
任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。
每台可上网设备至少有一个网络层地址,即所谓IP地址。
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
常见的IP地址,分为IPv4与IPv6两大类。
IPv4
IPv4类型的IP地址,长度为32bit(4字节),因此总共有2^32个可能的IP地址。这些地址一般按照“点分十进制记法”书写,类似192.168.1.100
分类编址
IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。IP地址可以被分为网络号和主机号两部分,一个IP地址的网络号部分为1\2\3字节则对应A\B\C网络。
网络号的位数直接决定了可以分配的网络数,计算方法:2^网络号位数-保留数
主机号的位数决定了一个网络下所能拥有的主机数,计算方法:2^主机号位数-2(一个网络号和一个广播地址)
- A类 0.0.0.0-127.255.255.255
- A类IP地址的子网掩码为255.0.0.0,最大网络数为27-2=126(最高位必须是0,全0,表示本网络,01111111作为本地软件环回测试,这两个保留,不指派),每个网络支持的最大主机数为224-2=16777214台。
- B类 128.0.0.0-191.255.255.255
- B类IP地址的子网掩码为255.255.0.0,最大网络数为2^14-1=16383(最高位必须是10,实际上B类地址 128.0.0.0是不指派),每个网络支持的最大主机数为2^16-2=65534台。
- C类 192.0.0.0-223.255.255.255
- C类IP地址的子网掩码为255.255.255.0,最大网络数为221-1=2097151(最高位必须是110,c类地址192.0.0.0也不指派),每个网络支持的最大主机数为28-2=254台
子网&子网掩码
假如某两台设备的IP地址前24bit相同,例如:192.168.1.2,192.168.1.3,他们接入了同一台路由器,地址为192.168.1.1。
互联这两台主机接口与一个路由器接口的网络形成一个子网。IP编址为这个子网分配一个地址:192.168.1.0/24。其中/24的记法被称为子网掩码。
A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
IPv6
随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,而地址空间的不足必将妨碍互联网的进一步发展。IPv4采用32位地址长度,只有大约43亿个地址,而IPv6采用128位地址长度,几乎可以不受限制地提供地址。IPv6具备方便寻址及支持即插即用等特性,能更好地支持物联网业务。
制约
- IPv4与IPv6不兼容,导致IPv6网络中如果有一个点不支持IPv6那么就分离了两个IPv6网络.
- 经济成本
- 厂商动力
- 成熟市场
- NAT协议与DHCP协议的广泛应用
NAT
Network Address Translation(网络地址转换)
NAT用来将你的内部地址转换成internet可以识别的外网地址,这样你公司/小区内部的计算机才可以浏览Internet。通常你购买ISP提供的internet线路后,只会给你一个或几个公网IP,但通过NAT协议可以让内部上百,上千的计算机上网。假设你设置73.12.36.81为你公司访问internet的外网地址,当你内部计算机要访问internet时,NAT会将他们的内部地址映射到73.12.36.81的某个端口上,例如:73.12.36.81:9999,这样就实现了N多计算机使用同一公网IP上网的功能。如果你不设置NAT,那内网IP在公网是无法识别的,也就无法上网。
我们说到的内网/私有IP本质上就是在A、B、C三类IP地址中分别划出的一些指定的IP地址(A类:10.0.0.0/8,B类:172.16.0.0/12, C类 :192.168.0.0/16)
简单的说,NAT是用来转换内/外IP地址的。
DHCP
Dynamic Host Configuration Protocol(动态主机分配协议)
它分为两个部份:一个是服务器端,而另一个是客户端。DHCP服务器维护了一个地址池,它只会从这个池子里分配地址,一个MAC对应一个地址,如果不用了就放回池子,这样就可以避免出现重复的IP地址。大多时候,我们手里的设备从DHCP服务器那里拿到的是内网IP。
简单的说,DHCP是用来分配IP地址的。