其他优质文档

网络基础第一部分

课程概述介绍说明

  1. 1. 网络学习概念介绍
  2. 什么是网络技术 | 学习网络重要性 | 网络的技术技能介绍了解
  3. 2. 网络实现通讯条件
  4. 网络传输传输介质介绍 | 网卡设备功能作用说明 | 网络传输速率协商过程概念理解 | 网络数据传递过程
  5. 3. 网络重要设备介绍
  6. 网络交换设备概念作用介绍 | 网络路由设备概念作用介绍概念掌握
  7. 4. 网络路由配置方法
  8. 路由配置命令信息

1. 网络学习概念介绍

什么是网络: 实现数据传输过程 发送数据  接收数据

网络重要性: 所有所有技术领域都需要关注基础基础了

网络技术知识:  
路由相关知识 (路由协议 NAT技术 ACL访问控制)
交换相关知识 (通讯原理 vlan 生成树技术--网络环路问题)
网络安全知识 (防火墙 入侵 审计 等级保护--加固网络)
无线网络知识 语音网络技术 存储网络技术 ....

2.网络实现通讯条件

A主机 — B主机

网络通讯基础三要素:
1) 需要拥有传输介质 (网线 光纤线 无线)
   网线: 电信号信息 二进制信息 0 1  转换高低电压进行传递  
      网线类型: 5类 超5类 6类 7类 8类 在传输数据效率会有区别   100M 1000M 10000M
     传输距离: 100m 

   光纤: 光信号信息 反射实现信息传递
     光纤类型: 单模光纤(通过一束光传递 传输距离会更长) 多模光纤(经过多次折射实现信号传递 传输距离会短些)
     传输距离: 几公里 ~  几十公里


网线制作(线序):
线序排序区分:
   568A:绿白-1,绿-2,橙白-3,蓝-4,蓝白-5,橙-6,棕白-7,棕-8。
   568B:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8。 常用线序

2) 实现网络通讯网卡设备
       发送数据: 将电脑上面二进制信息转换成传输介质可以识别信息(二进制 - 电信号)
       接收数据: 将传输介质识别信息转换为电脑上面可以识别二进制(电信号 - 二进制)

       比特流:01010101010010111      

       每秒钟接收一个bit==一个二进制  10s
       每毫秒接收一个bit==1000个       1s    bps每秒钟接收或发送多少个bit

       100Mb -- 网络数据传输单位 b 比特  1bit=1/8  
          MB -- 数据存储单位     B 字节  1B=8bit    1MB=8Mb

       传输数据效率: 130Mps  130000k 130000000bps (每秒钟传输多少个bit )  
       100MB 数据   1B=8bit --> 100*8=800Mb / 130 = 8s

       某个人购买100M线路, 但是利用下载软件下载数据时, 根本无法达到100M, 为什么?
       100Mb  下载软件下载数据时(速率显示都是 B) --- 100Mb/8-损耗=8MB
       运营商进行测速时 -- 发现100M线路速率可以达到 100/8=12.5

    3) 数据传输速率协商过程
       通讯双方网卡速率  传输介质速率

阶段知识总结: 1)网络知识概念介绍 2)网络通讯条件说明 3)网络数据传输过程 简单说明 1)数据传输需要有封装或解封过程 2)数据传输都是有去有回

操作安装一个网络软件程序:
思科:PacketTracer
H3C HW: ensp

3. 网络重要设备介绍

3.1交换机

—- 为了实现多台主机之间可以更好传递信息

交换机: 实现一个网络内部多台主机设备通讯需求
如何实现数据传递:
问题一: 发送出数据谁来接收, 谁来响应
        主机身份标识信息:类似于人的名字  mac地址 物理地址=网卡厂商  
        MAC地址标识规律:采用16进制数方式进行标识 0 - F  0AAA==思科  0BBB 华为
        源mac 目标mac :标识发送或接收数据网卡信息
        MAC地址呈现方式: 16进制数进行显示 不能进行修改调整 全球唯一

问题二: 发送出数据如何准确到达目标主机
        首先借助广播方式传递信息, 并且每个数据信息前面要有头部信息
        只有符合头部信息主机接收处理数据, 不符合的主机接收主机后会丢弃
        接收数据后, 网络通讯需要有相应过程
广播通讯时:会使主机性能下降 / 避免广播对部分主机影响

一个网路中主机数量过多,会将多个主机进行区域拆分,避免大量广播多整个区域影响
拆分每一个区域属于一个广播域(局域网)

