- 从通讯TCP/IP的构成传输,到IP地址的分类,再到局域网与广域网的设置。
概述
1、TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议和网络协议。这里我们一般使用TCP/IP代指整个TCP/IP 协议簇。这个协议簇其实包含很多其他的协议,但是这里TCP和IP是它们中的代表。
在日常生活中,我们可能已经习惯了使用手机和电脑来发送和接收信息了。但是,其实我们今天所有在网络上传输的信息,其底层大都是基于TCP或UDP协议来传输的(后面将详细解释它们的区别)。
随着通信的技术和电脑的发展,人们发现越来越多的通信方法被使用,但是由于方法众多,因此,通信双方的机器必须要有一套相同的协议,只有这样,发送方的信息才能被接收方收到,并且正确的解析出来。在这样的背景下,1984年,美国国防部开始起草和制定了一个这样的通信协议,于是TCP/IP就作为计算机标准的通信协议而诞生了。
(1)应用层
应用层在 TCP/IP 当中对应的就是 HTTP,FTP 这一类的协议。它们的主要作用就是把我们收到的数据交给应用程序解析。
信息本身:应用层
信息的载体:表示层
信息的包装:会话层
(2)传输层
TCP和UDP这些协议,这些协议用于保证通信的信息不会丢失。
信息的发送地址和接收地址:传输层
(3)网络层
在我们的 TCP/IP 协议里面,它对应的其实就是我们的 IP 协议,而 IP 协议的功能主要就是规定如何打包我们的 IP 地址和数据。
信息需要中转的地方:网络层
这个是一帧完整的网络数据的分层结构,也就是TCP头部结构,这里我们详细分析一下这帧数据,以及了解一下为什么要这样定义,以及它们的意义。
a.金钱本身:数据,也是最重要的
b.钱的数量信息:
16位首部校验和:你所写的钱的数量和防伪方法(防止钱被掉包或错误)
16位总长度:这里记录整帧的数据的大小(相当于你快递的总重量信息,当快递到达的时候,你只需要对比上面的重量和实际的重量,你就知道你的快递是否完整)。
c.你的地址:32位源IP地址
d.你朋友的地址:32位目的IP地址
4位首部长度:IP帧头部的长度。
4位版本号:这里是IP协议的版本,一般有IPv4和IPv6两种。(这里可以想象成你信封的地址是中文还是英文的,方便分配给不同的邮递员查看地址)
e.写信的时间:
f.你所使用的快递信息:
8位服务类型:这里包含了优先级和最小延时和吞吐量的信息(对应于快递,相当于你的快递是否是特快,是否保值,是否当面签收或有限制签收日期等信息)。
16位标识:唯一的标示主机的报文,如果IP报文在数据链路层被分片了,那么这里的所有的ID都是相同的。
3位标志字段:这里的标志是告诉计算机是否分片,当数据过大的时候需要分片发送。
13位片偏移:当你在发送一个大的数据是,该数据会被拆分,而这里记录的就是该帧相对于整个数据的偏移。(这里实际上相当于你一次性想要寄1万块钱,但是由于邮局每次只能寄1千,因此你要分10次寄,你每寄一次,就会在邮件上面写个第几次,而你朋友收到的时候也知道这个你第几次寄给他,你还剩多少钱没寄)。
8位生存时间TTL:这个记录的值是你的数据每经过一个路由器,该值就会减一,相当于你的实际的邮件每到一个邮局就盖一个章。当信件到达你朋友手里的时候,他可以根据上面的章的数量判断出邮件经过了几个邮局。
g.邮票
h.你的附件信息
i.其他隐藏信息(比如你的快递公司的交通工具,收件人员等等)
j.你和你朋友之间的约定,保证他收到了这些钱后给你回复(这里其实是你所使用的传输层的协议类型如:TCP UDP 等):8位协议
(4)网络接口层
信息的传输媒介:数据链路层
信息传输的方式:物理层
对于交通工具本身也都要遵守相应的交通规则,而这些交通规则其实就相当于我们的物理层的协议,只是这些协议不在我们的 TCP/IP 协议内。
参考:什么是DHCP?为什么要使用DHCP?DHCP是怎么工作的?DHCP是怎么工作的?
2、几个基本概念
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。
DHCP于1993年10月成为标准协议,其前身是BOOTP协议。DHCP协议由RFC 2131定义,采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,DHCP Server为网络上的每个设备动态分配IP地址、子网掩码、默认网关地址,域名服务器(DNS)地址和其他相关配置参数,以便可以与其他IP网络通信。
IP
上面是我根据理解,尽可能的使用我们能够理解的语言对一个完成的IP帧进行分析,我们可以看到,这个IP帧其实和我们邮件或快递的信息差不多,只不过我们的快递很多信息都隐藏掉了,因为快递大部分是人处理的,而人可以很轻易的得知其中所隐含的信息。但是,我们的电脑并不具备这样的智能,因此,我们必须要把所有可能用到的信息都完全的记录在一个IP帧上面,防止意外发生。
为此,人们划定了一个IP地址表,首先IP地址是由32bit组成的一个数字,这个数字为了便于区分,我们把它分为4个部分,每部分的大小从0-255,这样,一个IP地址就变成了下面的这种方式了 http://xxx.xxx.xxx.xxx 而这种方式还有一个优点,那就是我们可以根据地方的不同,把不同的位置赋予其不一样的含义。
例如:192.168.1.1 这个IP地址,我们可以把192当作一个网络号来处理,后面的168.1.1 就对应位一个主机号了。这样不同的地区的网络号不同,而每个网络号又可以有多台主机。
假如地区A的网络号是192,地区B的网络号是193.那么当地区A的主机a想和地区B的主机b进行通信,那么我们的交换机看到a发送的数据的IP地址是193开头的,于是就知道了他要和B地区的主机进行通信,那么后面的主机号它就不用解析了,直接将数据送到B地的交换机就行了。
于是B地的交换机在收到了193开头的地址的数据之后,一看,是本地的地址,于是就把这个数据发送到和本地地址对应的主机上面。
这样我们不同地区的主机就可以相互通信了,而由于历史原因,当初在划分地址的时候使用了以下的这个规则:
但是,随着网络的发展,我们发现现在世界上的计算机的数量早已超过了其设定的IP地址的数量的上限了,而且随着物联网设备的使用,该IP分类现在也早已不适用了。
因此,我们现在的世界的主要使用了以下几种办法来避免出现IP冲突的问题:
设定动态IP,只有在线的设备才分配IP地址,不在线的设备不分配IP地址(常见于手机等移动设备)。
设置局域网,每个局域网内有一个广域网接口,该接口使用路由器和外部联通,这样,外部的IP和内部的IP就可以实现隔离了,我们只需要保证广域网接口的IP不重复就可以了(常见于办公环境需要多台个人主机的情况)。
发展IPv6技术,由于IPv4使用的总的IP长度是32bit的,因此,其从根本上就固定了IP设备的数量上限。而IPv6使用的是64bit的长度,其数量级可以给地球上的每粒沙子都分配一个地址。这样就保证了其数量足够的大了(目前并不普及,只有大公司的网络支持)。
由于现实中已经基本不在使用上述的IP分类方法了,因此,现在的IP地址网段大都是我们的网络服务商从政府的相关机构申请得到的,所以,我们的网络的通信都要经过我们所在地网络服务商那里,我们使用的广域网IP地址也都是他给我们的分配的。
DHCP-设定动态IP
在一个使用TCP/IP协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,DHCP(Dynamic Host Configure Protocol,动态主机配置协议)应运而生了。这种网络服务有利于对校园网络中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
两台连接到互联网上的电脑相互之间通信,必须有各自的IP地址,由于IP地址资源有限,宽带接入运营商不能做到给每个报装宽带的用户都能分配一个固定的IP地址(所谓固定IP就是即使在你不上网的时候,别人也不能用这个IP地址,这个资源一直被你所独占),所以要采用DHCP方式对上网的用户进行临时的地址分配。
也就是你的电脑连上网,DHCP服务器才从地址池里临时分配一个IP地址给你,每次上网分配的IP地址可能会不一样,这跟当时IP地址资源有关。
当下线的时候,DHCP服务器可能就会把这个地址分配给之后上线的其他电脑。这样就可以有效节约IP地址,既保证了网络通信,又提高IP地址的使用率。
它是TCP/IP协议簇中的一种,主要是用来给局域网客户机分配动态的IP地址。缺点:DHCP存在较多的广播开销,对于用户量较多的城域网会造成网络运行效率下降和配置困难;另一方面,仍然无法解决用户自行配置IP地址的问题。
DNS
网络出现的早期 是使用IP地址通讯的,那时就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件 ( Linux和windows也继承保留了这个文件)。这个文件中记录这主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。
但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪负重,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的演化,直到现今的多层架构体系
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
DNS的分布数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space),如下图所示树的最大深度不得超过127层,树中每个节点都有一个可以长达63个字符的文本标号。
数据的流动
我们都知道,现在的一个完整的网络系统构成一般都要包含以下几个部分:
1、计算机
2、交换机
3、路由器
一般我们使用的家用路由器大部分由主要由处理芯片和网络接口两部分组织:
处理芯片:主要负责处理和转发网络接口传进来的数据。
网络接口:一般分为WAN口了LAN口,WAN口主要是外接广域网的,LAN口主要是接内部局域网的。
(1)路由表
那么什么是路由表呢,其实它就是一个表,这个表里记录的一些信息,我们的电脑可以根据这些记录的信息把我们的想要发送的数据发送到指定的地址。这里我们还以寄邮件为例,这里的路由表就相当于我们的邮件需要从A地发到B地,此时呢你的邮件在A地的邮局,A地的邮局有一张表上面记录着A地到B地可以途径的几个地方,比如从A到B可以有如下几种走法:
(2)子网掩码(属于路由表里面的数据)
既然要划分子网,要有一个规则,告诉路由器,IP的哪一部分是表示子网,哪一部分表示我在这个子网里面具体的地址
所以,实际上IP细来讲又分为三部分:网络部分(network)子网段部分(subnetwork)和主机部分(host)
一般大家喜欢把网络部分和子网部分合并成为网络地址(网络号),把子网看做是网络的一部分,主机部分称为主机地址(主机号) 通俗理解:
网络号(subnetwork),表示我住哪个小区
主机号(host),表示我家门牌号是多少
广域网 网关
网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层–应用层。
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。
网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,
网络A的IP地址范围为
“192.168.1.1~192. 168.1.254”,
子网掩码为
255.255.255.0;
网络B的IP地为
“192.168.2.1~192.168.2.254”,
子网掩码为
255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。
局域网 交换机
NAT
NAT模式:相当于宿主机再构建一个局域网,虚拟机无法和本局域网中的其他真实主机进行通讯。只需要宿主机器能访问互联网,那么虚拟机就能上网,不需要再去配置IP地址,子网掩码,网关。
虚拟机和主机能够互相ping通。
NAT(Network Address Translation),是指网络地址转换,1994年提出的。
当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。
桥接模式
桥接模式:VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。但是需要我们手动去配置IP地址和网关,IP地址要与主机的无线网的IP段对应,子网掩码,网关,DNS都需要与宿主机保持一致。下面是我将虚拟机从NAT模式换成桥接模式对配置文件做的一些改动,重启网络后,虚拟机可以访问自身静态IP,访问公网,宿主机和虚拟机也可以相互ping通。
实操
注意,以下这篇是参考的:
参考:VMware虚拟机三种网络模式详解
该博主对其进行标注,修改后可读性更强:
VMware虚拟机NAT(地址转换模式)
1、NAT模式
在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。
然后,进入系统编辑网卡配置文件,命令为vi /etc/sysconfig/network-scripts/ifcfg-eth0
具体配置如下:
DCHP的设置: