Skip to content

01 基础网络概念

1. ip

1.1 ip分级

以二进制说明 Network 第一个数字的定义:
Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 0
          |--net--|---------host------------|
Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 10
          |------net-------|------host------|
Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 110
          |-----------net-----------|-host--|
Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1110
Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1111

五种分级在十进制的表示:
Class   A   :     0.xx.xx.xx    ~   127.xx.xx.xx
Class   B   :   128.xx.xx.xx    ~   191.xx.xx.xx
Class   C   :   192.xx.xx.xx    ~   223.xx.xx.xx
Class   D   :   224.xx.xx.xx    ~   239.xx.xx.xx
Class   E   :   240.xx.xx.xx    ~   255.xx.xx.xx

Class D 是用来作为群播 (multicast) 的特殊功能之用 (最常用在大批计算机的网络还原),至于 Class E 则是保留没有使用的网段。

Host_ID 在二进制的表示法当中,不可同时为 0,也不可同时为 1,因为全为 0 表示整个网段的地址(Network IP),而全为 1 则表示为广播的地址 (Broadcast IP)。

广播地址用于在同一个链路中相互连接的主机之间发送数据包。广播分为本地广播和直接广播两种,在本网络内的广播叫做本地广播;在不同网络之间的广播叫做直接广播。

1.1.1 网络地址和广播地址的计算

若主机位有N位,那么可用的ip地址数量就是2N个,范围是(网络地址+1)~(广播地址-1)

网络地址:把ip的主机位全部置0之后与掩码相与。

广播地址:把ip的主机位全部置1。

比如 192.168.216.21/29:

网络地址:

192.168.216. 00010101
255.255.255. 11111000   # 掩码
192.168.216. 00010000   # 主机位全部置0
192.168.216. 00010000   # 相与
192.168.216.16          # 网络地址

广播地址:

192.168.216. 00010101
255.255.255. 11111000   # 掩码
192.168.216. 00010111   # 主机位全部置1
192.168.216.23          # 广播地址

1.2 私有ip

私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段:

Class A:10.0.0.0 - 10.255.255.255
Class B:172.16.0.0 - 172.31.255.255
Class C:192.168.0.0 - 192.168.255.255

1.3 特殊的 loopback IP 网段

用于测试的内部循环网络。

[root@dev ~]# ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2. 路由表的简单查看

本机路由表查看:

[root@centos-server-1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.75.2    0.0.0.0         UG    100    0        0 eth0
192.168.75.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0
  • Gateway:0.0.0.0 表示不需要额外的ip
  • Genmask:即Netmask
  • Flags:
    • U (route is up):该路由是启动的
    • H (target is a host):目标是一部主机 (IP) 而非网域
    • G (use gateway):需要透过外部的主机 (gateway) 来转递封包
    • R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的旗标
    • D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
    • M (modified from routing daemon or redirect):路由已经被修改了
    • ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域! )
  • Use Iface:使用的网络接口。如果我们要传送的包在路由规则里面的 Gateway 为0.0.0.0 的话,就会直接以后面的网络接口来传送出去,无需网关转发喽。

若要传送的包目的地 IP 不在路由规则里面,那么就会将包传送到default(即Destination 为 0.0.0.0)所在的那个路由规则去。

3. 小结

  • 虽然目前的网络媒体多以以太网络为标准,但网络媒体不只有以太网络而已;Internet 主要是由 Internet Network Information Center (INTERNIC) 所维护;
  • 以太网络的 RJ-45 网络线,由于 568A/568B 接头的不同而又分为并行线与跳线;
  • 以太网络上最重要的传输数据为 Carrier Sence Multiple Access with Collision Detect (CSMA/CD) 技术, 至于传输过程当中,最重要的 MAC 讯框内以硬件地址 (hardware address) 数据最为重要;
  • 透过八蕊的网络线 (Cat 5 以上等级),现在的以太网络可以支持全双工模式;
  • OSI 七层协议为一个网络模型 (model) ,并非硬性规定。这七层协议可以协助软硬件开发有一个基本的准则, 且每一分层各自独立,方便使用者开发;
  • 现今的网络基础是架构在 TCP/IP 这个通讯协议上面;
  • 数据链结层里重要的信息为 MAC (Media Access Control),亦可称为硬件地址,而 ARP Table 可以用来对应 MAC 与软件地址 ( IP ) ;
  • 在网络媒体方面, Hub 为共享媒体,因此可能会有封包碰撞的问题,至于 Switch 由于加入了 switch port 与 MAC 的对应,因此已经克服了封包碰撞的问题,也就是说,Switch 并不是共享媒体;
  • IP 为 32 bits 所组成的,为了适应人类的记忆,因此转成四组十进制的数据;
  • IP 主要分为 Net ID 与 Host ID 两部份,加上 Netmask 这个参数后,可以设定『网域』的概念;
  • 根据 IP 网域的大小,可将 IP 的等级分为 A, B, C 三种常见的等级;
  • Loopback 这个网段在 127.0.0.0/8 ,用在每个操作系统内部的循环测试中;
  • 网域可继续分成更小的网域 (subnetwork),主要是透过将 Host_ID 借位成为 Net_ID 的技术;
  • IP 只有两种,就是 Public IP 与 Private IP ,中文应该翻译为 公共 IP 与 私有(或保留) IP,私有 IP 与私有路由不可以直接连接到 Internet 上;
  • 每一部主机都有自己的路由表,这个路由表规定了封包的传送途径,在路由表当中,最重要者为默认的通讯闸 ( Gateway/Router );
  • TCP 协议的表头数据当中,那个 Code (control flags) 所带有的 ACK, SYN,FIN 等为常见的旗标, 可以控制封包的联机成功与否;
  • TCP 与 IP 的 IP address/Port 可以组成一对 socket pair 网络联机都是双向的,在 TCP 的联机当中,需要进行客户端与服务器端两次的 SYN/ACK 封包发送与确认, 所以一次 TCP 联机确认时,需要进行三向交握的流程;
  • UDP 通讯协议由于不需要联机确认,因此适用于快速实时传输且不需要数据可靠的软件中,例如实时通讯;
  • ICMP 封包最主要的功能在回报网络的侦测状况,故不要使用防火墙将他完全挡掉;
  • 在主机的 port 当中,只有 root 可以启用小于 1024 以下的 port 。