交换机理论上可以实现不同网络之间通讯:
问题一: 数据广播时, 会引发数据安全性问题
问题二: 数据广播时, 会发送数据到所有网络环境, 影响网络环境主机性能

3.2 路由器

—- 实现不同网络(不同区域)之间多台主机设备通讯需求

如何实现数据传递:
问题一: 发送出数据谁来接收, 谁来响应
        IP地址如何标识主机身份:区域信息(网段信息)+ 区域中主机地址信息
                                   192.168.16.            251
        IP地址是由十进制组成 分为4组 xx.xx.xx.xx 每组十进制范围 0~255 
        路由器会识别数据包中源地址和目标地址网段信息
        源网段信息 == 目标网段信息, 路由器会将数据包隔离不会发送
        源网段信息 != 目标网段信息, 路由器会将数据包进行转发 

    数据信息前面 要写入源地址 目标地址信息 --- IP地址概念(逻辑地址) 标识发送或接收数据网卡信息 + 网络信息
    IP地址呈现方式:  10进制数据进行显示  可以按照规划进行修改  全球唯一???

   MAC vs IP 
    MAC地址只是表示主机网卡信息
    IP地址可以表示主机网卡信息, 还可以表示局域网标识信息  IP == 网络部分(局域网标识)+主机部分(网卡地址)


问题二: 发送出数据如何准确到达目标主机     如何避免将数据发送到其它局域网中    
        借助路由信息, 来识别数据包如何进行转发到指定网络中
        路由(路由表)  ==  导航(地图) 
    2列信息  路由表:
    第一列: 去往目标网络信息(局域网编号信息)
    第二列: 去往指定目标网络接口信息

    根据路由表的信息, 识别数据包头部的目标网络信息, 获知数据应该如何进行转发 到达指定网络中

PS: 路由表中条目信息默认是空的, 需要利用特殊方法(路由协议)进行构建

网络环境规模划分: 最小规模网络环境: 局域网 中型规模网络环境: 园区网 — 多个局域网 大型规模网络环境: 城域网 — 多个园区网 超大规模网络环境: 互联网 — 多个城域网

阶段总结说明: 交换机: 概念:实现一个局域网内多台主机通讯需求 识别地址方式:识别mac地址信息进行通讯 数据转发通讯方式:利用广播方式实现通讯 路由器: 概念:实现不同局域网内多台主机通讯需求 识别地址方式:识别IP地址信息进行通讯 数据转发通讯方式:利用路由表信息实现通讯

4. 网络路由配置方法

4.1准备说明

实现内部多个主机可以互联通讯--交换机

实现不同网段主机之间通讯
   1)让交换机识别发往不同区域的数据,必须经过路由器   设备网关--必经之路  
   2)路由器中并没有去往指定网段路由条目

数据封包过程:

梳理---网络基础知识 - 图1

网络设备配置模式说明:

cisco:
用户模式 > 只能做简单查看
-enable/en-> # 特权模式(查看更详细信息)
-configure terminal/conf t-> # (配置模式 (config)完成各种功能配置)
路由查看方法:ctrl+z
show ip route

华为/H3C: 用户模式 >(只能做简单查看) —system/sys-> 特权模式 # 查看更详细信息/完成功能

梳理---网络基础知识 - 图2

4.2 构建路由表4种方法

4种方法:
1)直连路由    自动添加方式
       interface gx/x 
      ip address xx.xx.xx.xx 掩码信息 
      no shutdown

2)静态路由配置  --- 手动向路由表中添加指定信息
      ip route 去往目标网段信息    目标网段和掩码信息  下一跳接口地址   

      缺点:必须清楚整个通讯流程/对于大的网络架构环境配置复杂
      优点:路由配置完,通讯效率较高

3) 动态路由协议进行配置
   动态路由: 相互学习过程  ==  人类社交过程   RIP

4)

示例:

路由配置方法一: 直连路由配置  在配置好路由器接口地址时, 会自动加载
   接口地址配置 : 
   interface f0/0  
   ip address 192.168.10.254  255.255.255.0
   no shut   

   interface f1/0  
   ip address 192.168.20.254  255.255.255.0
   no shut   

   interface f4/0
   ip address 192.168.30.254  255.255.255.0
   no shut

网络拓扑结构:

image.png

