基础网络知识

基础网络知识

 

目录

1.            基础网络知识. 2

1.1 网络知识课程体系. 2

1.2 网络的通讯原理. 2

1.2.1 实现数据传输的条件:. 2

1.2.2 如何实现一个网络环境中多台主机通讯. 2

1.2.3 多个局域网(交换网络)之间如何实现通讯. 3

1.3 网络的基础设备. 4

1.3.1 交换机. 4

1.3.2 路由器(实践操作配置网络设备)***** 4

1.3.3 防火墙. 6

1.3.4 审计设备(认证). 6

1.3.5 无线设备. 6

1.3.6 语音设备. 6

1.4 网络架构体系. 6

1.4.1 网络架构设计方法/划分层次. 6

1.4.2 网络OSI--7层模型. 7

1.5 网络的两个重要协议原理(DNS/ARP). 14

1.5.1 DNS解析原理: 域名 -- IP对应关系. 14

1.5.2 ARP访问原理: IP --- mac对应关系. 15

1.6 常用端口. 22

1.7 IP地址. 23

1.7.1 IP地址详概念说明. 23

1.7.2 IP地址分类说明(IPv4 32-IPv6 128) 23

1.7.3 子网划分方法. 25

1.8 企业上网原理配置说明:. 26

1.9 虚拟主机上网原理(win7 win10--ghost(阉割版)). 27

1.10 系统路由配置说明. 28

1.10.1 静态网段路由配置:. 28

1.10.2 静态主机路由配置:. 28

1.10.3 静态默认路由:. 29

 

1.    基础网络知识

什么是网络?

       实现主机之间通讯交流

1.1 网络知识课程体系

(CCNA --- 7个全天)

   学习方法:https://bbs.hh010.com/forum-463-1.html

1.2 网络的通讯原理

1.2.1 实现数据传输的条件:

主机之间需要有传输介质

(网线 光纤线 wifi)

 

主机上需要有网卡设备

调制过程:将数字(数字信号)二进制信息转换为高低电压(模拟信号)

解调过程:将高低电压转换为二进制信息

 

不同主机网卡速率不一致,需要进行协商过程(自动协商)

100Mbps =100 000kbps =100 000 000 b 每秒钟 xxns 1 0 bit

  A主机 100Mbps   协商方法(木桶原理)

  B主机 1Gbps           

 

网络中传输数据的最小单位 bit

          网络:传递数据信息  1bit=1/8Byte    100Mb 迅雷下载电影10G  == 100Mb/8=12.5MB-损耗=10+Mb

系统中存储数据的最小单位 Byte

   磁盘:数据信息存储  Byte  1B=8bit

   

1.2.2 如何实现一个网络环境中多台主机通讯

1)交换机:实现在一个局域网环境中,实现多台主机可以互联通讯的设备

2)发数据信息需要有数据包结构

目标信息+源信息(mac)+数据信息==基本的数据包结构

 

3)地址标识:实现多台主机通讯,利用MAC(物理地址 网卡的身份证号码)地址标识主机身份信息             MAC地址特点:全球唯一

MAC地址利用十六进制信息进行表示:

0 1 2 - 9  10  11  12  13  14  15  A  B  C  D  E  F

 

4)利用交换机进行通讯需要借助广播方式

 

PS:如何实现正确的网络通讯,数据的通讯过程一定是有去有回的

利用交换机进行数据通讯时,某些时刻会产生广播信息

 

交换网络缺点: 当交换网络主机数量过多, 会产生广播风暴问题, 导致影响主机性能

   

 

1.2.3 多个局域网(交换网络)之间如何实现通讯

1)路由器: 实现局域网之间(跨网段)主机通讯, 并且可以隔离广播信息

 

2)发数据信息需要有数据包结构

目标信息+源信息(IP)+数据信息==基本的数据包结构

 

3)地址标识:在多个局域网环境中, 利用IP(逻辑地址 身份证姓名)地址标识主机身份信息

IP地址:网段地址 + 主机地址   城市省份地址  +  街道房间信息

 

逻辑地址是全球唯一的? 不能出现重复情况?

利用十进制信息进行标识   0~9

 

4)利用路由器查询路由表信息进行判断

实现不同局域网之间可以经过路由器通讯, 相同局域网数据经过路由器会进行隔离,需要借助路由协议

 

什么是网关: 主机需要将数据发送到其它局域网的必经之路

当访问外网不通的时候, 可以先对网关地址连接进行测试

 

路由协议:

路由协议: 让路由表中可以拥有相应路由条目

  1) 静态路由协议: 手动在路由表中添加路由条目信息 

    优点: 通讯效率较高

    缺点: 操作配置复杂度较高

  2) 动态路由协议: 自动在路由表中生成路由条目信息

    优点: 操作配置简单方便

    缺点: 路由条目学习过程(路由收敛过程)会耗费时间, 造成通讯效率较低

 

1.3 网络的基础设备

 

1.3.1 交换机

交换机:实现局域网内多台主机之间通讯

识别主机身份:MAC地址 (小名--局域网中有效)

 

1.3.2 路由器(实践操作配置网络设备)*****

路由器:实现不同局域网多台主机之间通讯

    识别主机身份:IP地址(唯一???)(大名---互联网)

路由设备:

准备条件:

需要部署安装网络模拟器  思科模拟器    OK

 

规划网络设备连接图                    OK                 

 

简单的网络配置命令

en(enable)                       ---将用户模式转换为特权模式

conf t(configure terminal)               ---将特权模式转换为配置模式

int(interface) g0/0               ---进入到指定接口配置模式

ip add(address) 10.0.1.254 255.255.255.0 ---配置接口地址

no shut(shutdown)             ---激活网卡

ctrl+z                             ---切换到特权模式

 

思科设备常用查看命令:

show run-                             ---检查设备的所有配置信息

show ip route-                        ---查看路由表信息

show ip interface brief(show ip int br)  ---检查接口配置信息

 

华为或H3C:

display cu

 

路由的几种配置方法以及区别*****

1.静态路由:

静态路由信息(手工添加路由表条目信息)

 

ip route +去往的目标网段信息+去往目标网段掩码信息+去往目标网段下一跳地址

 

R1:

ip route 10.0.2.0 255.255.255.0 10.0.12.2

 

R2:

ip route 10.0.2.0 255.255.255.0 10.0.23.3

ip route 10.0.1.0 255.255.255.0 10.0.12.1

 

R3:

ip route 10.0.1.0 255.255.255.0 10.0.23.2

2.动态路由:

动态路由信息(rip(简单) eigrp ospf 运营商is-is bgp)

 

互相学习的过程

 

R1:rip路由

router rip (语言)

network 10.0.1.0

network 10.0.12.0

 

R2:rip路由

router rip (语言)

network 10.0.12.0

network 10.0.23.0

 

R3:rip路由

router rip (语言)

network 10.0.23.0

network 10.0.2.0 

3.默认路由:

默认路由信息

 

R1:

ip route 10.0.2.0 255.255.255.0 10.0.12.2

ip route 10.0.3.0 255.255.255.0 10.0.12.2

ip route 10.0.4.0 255.255.255.0 10.0.12.2

 

默认路由:

ip route 0.0.0.0 0.0.0.0 10.0.12.2

   

4.路由表中如何有路由信息

1)自动发现直连路由信息

2)配置静态路由

动态路由信息进行删除:

no router rip

5.补充: linux系统中查看路由表方式

netstat -rn

ip route show

 

 

1.3.3 防火墙

 

 

1.3.4 审计设备(认证)

 

 

1.3.5 无线设备

 

 

1.3.6 语音设备

 

 

1.4 网络架构体系

1.4.1 网络架构设计方法/划分层次

1) 核心层:

    1. 实现和外网运营商线路连接

    2. 考虑网络设备冗余能力

2) 汇聚层:

    1. 实现网络设备连接汇聚

    2. 实现网络通讯安全策略控制 -- ACL

    3. 考虑网络设备冗余能力

3) 接入层:

实现终端设备连接网络(电脑 打印机 电话)

 

1.4.2 网络OSI--7层模型

作用:定义网络通讯标准规范  ISO国际标准认证组织   ISO9000   

 

思科设备--EIGRP(语言) 

HW设备---RIP

 

模型组成:

    应用层: 应用程序的协议和接口规范  HTTP SSH(远程连接)

    表示层: 将数据进行转码 加密/解密 压缩处理/解压缩

    会话层: 建立 维护会话 或终止会话??? A - B

    传输层: 分段 重组 确保网络连接通讯过程是可靠的  TCP协议 UDP协议

    网络层: 路由协议 确保不同网段主机之间可以传递数据       路由器(3层设备)

    数据链路层: 负责将同一局域网中不同主机的数据进行传输--交换机(2层设备)

    物理层: 定义一些物理连接介质的标准 网口 网线 光纤 光纤模块

 

