网络分层
Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,从上至下它们分别是:应用层(HTTP)、传输层(TCP)、网络层(IP)和链路层(Mac)。
网络协议
网络上的计算机之间又是如何交换信息的呢?就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信。
互联网
互联网其实就是一台台电脑通过网线或者光纤相互连接在一起。相互之间可以进行信息传递!这样就组成了一个巨大的网络!
链路层
两台电脑之间究竟是怎么通信的呢?
网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址。
查看自己电脑的Mac地址
开始-运行-cmd-输入ipconfig /all;
上面的物理地址就是Mac地址!我们可以准确的知道自己的Mac地址。那么怎么知道别人的Mac地址呢?答案是通过ARP协议;
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址(Mac地址)的一个TCP/IP协议。
有了传输另一方的Mac地址,互联网是怎么把数据传递给另一方的呢?不是直接通过Mac地址直达。而是通过广播(broadcast)的方式向局域网内所有的电脑都发送数据。其他电脑匹配接收的Mac地址。如果信息的Mac地址等于自己的Mac地址就接收这条信息!
网络层
**它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。****规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。**只有俩台电脑处于同一个子网络相互之间才能通过广播的方式传递信息!如果俩台电脑不处于同一个子网络那么信息将"路由"方式发送!路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。
查看自己电脑的IP地址
开始-运行-cmd-输入ipconfig /all;
可以看到一个IPv4地址就是我们电脑的IP地址172.16.254.1;
Ip地址由俩部分组成,前一部分代表网络,后一部分代表主机,如果俩个Ip地址网络部分一致就证明处于同一个子网络就可以通过广播的方式传递信息否则就通过路由的方式!
仅从Ip地址上我们无法确定IP地址哪部分是代表网络。那么怎么判断IP地址的网络部分呢,这就要用到另一个参数"子网掩码"
子网掩码
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码有0.0.0.0、255.0.0.0、255.255.0.0、255.255.255.0和255.255.255.255共五种。采用这种格式的子网掩码每个网络中主机的数目相差至少为256倍,不利于灵活根据企业需要分配IP地址。比如,一个企业有2000台计算机,用户要么为其分配子网掩为255.255.0.0,那么该网络可包含65534台计算机,将造成63534个IP地址的浪费;要么用户为其分配8个255.255.255.0网络,那么必须用路由器连接这个8个网络,造成网络管理和维护的负担。
例题1、IP地址:192.168.23.35 子网掩码:255.255.0.0
网络ID:192.168.0.0 主机ID:23.35?
例题2:IP地址:192.168.23.35 子网掩码:255.255.255.0?
网络ID:192.168.23.0 主机ID:35
查看自己电脑的子网掩码
开始-运行-cmd-输入ipconfig /all;可以看到一个子网掩码255.255.255.0;
根据两台电脑的IP地址和子网掩码我们就可以判断出2台电脑是否处于同一个子网络!
方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。
传输层
有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。
接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?
也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做"端口"(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
"端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
"传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
网关
俩台电脑处于不同子网络传递信息需要用到路由方式。路由就需要用到网关。网关(Gateway) [1] 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。网关实质上是一个网络通向其他网络的IP地址。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。网关也被称为 IP路由器。
DNS
通常我们访问电脑网址比如www.baidu.com;这叫做域名,而我们传递信息需要的是电脑IP地址,域名到IP地址的相互转换就需要用到DNS解析。电脑上网也必须配置DNS ip地址才能上网。
电脑上网必备条件
- 本机的IP地址
- 子网掩码
- 网关的IP地址
- DNS的IP地址
总结
最后总结一下我们一个网页的流程。比如我们访问www.baidu.com;访问一个网页本质是访问另一台电脑进行相互之间的信息交互。首先电脑有DNS ip地址。可以访问DNS服务解析www.baidu.com到IP地址14.215.177.39:443;然后通过我们自己电脑与百度服务器的IP地址和子网掩码判断是否处于同一个子网络。如果处于同一个子网络那么采用广播的方式传递信息。如果不处于同一个子网络。那么就把信息交给网关的IP地址!
参考链接
互联网协议入门(一)
互联网协议入门(二)
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!代办报建
本公司承接江浙沪报建代办施工许可证。
联系人:张经理,18321657689(微信同号)。
12条评论
楼上的别说的那么悲观好吧!http://kdhlpt.com/article/1225182.html
今天怎么了,什么人都出来了!http://b1y.archiac.com
看了这么多帖子,第一次看到这么经典的!http://6zshn.e1ky.com
楼主写的很经典!http://cmxdfz.com
太邪乎了吧?http://4la08y.art0523.com
很多天不上线,一上线就看到这么给力的帖子!http://umy7.allcast-vs.com
这位作者的文笔极其出色,用词精准、贴切,能够形象地传达出他的思想和情感。http://yp2.fx9f.com
楼主是一个典型的文艺青年啊!http://tsmk9.nicetimes.cn
楼主是男的还是女的?http://mkntz.shuotiao.cn
楼主写的很经典!http://3lpp8.dlysukug.com
以后要跟楼主好好学习学习!https://www.tgramwin.com
楼主主机很热情啊!https://www.potatb.com/
发表评论