路由配置方法二: 静态路由配置 (手工指定路由条目  目标网络+下一跳)
---> 下一跳: 去往下一个路由器的接口地址: 打通任督二脉的关键
应用场景: 只适合小型网络环境  因为静态路由配置过于繁琐

   PS: 网络通讯过程时有去有回
   接口地址配置 : 
   R1:
   interface f0/0            #激活局域网接口
   ip address 192.168.10.254  255.255.255.0
   no shut   

   interface S2/0   #激活to R2路由器的接口 
   ip address 12.0.0.1  255.255.255.0
   no shut   

   R2:
   interface S2/0   #激活to R1路由器的接口   
   ip address 12.0.0.2  255.255.255.0
   no shut   

   interface S3/0   #激活to R3路由器的接口   
   ip address 23.0.0.2  255.255.255.0
   no shut  

   interface f0/0            #激活局域网接口
   ip address 192.168.20.254  255.255.255.0
   no shut     

   R3:
   interface f0/0           #...
   ip address 192.168.30.254  255.255.255.0
   no shut   

   interface S2/0         #...
   ip address 23.0.0.3  255.255.255.0
   no shut    

   R1路由表信息          #网段信息       #下一跳,线缆直连的   #中继/直接到达          
   ip route 192.168.20.0  255.255.255.0 12.0.0.2  # to 192.168.20.0/24
   ip route 192.168.30.0  255.255.255.0 12.0.0.2  # to 192.168.20.0/24     

   R2路由表信息
   ip route 192.168.10.0  255.255.255.0 12.0.0.1  # to 192.168.10.0/24
   ip route 192.168.30.0  255.255.255.0 23.0.0.3  # to 192.168.30.0/24

   R3路由表信息                      
   ip route 192.168.10.0  255.255.255.0 23.0.0.2  # to 192.168.10.0/24
   ip route 192.168.20.0  255.255.255.0 23.0.0.2  # to 192.168.20.0/24

网络拓扑结构:

image.png

  路由配置方法三: 利用动态路由协议进行配置
  动态路由: 相互学习过程  ==  人类社交过程   RIP 

   R1: 
   router rip
   #宣告直连路由
   network 12.0.0.0
   network 192.168.10.0   

   学习:
   23.0.0.0      R2 
   192.168.20.0  R2 
   192.168.30.0  R2  

   R2 
   router rip
   network 12.0.0.0
   network 23.0.0.0
   network 192.168.20.0

   学习: 
   192.168.10.0  R1
   192.168.30.0  R2  

   R3 
   router rip
   network 23.0.0.0
   network 192.168.30.0   

   学习:
   192.168.10.0  R2
   192.168.20.0  R2
   12.0.0.0      R2

动态路由配置过程:
1. 第一个历程:路由器接口激活
地址配置 接口激活

2. 第二个历程:配置动态路由
R1: 
router RIP 
network  自己直连网段信息

梳理---网络基础知识 - 图5

路由器彼此之间进行相互学习, 实现路由条目数量一致时, 会停止学习 整个学习过程称为路由收敛过程

路由配置方法四: 静态默认路由
作用 :简化静态路由配置,将多条下一跳地址相同静态路由进行整合为一条
ip route 0.0.0.0 0.0.0.0  下一跳接口地址

梳理---网络基础知识 - 图6

预习:
01 什么是网络通讯模型
02 系统中是否可以进行路由配置


网络基础第二部分

1. 课程概述介绍说明

1)网络路由配置方法补充
2)网络拓扑结构规划说明
3)网络层次模型介绍说明  osi七网络模型 数据传输详细过程   抓包
4)网络相关重要协议作用

2. 课程知识回顾梳理

1)网络通讯三要素条件      传输介质  网卡硬件  速率协商
2)网络数据传输过程        封装和解封
3)网络交换和路由概念
4)网络设备基础配置方法 直连路由 静态路由 动态路由

3.网络路由配置方法补充

动态路由配置:相互学习路由信息(直连路由) 路由协议配置—-宣告直连路由信息 静态默认路由:简化静态路由配置 下一跳信息必须相同 动态路由配置方法:RIP OSPF BGP 学习知识通讯语言 RIP: 实现多个串联路由器相互学习 有自身缺陷需要应用一些其他技术进行处理解决 OSPF:可以进行区域划分,利用自身算法可以实现路由防环(企业使用) BGP: 了解 实现不同自治区域之间通讯 PS:实现路由条目相互学习可以有多种方式

4. 网络拓扑结构规划说明

梳理---网络基础知识 - 图7