掌握网络数据传递过程(了解)

数据封装过程:

数据                    ---应用层 表示层 会话层 

 

TCP头部信息 (源端口/目标端口3306)+数据        ---传输层

 

IP头部信息     (源IP/目标IP)+TCP头部信息  +数据    ---网络层

 

MAC头部信息(源MAC/目标MAC)+IP头部信息+TCP头部信息+数据  ---数据链路层

 

bit流 101010101             ---物理层

   

数据解封装过程

bit流 101010101             ---物理层

 

MAC头部信息(源MAC/目标MAC)+IP头部信息+TCP头部信息+数据  ---数据链路层

 

IP头部信息     (源IP/目标IP)+TCP头部信息+数据           ---网络层

 

TCP头部信息 (源端口/目标端口3306)+数据              ----传输层

 

数据                     ----应用层 表示层 会话层

 

补充:源端口取值范围

  cat /proc/sys/net/ipv4/ip_local_port_range

 

图表 1‑2数据传输过程中的封装与解封装过程

TCP/IP模型:(OSI7层模型简化版)

低-高  数据接入层  互联网层  主机到主机层(TCP UDP)  应用层

两个重要协议:(TCP/UDP)

TCP:传输控制协议  面向连接的协议

    QQ:在线发送文件(TCP)  局域网线路传输

    优势:数据传输安全可靠

    劣势:传输效率低

    应用:文件传输 邮件服务 页面网站服务

   

UDP:用户报文协议  无连接的协议

   QQ:离线发送文件 (TCP)   A ---互联网--腾讯存储服务器(7天)---互联网---B

    优势:传输效率高

    劣势:传输数据不可靠

    应用:视频播放(帧) 语音通话

   

***** 重要部分 *****

补充:TCP报文结构 TCP头部 + data

1bit  多少端口   0  1                     2的1次方=2

 

2bit  多少端口   00 01 10 11  0 1 2 3        2的2次方=4

 

3bit  多少端口   000 001 010 011 100 101 110 111  0 1 2 3 4 5 6 7  2的3次方=8

 

16bit  多少端口       2的16次方=65536  1~65535  0        

 

控制位:

    syn  请求建立连接控制位  1

    ack  连接确认控制位      1

    fin  请求断开连接控制位   1

    客户端(1万 --- 服务端(1万)(连接的限制--负载过高w)

 

TCP协议中重要原理
TCP报文结构:

a.源端口地址    返回数据包目标端口地址  

 

b.目标端口地址  要和服务端哪个网络服务建立连接

 

端口的数值范围: 1-65535 是通过报文结构获知的

根据报文结构 源端口和目标端口各占用16个bit

 

公式: 2的n次方 n占用了多少比特    占用了1bit

端口范围: 0 1  2种   2的1次方=2 0-1    占用了2bit

端口范围: 00(0) 01(1) 10(2) 11(3) 4种   2的2次方=4 0-3

    占用了3bit

端口范围: 000(0) 001(1) 010(2) 011(3) 100(4) 101(5) 110(6) 111(7)  8种 2的3次方=8 0-7    占用了16bit

端口范围: 2的16次方=65536  0-65535 --- 1-65535

PS: 一般0号端口不被使用

 

c.Sequence Number(序列号)

 

d.Acknowledgement Number(确认号)

特殊6bit作为报文结构中的控制位:

    syn(连接)   --- 请求建立连接控制字段

    ack(确认)   --- 表示确认控制字段

    fin(断开)   --- 请求断开连接控制字段

    说明: 控制字段数值置为1表示控制功能开启 默认为0

 

TCP三次握手过程  -- 完成网络连接建立

第一次握手: 发送TCP数据报文 客户端 -- 服务端

   a TCP数据报文中,需要将syn控制字段改为1

   b TCP数据报文中,需要将seq序列号信息发出 seq=x

 

第二次握手: 发送TCP数据报文 服务端 -- 客户端

   a TCP数据报文中,需要将ack控制字段改为1

   b TCP数据报文中,同时将syn控制字段改为1

   c TCP数据报文中,同时将ack确认号信息发出 ack=x+1

   d TCP数据报文中,同时将seq序列号信息发出 seq=y

 

第三次握手: 发送TCP数据报文 客户端 -- 服务端

   a TCP数据报文中,需要将ack控制字段改为1

   b TCP数据报文中,同时将ack确认号信息发出 ack=y+1

   c TCP数据报文中,同时将seq序列号信息发出 seq=x+1

TCP四次挥手过程完成网络连接断开

第一次挥手: 发送TCP数据报文 客户端 -- 服务端

   a TCP数据报文中, 需要将fin控制字段改为1

   b TCP数据报文中, 同时将ack控制字段改为1

   也包含seq和ack确认号信息

 

第二次挥手: 发送TCP数据报文 服务端 -- 客户端

   a TCP数据报文中, 需要将ack控制字段改为1

 

第三次挥手: 发送TCP数据报文 服务端 -- 客户端

   a TCP数据报文中, 需要将ack控制字段改为1          

   b TCP数据报文中, 同时将fin控制字段改为1

 

第四次挥手: 发送TCP数据报文 客户端 -- 服务端

   a TCP数据报文中, 需要将ack控制字段改为1

 

 

图表 1‑3 TCP报文结构

 

扩展: 如何抓取网络数据包(抓包软件)  

    windows: Wireshark

    linux: tcpdump命令

   

TCP 11种状态集转换(了解 -- 架构层面)

作用:

   1.以后可以更好排查系统网络问题

   2.以后学习网络编程会有帮助

   

TCP三次握手过程状态变化: 5种变化 (服务端和客户端)

第一历程: 初始状态信息

   客户端状态为: closed

   服务端状态为: closed

 

第二历程: 服务端开启相应服务

   服务端状态为: closed -- LISTEN

 

第三历程: 发送建立连接请求(客户端) == 三次握手第一次

    客户端发送syn信息

    客户端状态为: closed -- syn_sent

 

第四历程: 接收建立连接请求(服务端) == 三次握手第二次

    服务端接受syn信息, 发送确认以及请求建立连接信息(ack syn)

    服务端状态为: LISTEN -- syn_rcvd

 

第五历程: 发送最后确认信息(客户端) == 三次握手第三次

    客户端发送ack信息

    客户端状态为: syn_sent -- established

 

第六历程: 接收最后确认信息(服务端)

    服务端接收ack信息

    服务端状态为: syn_rcvd -- established

结论: 只有服务端和客户端都统一处于established连接建立状态, 才能正常传输数据信息

图表 1‑4 三次握手过程

 

TCP四次挥手过程状态变化: 5种状态变化(服务端和客户端)

第一个历程: 初始状态信息

    客户端状态为: established

    服务端状态为: established

 

第二个历程: 发送断开连接请求(客户端) == 四次挥手第一次

    客户端发送fin请求断开连接字段

    客户端状态为: established -- fin_wait1

 

第三个历程: 接收断开连接请求(服务端) == 四次挥手第二次

    服务端接受fin请求断开连接字段 发出确认信息(ack=1)

    服务端状态为: established -- close_wait

 

第四个历程: 接收确认断开信息(客户端)

    客户端接受服务端发出的确认信息(ack=1)

    客户端状态为: fin_wait1 -- fin_wait2

 

第五个历程: 发送断开连接请求(服务端) == 四次挥手第三次

    服务端发送fin请求断开连接字段 同时还会再次发送ack确认字段

    服务端状态为: close_wait -- last_ack

 

第六个历程: 接收断开连接请求(客户端) 发送最后确认信息 == 四 次挥手第四次

    客户端接收断开连接请求 同时发送最后确认信息ack=1

    客户端状态为: fin_wait2  -- time_wait (等时间 60s 90s 120s???)

 

第七个历程: 接收最后确认信息(服务端)

    服务端状态为: last_ack  -- closed

 

第八个历程: 等待时间结束

    客户端状态为: time_wait -- closed

图表 1‑5 TCP 四次挥手过程

 

 

问题一: 为什么断开过程是四次? 断开过程可以是三次吗?

    生活中: 物流公司oldboy

    PS: OSI7层模型 == 公司组织架构

 

四次断开过程:

    阿里巴巴(马云)--- 物流公司oldboy    OSI会话层

    主管(终止合作)-----主管---询问老板   传输层TCP---会话层

   <-- 确认 主管 --- 询问老板 --- 没有纠纷(服务端报文是否发送完毕) -- 确认断开

<-- 断开 主管

 

三次连接过程:

阿里巴巴(马云)---物流公司oldboy   OSI会话层

主管(建立合作)   主管(listen)

<--确认 连接

   

问题二: 为什么要有time_wait状态?

如何保证数据传输可靠性?  利用ack状态信息

    1) 避免last_ack状态信息在系统中产生堆积

    2) 在time_wait等待状态不停的发送ack信息

    3) 等待时间结束, 自动有time_wait===>closed

   

