2

Network | 计算机网络基础

 2 years ago
source link: https://ijayer.github.io/post/tech/network/20170926-net-basic/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

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

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七层网络模型

Physics Layer

Data Link Layer

Network Layer

Transport Layer

Session Layer

Presentation Layer

Application Layer

IP地址组成

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

    • 网络号(NetID): 表示主机(或路由器)所连接的网络
    • 主机号(HostID): 表示该主机或路由器
# 例如 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地址组成及路由图:

Note:

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

IP地址分类

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

# 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地址

广播地址通常称为直接广播地址,是为了区分受限广播地址 广播地址与网络地址的主机号正好相反,广播地址中,主机号全为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), 亦即专用地址,不会再全球使用,只具有本地意义

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)

# 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 🙂


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK