第六周课堂总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六周课堂总结相关的知识,希望对你有一定的参考价值。
第1章 操作符
1.1测试文件
格式 [ 操作符 文件或目录 ]
操作符:
-d:测试是否为目录,是则为真(Directory)
-e:测试目录或文件是否存在,存在则为真(Exist)
-f:测试是否为文件,是则为真(file)
-r:测试当前用户是否有权限读取,是则为真(read)
-w:测试当前用户是否有权限写入,是这为真(write)
-x:测试当前用户是否可执行该文件,可执行则为真(Excute)
1.2字符串比较
格式 :
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串 ]
操作符:
=:字符串内容相同则为真,就是说包含的文本一摸一样。
!=:字符串内容不同,则为真(!号表示相反的意思)
-z:字符串内容为空(长度为零)则为真
-n:字符串内容非空(长度非零)则为真
<:string1 < string2 如果string1在本地的字典序列中排在string2之前,则为真
>:string2 如果string1在本地的字典序列中排在string2之后,则为真
1.3整数值比较
格式:
[ 整数1 操作符 整数2 ]
操作符:
-eq:等于(equal)
-ne:不等于(not equal)
-gt:大于(Greater than)
-lt:小于(lesser than)
-le:小于等于(lesser or equal)
-ge:大于等于(Greater or equal)
1.4逻辑测试
格式:
[ 表达式1 ] 操作符 [ 表达式2 ] ...
操作符:
-a 或 && :逻辑与,“而且”的意思,前后两个表达式都成立时整个测试结果才为真,否则为假
-o 或 || :逻辑或,“或者”的意思,操作符两边至少一个为真时,结果为真,否为为假
! :逻辑否,当制定条件不成立时,返回结果为真
1.5if 语句:单分支语句、双分支语句、多分支语句
1.5.1单分支语句
语法
if [ 条件 ];then
指令
fi
案例
输入两个数字比较大小
#!/bin/bash
#file name:mun.sh
read -p "请输入一个数字" num1
read -p "请输入一个数字" num2
#[ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num1|sed s#[0-9]##g`" ] &&\
#echo "输入有误,请输入纯数字!byebye" &&\
#exit 1
# (限制条件)
if [ -z "${num1}" -o -z "${num2}" ];then
echo"请输入非空字符!"
exit 1
fi
#(-z的意思是字符串为空,长度为零,则为真,就是他如果是空的就继续往下执行,就会#报错。不过不为空就不会执行后面的报错信息)
if [ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num2|sed s#[0-9]##g`" ];then
echo"输入有误,请输入纯数字!"
exit 2
fi
#(-n 字符串内容非空,长度不为零则为真,就是他如果不是空的,他就继续往下执行,就#会报错,如果他不是空的就会跳过,执行下一条)
if [ $num1 -gt $num2 ] ; then
echo "$num1 > $num2"
exit
fi
if [ $num1 -eq $num2 ] ; then
echo "$num1 = $num2"
exit
fi
if [ $num1 -lt $num2 ] ; then
echo "$num1 < $num2"
fi
#注意 echo后面要加空格
1.6双分支语句
语法
if [ 条件 ];then
指令
else
指令
fi
案例
输入两个数字比较大小
#!/bin/bash
#file name:mun.sh
read -p "请输入一个数字" num1
read -p "请输入一个数字" num2
#[ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num1|sed s#[0-9]##g`" ] &&\
#echo "输入有误,请输入纯数字!byebye" &&\
#exit 1
if [ -z "${#num1}" -o -z "${#num2}" ];then
echo"请输入非空字符!"
exit 1
fi
if [ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num2|sed s#[0-9]##g`" ];then
echo"输入有误,请输入纯数字!"
exit 2
fi
if [ $num1 -gt $num2 ] ; then
echo "$num1 大于 $num2"
else
echo "$num1 不大于 $num2"
fi
1.7多分支语句
语法
if 条件测试命令1 ; then
命令序列1
elif 条件测试命令2 ; then
命令序列2
elif ...
else
命令序列n
fi
案例
输入两个数字比较大小
#!/bin/bash
#file name:mun.sh
read -p "请输入一个数字" num1
read -p "请输入一个数字" num2
#[ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num1|sed s#[0-9]##g`" ] &&\
#echo "输入有误,请输入纯数字!byebye" &&\
#exit 1
if [ -z "${num1}" -o -z "${num2}" ];then
echo"请输入非空字符!"
exit 1
elif [ -n "`echo $num1|sed s#[0-9]##g`" -o -n "`echo $num2|sed s#[0-9]##g`" ];then
echo"输入有误,请输入纯数字!"
exit 2
elif [ $num1 -gt $num2 ] ; then
echo "$num1 > $num2"
exit
elif [ $num1 -eq $num2 ] ; then
echo "$num1 = $num2"
exit
else [ $num1 -lt $num2 ]
echo "$num1 < $num2"
fi
#注意最后,多分支语句中else中没有;then,也没有exit
1.8for循环语句
语法
for 变量名 in 取值列表
do
命令序列
done
案例
最基本的for循环: (传统的形式,for var in …)
#!/bin/bash
for x in one two three four
do
echo number $x
done
案例
对目录中的文件做for循环
#!/bin/bash
for x in /var/log/*
do
#echo "$x is a file living in /var/log"
echo $(basename $x) is a file living in /var/log
done
案例
对位置参数做for循环
#!/bin/bash
for thing in "[email protected]"
do
echo you typed ${thing}.
done
案例
for循环中用seq产生循环次数,加上C语言形式的for循环语句
#!/bin/bash
echo "for: Traditional form: for var in ..."
for j in $(seq 1 5)
do
echo $j
done
echo "for: C language form: for (( exp1; exp2; exp3 ))"
for (( i=1; i<=5; i++ ))
do
echo "i=$i"
done
1.9while循环语句
语法格式
while 命令表达式
do
命令列表
done
案例
批量添加20个系统账户用户名依次为user1~20
#!/bin/bash
#批量添加20个系统账户用户名依次为user1~20
i=1
while [ $i -le 20 ]
do
useradd user$1
echo "123456" | passwd --stdin user$i &> /dev/null
i=`expr $i + 1`
done
只要特定条件为真,”while”语句就会循环执行。
1.10case多重多分支语句
语法格式
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认执行的命令序列
;;
esac
案例
#!/bin/bash
case $1 in
start)
echo "start mysql"
;;
stop)
echo "stop mysql"
;;
*)
echo "usage: $0 start|stop"
;;
esac
根据变量的不通取值,分别执行不同的命令操作。
1.11until循环语句
语法格式
until 条件测试命令
do
命令序列
done
案例
#!/bin/bash
myvar=1
until [ $myvar -gt 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done
根据条件执行重复操作,直到条件成立为止。Until语句提供了与while语句相反的功能:只要特定条件为假,它们就重复循环,直到条件为真。
1.12shift迁移语句
语法格式
例如:若当前脚本程序获得的位置变量如下:
$1=file1、$2=file2、$3=file3、$4=file4
执行一次shift命令后,各位置变量为:
$2=file2、$3=file3、$4=file4
在执行一次:
$3=file3、$4=file4
案例
#!/bin/bash
res=0
while [ $# -gt 0 ]
do
res=`expr $res + $1`
shift
done
echo "the sum is:$res"
1.13循环控制语句
break语句:在for、while、until等循环语句中,用于跳出当前所在的循环体,执行循环体之后的语句。
在while中的示例:
while
do
commands
commands
break--------+
|
commands |
commands | 跳出当前循环(通常在循环体中与条件语句一起使用)
|
done |
|
commands<-----+
commands
continue语句:在for、while、until等循环语句中,用于跳过循环体内余下的语句,重新判断条件以便执行下一次循环。
在while中的示例:
while<-------+
do |
|
commands | 跳回当前循环,重新开始下一次循环(通常在循环体中与条件语句一起使用)
commands |
|
continue----+
commands
commands
commands
done
commands
commands
第2章 三剑客之首-awk
2.1主要内容
处理文件的过程 awk的执行过程
字段(列)
模式 pattern=====条件=====找谁
1)通过正则表达式
2)表示比较
找出20行到文件的结尾
awk ‘NR>=20‘ reg.txt
3)范围:从哪里来,到哪里去
4)特殊的条件/模式:
BEGIN
END
awk的数组
处理文件的过程 awk的执行过程
head /etc/passwd >passwd.txt
[[email protected] ~]# ##找出顺手的菜刀 武器 分隔符
[[email protected] ~]# awk -F: ‘NR==2‘ passwd.txt
bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]# awk -F: ‘NR==2{print$1,$2}‘ passwd.txt
bin x
条件{动作}
条件就是awk花括号外面的内容
2.3重新认识awk
2.3.1取某一列
2.3.2统计/计算 谁在破解你的密码 统计出你这个网站 每个用户每一段时间访问了多少次 统计出群里撤回消息最多的人
2.3.3名字怪异的一门语言
yum install lrzsz -y
2.4案例:统计聊天记录中撤回消息多少条?
awk -F "撤回" ‘/撤回/{n[$1]++}END‘{for (key in h) print key,h[key]}‘ 39.txt
2.5字段(列) field
2.5.1awk每一列默认通过_空格 连续出现的空格 __分割
2.5.2FS field separator 每一列的分隔符 字段分隔符 ==== awk -F 实际上就是在修改FS里面的内容
2.5.3-v用途 定义/修改一个变量
2.5.4NF number of fields 内容是这一行中有多少列 $NF最后一列
2.6案例显示文件passwd.txt中每一行的第一列和第三列显示的时候中间通过#分隔
[[email protected]_39 ~]# awk -F: -vOFS=“#”‘NR==2{print $1,$3}‘ passwd.txt
bin“#”1
2.7awk中的条件------正则表达式作为条件
2.7.1正则表达式的符号
2.7.1.1 基础正则
^ 某一个部分/列开头 以....开头
$ 某一个部分/列结尾 以....结尾
^$
.
*
.*
[]
[^]
2.7.1.2 扩展正则
+
|
()
{}
?
2.7.2awk中如何使用正表达式
~ 匹配/包含/含有
$NF~/nologin/最后一列中含有nologin的单词
/nologin/==== $0~/nologin/ 这一行中含有nologin
$0一整行这一行的内容
找出passwd.txt中最后一列包含bash的行
[[email protected] ~]# awk ‘$NF~/bash/‘ passwd.txt
root:x:0:0:root:/root:/bin/bash
2.7.4例题:awk正则表达式练习题
显示Xiaoyu的姓氏和ID号码
姓氏是Zhang的人,显示他的第二次捐款金额及她的名字
显示所有以41开头的ID号码的人的全名和ID号码
显示所有ID号码最后一位数字是1或5的人的全名
显示Xiaoyu的捐款.每个值时都有以$开头.如$520$200$135
mkdir -p /server/files/
cat>>/server/files/reg.txt<<EOF
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
EOF
2.7.4.1 显示Xiaoyu的姓氏和ID号码
[[email protected] files]# awk ‘/Xiaoyu/{print$1,$3}‘ reg.txt
Zhang 390320151
2.7.4.2 姓氏是Zhang的人,显示他的第二次捐款金额及她的名字
[[email protected] files]# awk -F"[ :]+"‘$1~/Zhang/{print $1,$2,$(NF-1)}‘ reg.txt
Zhang Dandan 100
Zhang Xiaoyu 90
2.7.4.3 显示所有以41开头的ID号码的人的全名和ID号码
条件{动作}
条件:找出以41开头的ID号码
动作:显示全名和ID
[[email protected] files]# awk ‘$3~/^41/{print$1,$2,$3}‘ reg.txt
Zhang Dandan 41117397
Liu Bingbing 41117483
2.7.4.4 显示所有ID号码的最后一位数字是1或5的人的全名
条件是 第三列以1或5结尾
动作 显示 全名
[[email protected] files]# awk ‘$3~/[15]$/{print$1,$2}‘ reg.txt
Zhang Xiaoyu
Wu Waiwai
Wang Xiaoai
Li Youjiu
Lao Nanhai
2.7.4.5 显示Xiaoyu的捐款.每个值时都有以$开头.如$520$200$135
[[email protected]_39 ~]# awk‘/Xiaoyu/{gsub(/:/,"$",$NF);print $1,$2,$NF}‘ /server/files/reg.txt
Zhang Xiaoyu $155$90$201
2.8awk中如何使用正则表达式作为条件
$2 ~/oldboy/
$2!~/oldboy/
2.8.1表示比较
找出20行到文件的结尾
awk ‘NR>=20‘ reg.txt
2.8.2范围:从哪里来,到哪里去 ******
显示文件的第20到30行
sed -n‘20,30p‘ num.txt
awk‘NR==20,NR==30‘ num.txt
2.8.3取出 从device:开头到}(右花括号结尾之间的内容)
cat >/server/files/range.log<<EOF
oldboy is a linuxer.
device: {
oo
oldboy
no sql
this is log
niu niu
}
oldboy
device: {
oldboy
no sql
this is log
niu niu
}
oldboy
device: {
oldboy
no sql
this is log
niu niu
}
device: {
oldboy
no sql
this is log
niu niu
}
EOF
[[email protected] files]# awk ‘/{/,/}/‘ range.log
device: {
oo
oldboy
no sql
this is log
niu niu
}
device: {
oldboy
no sql
this is log
niu niu
}
device: {
oldboy
no sql
this is log
niu niu
}
device: {
oldboy
no sql
this is log
niu niu
}
2.9特殊的条件/模式
BEGIN{}开始
1.用来定义awk里面的内置变量 FS OFSRS awk -v
2.自己测试
特点:
1.BEGIN{}里面的内容,会在awk读取文件之前就运行 。
2.主要用来显示表头或自己进行测试
END结束 ******
特点及用途:
1.在awk读取完整个文件之后 才会运行END{}里面的内容
2.计算之后用END显示最终结果
3.先处理(计算) END{}显示结果
2.9.1案例:统计包含250的行出现了几次。
方法一:awk‘/250/‘ reg.txt |wc -l
方法二:grep -c‘250‘ reg.txt
方法三:awk‘/250/{i++}END{print i}‘ reg.txt
第3章 网络基础
学习思路:
课程视频推荐:
==========================
01. CCNA网络技术学习视频网站链接
http://ccietea.com/
可能无法打开链接地址了!
http://bbs.spoto.net/
CCNA视频合集:http://blog.sina.com.cn/s/blog_5ec3537101012vaf.html
CCNP视频合集:http://blog.sina.com.cn/s/blog_5ec3537101015d2z.html
02. 网络层次协议图与相关包分析说明网站链接(选择下载中心下载)
http://www.colasoft.com.cn/
什么是网络?
交换机是什么?
路由器是什么?
OSI 7层模型
数据包的封装与解封装
网际互联的过程
学习OSI网络模型相关概念
学习OSI模型网际互联知识(数据包封装与解封装过程)
学习TCP/IP协议簇模型
学习tcp三次握手与四次挥手过程(重点掌握)
学习tcp的11中状态集转换(重点掌握)
学习ARP协议原理执行过程
说明:
对于系统运维人员,如果有时间有精力,以上都可以学习一下,CCNA的学习难度不是很大,而且学习的周期较短,对于快速成为系统运维工程师中,网络搞得最好的,已经足够了。
如果基础知识发张历程
涉及到网络的一些名词概念,路由与交换的介绍。
OSI七层模型的介绍
了解7层模型都有哪些,彼此之间的关系,以及每个层次都涉及到哪些知识
TCP/IP协议簇的介绍
包含TCP/IP三次握手和四次挥手的过程,以及TCP/IP十一种状态集的转变
网络地址类型介绍
包括网络IP地址分类,公网与私网地址说明,VLSM可变长子网的概念(VLAN)
3.1什么是网络?
实现通讯的要求
网络的知识体系是一个庞大的体系,涉及到路由交换、安全、无线、语言、数据中心等多个方面,所以有很多内容需要学习和了解,但是万丈高楼平地起,所以基础对于运维来说是最重要的,对于网络学习也要从基础开始,进行网络知识的初识。
学习课程:
第一单元 第二单元 第三单元 第四单元
网络基础
OSI七层模型
TCP/IP简介
子网规划
VLSm
Cisco ios设备
管理网络环境
路由协议
IP路由原理
静态路由
默认路由
动态路由
二层交换网络
VLAN
VTP
STP
单臂路由
用访问列表初步管理IP流量
WAN网络和IPv6
串行到点链路
帧中继网络
IPv6简介
介质:连接不同主机之间的物质(双绞线光纤无线wifi)
3.2网络中实现两台主机设备通讯的条件:需要在两台主机之间建立物理连接,物理连接的方式:
网线 光纤线 wifi 蓝牙,将这些方式统称为介质
3.2.1两台主机可以识别数据信息,通过二进制数的方式
3.2.2将二进制数转换为电信号,从而可以让介质识别传输
高电压 1 低电压 0
3.2.3还需要借助网卡设备:
在发送数据的时候,将二进制数转换为电信号
在接收数据的时候,键电信号还原为二进制数
通过网卡调制或接收不同的信号;10M 100M 1000M 100Mbps=每秒中可以传输100M个bit
网卡作用:在单位时间内,调制解调出相应数量的信号个数。
网络协商:当两台通讯设备,属性信息不一致时,进行沟通后,统一标准的过程。
3.3一般情况线:影响网络传输效率的因素有三点:
发送方的网卡速率
接收方的网卡速率
传输介质的传输速率
3.4存储数据字节与比特换算公式:
B=8*bit,bit=1/8Byte;
3.5网络拓扑
网络拓扑(NetworkTopology)结构实质用传输介质互联各种设备的物理布局。指构成网络的成员间特定的物理的即真是的、或者逻辑的即虚拟的排列方式。如果两个网络的连接结构相同,我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会有不同。
实质上网络拓扑就是类似于网络设备组成的一个连接图,通过设备的连接图可以判定设备的连接情况,便于出现故障时,根据拓扑图更快的定位故障点。
对于配置网络设备之前,一定要对网络设备进行规划,也就是网络设备如何进行连接,进而形成一个网络设备的连接图,及网络拓扑(类似于网络设备规划的地图)。
3.6两个重要的设备:
3.6.1交换机
3.6.1.1 为什么要有交换机:为了实现多台主机之间互相通讯的需求
交换机可以实现隔离冲突域,但是无法实现隔离广播域
3.6.1.2 交换机实现互相通讯的要求:
找到需要接受我信息的人,在一个交换网络中,需要通过广播实现
让接收人可以获悉接收的信息是发送给自己的,需要借助网络标识,即mac地址
mac地址是物理地址,mac地址全球唯一
当网络中发送的广播包过多时,也会影响网络中主机的性能,造成这种问题称为广播风暴
一个广播风暴的波及范围只在一个交换网络内部,即只在一个局域网中
在一个局域网中,所有的主机在一个广播域,一个交换机有多少个端口,就有多少个冲突域
3.6.1.3 网线诞生:实现两台主机之间可以同一时刻,相互发送数据信息并且网线至少需要4根
一般广播包的mac地址信息为:全F信息,表示广播包
3.7 交换机作用特点
在一个交换机的端口上所连接
3.8广播域的介绍
当一个交换机连接多个终端设备,多个终端设备即处于一个相同的网段中,而一个相同的网段,即表示一个广播域。
广播方式不会根据需要传输或接收消息,而是在一个网段中全部机器都要进行无条件接受,因此当广播信息大量产生时,会耗费网段及其的CPU资源,来接受广播信息,即所谓的广播风暴。
两个不同的广播域是不能进行通信的,因为所属在不同的两个网段中
提示:相同的网段就是一个统一的网络标识
3.9路由器
3.9.1 为什么要有路由器:隔离广播风暴,让不同的局域网中的主机可以实现通讯
路由器所连局域网的接口称为网关接口,而在接口上配置的地址称为网关地址
3.9.2 路由器实现互相通讯的要求:
3.9.2.1 主机身份标识信息:局域网编码+主机编码=经过路由器的身份标识信息
网段(网络地址)+ 主机地址=IP地址
3.9.2.2 数据转发到路由器,路由器根据内部的路由表进行判断,相应数据包从哪个接口转发出去
路由表中只记录网段信息,不记录识别主机信息
一旦路由表,没有所要去往的目标主机网段信息,就会提示传输不可达
多个路由器互联,路由表信息实现统一一致的过程称为“路由表收敛”,路由器彼此之间说悄悄话,实现路由收敛的方式称为路由器协议
实现了不同局域网中主机,跨越多台路由器实现主机间的通讯
3.10路由器作用的特点:
路由协议的转发(路由选路)
路由类似于现实生活中从A地去往B地可能需要先步行,再坐车,再坐飞机才能到达B地,这样的整个过程在网络中对应数据的传递过程就称为路由。因此一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径
数据转发,会维护一个路由表(相当于一个地图)
路由器会作为网关
一般会在网络出口的位置摆放一台路由器
广域网链路支持(FR ATM MSTP SDH)
协议
协议是通信双方为了实现通信而设计的约定或通话规则。
http协议,tcp/ip协议族
3.12 路由协议主要涉及到两种:静态 动态
3.12.1第一种称为静态路由器协议:
需要手动的指明我要到达的目标网络,是通过路由器哪个接口对应连接的路由器到达
(路由表收敛快)
3.12.2第二种称为动态路由器协议:
采用类似广播的方式,每台路由器都告知其他相连的路由器,我所连了哪些网络
(配置操作简单--RIP OSPF EIGRP)
网络多台网络进行互联,所绘制的一张图,称为网络拓扑
3.13网络划分:
物理拓扑逻辑拓扑
3.14网络层次:
核心层:和外网对接 要有冗余能力(有备份设备)
汇聚层:冗余能力 承上启下的作用
接入层:主要用于下联接入设备的
3.15 OSI网络模型概念
3.15.1OSI的概念:
open system interconnect开放系统互联参考模型,是由ISO(国际标准化组织)定义的。是个灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的。
3.15.2OSI模型的目的:
规范不同系统的互联标准,是两个不同的系统能够较容易的通信,而不需要改变底层的硬件或者软解的逻辑
3.15.3OSI模型分为7层:
OSI把网络按照层次分为7层,由下到上分别是物理层,数据链路层、网络层、传输层、会话层、表示层、应用层。
上层分为(boss 秘书 商务)
秘书可以负责将信息进行编码,然后将数据加密和压缩等,将boss的信息传个商务部
传输层(销售部、采购部),作为一个传输的通道,进行长期的连接,可以讲从上层获得的流量进行一个分段
①进行连接会话的简历,并且可以是可靠的连接
②将上层的数据进行分块、分段
网络层(邮局):将流量送到目的地,是一个寻址的概念,并且把上层分好短的设备进行一个打包
数据链路层:将打包的设备运输到家门口,进行拆包,分给公司内部的每个人
物理层:就相当于搬运工
3.16OSI7层模型的结构
应用层
应用程序及接口
表示层
对数据进行转换、加密和压缩
会话层
建立、管理和终止会话
传输层
提供可靠的端到端的报文传输和差错控制
网络层
将分组从源端传送到目的端;提供网络互连
数据链路层
将分组数据封装成帧;提供节点到节点方式的传输
物理层
在媒体上传输比特来提供机械的和电气的规约
3.17OSI七层模型说明
层次
说明
功能/协议
应用层
应用程序及接口,类似于公司的老板
提供应用程序的接口FTP telnet http等
表示层
对数据进行转化,加密和压缩
将上层的数据进行转换和编译压缩为标准的文件,如JPG GIF ASCII码等
会话层
建立、管理和终止会话
传输层
提供可靠的端到端的报文传输和差错控制,实际上就是负责建立连接的
TCP UDP 建立可靠和非可靠连接将上层分段的数据进行打包
数据链路层
将分组数据封装成帧,提供节点到节点方式的传输
帧就是本地局域网中传输数据的一个单元,负责在局域网内部的点对点的寻址
物理层
在媒体上传输比特
就是底层的链路介质的规范
3.18特点说明:
1.OSI模型没能独有自己的功能集
2.层与层之间相互独立又相互依靠
3.上层依赖于下层,下层为上层提供服务。
应用层:为应用软件提供接口,是应用程序能够使用网络服务
常见的应用层协议:http(80)ftp(20/21)、smtp(25)、pop3(110)、ternet(23)、dns(53)
表示层:数据的解码和编码、数据的加密和解密、数据的压缩和解压缩
会话层:建立、维护、管理应用程序之间的会话。功能:对话控制、同步
传输层:负责建立端到端的连接,保证报文在端到端之间的传输。功能:服务编制、分段与重组、连接控制、流量控制、差错控制。
网络层:负责将分组数据从源端传输到目的端。功能:为网络设备提供逻辑地址、进行路优选额、分组转发。
网络层的主要作用就是路由和寻址,主要接触到的ip协议即ip地址
layer3网络层:对应设备有路由器
layer2数据链路层:MAC层-IEEE 802.3协议,MAC地址是48bit的
IP地址是三层地址,那么mac地址就是二层地址,全球网络设备唯一的地址
作用的域不同:IP作用在不同的网络之间,mac地址作用在相同的网络内部
mac地址48位的地址,采用16进制进行表示
mac地址是硬件地址,IP地址会被看做是逻辑地址
layer2数据链路层:对应设备有交换机
物理层:负责把逐个的比特从一跳(结点)移动到另一跳(结点)
物理层功能:定义接口和媒体的物理特性、定义比特的标识、数据传输速率、信号的传输模式(单工、半双工、全双工)、定义网络物理拓扑(网状、星型、环型、总线型等拓扑)就是将逐个的bit进行传输的过程
网络物理连接介质
网线
要连接局域网,网线是必不可少的。在局域网中常见的网线主要为双绞线。双绞线由许多对线组成的数据传输线。它的特点就是价格便宜,所以被广泛应用,如我们的电话线等。它就是用来和RJ45水晶头相连的。
制作规范
568A
568B 线序:橙白橙绿白蓝 蓝白绿 棕白棕
3.20OSI层次模型总结
OSI七层模型功能就类似于人传递信息,会用一句话传递,而一句话又是多个词组组成的,而每个词又是多个字组成。
3.21OSI网际互联
3.22传输过程说明:
假设A用户要传输数据给B用户,并且A用户和B用户是两个不同的网段中
数据请求从A的应用层发出,传输到表示层进行数据的编译和加密、压缩
表示层将数据发送到会话层
传输层有端口号的概念用于识别上层的服务,并且将上层的服务进行分段,并且用于保持A-B之间的通信连接,以及连接的可靠性
在网络层将数据进行打包,并在打包后的数据前面,定义目标IP地址和源IP地址
在数据链路层进行在加工,在加工后的假面定义目标MAC和源MAC地址
在物理层,最终将数据变化为及其识别的10101的二进制编码,在网线上进行的。
到了路由器要对数据进行转发,一次会解压数据的信息,获得目标IP网段,路由器是一句IP地址转发数据的,所以工作在3层,因此收到数据包,要先将二进制码转换为帧,再将帧转换成IP数据包,对ip数据包目标地址进行云芝
根据路由表确认到相应的传输接口后,会在将数据打包好进行传输
B收到数据后,在一次解包,收到相应的数据,反之亦然。
OSI互联数据包封装过程
3.23.1封装的过程,就是从上之下,将数据进行打包的过程,并且在每一层加上相应的字段进行标识。
解封装:
3.24TCP/TP协议簇(DoD参考模型)
用于简化OSI层次,以及相关的标准。
传输控制协议(tcp/ip)簇是先关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信。
是由一组不同功能的协议组合在一起的协议簇
利用一组协议完成OSI所实现的功能
3.24.1TCP与UDP对比
传输控制协议(TCP)
用户数据报协议(UDP)
面向连接
无连接
可靠传输
不可靠传输
流控
尽力而为,尽力传递
使用TCP应用:WEB浏览器;电子邮件;文件传输程序
使用UDP的应用:域名系统(DNS);视频流;IP语音(VoIP)
3.24.2TCP相关报文结构
源端口:即本地发起连接的端口
目标端口:即要访问的服务的端口
序列号:因为传输层会将上层的数据进行分段,因此需要对分段数据进行编号,同时也便于数据的重组
验证号:用于对数据进行验证
TCP/UDP端口号(1~65535)
源端口随机分配,目标端口使用知名端口
应用客户端使用的源端口号一般分为系统中未使用的且大于1023的
目的端口号为服务器端应用服务的进程,如telnet为23
TCP三次握手
3.24.4.1 建立过程说明:
由主机A发送建立TCP连接的请求报文,其中报文中含seq序列号,是由发送端随机生成的,并且还将报文中SYN字段置为1,表示需要建立TCP连接
主机B会回复A发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将回复报文的SYN字段置1,而且会产生ACK字段,ACK字段数值是在A发送来的seq序列号基础上加1进行回复,一遍A收到信息时,知晓自己的TCP建立请求已得到了验证
A端收到B端发送的TCP建立验证请求后,会使自己的序列号加1表示,并且再次回复ACK验证请求,在B端发送过来的seq基础上加1,进行回复。
四次挥手:
3.24.5.1 断开过程说明:
主机A发送断开TCP连接请求的报文,其中报文中包含seq序列号,是由发送端随机生成的,并且还将报文中FIN字段置为1,表示需要断开TCP连接
主机B会回复A发送的TCP断开请求报文,其中包含seq序列号,是由回复端随机生成的,而且会产生ACK字段,ACK字段数值,是在A发过来的seq序列号基础上加1进行回复,一边A收到信息是,知晓自己的TCP断开请求已得到了验证
主机B在回复完A的tcp断开请求后,不会马上进行TCP链接的断开,主机B会先确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输数据完毕就会将恢复保温的FIN字段置1,并产生随机seq序列号。
主机A收到主机B的TCP断开请求后,会回复主机B的断开请求,包含随机生成的seq字段和ack字段,ack字段会在主机B的TVP断开请求的seq基础上加1,从而完成主机B请求的验证回复
至此TCP断开的4次挥手过程完毕
3.25TCP的十一种状态转移总结
十一种状态集:http://blog.csdn.net/bestone0213/article/details/44872529
3.26ARP协议说明
3.26.1ARP协议的功能
将IPv4地址解析为MAC地址
维护映射的缓存
说明:回顾上面讲
网络层对应的是IP地址,是跨网段使用的
链路层地址对应的是MAC地址,是物理地址,是在局域网内部使用的
MAC地址就好比自己的小名一样,只有本地局域网有效
3.27ARP协议过程说明
主机A向访问B主机,假设PCA是telnet到PCB进行访问
主机A由应用层构建一个数据包,发送到传输层
传输层拥有端口号的概念,就会在上层发过来的数据包加上TCP的头部,及源端口和目标端口,源端口号是随机的,目的端口是23。意为访问的时候目的地址的telnet服务;然后封装好的数据包再传输给下层。
在互联网层上拥有IP的概念,就会在上层发过来的数据包加上IP的头部,即源IP地址和目标IP地址,源IP地址就是IPA地址,目标IP地址就是IPB然后再将封装好的数据包发给网路接入层
网络接入层拥有MAC地址的概念,就会在上层发过来的数据包加上MAC地址,即源MAC地址和目标MAC地址,源MacDIZHIJIUSHI IPA的MAC,目标的mak地址是网关接口的MAC地址,默认钥匙没有网关接口的MAC地址,就会发送ARP广播,获得网关接口的MAC地址
主机A会将封装好的数据包以bit的方式传输给路由器
路由器收到数据包后,会进行数据包的解封装,获得目标IP网段地址,查询路由表进行路由的转发。
到达目标网络的路由器后,路由器会广播arp,找到对应目标IP的地址的MAC地址,根据获取到的目标MAC地址,将数据转发到主机B
提示:路由器看网络号,不看IP。IP是从A到B的,MAC是从A到路由的。
第4章 IP地址分类与子网划分基础
4.1什么是IP地址:(常见的IP地址版本为IPV4和IPV6)
192.
168.
10.
1
11000000
10101000
00001010
00000001
32位
32位二进制数据序列组成的数字序列
4.2点分十进制
采用点将32位数字进行分割为4段,每段8位的二进制数,但二进制数不便于记忆,一次转换成10进制数表示,即点分十进制
4.3十进制与二进制的转换
二进制
00001
00010
00100
01000
10000
逻辑运算
2的0次方
2的1次方
2的2次方
2的3次方
2的4次方
十进制
1
2
4
8
16
4.4点分十进制
二进制
000
00
0
逻辑运算
2的4次方
2的3次方
2的2次方
2的1次方
2的0次方
十进制
16
8
4
2
1
通过上图可以得知主机地址的初步理解算法
4.5IP地址的类别
根据上面的内容可以得知,IP地址是根据2的次方进行求得的,而转变思路,也可以利用2的次方进行IP地址类型的表示。
为了对ipv4地址进行一定的规划管理和控制使用,所以讲IP地址的范围划分为5个类别:
ABC三类分配给互联网用户所使用
D类型作为组2使用
E类型作为科学研究使用,进行保留
4.5.1简单的说,IP地址分5类,常见的地址是A、B、C类
A类:1.0.0.0到126.0.0.0 0.0.0.0和127.0.0.0保留
B类:128.1.0.0到191.254.0.0 128.0.0.0和191.255.0.0保留
C类:192.0.1.0到223.255.254.0 192.0.0.0和223.255.255.0保留
D类:224.0.0.0到239.255.255.255 用于多点广播
E类:240.0.0.0到255.255.255.254 255.255.255.255保留用于广播
4.5.2特殊地址:
127.0.0.1:表示回环地址,进行测试使用,验证本地的TCP协议簇安装的是否正确
0.0.0.0:主机位全为0的称为是网络地址
255.255.255.255:主机位全为1的称为是广播地址,即向所有人发出信息
4.5.3IP地址类型的另一种划分:
网络地址:指代网络的地址,在网络的ipv4地址范围内,最小地址保留为网络地址,此地址的主机部分的每个主机位均为0
广播地址:用于向网络中的所有主机发送数据的特殊地址。广播地址使用该网络范围内的最大地址,即主机部分的各比特位全部位1的地址
主机地址:分配给网络中终端设备的地址
因此总结得知:
0和255作为主机的地址,是不能进行分配使用的,只有0-255之间的地址可以进行分配为主机地址使用
可以引入一个公式
可以分配的主机地址个数=2的N次方-2
N次方的N表示有多少个主机位,
-2就表示减去网络地址和广播地址,剩余的就是可分配的主机地址
4.6子网划分讲解
4.6.1为什么划分子网?
会出现大量的局域网地址,同时想一个网关发送请求,引起网关设备的负载过高
会引起局域网内的大量广播数据传送,形成广播风暴
而且会非常的浪费地址空间,有可能只有两台主机或者一台,就分配一个C类地址,由此综上所述,就需要进行一个子网的划分。
子网划分的好处:
子网划分类似于将一个大的网络切成极快,划分成几个小的局域网络
将一个大的广播域划分成几个小的广播域环境
减少网关设备承载的负载量
有效的避免ip地址的浪费,使一个大的地址空间更加弹性和更加灵活的分配
通过子网划分(通过子网掩码进行划分)
可以讲一个大的局域网进行切割为多个小的局域网,这样就解决了上面说的两个问题,而到的新的局域网络就称为子网
4.7.1划分子网的方式
通过子网掩码的方式,进行子网的划分,但首先了解一下掩码的作用,即掩码的概念即将浮出水面
说明:一个网络地址是通过网络位和主机位组成,根据上面的知识可以得知但如何判定一个主机的网络地址是多少,一个主机的主机地址是从几位开始
IP地址
192
168
1
10
对应掩码
255
255
255
0
十进制
11111111
11111111
11111111
00000000
/24
网络为向右移动,占用主机位,即向主机位借位,生成新的网络位
其中/16就表示了子网掩码所指定的网络位个数,A类一般是/8 B类一般是/16 C类/24
实际上就是移动网络位和主机位中间分隔的线,向主机位进行移动,减少主机数量,扩大拥有的子网数量。
新的子网的产生,掩码表示的信息也要进行变化,从而可以更好的表示网络地址的规划信息。
4.8总结:
判断ip地址的类型,找掩码
根据上面所学的IP地址分类规划,可以得知默认的掩码信息
变更掩码,出自王
根据默认的掩码规划信息,将掩码信息进行调整变更,即进行子网划分
得出子网号
根据借用的主句为,可以哦按段出可用的子网信息
得出主机端
根据剩余的主机位,可以判断出可用的主机地址
得出广播号
得出主机范围,即也就得出了网络地址和广播地址
因此可以得到另一个计算公式的结论
可以划分的子网数量=2的N次方
(其中N表示借用的主机位个数)
上网过程说明:
确保物理设备和线路架构准备完毕,并且线路通讯状态良好
终端设备需要获取或配置上局域网(私有地址)地址,作为局域网网络表示
当终端设备想上网时,首先确认访问的地址,是否在本局域网内,若不在需要先告知网关
网关地址配置在路由器的内网接口上,路由器根据请求,将流量进行路由转发给外网设备,让外网设备协助进行流量转发。
需要注意:家用路由器实际上并不是路由器,而是一个NAT地址转换设备
猫等运营商设备通过获取路由器的拨号信息,将信息进行上传,确认无误后,便可建立路由器与外网的连接,进行实现终端访问互联网的需求。
05
4.9vlan配置
思科Vlan配置实例
4.9.1创建vlan
SW-2L#vlan database
SW-2L(vlan)#vlan 10
SW-2L(vlan)#vlan 20
SW-2L(vlan)#exit
SW-2L#show vlan/show vlans
4.9.2将接口划分到相应vlan中
SW-2L>en ---用户模式(少量查询命令)
SW-2L#conf t ---特权模式(可以输入一些特权命令)
SW-2L(config)#interface f0/1 --0 表示第几块板卡 相应板卡的第几个接口
SW-2L(config-if)#switch access vlan 10 ---网络配置即时生效
SW-2L(config-if)#quit (ctrl+z)
SW-2L#wr --- save configuration- start-config
4.10网络部分的配置:
4.10.1交换部分配置
1. vlan配置
2. 生成树的配置(避免交换机出现环路的)
4.11路由器配置:
1. 静态路由协议配置
2. 静态默认路由协议配置
3. 安全策略配置ACL
4.12和linux相关的一些网络实践知识:
第5章 DNS知识:(重点需要掌握 *****)
01:输入完域名,需要将域名转换为相应的IP地址(DNS 提供域名解析服务)
02:通过IP地址找到相应网站服务器
03:完成TCP三次握手的过程
04:http协议原理的过程(http请求和响应过程)
05:完成TCP四次挥手的过程
5.1DNS解析远程过程---浏览器输入完域名(www.oldboyedu.com) (重点掌握 会说)
5.1.1客户端主机查询缓存与hosts文件,确认是否有域名与IP地址的对应关系
5.1.1.1 windows系统查看与刷新缓存记录信息
ipconfig /flushdns <清除缓存命令
ipconfig /displaydns <显示缓存命令
5.1.1.2 显示hosts文件域名与地址映射关系配置信息
c:\windows\system32\drivers\etc\hosts < windows域名与地址映射关系所在位置文件
5.1.1.3 linux缓存方式:
nscd 或者 BIND 或者 dnsmasq
说明:域名与IP地址对应关系,称为A记录
找本地网卡信息中配置的Local DNS服务器,本地DNS服务器会查询自己的域名缓存记录,如果有就告知客户端主机
i. 说明:客户端主机到LocalDNS服务器查询域名对应IP地址的过程,称为递归查询
LocalDNS服务会向根域名服务器进行请求,根域名服务器只能告知顶级域名服务器信息
i. 说明:LocalDNS服务器向根域名服务器 顶级域名服务器 二级域名服务器查询的过程,称为迭代查询
根域名服务器全球只有13台,根域名服务器下面记录顶级域名服务器信息
LocalDNS服务会向顶级域名服务器进行请求,顶级域名服务器只能告知二级域名服务器信息
i. 说明:顶级域名服务器记录二级域名服务器信息
LocalDNS服务会向二级域名服务器(授权DNS服务器)进行请求,授权dns服务器会告知虚拟主机相应解析后的IP地址信息
i. 说明:二级域名服务器记录虚拟主机信息
LocalDNS服务器会先本地缓存一份域名与地址的对应关系,然后将解析后的IP地址信息发送回客户端
客户端也会将域名与IP地址的对应关系进行本地缓存,然后根据IP地址进行访问网站服务器。
5.2DNS查询解析命令总结:
利用dig
dig www.oldboyedu.com
dig @8.8.8.8 www.baidu.com +trace
[email protected]后面地址信息表示利用什么服务器作为LocalDNS服务器
---+trace 表示追踪整个DNS的详细解析过程
利用nslookup
nslookup www.oldboyedu.com
利用host
host www.oldboyedu.com
利用ping
ping www.oldboyedu.com
5.3linux网络配置部分:
5.3.1网卡的配置---------要熟悉
5.3.2网卡生效方式:
5.3.2.1 推荐:ifdown,ifup进行指定发卡的重启操作
ifdown eth0 && ifup eth0
停掉eth0网卡
ifup eth0
启动eth0网卡
5.3.2.2 针对所有网卡进行重启操作(工作场景慎用此命令)
/etc/init.d/networkrestart
说明:以上两种方式区别,推荐方式只重启配置修改的网卡,不推荐方式表示重启所有网卡
5.3.3配置默认网关(需要重点掌握)
5.3.3.1 生效文件---ifcfg-ethx
[[email protected] ~]#grep -i gate /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.0.0.254
5.3.3.2 2生效文件---network
[[email protected] ~]#grep -i gate /etc/sysconfig/network
GATEWAY=10.0.0.253
5.4查看路由表信息命令
route -n
netstat -rn
5.4.1命令行优先,且临时生效
route -n或netstat -rn 进行查看确认
route adddefault gw 10.0.0.254
route deldefault gw 10.0.0.254
5.5路由添加的几种方法:
5.5.1默认网关路由添加方法
添加默认网关路由
route add default gw 10.0.0.254
删除
route del default gw 10.0.0.254
5.5.2默认静态网段路由添加
添加默认静态网段路由
route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
删除
route del -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
5.5.3静态网段路由永久生效方法
如果要是永久生效,有如下几种方法:
5.5.3.1 方法一:利用route-eth0文件
vi/etc/sysconfig/network-scripts/route-eth0 <默认不存在此文件
加入如下内容:
172.16.1.0/24via 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效!
5.5.3.2 方法二:利用static-routes文件
# vi/etc/sysconfig/static-routes <-默认不存在此文件
# 加入如下内容:
any net172.16.1.0/24 gw 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效!
5.6默认静态主机路由添加
route add -host192.168.2.13 dev eth2
route del -host192.168.2.13 dev eth2
5.7一个网卡上配置多个IP地址(需要掌握配置 LVS)
5.7.1别名方式配置多IP(利用了ifconfig命令)
ifconfig eth0:010.0.0.201/24 up
ifconfig eth0:0 10.0.0.201/24down
5.7.2采用辅助IP配置多IP(利用了ip addr命令)(推荐使用方法)
ip addr add10.0.0.13/24 dev eth0:1
ip addr add10.0.0.14/24 broadcast 10.0.0.255 dev ethx
ip addr del10.0.0.10/24 dev ethx
注意: 配置完成以后需要使用ipadd命令记性查看
说明:默认centos7里面使用网络的查看与配置命令为ip addr
遗留:辅助IP的标签设置
ipaddr add 10.0.0.201/24 dev eth0 label eth0:1
5.8网络常用查看命令:
hostname -I ---表示查看所有网卡的IP地址信息
10.0.0.20010.0.0.100
hostname -i ---表示查看hosts文件主机名映射的IP地址信息
10.0.0.200
5.9网络问题出现如何排查:
5.9.1利用ping命令先检测网络连通性:
pingwww.etiantian.org
ping 10.0.0.200
说明:如果能够通讯,表示网络连通性正常
-c 表示ping多少个包
[[email protected]39-nb ~]# ping www.baidu.com -c 3
PING www.baidu.com (10.0.0.200) 56(84) bytes ofdata.
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=1 ttl=64 time=0.059 ms
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=3 ttl=64 time=0.046 ms
-i 表示ping的间隔时间
[[email protected] ~]# ping www.baidu.com -c 3-i 3
PING www.baidu.com (10.0.0.200) 56(84) bytes ofdata.
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=2 ttl=64 time=0.048 ms
64 bytes from oldboyedu-39-nb (10.0.0.200):icmp_seq=3 ttl=64 time=0.046 ms
-q 表示不显示ping的过程,只显示ping的结果(安静的ping)
[[email protected] ~]# ping www.baidu.com -c 3-i 3 -q
PING www.baidu.com (10.0.0.200) 56(84) bytes ofdata.
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss,time 6000ms
rtt min/avg/max/mdev = 0.028/0.038/0.046/0.009 ms
-f 表示极速ping,有助于写入脚本快速获悉网络测试结果
[[email protected] ~]# ping www.baidu.com -c1000 -f
PING www.baidu.com (10.0.0.200) 56(84) bytes ofdata.
--- www.baidu.com ping statistics ---
1000 packets transmitted, 1000 received, 0% packetloss, time 21ms
rtt min/avg/max/mdev = 0.002/0.005/0.354/0.015 ms,ipg/ewma 0.021/0.003 ms
5.9.2利用tracroute命令检测网络连通性:(表示路由追踪的过程)
linux上操作:traceroute www.baidu.com -n
-n表示关闭反向解析过程,可以提升路由追踪效率;
windosw上操作:tracert -d www.baidu.com
-d表示关闭反向解析过程,可以提升路由追踪效率;
说明:基础检查,各个高速节点有没有修通。
5.9.3 利用telnet命令检查相应网络服务有没有开启:
telnet 10.0.0.200 22
说明:服务器没有开启会造成无法访问;防火墙配置了阻止策略
利用namp命令检测服务端相应网络服务端口是否开启:
nmap 10.0.0.200 -p 22
说明:namp和telnet命令类似,主要用于在客户端测试服务器端的相应服务端口是否开启
5.10网络抓包方法
01:tcpdump
02:wireshark(今天安装好)
本文出自 “13121275” 博客,请务必保留此出处http://13131275.blog.51cto.com/13121275/1960843
以上是关于第六周课堂总结的主要内容,如果未能解决你的问题,请参考以下文章
201671010116. 2016-2017-6《Java程序设计》第六周学习总结