三个层次进行网络拓扑规划:
· 核心层:部署设备  路由器/防火墙/审计/行为管理设备
  作用: 
  1)实现路由协议配置,使内部主机设备可以访问外网
  2)实现网络通讯冗余能力 
  3)实现地址自动获取功能   网段地址池 192.168.16.3 ~ 192.168.16.200

· 汇聚层:部署设备  三层交换机(高端/接口多些)
  1)实现路由通讯配置,实现企业内部不同网段之间通讯  
  2)实现vlan区域划分  v 虚拟  lan局域网  虚拟局域网
     vlan技术:就是将接口划分到不同虚拟局域网中,将一个交换机产生的广播包进行隔离
  3)访问控制策略配置  ACL  
     http://www.wuwenhui.cn/3549.html
  4)将下层网络设备和上层路由设备进行串联


· 接入层:部署设备  二层交换机(低端)
  1)接入终端PC设备
  2)安全配置信息 进行mac地址绑定

PS:拓扑图可以帮助排查网络问题 核心层: 路由设备 实现访问外网 汇聚层:交换设备(三层功能) 承上启下 接入层:交换设备(二层功能) 连接终端

*5. 网络通讯层次模型结构

网络通讯模型主要就是定义不同通讯标准规范,实现不同厂商网络设备之间通讯
ISO国际化标准组织:OSI7层模型--细化了不同层次通讯规范标准
OSI 7层模型:应用层 表示层 会话层  传输层  网络层  数据链路层  物理层

TCP/IP 4层模型:应用层  主机到主机层  互联网层  主机接入层
nginx  apache  IIS

5.1OSI7层模型 参考

梳理---网络基础知识 - 图8

5.2 TCP/IP 4层模型

TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
image.png

总结:
啊.png

6. 网络层次模型详细数据传递方式

局域网内部数据传递方式:
内部数据传递时,二层封装的目标MAC地址,可以是全FF

不同局域网数据传递方式:
通讯过程跨越路由器会修改二层mac地址信息,二层mac地址信息只是在局域网内部有效
路由识别三层数据包封装只关注网段信息,不会关注主机地址信息

交换网络:数据包传输过程 二层目标mac:全FF 路由网络:数据包传输过程 路由器只关系目标网段信息/经过路由器之后,二层mac地址信息会进行改变

7. 重要协议原理

  1. TCP三次握手和四次挥手
  2. DNS域名解析协议
  3. ARP地址解析协议

网络基础第三部分

1. 课程概述介绍说明

1. 网络相关重要协议作用
2. 网络通讯过程三次握手/四次挥手
3. 网络状态转换概念   并发能力
4. 企业主机上网原理/虚拟主机上网与远程原理

2. 网络相关重要协议作用

梳理---网络基础知识 - 图11

2.1 应用层协议

2.1.1 telnet (23)

远程连接协议/连接测试工具 实现方式: yum install -y telnet-server systemctl start telnet.socket 特点: 连接配置使用简单/连接传输数据不安全

2.1.2 ssh: 远程连接协议(22)

systemctl start sshd 特点: 连接传输数据会做加密处理

2.1.3 FTP:文件传输协议(21)

1.远程拉取示例:
拉取:本地 <-数据 (远程主机)

#连接远程主机
[root@oldgirl ~]# sftp 10.0.0.100
The authenticity of host '10.0.0.100 (10.0.0.100)' can't be established.
ECDSA key fingerprint is SHA256:WriaPn1fPNs0CGszkAu8t0XxtNfgpnVGdSPe1i5XwNw.
ECDSA key fingerprint is MD5:90:90:95:a2:76:3e:08:a1:bd:44:ff:4b:90:53:39:fc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.100' (ECDSA) to the list of known hosts.
#输入远程端密码
root@10.0.0.100's password: 
Connected to 10.0.0.100.

#操作:
sftp> cd /data
sftp> pwd
Remote working directory: /data
sftp> ls
bak_2020-10-01.tar.gz   bak_2020-10-12.tar.gz   bak_2020-10-13.tar.gz   bak_2020-10-14.tar.gz   oldboy.txt              

#拉取操作
sftp> get oldboy.txt
Fetching /data/oldboy.txt to oldboy.txt
/data/oldboy.txt            100%    7     6.9KB/s   00:00    
sftp> quit

验证:

[root@oldgirl ~]# ll
total 41668
drwxr-xr-x. 2 root root       34 Sep  8 11:55 data1
-rw-r--r--. 1 root root 42663132 Sep  6 11:52 oldboy-5.avi
-rw-r--r--. 1 root root        7 Oct  4 09:46 oldboy.txt
[root@oldgirl ~]# cat oldboy.txt 
123456

2.推送:(本地)数据-> 远程主机

[root@oldgirl /data]# sftp 10.0.0.100
root@10.0.0.100's password: 
Connected to 10.0.0.100.

sftp> lcd /data
sftp> lls
oldgirl.txt
sftp> cd /data
sftp> put oldgirl.txt
Uploading oldgirl.txt to /data/oldgirl.txt
oldgirl.txt                                                                      100%    7    16.2KB/s   00:00    
sftp> ls
bak_2020-10-01.tar.gz   bak_2020-10-12.tar.gz   bak_2020-10-13.tar.gz   bak_2020-10-14.tar.gz   oldboy.txt              oldgirl.txt             
sftp>

2.1.4 HTTP:超文本(代码文件HTML)传输协议(80)

实现过程:

1.安装web软件:yum install -y nginx 
2.编写超文本文件信息:
    <html>
    <head>
    </head>
    <body>
    <table border="1">
        <tr>
            <td>row 1, cell 1</td>
            <td>row 1, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
    </table>
    </body>
    </html>
3.浏览器访问文件信息,看到页面内容

2.1.5 SMTP:邮件传输协议,实现发送邮件(25)

实现功能:

第一个历程:编写邮件服务配置
[root@oldboy /usr/share/nginx/html]# tail -3 /etc/mail.rc 
set from=330882721@qq.com 
smtp=smtp.qq.com
set smtp-auth-user=330882721@qq.com 
smtp-auth-password=xxxxxxx      #授权码
smtp-auth=login

第二个历程:开启邮件服务
systemctl start postfix

第三个历程:测试发送邮件
echo oldboy-network-test|mail -s test-oldboy 330882721@qq.com
mail -s test-oldboy 330882721@qq.com < /etc/hosts

2.1.5 NFS网络文件系统协议(2049)

实现数据共享存储 实现功能: 安装部署NFS服务程序 配置操作 挂载

2.1.6 DHCP动态主机配置协议

==让系统自动获取IP地址

原理过程:
    客户端                                    DHCP服务端
1. 发送广播信息,请求IP地址    
2.                                          接收广播信息,分配IP地址信息,做响应回复
3. 客户端接收响应,生成地址信息,确认消息    接收确认消息,将地址池中IP地址进行标记
4.                                        当一定时间之后,会发送地址续租询问信息
5.  进行续租响应,不会回收地址
    没有续租响应,地址会被回收

PS功能实现参考https://www.cnblogs.com/diantong/p/10878791.html DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。

2.1.7 DNS域名解析协议(53)

金山 CDN(缓存加速) — 个网站架构(饭店) 开分店 智能DNS 概念作用:域名解析系统 === 将浏览器输入域名信息转换为IP地址 (www.jd.com == 62.135.169.121)

梳理---网络基础知识 - 图12

利用DNS实现访问网站原理:域名解析成IP地址过程
1)本地解析域名过程
   查看系统DNS缓存:     ipconfig/displaydns
   查看系统DNS配置文件: C:\Windows\System32\drivers\etc\hosts

2)递归解析域名过程
   主机询问LDNS服务,域名解析后的IP地址
   阿里DNS:223.5.5.5 223.6.6.6
   腾讯DNS:119.29.29.29
   电信DNS:114.114.114.114
   ....

3)迭代解析域名过程
   域名结构:www.baidu.com. 
   根域名服务器:13台  中国没有
   顶级域名服务器: .net .cn .com ....
   二级域名服务器:.qq .jd .baidu      自己定义申请
   网站主机名称信息:www bbs blog edu  自己定义规划
   向根域名服务器发送请求    获得顶级域名服务器信息
   向顶级域名服务器发送请求  获得二级域名服务器信息
   向二级域名服务器发送请求  获得主机A记录信息
   LDNS服务器缓存A记录      转发给主机
   主机缓存A记录信息        根据解析后的地址向网站服务发送数据包

2.2 传输层协议

2.1 TCP:传输控制协议

面向连接网络协议 保证数据传输可靠性 应用:文件传输 邮件发送 HTTP 面向连接的是 [TCP],该协议几乎做了所有的事情

2.2 UDP:用户数据报协议

无连接网络协议 保证数据传输效率 应用:语音通讯 视频通讯 它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。

传输层TCP协议说明
TCP报文概念:

传输层端口号范围由来 2的n次方 n表示占用了多少bit 2的1次方=2 源端口占用1个bit 0 1 —- 十进制 0 1 2的2次方=4 源端口占用2个bit 00 01 10 11 —- 十进制 0 1 2 3 2的3次方=8 源端口占用3个bit 000 001 010 011 —- 十进制 0 1 2 3 4 5 6 7 100 101 110 111 2的16次方=65536 源端口占用16个bit 范围 0 ~ 65535 0号端口不被使用 1 ~ 65535

序列号:对数据包编号
确认号:对接收数据包进行确认的编号
控制字段:
SYN: 请求建立连接控制字段
ACK: 数据传输确认控制字段
FIN: 请求断开连接控制字段


三次握手过程: 
第一次握手: 客户端 -- 服务端发送信息  SYN=1 SEQ=X 
第二次握手: 服务端 -- 客户端发送信息  SYN=1 ACK=1  SEQ=Y ACK=X+1
第三次握手: 客户端 -- 服务端发送信息  ACK=1 SEQ=X+1 ACK=Y+1
PS:三次握手建立之后,才可以进行数据传递

四次挥手过程:
第一次挥手: 服务端 -- 客户端发送信息  FIN=1 ACK=1
第二次挥手: 客户端 -- 服务端发送信息  ACK=1 
第三次挥手: 客户端 -- 服务端发送信息  FIN=1 ACK=1 
第四次挥手: 服务端 -- 客户端发送信息  ACK=1
PS:四次挥手完毕,数据信息不再进行传递

梳理---网络基础知识 - 图13

【问题】为什么要进行三次握手呢
两次确认

【问题】为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
  1. 为什么断开过程需要四次完成,可以三次完成吗?

    这是因为如果在收到FIN时,彼时还有数据未传输完,则先回复关于 FIN 的 ACK,告知对方我已经知道你要断开了。则等待传输完毕后,被断开方再发送 FIN,告知自己也已经可以断开连接。 但实际上完全可以是“三次挥手”,如果收到 FIN 时,已经没有数据要传输,则是“三次挥手”。

  2. 梳理总结 扩展
    博客资料:https://bbs.hh010.com/
    http://ccietea.com/


2.3 补充 Linux本地套接字协议

本地套接字实现的是同一主机的不同进程间的通信,且建立的通信是双向的通信。socket本地通信与网络通信使用的是统一套接口,只是地址结构中的参数不同。

linux本地套接字

1、socket流程
(1)创建socket                  
创建套接字需要使用 socket 系统调用,其原型如下:
int socket(int domain, int type, int protocol);

参数:
- domain :指定协议族,对于本地套接字来说,其值须被置为 AF_UNIX 枚举值;
- type :套接字类型,type 参数可被设置为 SOCK_STREAM(流式套接字)或 SOCK_DGRAM(数据报式套接字)
- protocol 参数指定具体协议,protocol 字段应被设置为 0;

返回:生成的套接字描述符

套接字类型:
- 流式套接字(SOCK_STREAM)是一个有顺序的、可靠的双向字节流,相当于在本地进程之间建立起一条数据通道;

-数据报式套接字(SOCK_DGRAM)相当于单纯的发送消息,在进程通信过程中,理论上可能会有信息丢失、复制或者不按先后次序到达的情况,但由于其在本地通信,不通过外界网络,这些情况出现的概率很小。

网络基础第四部分

1.课程概述介绍说明

1)网络状态转换概念   并发能力
2)企业主机上网原理/虚拟主机上网与远程原理
3)IP地址分类与规划
4)系统相关路由配置
5)系统常见网络操作命令梳理

2. 课程知识回顾梳理

1)网络层次模型中重要协议原理  
   应用层:DHCP HTTP NFS FTP DNS ...  端口 80 3306 20/21 23 110
   传输层:TCP UDP
2)三次握手过程/四次挥手过程

3.网络状态转换概念

3.1 十一种状态变化

   http://192.168.16.9:8080/  ==  http://10.0.0.100:80    

三次握手开始: 五种状态变化
   1)初识状态:
      服务端:closed  ---> listen
      客户端:closed
   2) 第一次握手过程:
      客户端:closed  ---> syn_sent 
      服务端:listen  ---> syn_recv
   3) 第二次握手过程:
      服务端:syn_recv
      客户端:syn_sent ---> established 
   4) 第三次握手过程:
      客户端:established
      服务端:syn_recv ---> established 


四次挥手开始:五种
   1) 初始状态:
      服务端:established
      客户端:established 
   2)第一次挥手过程:
      服务端:established ---> fin_wait1  
      客户端:established ---> close_wait 
   3)第二次挥手过程:
      客户端:close_wait
      服务端:fin_wait1   --->  fin_wait2
   4)第三次挥手过程:       
      客户端:close_wait  --->  last_ack
      服务端:fin_wait2   --->  time_wait    
   5)第四次挥手过程:
      服务端:time_wait   --->  等待一段时间 ---> closed 
      客户端:last_ack    --->  closed 

PS: 断开连接过程可以是三次吗?  可以
三次挥手开始: 特殊状态  closing 
   1) 初始状态:
      服务端:established
      客户端:established 
   2)第一次挥手过程:
      服务端:established ---> fin_wait1  
      客户端:established ---> close_wait 
   3)第二次挥手过程:ack fin 
      客户端:close_wait  ---> last_ack
      服务端:fin_wait1   ---> closing   
   4)第三次挥手过程:       
      客户端:last_ack    ---> closed 
      服务端:closing     ---> time_wait 等待一段时间 ---> closed

4. 企业主机上网原理

原理过程:
主机(IP地址/掩码 网关 DNS) —- 交换机(vlan 给一些数据包进行标记) —— 汇聚交换 ACL —— 路由器设备 路由/dhcp

3.1网络异常排错

1. 主机无法访问外网 
   a 检查配置地址是否正确
   b 检查是否能访问网关          ping 网关
   c 检查是否可以访问外网IP地址  223.5.5.5  114.114.114.114
     ping通:无法打开页面,DNS有问题
     ping不通:路由配置问题 

第一个历程:构建网络拓扑结构
核心层设备:路由器     H3C      划分vlan信息 trunk配置 路由配置  DHCP配置  需要实现访问外网
汇聚层设备:三层交换机 H3C      划分vlan信息 trunk配置(承载多个vlan数据包链路)
接入层设备:二层交换机 TPLink   区域:12个教室  1个办公区域  1个监控区域  14个vlan
        vlan11  1教室  ...  vlan 22  12教室   vlan10 办公区域  vlan30  监控区域

第二个历程:进行设备功能配置
路由设备: 连接运营商网络(动态 拨号)  DHCP配置   nat配置
汇聚交换: vlan trunk acl
二层交换: arp绑定配置  vlan

3.2arp地址解析协议:

1)可以减少广播数据包产生
2)可以增加网络安全性   

arp通讯过程原理:
第一个历程:发送ARP请求包,获取目标主机mac地址  (广播方式发送)
第二个历程:发送ARP响应包,告知主机mac地址信息  (单播方式发送)
第三个历程:主机收到响应包,会构建ARP表(mac与IP对应关系)
第四个历程:数据传输时,会根据arp表信息封装二层目标mac地址信息
PS:从而减少广播包产生

arp表构建方式:
动态自动构建arp:表内信息会自动更新变化  应用在办公室 主机经常发生变更环境
静态手工构建arp:表内信息会固定不变      数据中心

arp通讯过程原理

梳理---网络基础知识 - 图14

arp表构建方式

梳理---网络基础知识 - 图15

5. 虚拟主机网络配置

虚拟主机上网原理:需要借助物理主机网卡进行上网(检查物理主机网络与虚拟NAT映射服务)

下载部署软件报错:DNS配置问题/yum源没有更新 ...    
虚拟主机无法远程:虚拟网卡是否正常  SSH远程连接排错思路 三部曲

6. IP地址规划说明

IP协议 了解 NA

32位二进制数划分为4组 32/4 每8位为一组 4组

00000000. 111111111. ---> 10进制 IP地址:点分十进制
110  6  11011 27 

00000001  1 2的0次方=1
00000010  2 2的1次方=2 .. 10000000  128  2的7次方  128 
====================================
      7   6   5   4    3   2   1   0 
     128  64  32  16   8   4   2   1  
====================================


## 进制-->>>>>> 十进制  求和运算  00000110
00000100  4   0001 1011  16+8+2+1=27
00000010  2
--------
00000110  6


十进制-->>>>>> 二进制  求差运算
      66   比较原则 是否大于等于指定位数 
66 - 64 = 2 - 2 =0  
128  64  32  16   8   4   2   1 
 0    1   0   0   0   0   1   0
