单片机/MCU论坛
直播中

嵌入式小能手

未满1年用户 363经验值
擅长:嵌入式技术
私信 关注
[文章]

嵌入式学习-常见的shell命令之网络相关命令

以下测试的网络环境为:虚拟机NAT模式,ubuntu设置为自动获取ip。
1、网络基本知识
具备基本的网络知识对于linux的学习非常重要,只有了解了这些基础知识,才能更好的学习网络相关指令、网络设置、网络服务等内容。
1)OSI七层模型
OSI模型即网络结构的标准模型,是由国际互联网标准化组织定义的网络分层模型,虽然由于模型的实现太复杂,并没有实际的七层网络协议栈,但对于理解网络协议内部的架构很有帮助,提供了很好的参考模型。
4-1.png
在OSI七层结构中,每一层规定了不同的特性,负责不同的功能:
应用层(Application Layer):用户接口,为应用程序提供访问网络服务的接口,为用户提供常用的应用。应用层使用报文进行数据交互,本层定义的规范有:Telnet、FTP协议、HTTP协议、域名DNS等。
表示层(Presentation Layer):对传输的数据进行解释交换,使主机之间通信的信息能互相理解。该层功能主要包括数据的压缩、加密、格式转换等,定义的标准有:ASCII、JPEG等。
会话层(Session Layer):对应用会话的建立、中止、会话过程的管理。
传输层(Transport Layer):该层为主机进程之间的通信提供服务,以数据段为单位,提供可靠或在不可靠的传输,为上层掩盖下层细节,保证会话层的数据信息能够传送到另一方的会话层,是计算机通信体系结构中关键的一层。主要的传输层协议是TCP和UDP。
网络层(NetWork Layer):负责将各个子网之间的数据进行路由选择,将数据从发送端主机发送到接收端主机,数据单位为数据包,主要用到的协议就是IP协议。
数据链路层(Data Link Layer):数据链路层将网络层交下来的 IP数据包组装成帧,在这一层利用通信信道实现无差错传输,在物理介质基础之上提供了可靠的数据传输。
物理层(Physical Layer):为上层提供物理介质,通信端点之间的硬件物理接口,设备之间以比特流进行传输。该层主要与硬件相关,确定了与物理接口的一些特性,如电气特性、功能特性等。
2)TCP/IP四层模型
TCP/IP传输协议,即传输控制/网络协议,也叫做网络通讯协议。是linux世界的网络基础,是在网络的使用中的最基本的通信协议。TCP/IP协议不是一个独立的协议,而是一组不同层次上的多个协议的组合,不同层次负责不同的功能。
4-2.png
网络接口层:对应的OSI参考模型中的物理层和数据链路层。TCP/IP本身并未定义该层的协议,只是规定了为上一层网络层提供访问接口,可以传输IP数据包,发送ARP请求和接收ARP应答。
网络层:对应OSI参考模型中的网络层,是TCP/IP协议栈的核心,将数据包进行分组并发往目的主机。主要解决主机到主机的通信问题,它所包含的协议涉及数据包在整个网络上的逻辑传输。该层有三个主要协议:IP(国际协议)、IGMP(互联网组管理协议)、ICMP(互联网控制报文协议)
传输层:对应OSI参考模型中的传输层,提供主机与主机之间对等层之间可以进行会话的机制,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:TCP传输控制协议、UDP用户数据报协议
应用层:将OSI参考模型中的会话层和表示层取消,将功能合并到到应用层,为用户提供所需要的各种服务。例如,基于TCP协议的FTP(文件传输协议)、Telnet协议、HTTP(超文本链接协议)等,基于UDP协议的TFTP、域名服务DNS、NFS等。
以FTP文件传输为例,在各层的数据传输过程如下:
4-3.png
3)IP
互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)主机或网络设备如果想要连接到Internet,就必须配置IP地址。应用范围最广泛的因特网地址使用IPv4的IP地址,长为32位,由4组十进制数组成,每组数值范围为0~255,中间用点号隔开。例如IP地址192.168.0.232。
IP地址的一般格式为:类别+网络标号+主机标识。其中类别用来区分IP地址的类型,网络号表示主机所在的网络,主机号表示主机在网络中的标识。IP地址通常分为五类:A类、B类、C类、D类、E类:
4-4.png
4-21.png
其中D、E类为特殊地址不对民用开发。对于ABC类地址划分了公有地址和私有地址,其中公有地址由Inter INC负责,这些IP需要进行注册申请。私有地址属于非注册地址,专门为组织机构内部使用,不能直接访问公网,是不同局域网内的计算机可以使用相同的IP地址
4-22.png
一些特殊的IP地址:
(一)主机号全为0的IP地址,不分配给任何主机,用于表示某个网络的网络地址
(二)主机号全为1的IP地址,不分配给任何主机,仅用作广播地址
(三)IP地址127.0.0.1为回环结构,用于本地进行软件测试
4)子网掩码
子网掩码是一个32位的二进制地址,用来屏蔽原来网络地址的划分情况,从而获得一个范围小的,可以实际使用的网络。子网掩码使用与IP地址相同的格式,由4组十进制数组成,其中值为0的部分对应IP地址的主机ID部分。
使用子网掩码,网络设备可以分析得出一个IP地址的网络地址和子网地址,以及主机地址。子网掩码和IP地址进行“与”运算后,所得到的值为网络地址和子网地址。
标准的子网掩码:
4-23.png
子网掩码便于网络设备的尽快寻址,区分本网段地址和非本网段的地址,划分子网,进一步缩小子网的地址空间,充分利用目前紧缺的IP地址。
举例:
比较两台主机的IP地址与子网掩码进行“与”运算后的值,如果结果相同,则说明两台计算机处于同一个子网络上。在以太网结构的网络中,同一子网内的两台计算机可以直接通信,而不用路由器对IP分组进行转发
4-24.png
两个主机的IP地址和子网掩码进行按位“与”运算,得到两个主机的网络地址均为11000000.10101000.00000000.00000000,即192.168.0.0,可知两个主机在同一个网络上。
5)端口号
端口是一个16位的整数,为了方便多种应用程序,区分不同应用程序的数据和状态,引入了端口。服务程序需要对某个端口进行绑定,客户端访问主机的此端口号与应用程序进行通信。
端口号可以由系统分配,也由用户自定义,一些常用的服务程序使用固定的静态端口号。
6)DNS(域名系统)
DNS是Domai Name Systerm的缩写,即域名系统,是一个用于TCP/IP应用程序的分布式数据库,用来提供IP地址和主机之间的映射信息。
DNS的名字空间具有树形的层次结构,结构如下
4-5.png
根域是特殊结点,没有任何结点,树形结构中的域名从最高层域名串联起来,中间用“.”分隔,顶级域名是域名的最后一部分。
顶级域名分为组织域(3个字符长的普通域)和国家/地区域(2个字符的域)。
组织域:
4-25.png
国家/地区域:
4-26.png
2、ifconfig网络配置命令
命令:ifconfig
功能:显示或设置网络设备。
参数:ifconfig [网络接口] [选项] 地址/参数
4-27.png
注意:
一、以上命令以ens33网口为例,可以更换为其他网络接口;
二、操作需要使用root用户权限;
三、该命令设置后不能够复位保存;
4-6.png
4-7.png
关闭ens33网口,需要用ifconfig -a指令看网卡信息。
elf@ubuntu:~$ sudo ifconfig ens33 down
elf@ubuntu:~$ ifconfig
elf@ubuntu:~$ ifconfig -a
4-8.png
4-9.png
打开ens33网口。
elf@ubuntu:~$ sudo ifconfig ens33 up
elf@ubuntu:~$ ifconfig
4-10.png
4-11.png
设置网卡信息。
elf@ubuntu:~$ sudo ifconfig ens33 192.168.0.51
elf@ubuntu:~$ sudo ifconfig ens33 broadcast 192.168.0.255
elf@ubuntu:~$ sudo ifconfig ens33 netmask 255.255.255.0
elf@ubuntu:~$ sudo ifconfig ens33 hw ether 22:22:22:22:22:22
4-12.png
3、ping网络通断检查命令
命令:ping
功能:检查网络的连接情况,通常情况下只能ping网段的主机,跨网段的ping操作需要进行特殊的路由设置
参数:ping [选项] IP地址/域名
4-28.png
注意:
如果是操作完上面小节的网络测试命令,需要先执行以下命令使网络配置生效。
elf@ubuntu:~$ systemctl restart network-manager.service
在进行ping测试前需要移除现有的网络配置,重新设置ip。
4-13.png
4-14.png
4-15.png
4-16.png
4-17.png
示例:
与电脑主机ip(192.168.0.64)进行ping测试。
4-18.png
4、route路由配置命令
命令:route
功能:添加,删除或查看网关参数
参数:route
4-29.png
查看路由:
elf@ubuntu:~$ route
添加路由:
elf@ubuntu:~$ sudo route add default gw 192.168.0.1
删除路由:
elf@ubuntu:~$ sudo route del default gw 192.168.0.1
4-19.png
5、nameserver设置DNS
命令:nameserver
功能:使用域名访问DNS,需要设置DNS
参数:nameserver xx.xx.xx.xx
该设置存放的位置在/etc/resolv.conf文件中:
4-20.png

更多回帖

发帖
×
20
完善资料,
赚取积分