补充:(遁去的一种状态变化)

    1) 当客户端fin_wait1状态直接接收到(fin ack信息)

    2) 客户端状态: fin_wait1 -- closing(替换了fin_wait2)

    3) 客户端状态: closing --- time_wait --- closed

 

1.5 网络的两个重要协议原理(DNS/ARP)

1.5.1 DNS解析原理: 域名 -- IP对应关系

DNS协议原理: 实现建立 域名 -- IP

DNS:域名解析系统  名称---IP

 

A. DNS是什么

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射

B. 如何得知域名和IP地址的映射关系

ping www.baidu.com

dig www.wuxingge.org +trace

C. 完整解析过程

1)在本地查找解析记录 (缓存 hosts)

C:\Windows\System32\drivers\etc\hosts

2)向LDNS服务器发出域名查找请求

3)LDNS服务器向根域名服务器发送请求

4)根域名服务器会告知顶级域名服务器信息

5)LDNS服务器向顶级域名服务器发送请求

6)顶级域名服务器会告知二级域名服务器信息

7)LDNS服务器向二级域名服务器发送请求

8)二级域名服务器直接告知解析记录信息(A记录信息)

9)LDNS接收到解析记录并进行保存,将记录发送给相应主机

10)主机接收到解析记录并进行保存,使用解析后的地址访问网站服务器

dig www.wuxingge.org +trace

 

图表 1‑6 DNS完整解析过程

 

1.5.2 ARP访问原理: IP --- mac对应关系

两台主机直接通讯

多台主机直接通讯

 

协议原理过程:

01. 发送广播信息(发送ARP请求),获取相应主机MAC地址

02. 相应主机进行响应(发送ARP响应),完善arp表(IP--mac)

03. 减少广播包的产生,可以尽量在局域网中使用单播方式进行通讯

 

ARP协议类型:

动态类型: 实时(定期)更新arp表和mac表信息    --- 办公网站

静态类型: 手动方式向arp表和mac表中添加信息  --- 机房网络

 

ARP协议概述说明

如果要在TCP/IP协议栈中选择一个"最不安全的协议",那么我会毫不犹豫把票投给ARP协议。

 

我们经常听到的这些术语:

网络扫描

内网渗透

中间人拦截

局域网流控

流量欺骗

 

以上这些属于,基本都跟ARP脱不了干系。大量的安全工具,例如大名鼎鼎的Cain、功能完备的Ettercap、操作傻瓜式的P2P终结者,底层都要基于ARP实现。

 

听上去这么"逆天"的协议,其实技术原理又简单的难以置信,例如ARP整个完整交互过程仅需要两个包,一问一答即可搞定!但是ARP协议也有它令初学者迷惑的地方,例如由它本身延伸出来的"代理ARP"、"免费ARP"、"翻转ARP"、"逆向ARP",而这些不同种类的ARP,又应用于不同的场景。

 

在深入到技术原理之前,作为初学者,我们先记住下面三句话:

1)ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

2)在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目标IP地址的封装,也需要源目标MAC的封装。

3)一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。

接下来,我们通过图解的方式来深入了解ARP协议是如何工作的。

 

ARP协议原理详述

ARP原理之请求应答

同一个局域网里面,当PC1需要跟PC2进行通信时,此时PC1是如何处理的?

 

 

根据OSI数据封装顺序,发送方会自顶向下(从应用层到物理层)封装数据,然后发送出去,这里以PC1 ping PC2的过程举例。PC1封装数据并且对外发送数据时,下图中出现了"failed",即数据封装失败了,为什么?

 

我们给PC1指令-"ping ip2",这就告知了目的IP,此时PC1便有了通信需要的源目IP地址,但是PC1仍然没有通信需要的目的MAC地址。这就好比我们要寄一个快递,如果在快递单上仅仅写了收件人的姓名(IP),却没有写收件人的地址(MAC),那么这个快递就没法寄出,因为信息不完整。

那么,现在PC1已经有了PC2的IP地址信息,如何获取到PC2的MAC地址呢?此时,ARP协议就派上用场了。我们接着上面这张图,继续以下步骤说明,我们看到PC1和PC2进行了一次ARP请求和回复过程,通过这个交互工程,PC1便具备了PC2的MAC地址信息。

 

