一.基本定义
-
网络
网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。以网络节点分类可以分为局域网和广域网。 -
IP地址
计算机的ip地址也分成两部分,分别为网络标识和主机标识。
同一个物理网络上的所有主机都用同一个网络标识,ip地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络标识;另一部分用以标明具体的节点,即主机标识,也就是说某个网络中的特定的计算机号码。也就是说IP地址可以用来标识网络也可以用来标识设备。 -
Mac地址
mac地址是每个设备出厂时就固定好的,不会变换,能唯一标识一台设备。 -
集线器(HUB)
集线器是物理层的设备,它会将网络内某一使用者传送之封包传至所有已连接到集线器的电脑。
集线器采用了CSMA/CD(载波帧听多路访问/冲突检测)协议。避免网络中有多人发消息。 -
交换器
交换器是数据链路层的设备,它则只会将封包传送到指定目的地的电脑(透过ARP协定,维护一张端口和mac地址的交换表),相对上能减少数据碰撞及资料被窃听的机会。交换器更能将同时传到的封包分别处理,而集线器则不能。 -
路由器
路由器又可以称之为网关设备,通常位于网络层。转发是建立一张路由表。
计算机之间的通信只能在具有相同网络地址的IP地址之间进行,如果想要与其他网段的计算机进行通信,则必须经过路由器转发出去。
路由器的多个端口可以连接多个网段,每个端口都有一个ip地址,且ip地址的网络地址与所连网络的网络地址一致。所以说路由器是可以同时归多个网络的。 -
防火墙
所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。
防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
二:网络通信数据传输
PC4向PC3传输数据
PC:计算机;Hub:集线器;Switch:交换机;Router:路由
发送端(封装):
(1)应用层准备要传输的数据;
(2)传输层把文件进行分段并编号;(数据段)
(3)网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
(4)数据链路层把每个数据加上MAC地址;两种情况:(数据帧)
使用自己的子网掩码,判断自己和目标地址分别在哪个网段,若在同一个网段(不过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧;如果子网掩码不是一个网段(用与运算),通过ARP协议广播的方式得到路由器(网关)的MAC地址,然后把数据通过交换机发送到路由器M2,因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF。
(5)物理层把数据帧变成数字信号(bit流)
接收端(解封):
(1)交换机Hub0接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的,要去哪。
(2)路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容。
(3)路由器M2到M3是点对点通信,遵守PPP协议。
(4)PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来。
三:DNS是怎么工作的
我们上网从打开浏览器开始,输入网址,按下回车,浏览器显示给你一个漂亮的网页,一切看上去都是这样自然。ip是定位网络中主机的地址的。只有知道了ip地址才能访问对方主机也就是访问服务器,如果连服务器都无法访问,也就无从谈起怎么得到网页了。
DNS服务器:将网址解析成ip地址。可以理解为输入一个网址,返回一个ip,当然它也不单单是为了web应用而生,邮件应用也要靠它,输入一个邮件地址,返回一个优先级和邮件服务器网址和ip(优先级是因为有可能配置多级服务器)
那么DNS到底是怎么工作的,身为程序员都有一颗追求底层的心。必须要一追到底!
1.如果要解析一个从未解析过的网址,首先通过操作系统的Socket库中方法将网址信息组装成一条请求消息发送到这台服务器上,然后DNS服务器根据这条消息,查询内置的表格,返回对应的结果。
首先了解一下请求消息的格式:网址+class+类型
网址就是你要转换成ip的网址,不用解释,class代表internet,现在基本都是IN,因为上世纪还存在除了internet之外的网络,类型代表是请求类型,到底是web应用的请求还是邮件应用的请求,web应用类型为A,address,邮件应用类型为MX。
然后DNS服务器中有一个表格
网址 class 类型 响应数据
www.baidu.com IN A X.X.X.X
XXX@163.COM IN MX 10 www.sadsd.com
www.sadsd.com IN A Y.Y.Y.Y
然后根据请求消息的值去和这个表一一对应,返回对应的响应结果。如果是MX类型,返回优先级和邮件服务器网址,网址还会自动解析成ip地址
网址得组成和公司结构类似,上级管理一堆下级。在网址上就是com域下面得子域baidu域,baidu域下面子域www域。每一个域由一个DNS服务器管理(其实可以一个DNS管理多个域),上层域保管下层域对应的DNS服务器的ip,这样我们可以根据最高的域顺藤摸瓜的找到对应的网址,从而找到对应ip。例如www.baidu.com 首先找com,然后baidu,再找www
但是这又有个问题,很多网址的结尾是不一样的,例如cn ,com,org。难道我要保存这些域的DNS所有服务器的IP嘛,我去哪里找他们,其实很多网址我们书写其实是不正确的,例如www.baidu.com正确写法应该是www.baidu.com.最后有个.这个点代表的根域,这个根域是最高域,管理着com,org,cn。这个根域也对应的根DNS服务器,全球一共有13个根服务器,这里是服务集群,不是说只有13个服务器(互联网的去中心化很重要啊)。
这些根服务器已经内置到了各个计算机当中,最开始首先访问最近的DNS服务器如果找不到,就开始找根服务器,然后顺藤摸瓜的往下找,直到找到然后返回ip。值得注意的是每次请求和响应都是最近这个DNS服务器去请求,最终也由这个DNS服务器查询到ip地址返回给客户端。找到了之后DNS服务器和本地会缓存一份,下次再用就不需要重新查找。
原文链接:https://blog.csdn.net/qq_33330687/article/details/80970612