第六周课堂总结

第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] ~]# 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(今天安装好)

时间: 2024-08-05 16:56:55

第六周课堂总结的相关文章

20155227 第十六周课堂测试

20155227 第十六周课堂测试 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零) 提取hour时,采用的方法是先将hour右移11位,hour有5位,所以再与000000000000011111,即0X1F相与. (课上做的时候心里想的是0X1F,写下来就成了0XF了--) #define Time_Addr 0XFFFFC0000 #define TIME *(volatile int*) (Time+2)

20155318 第十六周课堂实践——嵌入式基础

20155318 第十六周课堂实践加分作业 测试中错误部分的理解和学习 根据下图,完成对时分秒的提取和设置 课上提交的答案: 错误原因:没有注意时间变量和地址问题,应在修改为: #define Time_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000 #define TIME *(volatile int *)(Time_Addr+2) //时间存放在基址+2的寄存器中 int getHours() { int time=TIME; return (tim

20172321 第六周课堂实践修改报告

20172321 第六周课堂实践修改报告 20172321 第六周课堂实践修改报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 吴恒佚 学号: 20172321 实验教师:王志强 测试日期:2018年10月19日 必修/选修: 必修 题目要求 错误题目及原因 错题1:二分查找 原因:这次二分查找的元素个数为偶数个,我的理解有点问题,所以把数字10查找了4次 错题2:散列查找 原因:对元素21的位置判断错误 题目分析及错题修改 二分查找 从有序列表的中间元素开始查找,如果中间元素不是

第六周课堂笔记

第六周课堂随笔

201671010140. 2016-2017-2 《Java程序设计》java学习第十六周

java学习第十六周         本周对十三章:"部署java应用程序"进行了课堂学习,在老师思路牵引下,对这一章知识进行学习,对实例程序运行和注释,对比课前对书本上知识的浅显预习,半知半解,课堂学习后,对这部分知识的理解也更加深入,尤其是在JAR文件这部分,感觉掌握的不错,对Java程序为何要打包成JAR文件,如何去做都有了进一步学习,认知,之前并不理解如何使用jar程序制作JAR文件,在课堂上同学的演示下,也理解了这部分知识.在对JAR文件中的包的密封,属性映射等方面的知识掌握

第六周小组作业-17141

软件测试第六周作业 U201517141 陈国晋 1.基本任务:功能测试和测试管理 模块划分- 网易云课堂 模块划分-毕博平台 个人负责模块----个人中心模块 网易云课堂 登录 登录 个人中心 管理中心 总体流程图 测试说明 测试用例设计 测试流程 网易云课堂"个人中心模块"中的数据流图和测试流程. 根据这个数据流图和测试流程,首先基于独立路径构建典型场景来设计测试用例. 测试用例 原文地址:https://www.cnblogs.com/chenmo1996/p/8908868.h

杨其菊201771010134《面向对象程序设计(java)》第六周学习总结

<面向对象程序设计(java)>第六周学习总结 第一部分:理论知识 1)类.超类和子类2)Object:所有类的超类 3)泛型数组列表4)对象包装器和自动打包 5)参数数量可变的方法 6)枚举类7)继承设计的技巧 第二部分:实验部分 继承定义与使用<代码测试和示例程序的注释> 1.实验目的与要求 (1) 理解继承的定义: (2) 掌握子类的定义要求 (3) 掌握多态性的概念及用法: (4) 掌握抽象类的定义及用途://不能创建自己的对象,特殊类 (5) 掌握类中4个成员访问权限修饰

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件