1-3,計算機網絡基礎博客已總結,簡要補充
協議的分層
為了使那些比較復雜的網絡協議更加簡單化。ISO根據各通信協議的功能將網絡體系分成七層。
在這個分層中,下層為上一層提供服務。上下層之間進行交互時所遵循的約定叫做“接口”。同層之間的交互所遵循的約定叫做“協議”
說的更形象一點,兩個中國人打電話這個通信。就可以分為兩層,同層之間的叫協議,我說漢語,你也說漢語,我跟個韓國人打電話,肯定溝通不了。電話之間也要有協議,我用我的電話打到你的吹風機上也不行吧。我跟電話之間的聯系,叫做接口,就是錄音、揚聲器吧,將聲波轉化為電磁波,發送給你。
OSI參考模型
每層的功能如下:
通信過程如下:
A對B發一句“早上好”的電子郵件,內容早上好
在應用層加上應用層首部,作用是指明目標地址,發件人為用戶A; 到達表示層加上表示層首部,作用將數據從主機特有的格式轉化為網絡標準傳輸格式; 到達會話層加上會話層首部,作用是選擇采用哪個連接,何種方法傳輸數據; 到達傳輸層,傳輸層作用是保證所傳輸的數據到達目標地址,如果沒有到達則會負責重發; 到達網絡層,A到B之間有很多路要走,選擇哪一條路是靠網絡層 到達數據鏈路層,數據鏈路層的作用是,在這些通過傳輸介質互聯的設備之間進行數據處理,將數據轉化為0,1的形式。 到達物理層,將數據的0,1轉化為電壓和脈沖傳給B主機的地址,這個地址被稱之為MAC地址,也叫物理地址。 然后B主機拿到0,1的數據再經過層層轉變,就變為B主機應用層可讀的信息。
網絡的構成要素
網橋/2層交換機
路由器/3層交換機
網關
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
修改/etc/sysconfig/network-scripts/ifcfg-eth0,添加以下內容 BOOTPROTO=static ONBOOT=yes DNS1=10.1.1.254 IPADDR=10.1.1.100 GATEWAY=10.1.1.254 DNS1=10.1.1.254
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
方法一:使用ifconfig或者ip 臨時添加網絡信息,并使用route命令添加默認網關 ifconfig IF_NAME IP_ADDR network MASK 例子:ifconfig eth0:1 192.168.0.3 route add default gw GATEWAY 例子:route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 方法二:使用修改/etc/sysconfig/network-scripts/ifcfg-IF_NAME文件 ifcfg-IFACE 配置文件參數: DEVICE:此配置文件對應的設備的名稱; ONBOOT:在系統引導過程中,是否激活此接口; UUID:此設備的惟一標識; IPV6INIT:是否初始化 IPv6; BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有 dhcp、bootp、 static、none; TYPE:接口類型,常見的有 Ethernet, Bridge; DNS1:第一 DNS 服務器指向; DNS2:備用 DNS 服務器指向; DOMAIN:DNS 搜索域; IPADDR: IP 地址; NETMASK:子網掩碼;CentOS 7 支持使用 PREFIX 以長度方式指明子網掩碼; GATEWAY:默認網關; USERCTL:是否允許普通用戶控制此設備; PEERDNS:如果 BOOTPROTO 的值為“dhcp”,是否允許 dhcp server 分配的 dns 服務器指 向覆蓋本地手動指定的 DNS 服務器指向;默認為允許; HWADDR:設備的 MAC 地址; 方法三:CentOS 7 使用nmtui命令配置網絡信息,Centos 7是setup。
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;在線的主機使用綠色顯示;不在線的主使用紅色顯示;
#!/bin/bash echo -e "\033[34m Find the online users. Input 'Ctrl + C' to end script run.\033[0m" for ip in {250..254}; do trap 'echo ; echo "Secrpt stoping by user.."; echo ;exit' INT ping -c 1 -w 1 "172.16.250.$ip" &>/dev/null if [ $? -eq 0 ]; then echo -e "\033[32m 172.16.250.$ip online \033[0m" else echo -e "\033[31m $1.$ip time out !!!\033[0m" fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
ifcfg-IFACE 配置文件參數: DEVICE:此配置文件對應的設備的名稱; ONBOOT:在系統引導過程中,是否激活此接口; UUID:此設備的惟一標識; IPV6INIT:是否初始化 IPv6; BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有 dhcp、bootp、 static、none; TYPE:接口類型,常見的有 Ethernet, Bridge; DNS1:第一 DNS 服務器指向; DNS2:備用 DNS 服務器指向; DOMAIN:DNS 搜索域; IPADDR: IP 地址; NETMASK:子網掩碼;CentOS 7 支持使用 PREFIX 以長度方式指明子網掩碼; GATEWAY:默認網關; USERCTL:是否允許普通用戶控制此設備; PEERDNS:如果 BOOTPROTO 的值為“dhcp”,是否允許 dhcp server 分配的 dns 服務器指 向覆蓋本地手動指定的 DNS 服務器指向;默認為允許; HWADDR:設備的 MAC 地址;
8、如何給網絡接口配置多個地址,有哪些方式?
方法一:ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0 方法二: CentOS 6:vim /etc/sysconfig/network-scripts/ifcfg-eth0 添加 IPADDR1、IPADDR2... CentOS 7:vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 添加 IPADDR1、IPADDR2...
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
ifconfig 常見用法: 查看網卡信息:ifconfig [interface] 查看所有網卡信息:ifconifg -a 開啟或關閉網卡:ifconfig IFACE [up|down] 配置網卡參數:ifconfig interface [aftype] options | address ... 配置網卡IP地址: ifconfig IFACE IP/mask [up] ifconfig IFACE IP network MASK ip:顯示/配置路由,接口,策略路由和隧道 常見用法: 網卡添加多一個IP地址,并設置別名為eth0:0 ip addr IPADDR/MASK dev eth0 label 'eth0:0' 顯示網卡設備的信息: ip addr show 清除IP地址信息:ip addr flush dev interface 添加路由:ip route add TARGET via GW dev INTERFACE src SOURCE_IP 刪除單條路由: ip route del TARGET route:路由管理命令 查看路由條目:route -n 添加路由條目:route add route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] if] 刪除路由:route del route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] netstat :顯示網絡連接、路由表、接口數據統計、偽裝連接、組播成員關系 常用選項: -t : 顯示TCP協議相關已建立的連接(ESTABLISHED) -u : 顯示UDP協議相關已建立的連接(ESTABLISHED) -r : 顯示raw socket(裸套接字)相關已建立的連接(ESTABLISHED) -l : 處于監聽狀態的連接 -n : 以數字顯示IP和協議端口(默認顯示協議名稱,如SSH) -a : 顯示所有狀態的連接 -e : 擴展格式 -p : 顯示相關進程及PID 常用組合: -tan , -uan , -tnl, -unl,-tunlp ss:網絡狀態查看工具 常見選項: -t : tcp協議相關 -u : udp協議相關 -w : 裸套接字相關 -x : unix sock相關 -l : listen狀態的連接 -a : 所有 -n : 數字格式 -p : 相關的程序及PID -e : 擴展的信息 -m : 內存用量 -o : 計時器信息 常用組合: -tan , -tanl , -tanlp , -uan,-tunlp
10、11題見博客
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干; (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串; (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串; (4) 分別統計S開頭和K開頭的文件各有多少; #!/bin/bash #
for i in $(ls /etc/rc.d/rc3.d/ |grep "^K");do echo $i.stop let sum1+=1 done for j in $(ls /etc/rc.d/rc3.d/ |grep "^S");do echo $j.start let sum2+=1 done echo "the number of "K" is $sum1 " echo "the number of "S" is $sum2 "
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數; (2) 計算此些用戶的ID之和; #/bin/bash #
if [ $# -lt 1 ];then echo "at least one username" exit 0 fi for i in $*;do for j in $(id -u $i);do let sum+=$j done echo "id.$i = $(id -u $i) " done echo "sum=$sum"
14、寫一個腳本
(1) 傳遞一些目錄給此腳本; (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型; (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型; #!/bin/bash #
if [ $# -lt 1 ];then echo "at least one file" exit 1 fi for i in $*;do if [ -b $j ];then echo "$j is block file." let sum1+=1 elif [ -c $j ];then echo "$j is character file." let sum1+=1 elif [ -d $j ];then echo "$j is a directory." let sum1+=1 elif [ -f $j ];then echo "$j is a common file." let sum1+=1 elif [ -L $j ];then echo "$j is a symbolic link." let sum1+=1 elif [ -p $j ];then echo "$j is a pipe file." let sum1+=1 elif [ -S $j ];then echo "$j is a socket file." let sum1+=1 else echo "$j is unknown file." let sum1+=1 fi done echo "$sum1"
15-18 前面bash腳本總結過
原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/64078
贊,針對自己的理解再加上幾幅圖更能體現知識~最后一個腳本能加個使用說明會更好一點~繼續加油~