Linux运维网络基础
1.网络架构的三个层次
核心层: 路由器(网关接口) 实现和外网通讯 冗余能力(主备) 汇聚层: 交换机(三层交换机) 冗余能力 策略控制能力 接入层: 交换机(二层交换机) 终端设备接入网络
2.网络层次模型
OSI七层模型:是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
应用层 | 应用层程序接口规范 | TCP/IP模型 |
---|---|---|
表示层 | 对数据进行转换、加密和压缩 | 应用层 |
会话层 | 建立、管理和终止会话 | 主机到主机层 |
传输层 | 提供可靠的端到端的报文传输和差错控制 | 因特网层 |
网络层 | 将分组从源传送到目的端,提供网络互联 | 网络接入层 |
数据链路层 | 将分组数据封装成帧,提供节点到节点方式的传输 | |
物理层 | 在媒体上传输比特,提供机械的和电气的规约 |
(1)数据封装过程
(2)数据解封装过程
(3)TCP/IP模型及对应协议
3.TCP/UDP协议
(1)TCP协议:传输控制协议,面向连接的网络协议,
优点:数据传输可靠性高
缺点:数据传输效率低
(2)UDP协议:用户报文协议,无连接的网络协议
优点:数据传输效率高
缺点:数据传输可靠性低
4.TCP协议的两个重要原理
(1)TCP/IP的报文结构
控制字段:
syn(1):请求建立连接控制字段
fin(1):请求断开连接控制字段
ack(1):数据信息确认控制字段
(2)TCP三次握手过程
- 主机A向主机B发送TCP报文 报文中控制字段syn置为1, 请求建立连接
- 主机B向主机A发送TCP响应报文 报文中控制字段syn置为1,ack置为1
- 主机A向主机B发送TCP报文 报文中控制字段ack置为1, 确认主机B发送信息已经接收到了
a.第一次握手:发送syn请求建立连接控制字段,发送seq序列号信息,第一个数据包的序列号默认为0
b.第二次握手:发送syn请求建立连接控制字段,同时还会发送ack确认控制字段,发送seq序列号信息也为0,还会发送ACK确认号(上一个seq序列号 +1)信息(对上一个数据序列号信息进行确认)
c.第三次握手:发送ack确认控制字段,发送seq序列号信息(1),发送ack确认号(0+1)
(3)TCP四次挥手过程
a.第一次挥手:发送fin请求断开连接控制字段
b.第二次挥手:发送ack确认控制字段
c.第三次挥手:发送fin请求断开连接字段,发送ack确认字段
d.第四次挥手:发送ack确认字段
(4)TCP是十一种状态集
TCP三次握手:
状态 | 状态信息 |
---|---|
最开始两台主机都处于关闭状态 | closed |
服务端将相应服务进行开启 | closed——>listen |
客户端向服务端发出连接请求 | closed——>syn_sent |
服务端接收到连接请求,进行确认 | listen——>syn_rcvd |
客户端再次进行确认 | syn_sent——>established |
服务端接受到确认信息 | syn_rcvd——>established |
TCP四次挥手:
客户端发送请求断开连接信息 | established——>fin_wait1 |
服务端接受断开连接请求,并进行确认 | established——>close_wait |
客户端接收到了确认信息 | fin_wait1——>fin_wait2 |
服务端发送ack和fin字段 | close_wait——>last_ack |
客户端接收到请求断开连接信息,发送确认 | fin_wait2——>time_wait |
服务端接受到确认信息 | last_ack——>closed |
客户端等待一段时间 | time_wait——>closed |
5.网络中重要协议原理
(1)DNS:域名解析系统
DNS解析过程:
- 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
- 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。说明:这种操作系统级别的域名解析规程也被很多黑客利用,通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,造成所谓的域名劫持。所以在windows7中将hosts文件设置成了readonly,防止被恶意篡改。
- 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。
- 如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析
- 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址
- 此时LDNS再发送请求给上一步返回的gTLD
- 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器
- Name Server根据映射关系表找到目标ip,返回给LDNS
- LDNS缓存这个域名和对应的ip
- LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束
DNS追踪命令
[root@shuai ~]# yum install bind-utils -y
[root@shuai ~]# dig www.fushuaizhang.cn +trace
(2)ARP原理
作用:已知IP解析mac地址,减少交换网络中广播的产生
6.IP地址概念
(1)ip地址分类
a.按照地址的范围进行划分 A B C D E b.按照地址用途进行划分 公网地址: 全球为一 私网地址: 重复利用地址, 避免地址枯竭, 私网地址网段不能出现在互联网路由器路由表 c.按照通讯方式划分 单播地址: 网卡上配置的地址 广播地址: 主机位全为1的地址 192.168.1.11111111 –> 192.168.1.255
网络中主机数量=2的n(n 有多少个主机位)次方-2(一个广播地址 一个网络地址 是不能配置在网卡) 2的8-2=256 – 2 = 254 – 1(路由器网关地址) = 253 C类地址, 一个网络中可以有 253主机 B类地址, 一个网络中可以有 2的16 – 3 = 65536 – 3 = 65533 A类地址, 一个网络中可以有 2的24 – 3 = ??? 组播地址: D类地址 192.168.1 253 192.168.2 253
7.系统路由设置
(1)centos6: route 和网络相关的命令 使用net-tools
静态默认路由: a.编写网卡配置文件 b.利用命令临时配置 route add default gw 10.0.0.2(网关地址) route del default gw 10.0.0.2 作用: 实现主机访问外网, 用于测试新的网关地址
静态网段路由: route add -net 10.0.3.0 netmask 255.255.255.0 gw 10.0.1.2 route del -net 10.0.3.0 netmask 255.255.255.0 gw 10.0.1.2 路由信息 0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0 10.0.3.0 10.0.1.2 255.255.255.0 UG 0 0 0 eth0
静态主机路由: route add -host 10.0.3.201 dev eth1 route del -host 10.0.3.201 dev eth1
(2)centos7: ip route 和网络相关的命令 使用iproute
静态默认路由: a 编写网卡配置文件 b 利用命令临时配置 ip route add default via 10.0.0.2 ip route del default via 10.0.0.2
静态网段路由: ip route add -net 10.0.3.0 netmask 255.255.255.0 via 10.0.1.2 ip route del -net 10.0.3.0 netmask 255.255.255.0 via 10.0.1.2
静态主机路由: ip route add -host 10.0.3.201 via 10.0.1.2 ip route del -host 10.0.3.201 via 10.0.1.2
Linux运维网络基础的更多相关文章
- Linux运维之基础拾遗
第一部分 Linux常用文件管理命令 1.1 cp 文件复制 常用选项 -i # 覆盖之前提醒用户确认 -f # 强制覆盖目标文件 -r # 递归复制目录 -d # 复制符号链接本身而非其指向的源文件 ...
- linux运维基础__争取十月前研究的差不多
转来的一编,考虑在十月前研究的差不多 linux运维人员基础 1.很多地方经常会用到的rsync工具 实施几台服务器的同步效果 我们公司就是使用这个工具完成服务器的游戏的服务端和客户端同步,有几个文章 ...
- 网络配置——Linux运维基础
今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...
- Linux运维七:网络基础
1:网线 2:交换机,路由器 交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备.它可以为接入交换机的任意两个网络节点提供独享的电信号通路.最常见的交换机是以太网交换机.其他常见的 ...
- Linux网站运维工程师基础大纲
第一阶段:Linux运维基础 第一章:Linux基础以及入门介绍 1.Linux硬件基础 2.Linux发展过程 3.创建虚拟机和系统安装 第二章:Linux系统目录结构介绍 1.Linux系统优化 ...
- Linux运维工程师必须掌握的基础技能有哪些?
这个问题挺好的,回答这个问题也是对自身的审查,看看自己还欠缺哪些.(所以我估计得好好思考下,也许下一刻我就会突然惊醒,发现我还是战⑤渣) 首先限定在Linux运维工程师上 回答仅代表我想到,不代表我都 ...
- [转帖] Linux运维基础知识学习内容
原作者地址:https://www.cnblogs.com/chenshoubiao/p/4793487.html 最近在学习 linux 对简单的命令有所掌握 但是 复杂的脚本 shell pyt ...
- 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍
01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...
- RHEL7-RHCE培训系列教程,让您零基础入门Linux运维
本教程是旨在帮助那些刚入门IT行业或计划从事IT行业的初学者(包括开发人员和运维人员,以及想要在Linux系统维护上提升自己的网络管理员),0基础入门Linux运维,完整学习完成本系列课程相当于培训机 ...
随机推荐
- [刷题] PTA 7-62 切分表达式 写个tokenizer吧
我的程序: 1 #include<stdio.h> 2 #include<string.h> 3 #define N 50 4 char token[]= {'+','-',' ...
- CentOS 7配置静态IP地址的两种方法 来自:互联网
CentOS 7配置静态IP地址的两种方法 来自:互联网 时间:2021-01-12 阅读:4 如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网 ...
- IDEA Git 项目实战场景
实战场景一:上班啦,从远程仓库克隆项目到本地仓库(Clone) 打开 IDEA,在 Check out from Version Control 下拉菜单选择 Git,如下: 在弹出窗口的 URL 地 ...
- MyBaits 全局配置文件(mybatis-config.xml)
什么是 MyBatis 全局配置文件 MyBatis 全局配置文件包含影响 MyBatis 框架正常使用的功能设置和属性信息. 它的作用好比手机里的设置图标,点击这个图标就可以帮助我们查看手机的属性信 ...
- sizeof()用法汇总-(转自风雷)
sizeof()功能:计算数据空间的字节数 1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素. ...
- vue项目使用百度地图API获取经纬度
一.首先在百度api注册获得ak密钥 二.进行引入 (1).第一种方式: 直接在vue中index.html中用script标签引入. //你的ak密钥需要替换真实的你的ak码 <script ...
- java_[类加载器]
Class 与 类加载 Class对象由JVM自动产生,每当一个类被加载时,JVM就自动为其生成一个Class对象,通过Class对象可以获得类的相关信息. 将类信息读到内存中过程,称为类加载 Jav ...
- 重新整理 .net core 实践篇————配置系统之盟约[五]
前言 在asp .net core 中我们会看到一个appsettings.json 文件,它就是我们在服务中的各种配置,是至关重要的一部门. 不管是官方自带的服务,还是我们自己编写的服务都是用它来实 ...
- 源码篇:Flutter Provider的另一面(万字图文+插件)
前言 阅读此文的彦祖,亦菲们,附送一枚Provider模板代码生成插件! 我为啥要写这个插件呢? 此事说来话短,我这不准备写解析Provider源码的文章,肯定要写这框架的使用样例啊,然后再哔哔源码呀 ...
- 查看mysql的数据库物理存放位置
1.查看mysql的数据库物理存放位置: show global variables like "%datadir%";