计算机网络的核心内容就是网络协议学习

网络硬件

网络传输技术:广播式链路和点到点链路

  • 单播:即点到点链路,在点到点传输中只有一个发送方和接收方
  • 广播:在广播系统中,把数据包发送给所有的目标机器,且目标机器接收数据包并进行处理
  • 组播:在广播系统中,把数据包发送给某一组目标机器

网络划分

个域网

PAN(Personal Area Network),设备围绕一个人通信的网络

局域网

LAN(Local Area Network),属于私有网络,常用在家庭、工厂和办公室等

局域网中的接入设备:

  • 接入点(Access Point)
  • 无线路由器(Wireless Router)
  • 以太网交换机(Switched Ethernet)

城域网

MAN(Metropolitan Area Network),范围覆盖城市的网络

广域网

WAN(Wide Area Network), 跨地理区域的网络,通常是一个国家、地区或大陆

网络层次划分

开放系统互联参考模型,即OSI/RM模型(Open System Interconnection/Reference Model)分七层,它将计算机网络体系结构的通信协议划分为七层:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer), 其中第四层完成数据传输服务,最上面三层面向用户。

除了OSI七层模型外还有常见的TCP/IP四层协议和TCP/IP五层协议,其对应关系如下:

OSI-TCP·IP

OSI七层网络模型

Physics Layer

Network Layer

Transport Layer

Session Layer

Presentation Layer

Application Layer

IP地址

IP地址组成

  • IP地址由网络号(子网号)和主机号组成。

    • 网络号(NetID): 表示主机(或路由器)所连接的网络
    • 主机号(HostID): 表示该主机或路由器
1
2
3
4
5
# 例如 Class.C IP
192.168.0.0 ~ 192.168.0.255
11000000.10101000.00000000.00000000
11000000.10101000.00000000.11111111
           NetID          | HostID

Note:

  • 在上面例子中,前面三组数字(192.168.0)表示网络号,最后一组数字表示主机号; 在同一个物理网段内,主机的IP具有相同的NetID,并且具有独立的HostID
  • 注意,在同一个NetID内,不能具有相同的HostID,否则会发生IP冲突,导致两台主机都无法上网。
  • 网络号和主机号通过子网掩码进行区分
  • IP地址组成及路由图:

IP地址组成及路由图

Note:

  • 从上图可以看出IP包被转发到某个路由器时,利用目标IP地址的网络标识(NetID)完成路由。
  • 192.168.1.12124 其中,/24 表示从头数到第几位为止为网络标识(NetID)

IP地址分类

IP地址分为五类:每一类的范围主要与IP地址的32bits字节的前几位有关,基本定义如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# IP Address 以二进制说明第一个数字的定义
Class A:  0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  # NetID开头为 0
          | NetID |          HostID         |

Class B:  10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  # NetID开头为 10
          |     NetID     |     HostID      |

Class C:  110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxx|  # NetID开头为 110
          |           NetID        | HostID |

Class D:  1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxx   # NetID开头为 1110

Class E:  1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxx   # NetID开头为 1111

# IP Address 点分十进制表示其范围
Class A:  0.0.0.0   ~ 127.255.255.255
Class B:  128.0.0.0 ~ 191.255.255.255
Class C:  192.0.0.0 ~ 223.255.255.255
Class D:  224.0.0.0 ~ 239.255.255.255          # D类地址作为组播地址(一对多的通信)
Class E:  240.0.0.0 ~ 255.255.255.255          # E类地址为保留地址,供以后使用

Note: 只有A、B、C类有网络号和主机号之分,D和E没有划分网络号和主机号

  • IP地址分类图

IP地址分类图

特殊的IP地址

广播地址

广播地址通常称为直接广播地址,是为了区分受限广播地址 广播地址与网络地址的主机号正好相反,广播地址中,主机号全为1。当向某个网络的广播地址发送消息时,该网络内的所有主机都会收到该消息。

255.255.255.255

该IP地址指的是受限的广播地址。受限的广播地址与一般广播地址(直接广播地址)区别在于, 受限广播地址只能用于本地网络;一般广播地址既可以在本地广播也可以跨网段广播。

0.0.0.0

INADDR-ANY 任意的IPV4地址,也叫通配地址

回环地址

127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1

ABC类私有地址

私有地址(Private Address), 亦即专用地址,不会再全球使用,只具有本地意义

1
2
3
Class A 私有地址:  10.0.0.0/8, 范围是 10.0.0.0 ~ 10.255.255.255
Class B 私有地址:  172.0.0.0/12,范围是 172.16.0.0 ~ 172.31.255.255
Class C 私有地址: 192.168.0.0/16,范围是:192.168.0.0 ~ 192.168.255.255

子网掩码

子网掩码是标志两个IP地址是否属于同一子网的, 也是32位二进制地址, 该地址每个字节的值为1表示网络位,为0表示主机位。子网掩码也采用点分十进制的方式表示。如果两个IP地址和子网掩码的按位 得到的结果相同,则表示这两IP属于同一子网。

Class.A.B.C的子网掩码(Netmask)

1
2
3
4
# Class A, B, C 三个等级的 Netmask 表示方式:
Class A : 11111111.00000000.00000000.00000000 ==> 255.  0.  0.  0
Class B : 11111111.11111111.00000000.00000000 ==> 255.255.  0.  0
Class C : 11111111.11111111.11111111.00000000 ==> 255.255.255.  0

路由

ARP协议

ARP(Address Resolution Protocol), 即地址解析协议:根据IP获取物理地址(MAC)的一个TCP/IP协议,在网络通信过程中每台机器都会在本机添加一个目标主机IP地址和MAC地址的映射——ARP缓存。

主机发送信息时将包含目标IP的ARP请求广播到网络上的所有主机,并接受返回信息,以此确定目标的MAC地址;收到返回消息后将该IP地址和MAC地址存入本机ARP缓存并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

ARP工作流程举例:

  • 主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
  • 主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
  • 当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
  1. 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
  2. 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
  3. 主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
  4. 主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
  5. 当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

NAT协议

NAT(Network Address Translation), 即网络地址转换协议:属于接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转化技术,被广泛应用于各种Internet接入方式和各种类型的网络中。

DHCP协议

DHCP(Dynamic Host Configuration Protocol), 即动态主机配置协议,属于局域网的网络协议, 使用UDP协议工作。主要完成: 给内部网络或网络服务供应商自动分配IP地质。

See Also

Thanks to the authors 🙂