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 。