Linux learning note
1、计算机网络
1.1、IP地址和MAC地址
I P IP IP地址指的是互联网协议地址 ( I n t e r n e t (Internet (Internet P r o t o c o l Protocol Protocol A d d r e s s ) Address) Address), M A C MAC MAC地址指的是媒体存取控制位址 ( M e d i a (Media (Media A c c e s s Access Access C o n t r o l Control Control A d d r e s s ) Address) Address)。 I P IP IP地址是服务器分配的,而 M A C MAC MAC地址则是计算机出产配置好的,具有唯一性。从通俗理解的角度,如果把电脑一看成个人,那 I P IP IP地址就是这个人的居住地点, M A C MAC MAC地址就是这个人的名字。
无论是 I P IP IP地址,还是 M A C MAC MAC地址,都具备充当交流标识的作用。即,让参与通信的计算机或服务器,知道信息从何而来,又要到哪去。早期互联网还没发展出 I P IP IP地址,就只能使用 M A C MAC MAC地址作为交流标识。但现在 M A C MAC MAC基本只用在局域网内的计算机之间相互通信,而与外界的交互基本采用 I P IP IP地址协议。
我们现在采用的 I P IP IP地址,通常是指 I P v 4 IPv4 IPv4地址,它由 4 4 4个 8 B i t s 8Bits 8Bits的二进制的数组成(会算换成十进制,如: 192.168.51.3 ) 192.168.51.3) 192.168.51.3)。同时它也被分为私有 I P IP IP和公有 I P IP IP,两种 I P IP IP承当的任务不同。通常来说,一个公网 I P IP IP下会衍生出许多个私网 I P IP IP。
打个比方,私有IP 记录了某一个人的居住地的门牌号,但并未交代此人所住在城市。公有IP 则负责记录了这个人所居住的城市,但不记录此人具体的门牌号。因而一台计算机想访问互联网需要跟刨洋葱一样一层层的刨开,而保证这个递进过程无差错的东西便是我们接下来要讲的 N A T NAT NAT协议。
对比以上两个图,由于每一个每台计算机都有自己的 M A C MAC MAC地址,所以如果全部使用 M A C MAC MAC地址来进行通信,那当计算机的数量激增的时候,势必导致交换机的负担过重。若使用 I P IP IP地址则可以把无数计算机分为一个个局域网进行管理,高效且节约资源。
1.2、NAT、端口
- NAT :前文提到一台计算想要访问互联网,需要私网 I P IP IP和公网 I P IP IP在 N A T ( N e t w o r k A d d r e s s T r a n s l a t i o n ) NAT(Network Address Translation) NAT(NetworkAddressTranslation)协议下的配合使用。接下来就具体介绍一些这个过程,首先我们先假设有一台家庭计算机想访问互联网,且此时这个家庭的光猫有一个公网IP。如图:
那么当计算机访问互联网时,会首先把访问信息传递到家庭光猫。此时家庭光猫会为其分配一个端口,并把该计算的私有 I P IP IP记录进一张表格中,然后再用自己的公有 I P IP IP作为源地址(发送请求的 I P IP IP地址)去访问互联网。同理,当互联网信息传递进来的时候,家庭光猫会根据刚刚所记录的 I P IP IP和端口信息,把数据传回给计算机。这个过程就叫 N A T NAT NAT,且用于记录端口信息、私有 I P IP IP以及目的地址(接受请求的 I P IP IP地址)的表格就叫 N A T NAT NAT表格。
举个例子:你(计算机)想约小红(互联网)出来,但又感到不妥。便叫了小明(光猫)以他自己的名义把小红约出来。当小明把小红约出来之后,再让小明把小红带到你身边。 - 端口(port) :上面提到当计算机要访问外界互联网时,光猫会为其分配一个端口并记录下该计算机的私有 I P IP IP,其中的端口就是用来辨识具体是计算机中哪个应用程序发送请求的。
举个例子:快递员通过 I P IP IP地址,把快递送到你家,但还需要通过端口信息,才能知道是你们家中哪个人买的。
1.3、动态IP、静态IP、DHCP
- 动态 I P IP IP指计算机的 I P IP IP地址由光猫随机分配,一般来说计算机都是默认启用动态 I P IP IP的,因为这不容易造成 I P IP IP冲突。但动态IP的缺点也显而易见,每次计算机想要与其他计算机通信的时候,都得去查一遍自己的 I P IP IP。为了避免这种情况,静态IP就应运而生。
- 静态 I P IP IP要求光猫永远分配给计算机相同的 I P IP IP,在许多场合,静态IP可以极大的提高通信效率。
- D H C P ( D y n a m i c DHCP(Dynamic DHCP(Dynamic H o s t Host Host C o n f i g u r a t i o n Configuration Configuration P r o t o c o l ) Protocol) Protocol)是一个支持动态IP的协议,同时该协议也配置了子网掩码、默认路由的 I P IP IP以及域名服务器的 I P IP IP地址。
1.4、子网掩码、网关地址、DNS服务器
- 子网掩码 ( N e t m a s k ) (Netmask) (Netmask):如果想判断计算机A和计算机B是否在同一局域网内,可以用计算机 A 、 B A、B A、B的 I P IP IP地址和其自身的子网掩码做与(&)运算,如果它们的结果相同,则视为在同一子网中(局域网)。这样两个计算机之间的通信就不必通过网关了,且两个计算之间可以互ping。一般子网掩码都是: 255.255.255.0 255.255.255.0 255.255.255.0
- 网关 ( G a t e w a y ) (Gateway) (Gateway):比如WiFi、光猫之类的都属于网关,它是计算机与外界连通的网络桥梁。
- D N S DNS DNS服务器 ( D o m a i n (Domain (Domain N a m e Name Name S e r v e r ) Server) Server):其存在的意义是将域名解析成 I P IP IP地址。比如 w w w . b a i d u . c o m www.baidu.com www.baidu.com这些都属于域名,它得通过 D N S DNS DNS解析成百度服务器的 I P IP IP地址之后,计算机才能正常访问。
1.5、TCP、UDP、ftp、http
从网络传输层面(通信方式)可分为:
- TCP: TCP(Transmission Control Protocol) ,又称传输控制协议。在通信之前需要通信双方进行"三次握手四次挥手"之后才能开始通信,即确保双方准备就绪再通信,故而这种通信方式也归为可靠通信。
- UDP: UDP(User Datagram Protocol),又称用户数据报协议。它属于不可靠协议,即发送方只管发送报文,直接报文能否被接受则一概不负责。
从网络应用层面(通信内容)可以分为:
- ftp: ftp(File Transfer Protocol),又称文件传输协议。由此衍生协议的协议有sftp, ftps等等。它是基于TCP通信基础上的一种应用层协议,通常用来传输一些文件、文本之类的数据。比如Filezilla用的就是这一类的协议。
- http: http(Hyper Text Transfer Protocol),又称超文本传输协议。它也是基于TCP通信基础上的应用层协议,不仅可以传输数字,还可传输静态图、动态图、视频等内容。'
以上只是我对一些常见的协议进行笼统的分类和简单概括,事实上各种网络协议数不胜数,特别是应用层的协议更是令人眼花缭乱。
2、虚拟机的网络管理
2.1、桥接模式
桥接模式(Bridge)无论是否有网线都能建立,一般虚拟机的桥接模式无需网线,而开发板需要网线。在这种模式下,计算机相当于一个交换机,让光猫为虚拟机分配IP地址。所以此时计算机和虚拟机在网络中属于同一个层级的,即虚拟机和计算机的IP应当在同一网段,唯一特殊的是虚拟机和外界交互的数据得经过计算机中转一下。
简而言之,在桥接模式下,虚拟机把计算机当成一个数据中转站,但从 i p ip ip的角度来看,它相当于一台独立的计算机。
2.2、NAT模式
第一小节简单介绍过NAT大概是一个数据转发协议,它允许光猫以自己的名义帮计算机去访问外界互联网。而在此处的NAT也起到同样的作用,只不过此时变成虚拟机借用计算机的名义去联网。如图,虚拟机借用计算机的名义去访问光猫,光猫再用自己的名义去访问外界互联网。
总的来说,NAT模式下的虚拟机逐渐沦为计算机的附庸。相比于桥接模式,它没能和计算享有同个层级的 i p ip ip。
2.3、仅主机模式
仅主机模式(Host-Only)下的虚拟机无法连接互联网,它仅允许虚拟机和计算机之间的通信。相比于NAT模式,仅主机模式显然更加封闭,它将虚拟机和外界完全隔离开了。
2.4、总结
本小节介绍了虚拟机和外界通信的三种方式,分别是桥接模式、NAT模式、仅主机模式。它们三者的共通点在于虚拟机想与外界交流都必须经过计算机,区别仅在于以什么身段居于计算机之下。桥接模式下虚拟机只当计算机为数据中转站,NAT模式下虚拟机把计算机当成了对外的窗口,而仅主机模式下则完全依赖主机。
最后,虚拟机网络部分参考了这篇文章:桥接模式、NAT模式和仅主机模式