88 - 64 = 24 - 16 = 8 - 8 =0
128  64  32  16   8   4   2   1 
 0    1   0   1   1   0   0   0

每一位十进制数范围 0~255  
0.0.0.0 ~ 255.255.255.255   40多亿可以配置  
解决IP地址枯竭:
1)创建了IPv6 2的128次方 IPv4 2的32次方 
2)有效分类规划IP地址
· 按照地址范围进行分类  A B C D E
  A类地址  10.0.0.0     2的24次方地址可以使用
  B类地址  172.16.0.0   2的16次方地址可以使用
  C类地址  192.168.10.0 2的8次方地址可以使用   2的8次方=256 - 2 = 254  1~254
· 按照地址用途进行分类  私网地址(可以重复使用) 公网地址(全球唯一)  
  重复利用地址,会造成路由混乱 --- 私网地址信息不能出现在互联网
  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.169.0.0    到    192.168.255.255)
  169.254.0.0/16         (169.254.0.0    到    169.254.255.255)*  系统预留地址
· 按照地址通讯方式分类 
  单播地址:网卡上配置地址
  组播地址:D类地址==组播地址  keepalived 实现高可用(vrrp)???
  广播地址:主机位全为1的地址  192.168.10.255  A 10.255.255.255  B 172.16.255.255 
  网络地址:出现在路由器的路由表中地址  主机位全为0的地址  192.168.10.0     10.0.0.0  172.16.0.0

PS:2的n次方-2 == 一个网络中可以规划IP地址数量 A 11.0.0.0 2的24次方 - 2 B 172.32.0.0 2的16次方 - 2 c 192.168.100.0 2的8次方 - 2 256 - 2 - 1(网关)== 253个主机

IP地址子网划分 什么是掩码 B 172.16.0.0 65534地址可以使用 172.16.0.1 .. 172.16.255.253 地址浪费 广播风暴 路由器压力增加

将网络地址进行子网划分:

地址分类:172.16.0.0  掩码表示地址类型
掩码地址中:1表示网络位 0 表示主机位
10.0.0.0   11111111.0.0.0  255.0.0.0  /8
172.16.0.0    255.255.0.0    /16
192.168.10.0  255.255.255.0  /24       



子网划分方式:利用子网划分计算器

梳理---网络基础知识 - 图16

7. 系统路由配置说明

梳理---网络基础知识 - 图17

7.1 系统路由信息

# route -n  A区域主机
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.254      0.0.0.0         UG    100    0        0 eth0
192.168.10.0    0.0.0.0         255.0.0.0       U     100    0        0 eth0
172.16.10.0     0.0.0.0         255.0.0.0       U     100    0        0 eth1
172.16.20.0     172.16.10.254   

# route -n  B区域主机
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.254      0.0.0.0         UG    100    0        0 eth0
192.168.20.0    0.0.0.0         255.0.0.0       U     100    0        0 eth0
172.16.20.0     0.0.0.0         255.0.0.0       U     100    0        0 eth1        
172.16.10.0     172.16.20.254

7.2 系统添加路由

1. 静态默认路由:
   route add default gw 10.0.0.254
   ip route  add default via 10.0.0.254

2. 静态网段路由: 优先于静态默认路由
   route add -net 223.5.5.0/24 gw 10.0.0.254
   ip route add 223.5.5.0/24 via 10.0.0.254

3. 静态主机路由:
   route add -host 223.5.5.5 gw 10.0.0.254
   ip route add 223.5.5.5/32 via 10.0.0.254

PS:思考系统路由如何永久生效 参考文档

添加永久路由
1.在/etc/sysconfig/network-script/目录下创建名为route-eth0的文件
vi /etc/sysconfig/network-script/route-eth0   #在此文件添加如下格式的内容
192.168.1.0/24 via 192.168.0.1
#重启网络验证
service network restart

2.在/etc/sysconfig/static-routes 文件里添加如下内容 (没有static-routes的话就手动建立一个这样的文件)
any net 192.168.3.0/24 gw 192.168.3.254  
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129  


推荐使用以上两种方法,因为不论是重启机器还是重启网络服务路由都不会丢失。
3.在/etc/rc.local里添加 (会有坑 只有重启服务器 才会添加上这条路由;而且重启网络会导致失效)
方法: 
route add -net 192.168.3.0/24 dev eth0  
route add -net 192.168.2.0/24 gw 192.168.2.254

rc.local是linux开机启动执行的最后一个脚本,故可以把静态路由加上。