【OSI七层模型、TCP/IP五层模型---------协议概述(图)】git
协议:每一层都是为了完成一种功能。为了实现这些功能,就须要你们都遵照共同的规则。正则表达式
越下面的层,越靠近硬件;越上面的层,越靠近用户。windows
应用层协议有:服务器
SMTP:简单邮件传输协议 Telnet:远程登陆协议 网络
SNMP:简单网络管理协议 FTP:文件传输协议socket
LPD:行式打印机守护进程 TFTP:简单文件传输协议spa
NFS:网络文件系统协议 HTTP: 超文本传输协议 .net
五层之间的通讯过程:对象
物理层——物理层就是把电脑链接起来的物理手段(以用光缆、电缆、双绞线、无线电波等方式),它主要规定了网络的一些电气特性,做用是负责传送0和1的电信号。blog
数据连接层——单纯的0和1没有任何意义,必须规定解读方式,数据连接层肯定了0和1的分组方式。
互联网层——以太网在互联网层中占主导地位,以太网规定,一组电信号构成一个数据包,叫作”帧”(Frame)。每一帧分红两个部分:标头(Head)和数据(Data)。“标头”包含数据包的一些说明项,好比发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。以太网规定,连入网络的全部设备,都必须具备”网卡”接口。数据包必须是从一块网卡,传送到另外一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫作MAC地址(且独一无二)。有了MAC地址,就能够定位网卡和数据包的路径了。以太网采用了一种很”原始”的方式,它不是把数据包准确送到接收方,而是向本网络内全部计算机发送,让每台计算机本身判断,是否为接收方。
上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的”标头”,找到接收方的MAC地址,而后与自身的MAC地址相比较,若是二者相同,就接受这个包,作进一步处理,不然就丢弃这个包。这种发送方式就叫作”广播”(broadcasting)。有了数据包的定义、网卡的MAC地址、广播的发送方式,”连接层”就能够在多台计算机之间传送数据了。
可是,这样缺点颇多,以太网以“广播”的方式,导致全部成员人手一“包”,不只效率低,并且局限在发送者所在的子网络格里。所以,必须找到一种方法,可以区分哪些MAC地址是否属于同一个子网络。若是是同一个子网络,就采用广播方式发送,不然就采用”路由”方式发送。(”路由”的意思,就是指如何向不一样的子网络分发数据包。)遗憾的是,MAC地址自己没法作到这一点。(它只与厂商有关,与所处网络无关。)这时候诞生了“网络层”,它的做用是经过网络地址,使得咱们可以区分不一样的计算机是否属于同一个子网络。(网络地址简称地址)自此每台计算机出现了两种地址,一种是MAC地址【将数据包送到该子网络中的目标网卡(后执行)】,一种是网络地址【肯定计算机所在的子网络(先执行)】。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一块儿。
IP协议:规定网络地址的协议,叫作IP协议。它所定义的地址,就被称为IP地址。目前,普遍采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成。
习惯上,咱们用分红四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255。互联网上的每一台计算机,都会分配到一个IP地址。这个地址分红两个部分,前一部分表明网络,后一部分表明主机。好比,IP地址172.16.254.1,这是一个32位(十进制与二进制的转换)的地址,假定它的网络部分是前24位(172.16.254),那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分一定是相同的,也就是说172.16.254.2应该与172.16.254.1处在同一个子网络。
可是,问题在于单单从IP地址,咱们没法判断网络部分。仍是以172.16.254.1为例,它的网络部分,究竟是前24位,仍是前16位,甚至前28位,从IP地址上是看不出来的。那么,怎样才能从IP地址,判断两台计算机是否属于同一个子网络呢?
这就要用到另外一个参数”子网掩码”【子网络特征的一个参数】(subnet mask)。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分所有为1,主机部分所有为0。好比,IP地址172.16.254.1,若是已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,咱们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,不然为0),而后比较结果是否相同,若是是的话,就代表它们在同一个子网络中,不然就不是。好比,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?二者与子网掩码分别进行AND运算,结果都是172.16.254.0,所以它们在同一个子网络。
总结一下,IP协议的做用主要有两个,一个是为每一台计算机分配IP地址,另外一个是肯定哪些地址在同一个子网络。
IP数据包(分为标头和数据):根据IP协议发送的数据,就叫作IP数据包(其中一定包括IP地址信息)。咱们把IP数据包直接放进以太网数据包的”数据”部分,所以彻底不用修改以太网的规格。这就是互联网分层结构的好处:上层的变更彻底不涉及下层的结构。
“标头”部分:主要包括版本、长度、IP地址等信息
”数据”部分:则是IP数据包的具体内容
ARP协议:由于IP数据包是放在以太网数据包里发送的,因此咱们必须同时知道两个地址,一个是对方的MAC地址,另外一个是对方的IP地址。一般状况下,对方的IP地址是已知的,可是咱们不知道它的MAC地址。因此,咱们须要一种机制,可以从IP地址获得MAC地址。这里又能够分红两种状况:
总之,有了ARP协议以后,咱们就能够获得同一个子网络内的主机MAC地址,能够把数据包发送到任意一台主机之上了。
传输层——有了MAC地址和IP地址,咱们已经能够在互联网上任意两台主机上创建通讯。此时,咱们还须要一个参数,表示这个数据包到底供哪一个程序(进程)使用。(好比,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,仍是表示在线聊天的内容?)这个参数就叫作”端口”(port),它实际上是每个使用网卡的程序的编号。每一个数据包都发到主机的特定端口,因此不一样的程序就能取到本身所须要的数据。
端口:是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不论是浏览网页仍是在线聊天,应用程序会随机选用一个端口,而后与服务器的相应端口联系。
“传输层”的功能,就是创建”端口到端口”的通讯。相比之下,”网络层”的功能是创建”主机到主机”的通讯。只要肯定主机和端口,咱们就能实现程序之间的交流。所以,Unix系统就把主机+端口,叫作”套接字”(socket)。有了它,就能够进行网络应用程序开发了。
UDP协议:如今,咱们必须在数据包中加入端口信息,这就须要新的协议。最简单的实现叫作UDP协议,它的格式几乎就是在数据前面,加上端口号。UDP协议的优势是比较简单,容易实现,可是缺点是可靠性较差,一旦数据包发出,没法知道对方是否收到。
(不可靠)UDP数据包:由【”标头”(主要定义了发出端口和接收端口)】和【”数据”(具体的内容)】两部分组成。把整个UDP数据包放入IP数据包的”数据”部分。UDP数据包很是简单,”标头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
(可靠)TCP协议:为改进UDP,TCP协议就诞生了。这个协议很是复杂,但能够近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。若是有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。所以,TCP协议可以确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。
TCP数据包和UDP数据包同样,都是内嵌在IP数据包的”数据”部分。TCP数据包没有长度限制,理论上能够无限长,可是为了保证网络的效率,一般TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包没必要再分割。
应用层——做用是规定应用程序的数据格式(解读各个程序信息,因此会事先规定)。(举例来讲,TCP协议能够为各类各样的程序传递数据,好比Email、WWW、FTP等等。那么,必须有不一样协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。)
这是最高的一层,直接面对用户。它的数据就放在TCP数据包的”数据”部分。所以,如今的以太网的数据包就变成下面这样。
发送这个包,须要知道两个地址:对方的MAC地址和IP地址
有了这两个地址,数据包才能准确送到接收者手中。可是,前面说过,MAC地址有局限性,若是两台电脑不在同一个子网络,就没法知道对方的MAC地址,必须经过网关(gateway)转发。
上图中,1号电脑要向4号电脑发送一个数据包。它先判断4号电脑是否在同一个子网络,结果发现不是(后文介绍判断方法),因而就把这个数据包发到网关A。网关A经过路由协议,发现4号电脑位于子网络B,又把数据包发给网关B,网关B再转发到4号电脑。
1号电脑把数据包发到网关A,必须知道网关A的MAC地址。因此,数据包的目标地址,实际上分红两种状况:
发送数据包以前,电脑必须判断对方是否在同一个子网络,而后选择相应的MAC地址。
这时候咱们就须要拥有上网功能,须要记住的就是一点:不论是”静态IP地址”仍是”动态IP地址”,电脑上网的首要步骤,是肯定四个参数。
*本机的IP地址
*子网掩码
*网关的IP地址
*DNS的IP地址
https://blog.csdn.net/qq_20363225/article/details/79698084
Linux的目录结构
一、Windows下的目录结构(windows分区)
Linux分区
读取boot分区方式cd/boot
二、Linux(Ubuntu)的目录结构
树状结构;一切文件从根开始;
关于磁盘分区与挂在的命令(/etc/fstab--开机自动挂载)
df-h 查看磁盘挂载状况
【dd if=/dev/zero of=/root/image bs=1024k count=100 //建立环回设备(虚拟磁盘)】
fdisk 【磁盘文件】 --作磁盘分区;
sd--scsi类型的磁盘(hd IDE)
a--第一块磁盘(b,c。。。)
1--第一个分区(2,3,4...)
mkfs--格式化(建立文件系统)
mount--磁盘挂载
umount--将磁盘卸载下来
Linux的磁盘管理
fdisk--分区(就是划分逻辑边界)写入文件系统;
mkfs-t//指定文件系统格式;
mount要挂载的设备 挂载点【存储设备在Linux系统上必须挂载)
umount 要挂载的设备/挂载点
三、Linux的主要目录
/
/bin--存放命令文件
/boot--存放系统启动文件(内核、grub程序)
/cdrom--光盘目录
/dev--存放设备文件 (c字符设备、d块设备)
/etc--大部分的系统配置文件
/home--普通用户的家目录
/lib /lib64--库文件(.so结尾的文件)
/lost+found--非正常关机下的碎片文件(空磁盘挂载上来,默认就会 有这个目录)
/mnt /media--专门提供挂载的挂载点
/opt--第三方软件的安装目录
/proc /sys--进程、系统目录(默认是空的,只有启动后才会存放对应进程和系统文件)
/root--root用户的家目录
/sbin--存放命令的目录
/tmp--临时文件存放目录
/usr--常见软件安装目录
/var--文件会随时更改的目录
目录的常见命令
一、查看目录内容
终端使用技巧;
自动补全
ls 查看文件内容;
二、搜索使用过的命令
Ls
文件通配符:
* -- 任意长度的任意字符
?-- 任意一个字符
[] -- 取值范围(只取范围中的一个字符)
sd[abc] -- sda sdb sdc
[a-f] -- sd[a-f] sda sdb...sdf
^ -- 托字符,指定以某个字符开头
$ -- 以什么字符结尾
grep命令 -- 行过滤
grep[选项][匹配的字符][对象]
查看文件中的匹配,过滤某一行:
-v 反选
-i 忽略大小写
^$ 空白行
正则表达式 一、字符串匹配。[] [^] [:digit] [:alpha:]...二、次数匹配 * ? \{m\} \{m,n\} \{0,n\} \{m,\} 三、位置锚定 ^ $ \b <\ \b /> 四、分组\(ab\)* abababab ab* abbbbb
二、切换目录
CD
常见特殊目录:
.
..
~
-
绝对路径
从根开始,写全
相对的路径
相对当前路径而言,你所要处理的目录;