马哥教育网络第21期-第八周课程练习

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。

  网桥从一个局域网接收MAC帧,拆封、校对、校验之后,按另一个局域网的格式重新组装,发往它的物理层。由于网桥是链路层设备,因此不处理数据链路层以上层次协议所加的报头。

  集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层。

 二层交换机指的就是传统的工作在OSI参考模型的第二层–数据链路层上交换机,主要应用于小型的局域网中,主要功能包括物理编址、错误校验、帧序列以及流控。

 三层交换机主是二层交换机与路由器的合体,支持物理层,数据链路层及网络层协议。三层交换机支持路由功能、支持网络层的很多协议等,支持多VLAN的设置与IP地址配置!支持安全功能等

 路由器是连接因特网中各局域网、广域网的设备,路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。

2、IP地址的分类有哪些?子网掩码的表示形式及其作用

A类:
0 000 0000 - 0 111 1111: 1-127
网络数:126, 127
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8

B类:
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.0.0/16

C类:
110 0 0000 - 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.0/24

D类:组播
1110 0000 - 1110 1111: 224-239

E类:
240-255

3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。

   OSI参考模型

   物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,该层会使用到网线,光纤等等。

   数据链路层OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。工作在该层的设备一般为交换机,集线器等等。

  网络层OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。

  传输层OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。

  会话层OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。

  表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。

  应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

    TCP/IP参考模型

  网络接口层包括用于协作IP数据在已有网络介质上传输的协议。它定义像地址解析协议这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。 

  网络层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议,负责数据的包装、寻址和路由。同时还包含网间控制报文协议用来提供网络诊断信息。

传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议提供可靠的数据流运输服务,UDP协议提供不可靠的用户数据报服务。

应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括FingerWhoisFTP(文件传输协议)GopherHTTP(超文本传输协议)Telent(远程终端协议)SMTP(简单邮件传送协议)IRC(因特网中继会话)NNTP(网络新闻传输协议)等。


4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)