接下来PC1会怎么做呢?在真正进行通信之前,PC1还会将PC2的MAC信息放入本地的”ARP缓存表”,表里面放置了IP和MAC地址的映射信息,例如 IP2<->MAC2。接下来,PC1再次进行数据封装,正式进入PING通信。

 

 

小结:经过上面的步骤处理,PC1终于把数据包发送出去了,之后便可以进行正常的通信了。看到了吧,ARP的功能和实现过程是如此的简单:它在发送方需要目标MAC地址的时及时出手,通过"一问一答"的方式获取到特定IP对应的MAC地址,然后存储到本地“ARP缓存表”,后续需要的话,就到这里查找。

 

既然是"缓存"表,意味着它有时效性,并且如果电脑或者通信设备重启的话,这张表就会清空;也就是说,如果下次需要通信,又需要进行ARP请求。在我们的windows/macos系统下,可以通过命令行"arp -a"查看具体信息。

 

 

 

ARP原理之广播请求单播回应

上面的图解过程看上去简单又纯粹,好像我们就已经把这个协议的精髓全部get到,但其实,我们只是刚揭开了它的面纱,接下来我们才真正进入正题。例如,上面的图解过程中,整个局域网(LAN)只有PC1和PC2两个主机,所以这个一问一答过程非常的顺畅。

而实际网络中,这个LAN可能有几十上百的主机,那么请问,PC1如何将这个【ARP请求包】顺利的交给PC2,而PC2又如何顺利的把【ARP回应包】返回给PC1? 我们看下面的图:

 

为了营造出"几十上百"的效果,这里多添加了2个主机进来,在多主机环境下,PC1现在发出的ARP请求包,怎么交到PC2手里?

这时,ARP协议就需要采用以太网的"广播"功能:将请求包以广播的形式发送,交换机或WiFi设备(无线路由器)收到广播包时,会将此数据发给同一局域网的其他所有主机。

那么,什么是广播?对于初学者而言,我们只需要知道,大部分的广播包,它们有一个共同特征:二层封装时目的MAC是全f(ffff.ffff.ffff)或三层封装时目的IP是全1(255.255.255.255)。可以这样更方便的记住:目的地址最大的,就是广播。

注明:广播根据所在层次可分为二层广播和三层广播,根据发生范围可分为本地广播和定向广播,小伙伴们有兴趣可以自己再去拓展下。

 

根据上图我们看到,PC1发送的请求广播包同时被其他主机收到,然后PC3和PC4收到之后(发现不是问自己)则丢弃。而PC2收到之后,根据请求包里面的信息(有自己的IP地址),判断是给自己的,所以不会做丢弃动作,而是返回ARP回应包。

ARP请求是通过广播方式来实现的,那么,PC2返回ARP回应包,是否也需要通过广播来实现呢?答案是否定的。大部分网络协议在设计的时候,都需要保持极度克制,不需要的交互就砍掉,能合并的信息就合并,能不用广播就用单播,以此让带宽变得更多让网络变得更快。

那么,ARP回应包是如何处理的?这里需要特别关注ARP请求包的内容,在上面的图解里面,ARP请求包的完整信息是:我的IP地址是IP1,MAC地址是MAC1,请问谁是PC2,你的IP2对应的MAC地址是多少?

简单来说,ARP请求首先有"自我介绍",然后才是询问。这样的话,PC2在收到请求之后,就可以将PC1的IP和MAC映射信息存储在本地的【ARP缓存表】,既然知道PC1在哪里,就可以返回ARP单播回应包。

 

接下来我们来看下这个ARP广播请求包接下来是如何工作的?

 

这张图我们需要得到两个信息:

1)被询问者PC2先生成了ARP映射信息,然后才是询问者PC1;

2)PC3和PC4等其他主机,无法收到这个ARP回应包,因为是单播形式。

 

小结:ARP协议通过"一问一答"实现交互,但是"问"和"答"都有讲究,"问"是通过广播形式实现,"答"是通过单播形式。

 

 

ARP数据包解读

为了让大家更好的理解ARP协议以及广播和单播的概念,我们来看一下用Wireshark抓取到的真实网络中的ARP过程,通过数据包的方式来呈现,地址信息如下,部分MAC信息隐去。(建议初学者用GNS3配合Wireshark来抓取协议包进行分析,相比真实网络更加干净,方便分析)

