day04 五层模型之间的通讯过程及Linux的目录相关内容

【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地址。这里又能够分红两种状况:       

  • 若是两台主机不在同一个子网络,没有办法获得对方的MAC地址,只能把数据包传送到两个子网络链接处的”网关”(gateway),让网关去处理。
  • 若是两台主机在同一个子网络,那么咱们能够用ARP协议,获得对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个”广播”地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的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

                  常见特殊目录:

                                .

                                ..

                                ~  

                                -

                  绝对路径

                               从根开始,写全

                  相对的路径

                               相对当前路径而言,你所要处理的目录;     

相关文章
相关标签/搜索