osi七层模型和TCP/IP五层模型
应用层————————————–|——|
表示层————————————–|应用层|
会话层————————————–|——|
传输层————————————–传输层
网络层————————————–网络层
数据链路层———————————-数据链路层
物理层————————————–物理层
osi的七层参考模型中,应用层、表示层和会话层对应于TCP/IP模型中的应用层,其他层次都是一一对应,应用数据从源主机的应用层开始,从上往下层层封装。达到目的端之后再从物理层开始层层解封装,直到到达相关的应用层接口。
OSI参考模型和TCP/IP的对应关系和对应的网络协议如图所示:
应用层:直接面向各种应用和服务,向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
表示层:对数据进行格式化,进行代码转换,数据加密。
会话层:与其他对等层建立或解除连接。
传输层:提供端对端的接口,提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
网络层:负责相邻计算机之间的通信。其功能包括三方面。
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
三、处理路径、流控、拥塞等问题。
数据链路层:提供主机之间的二层通讯,传输有地址的帧,对帧进行CRC校验,并抽取其中的ip包发送给网络层。
物理层:将物理的电信号转化为bit流,并将bit流数据传递给二层。
iproute家族命令
iproute家族主要包括的命令有:ip,route,ifconfig,netstat,ss,ifup/ifdown,hostnamectl
ifconfig:用于接口地址查询和管理,在centos7上已经被ip命令取代,不过仍然可以使用
语法结构:ifconfig [option] [interface]
常用选项:
-a:显示所有的网络接口信息,包括状态是down的
-s:简要地显示网卡信息
-v:显示网络接口所接收到的数据包的错误信息
关闭/启动网卡:
ifconfig INTERFACE up
ifconfig INTERFACE down(ssh登录的慎用)
修改IP地址:
ifconfig INTERFACE IPADDRESS
ifconfig INTERFACE IPADDTESS netmask NETMASK
ifconfig INTERFACE IPADDRESS netmask NETMASK broadcast BROADCAST
开启/关闭ARP协议:
ifconfig INTERFACE arp(开启)
ifconfig INTERFACE -arp(关闭)
设置最大传输单元(MTU):
ifconfig INTERFACE mtu MTU(不能小于1500)
route命令:
路由查看及管理
使用route命令之前需要先安装net-tools命令:yum install net-tools
语法结构:route [option] [argument]
常用选项:
-A:设置地址类型
-C:打印并将linux的路由缓存
-v:显示详细消息
-n:不执行DNS反向查找,直接显示数字形式的IP地址
-e:使用netstat格式显示路由表
-net:显示到一个网络的路由表
-host:显示到一个主机的路由
常用参数:
add:增加指定路由
del:删除指定路由
target:目的网络或目的主机
gw:设置默认网关
mss:set the MTU of the route to Mb
window W:set the TCP window size for connection over this route to W bytes
dev IF :force the route to accociated with the specified device
示例:
(1)添加网关
route add -net 192.168.99.0 netmask 255.255.255.0 dev ens33
//增加一条去往192.168.99.0/24网络的路由
route add -net 192.168.99.0 netmask 255.255.255.0 reject
//屏蔽一条路由
(2)删除路由
route del -net 192.168.99.0 netmask 255.255.255.0 dev ens33
//删除去往192.168.99.0/24网络的路由
route del -net 192.168.99.0 netmask 255.255.255.0 reject
//删除这条屏蔽路由
route del default gw 192.168.99.1
route add default gw 192.168.99.1,添加的路由默认metric为零
netstat:
显示网络连接状态,接口状态,路由表信息
语法结构:netstat [option]… | [grep] [PATTERN]
常用选项:
-a:显示所有选项,默认不显示LISTEN相关
-t:仅显示tcp相关选项
-u:仅显示udp选项
-n:仅显示数字类型的地址,而不显示主机名和用户名
-l:仅列出在listen状态的服务
-p:显示程序名
-r:显示路由信息,路由表
-e:显示扩展信息,-ee可以显示最多的信息
-s:按协议来进行统计显示
-c:每隔一个固定时间执行netstat命令
示例:
(1)显示所有端口
netstat -a
(2)显示所有TCP端口
netstat -at
(3)显示每个协议的统计信息
netstat -s
(4)显示pid和进程名称
netstat -p
(5)持续输出netstat信息
netstat -c
(6)显示路由信息
netstat -r
(7)找出特定程序信息
netstat -ap | grep ssh
ss命令:
可以用来获取socket的统计信息,类似于netstat,但能显示更详细的状态信息,比netstat更快捷高效。
nmcli:是centos7的网络管理命令工具
语法结构:nmcli [option] OBJECT {COMMAND | help}
示例:
(1)显示所有连接
nmcli con show;nmcli connection show
(2)显示所有活动连接
nmcli con show-active
(3)显示网络连接配置
nmcli con show “System ens33”
(4)显示设备状态
nmcli dev status
(5)显示网络接口属性
nmcli dev show ens33
(6)创建连接(默认使用dhcp)
nmcli con add con-name default type Ethernet ifname ens34
(7)删除连接
nmcli con del default,也可以直接删除配置文件
(8)创建静态连接(static)
nmcli con add con-name static ifname ens34 autoconnect no type Ethernet ip4 192.168.99.103/24 gw4 192.168.99.254
dstat命令:
dstat是可以取代vmstat,iostat,netstat和ifstat的一个功能强大的多功能产品。
特性:
(1)结合了vmstat,iostat,ifstat,netstat以及更多的信息
(2)实时显示统计信息
(3)启用或对监控项进行排序
(4)模块化设计
(5)使用python编写,易于后续功能扩展
(6)包含许多扩展插件,更易于增加监控项目
(7)支持CSV格式报表,能够导入到excel形成图形
语法结构:dstat [option]
显示字段含义:
total-cpu-usage:cpu的使用率
dsk/total:磁盘的读写总数
net/total:网络设备接收和发送总数
paging:系统的分页活动,数值越大代表系统使用了大量的交换空间,或者说明内存很分散,一般来说0,0是比较希望看到的数值
system:中断(int)和上下文切换(csw),较大的数值代表系统有大量的进程拥塞。
常用选项:
-c:支持cpu性能指标相关的统计数据
-d:显示disk相关的速率数据
-g:显示page相关的速率数据
-i:显示interrupt相关的速率数据
-l:显示load avarge相关的速率数据
-m:显示memory相关的速率数据
-n:显示网络收发数据的速率
-p:显示进程相关的统计数据
-r:io请求速率
-s:显示swap相关数据
-y:显示系统相关的数据,包括中断和进程切换
–top-cpu:显示最占用cpu的进程
–top-io:显示最消耗io的进程
–top-io:显示最消耗block io的进程
–top-mem:显示最消耗内存的进程
–ipc:显示进程间通信相关的速率数据
–raw:显示raw套接的相关的数据
–tcp:显示tcp套接字相关的数据
–udp:显示udp套接字相关的数据
–unix:显示unix sock相关的统计数据
使用until和while分别实现192.168.0.0/24网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
(1)使用until循环自动测试网络
#!/bin/bash
network=192.169.0
declare -i option=1
until [ “$option” -gt 254 ]
do
ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1
option=$option+1
if [ “$result” -eq 0 ]
then
echo -e “${network}.${option} is available”
else
echo -e “${network}.${option} is unavailable”
fi
done
(2)使用while循环自动测试网络
#!/bin/bash
network=192.168.99
declare -i option=1
while [ “$option” -lt 254 ]
do
ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1
if [ “$result” -eq 0 ]
then
echo -e “${network}.${option} is available”
else
echo -e “${network}.${option} is unavailable”
fi
option+=1
done
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95614