主机1 <---> 主机2

主机1:  IP1 10.1.20.64    MAC1:00:08:ca:xx:xx:xx

主机2:  IP2 10.1.20.109  MAC2:44:6d:57:xx:xx:xx

 

ARP请求包
 
ARP回应包
 
ARP协议字段解读

Hardware type     :硬件类型,标识链路层协议

Protocol type :协议类型,标识网络层协议

Hardware size     :硬件地址大小,标识MAC地址长度,这里是6个字节(48bti)

Protocol size :协议地址大小,标识IP地址长度,这里是4个字节(32bit)

Opcode               :操作代码,标识ARP数据包类型,1表示请求,2表示回应

Sender MAC address     :发送者MAC

Sender IP address         :发送者IP

Target MAC address      :目标MAC,此处全0表示在请求

Target IP address           :目标IP

 

 

ARP到底是链路层还是网络层?

这个问题的难度堪比另外一个世界级难题:世界上最好的编程语言是什么?

 

其实早在20世纪时,W.Richard Stevens在《TCP/IP详解卷一》里面就提到了这个难题。这里给出我个人的协议分层思路,给大家作为参考。

 

协议到底所属哪一层,可以从应用/功能来考虑,也可以从层次/包封装来考虑。

 

以ARP协议为例,它的功能最终是获取到MAC信息,服务于链路层,从这点考虑,ARP是链路层协议;但是从层次来看,ARP基于Ethernet协议,IP协议基于Ethernet协议,它们在Ethernet协议里面有独立的Type类型,前者是0x0806,后者是0x0800,既然ARP和IP协议"平起平坐",那么IP是网络层,ARP难道就不是网络层?

 

小结:基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议。(此方法对于ICMP协议同样管用)

 

 

 

1.6 常用端口

SSH

22

TELNET

23

POP3

110

邮箱

25

DNS

53

HTTP

80

HTTPS

443

远程服务

3389

 

 

1.7 IP地址

1.7.1 IP地址详概念说明

IP地址作用:实现主机身份标识,用于网络通讯

IP地址组成:网段地址(省份区域) + 主机地址(街道小区房间)

IP地址表示形式:IP报文结构--地址占用32位

10.0.0.200 

 

2的32次方 ~  0 --  42.9亿(ipv4)

32bit -- 4组 -- 8位为一组

8bit   2的8次方==  1~256

00000000

 

00000000  - 0    - 0

00000001  - 1    - 1

00000010  - 10   - 2

 

二进制 到 十进制转换关系 (求和运算)

00010001

00010000 00000001

  16        1       17

11111111

128 64 32 16 8 4 2 1 = 255    

 

十进制 到 二进制转换关系 (求差运算)

192

判断:是否大于等于 --》 求差运算

144 - 128 = 16 - 16 =0

 

1    0   0   1   0  0  0  0

128  64  32  16  8  4  2  1

图表 1‑7 二进制到十进制转换关系

 

1.7.2 IP地址分类说明(IPv4 32-IPv6 128)

IPv4---2的32次方    IPv6---2的128次方

第一种分类:按照地址范围进行分类

    A类 B类 C类 D类 E类 -- C类

 

第二种分类:按照地址用途进行分类

公网地址:全球唯一 192.168.1.1

私网地址:重复使用(不同局域网可以重复使用)

10.0.0.0/8              (10.0.0.0          到  10.255.255.255)

172.16.0.0/16         (172.16.0.0       到  172.31.255.255)

192.168.0.0/24       (192.168.0.0     到 192.168.255.255)

169.254.0.0/16    (169.254.0.0     到 169.254.255.255)*系统分配地址

 

PS:私网地址网段信息不能出现在公网路由器的路由表中

NAT技术:实现私网地址和公网地址的映射  多个公网地址池

 

第三种分类:按照地址通讯方式分类

单播通讯:单播地址  1 vs 1

广播通讯:广播地址 1 vs n 局域网 所有主机 主机位全为1 广播地址

192.168.20.255

           172.16.255.255

                                      主机位全为0 网段地址

192.168.20.0

 

公式:一个网段中到底有多少个主机

     192.168.1.0 ---C类地址---网段中可以有多少个地址

     2的n次方 - 3  == 2的8次方 - 3 = 256 - 3 = 253

     n表示网段中有多少个主机位

     -3  广播地址  网段地址  网关地址(192.168.1.1 192.168.1.254)       

 