[root@6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
  1 DEVICE=eth0
  2 HWADDR=00:0C:29:88:B2:2C
  3 TYPE=Ethernet
  4 UUID=05cb76db-70e8-49f6-9b1d-f754c47a28f6
  5 ONBOOT=yes
  6 IPADDR=192.168.1.118
  7 NETMASK=255.255.255.0
  8 GATEWAY=192.168.1.1
~
[root@6 ~]# service network restart
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: Determining if ip address 192.168.1.118 is already in use for device eth0...
                                                           [确定]

5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

  1. 编辑配置文件修改网络参数,永久生效

  2. 使用ifconfig命令来指定,重启失效

6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;

     在线的主机使用绿色显示;

     不在线的主使用红色显示;

#!/bin/bash
for((i=1;i<254;i++))
do
	ping -c 1 172.168.250.$i &>/dev/null
	if [ $? -eq 0 ];then
		echo -e "\033[32m 172.168.250.$i is up \022[0m"
	else
		echo -e "\033[31m 172.168.250.$i is down \022[0m"

	fi
done

7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

  1 DEVICE=eth0    //设备名称
  2 HWADDR=00:0C:29:88:B2:2C    //mac地址
  3 TYPE=Ethernet    //网络接口类型
  4 UUID=05cb76db-70e8-49f6-9b1d-f754c47a28f6
  5 ONBOOT=yes    //是否开机启动
  6 IPADDR=192.168.1.118    //ip地址
  7 NETMASK=255.255.255.0    //子网掩码
  8 GATEWAY=192.168.1.1    //网关

8、如何给网络接口配置多个地址,有哪些方式?

1.ip addr add 
2.编辑配置文件,重启生效
3.setup

9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

netstat命令:
-t: tcp协议相关。-u: udp协议相关。-w: raw socket相关。-l: 处于监听状态。-a: 所有状态。-n: 以数字显示IP和端口。-e:扩展格式
-p: 显示相关进程及PID。
ss命令

10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

    rpm
    安装:
        rpm {-i|--install} [install-options] PACKAGE_FILE ...
            -v: verbose
            -vv: 
            -h: 以#显示程序包管理执行进度;每个#表示2%的进度
            rpm -ivh PACKAGE_FILE ...   
      升级:      
            upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
            freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;
            rpm -Uvh PACKAGE_FILE ...
            rpm -Fvh PACKAGE_FILE ... 
      查询:
        rpm {-q|--query} [select-options] [query-options]

        [select-options]
            -a: 所有包
            -f: 查看指定的文件由哪个程序包安装生成
      卸载:
        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
    yum
     显示仓库列表:
      yum repolist [all|enabled|disabled]

    显示程序包:
        list
            # yum list [all | glob_exp1] [glob_exp2] [...]
            # yum list {available|installed|updates} [glob_exp1] [...]

    安装程序包:
       yum install package1 [package2] [...]

       yum reinstall package1 [package2] [...]  (重新安装)

    升级程序包:
       yum update [package1] [package2] [...]

       yum downgrade package1 [package2] [...] (降级)

    检查可用升级:
       yum check-update

    卸载程序包:
       yum remove | erase package1 [package2] [...]

    查看程序包information:
       yum info [...]

11、如何使用发行版光盘作为yum repository,请描述该过程。

1.将光盘挂载到指定的目录
[root@6 ~]# mount /dev/cdrom /mnt    
2.创建配置文件
[root@6 mnt]# cat /etc/yum.repos.d/cdrom.repo 
	[cdrom]
name=cdrom
basurl=file:///mnt
enable=1
gpgcheck=0

12、写一个脚本,完成以下功能

   (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

   (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
cd /etc/rc.d/rc3.d
for i in $(ls K*);do
	echo "$i start"
	let i++
done

for j in $(ls S*);do
	echo "$j stop"
	let j++
done

echo "$i,$j"

13、写一个脚本,完成以下功能

   (1) 脚本能接受用户名作为参数;

   (2) 计算此些用户的ID之和;

  1 #!/bin/bash
  2 declare -i j=0
  3 
  4 for i in $*;do
  5     userid=$( id -u ${i} ) 
  6     j+=$userid
  7     let i++
  8 done
  9

14、写一个脚本

   (1) 传递一些目录给此脚本;

   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash

declare -i f=0
declare -i d=0
declare -i c=0
declare -i s=0
declare -i b=0
declare -i o=0

read -p "input file path " file
for i in 'ls $file';do
	if [ -d $file ];then
		echo "$file is directory"
		let d++
	elif [ -f $file ];then
		echo "$file is file"
		let f++
	elif [ -s $file ];then
		echo "$file is socket"
		let s++
	elif [ -b $file ];then
		echo "$file is bolck"
		let b++
	elif [-c $file ];then
		echo "$file is char"
		let c++	
	else
		let o++	
	fi	
done
echo "directory $d"
echo "file $f"
echo "socket $s"
echo "block $b"
echo "char $c"
echo "other $c"

15、写一个脚本

  通过命令行传递一个参数给脚本,参数为用户名

  如果用户的id号大于等于500,则显示此用户为普通用户;

  1 #!/bin/bash
  2 if [ $# -eq 0 ];then
  3     echo "plesae input username"
  4 fi
  5 let a=$(id -u $1)
  6 if [ $a -ge 500 ];then
  7     echo "this is user"
  8 else
  9      echo "this is system user"
 10 fi

16、写一个脚本

   (1) 添加10用户user1-user10;密码同用户名;

   (2) 用户不存在时才添加;存在时则跳过;

   (3) 最后显示本次共添加了多少用户;

  1 #!/bin/bash
  2 declare -i i=0
  3 for((i=1;i<11;i++))do
  4     if id user$i &> /dev/null;then
  5         echo "user$i is exist"
  6         continue
  7     else
  8         useradd user$i
  9         echo "user$i" | passwd --stdin$i &> /dev/null
 10         let i++
 11     fi
 12 done
 13 echo "add $i user"

17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
for((i=20;i<100;i++))
do
	ping -c 1 172.168.250.$i &>/dev/null
	if [ $? -eq 0 ];then
		echo  "172.168.250.$i is up "

	fi
done

18、打印九九乘法表;

  1 #!/bin/bash
  2 for((i=1;i<10;i++))
  3 do
  4     for((j=1;j<=$i;j++))
  5     do
  6         echo -e -n "$j*$i= $(($i*$j))\t"
  7     done
  8     echo
  9 done

以上

原创文章,作者:N21_619463772,如若转载,请注明出处:http://www.178linux.com/35247

(0)
N21_619463772N21_619463772
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • CentoS 6.8 安装(小白请进)

    先说点题外话,我现在还是一个小白,刚接触‘高大上’的linux不久,随着深入的学习了解,兴趣越来越浓,这个东西很有意思的,不像学windows那样枯燥无味,真的,不信?欢迎加入马哥大家庭。 废话不多说,注意了:前方高能!!! 首先呢,先下载一个VMware Workstation这个虚拟机软件,它的作用很强大,可以使你在一台机器上同时运行一个甚至多个linu…

    2017-02-17
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 who |cut -d ' ' -f1 |sort|uniq 2、取出最后登录到当前系统的用户的相关信息 last|head -1 3、取出当前系统上被用户当作其默认shell的最…

    Linux干货 2016-12-26
  • test

    test

    Linux干货 2017-11-26
  • linux文件系统及文件操作

    1、Linux文件系统:    文件和目录被组织成一个单根倒置树结构,从根目录”/”开始。    文件系统分层结构LSB (Linux Standard Base)如下: 2、主要目录: /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader) /etc:配置文件 /home:用户的…

    2017-07-23
  • 马哥教育网络班22期-第1周博客作业2

    date命令 date – print or set the system date and time 显示或设置系统日期和时间 【SYNOPSIS】 date [OPTION]… [+FORMAT] 【OPTIONS】 -d:–date=STRING,显示字符串所指的日期与时间, 而不是当前时间,字符串前后必须加上双引号…

    Linux干货 2016-08-15
  • 2. 初识shell

        在Linux早期, 可以用来工作的只有shell. 那时, 系统管理员, 程序员和系统用户都坐在Linux命令行终端前, 输入文本命令, 查看文本输出. 而现在, 因为有了绚丽的图形化桌面环境, 在系统上找到shell提示符都变得困难起来. 接下来将会讨论提供命令行环境需要什么, 然后带你逐步了解可能会在各种L…

    Linux干货 2016-11-06

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-25 12:43

    网络部分可以更详细一些,还有下次ctrl+c,ctrl+v的时候,请调整好统一的格式