组播通讯:组播地址(D类)  1 vs n 局域网 部分主机

 

图表 1‑8 IP按照地址范围进行分类

 

1.7.3 子网划分方法

A B C

    172.16.1.0  255.0.0.0  子网掩码

    掩码:标识地址类型  

   

179.16.1.1

    NNNNNNN NNNNNNNN HHHHHHHH  HHHHHHHH

   

1111111 11111111 00000000  00000000

    A: 255.0.0.0      \8

    B: 255.255.0.0    \16

    C: 255.255.255.0  \24

   

172.16.0.0\16  公网地址网段

    2的16次方 -3 == 65536 -3 = 65533   10台服务器 65523多于

    局域网 --- 6万多个主机 -- 广播

    6万多台主机需要访问外网 --- 路由器

 

划分子网原因:

    01. 避免地址的浪费      避免浪费 100地址网段  100地址网段 

    02. 会产生广播风暴      减小广播问题

    03. 路由器负载压力过大  减小路由器负载压力

   

如何划分子网:

IP地址的子网划分:192.168.1.0/26 26-24=2

第一个步骤:原有地址属于哪个主类地址

第二个步骤:利用子网掩码数值减去相应主类掩码数值,获取子网信息

            2的n次方,n表示多少个子网位

第三个步骤:获取子网数量,以及子网网段地址(网络地址)

第四个步骤:获取子网掩码信息

第五个步骤:获取子网地址范围

            2的n次方-3        

 

172.16.0.0/16 1个大的,一分为2

172.16.0.0段     172.16.0.1~172.16.127.254

172.16.128.0段   172.16.128.1~172.16.255.254

 

 

面试题:给你一个网络地址信息 192.168.10.0/26

    请问:

    01. 划分多少个子网     26-24-2  2的2次方=4

 

    02. 每个子网的网段地址

 

    03. 每个子网的掩码信息

 

    04. 每个子网地址范围

 

 

CCNA  

    01. 路由交换设备简单配置

    02. VLSM子网地址划分

图表 1‑9 子网划分举例说明

 

1.8 企业上网原理配置说明:

路由器配置:

第一步:获取设备管理IP地址,修改笔记本网卡地址

第二步:外网线路配置(运营商),完成路由或拨号配置(用户名 密码--获取外网IP)

第三步:配置DHCP服务,实现办公环境主机自动获取IP地址

IP地址池信息:192.168.19.1~~192.168.19.200

子网掩码信息:255.255.255.0

网关地址信息:192.168.19.254

 

DNS地址信息:223.5.5.5

 

交换机配置:

    配置交换机的vlan (v虚拟 lan局域网)

    一个交换机所有接口属于一个广播域

 

交换机的接口类型():

    01. 属于vlan接口,标记属于哪个vlan

    02. 属于trunk接口,实现不同vlan数据进行传递

图表 1‑10 VLAN工作原理

 

1.9 虚拟主机上网原理(win7 win10--ghost(阉割版))

NAT: 

    优势:防止IP地址冲突

    劣势:不便于其他物理主机访问虚拟主机

 

桥接:

    优势:便于其他物理主机访问虚拟主机

    劣势:容易造成IP地址冲突

 

仅主机:

    优势:网络环境安全

    劣势:不能访问外网

图表 1‑11 虚拟主机上网原理

 

1.10 系统路由配置说明

1.10.1 静态网段路由配置:

centos6:net-tools

    route

    route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.100

    route del -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.100

   

centos7:iproute(推荐)

    ip route

    ip route add 192.168.10.0/24 via(经由) 192.168.1.100

ip route del 192.168.10.0/24 via(经由) 192.168.1.100

   

1.10.2 静态主机路由配置:

centos6:net-tools

route add -host 223.5.5.5/32 gw 10.0.0.254

 

   

centos7:iproute(推荐)

    ip route add 223.5.5.5/32 via 10.0.0.254

 

1.10.3 静态默认路由:

centos6:net-tools

    route add default gw 10.0.0.254

   

centos7:iproute(推荐)

ip route add default via 10.0.0.254

图表 1‑12 centos6与centos7的一些路由配置命令对比

 

 

面试题:

    01. 系统中如何进行路由配置     (3种方式)

    02. 指定其它网关实现路由通讯(2种方式 修改网卡文件/利用命令)

 

posted on 2020-05-14 11:50  逐梦oldboy  阅读(398)  评论(0编辑  收藏  举报

导航