网络底层学习笔记-持续更新

1.语言的跨平台

c/c++

 针对不同操作系统,编译成不同的可执行文件,之后由相应的操作系统执行解析成0101机器码

特点:需要编译多次

java

 只需要编译一次,编译成格式等相同的不可执行的字节码文件,然后各个操作系统上需要安装jdk里面包含jre,jre包含jvm虚拟机,jvm虚拟机可以解析执行字节码文件为0101机器码

特点:只需要编译一次即可到处运行,不过各自平台上要装jvm虚拟机

解释型语言,如js python

以js为例

 js作为解释型语言,不需要编译,直接由浏览器(深点讲就是v8引擎)解析执行为0101机器码

2.关于js 浏览器运行,有个地方我想说一下,当然了是我的观点

就是不管是在vscode中,直接运行在浏览器或者是用live sever或者是用webpack-dev-server开启一个服务器运行项目

其实你都可以打开devtools,也就是控制台,看里面的source,也就是源代码

这里其实是一个存放代码的地方,你开的8080,你启项目,代码就会在这个端口下,在source,算是浏览器的服务器把,然后浏览器就可以根据路径得到页面啥的,当然,也有后端返回页面的这种,这里我只是说前端直接运行的这种,那么vscode编辑器在其中起到了什么作用呢,这个有机会再研究把

3.关于网络协议

首先协议是一种约束和标准,约束双方行为,标准化交流过程

而网络协议同样如此

如果每个服务器都自定义协议,而不是使用http等统一标准协议,那么会乱成一团,实际上,1985年以前还真是这样,所以1985年的时候,国际标准化组织ISO,international standard organization,制定了网络互联模型,就是用来规定这些协议的,出台标准交互协议啥的

但是这毕竟是个学术组织,所以偏向于理论一些,它推出的参考模型是7层模型,是最完善的,

而四层模型与五层模型都是基于它的,四层模型来自于1985年前那些实战经验丰富的计算机行业的人,他们从业多年,认为最合适的还是四层模型,其实四层模型也算是7层的缩略版,把其中几层合并了

如下图

其中的传输,我简单说一下

无论是什么协议,他们的传输过程都是经过如下步骤

客户端发数据给服务器:

客户端发送的数据为5,也就是应用层数据,会往下一层层拼接数据,直到物理层,拼好了

,通过网络介质,电流网线微波啥的(这个就比较学术方面的东西了),发送到服务器,服务器也从物理层往上一层层解包,每层解掉对应的东西,最后服务器软件(处于应用层)就能拿到客户端发过来的数据5,

服务器返回数据给客户端过程同理,

4.计算机之间的通信基础

首先是通过ip互相访问,然后通过ip解析得到网卡地址,网卡得到访问到数据,传递上去,所以其实数据是通过网卡在交互

 

5.一般一台电脑和另一台电脑是否网络互相连上了,或者说是否在同一个网络上,可以采用ping的方式

比如192.168.1.10和192.168.1.11之间互ping,他们只要在同一个网络,可以两台电脑之间直接连根网线,或者在同一个局域网下?

ping的话是可以通的,但是如果是192.168.1.10和192.168.2.11之间互ping,就ping不通了,它们的网段不一样,其实也可以说是那个1和2的区别

然后提一下,ping的时候其实也是在走协议尝试连接,不过不是用的http,而是用的icmp这个协议

6.两台电脑之间通信,是需要知道mac网卡地址的,那这个是什么时候解析到的呢

是在你第一次ping的时候,第一次ping或者第一次访问连接的时候,除了你发的这个连接请求,还会再发送一个ARP协议请求,也叫做广播,

假设192.168.1.20与多台设备要连接,而由于当前是要ping192.168.1.21,这个ARP协议就会连接询问每个机器,是否知道192.168.1.21的mac网卡地址,其他机器都不知道,当问到192.168.1.21本身的时候,192.168.1.21一看,这不就是我自己吗,于是返回它的mac网卡地址回去给192.168.1.20

广播只能在同一个网段中传播

发广播的目的是获取对方的mac网卡地址,

而且第一次的时候它会假定对面的mac网卡地址都是FFFF.FFFF.FFFF.FFFF

变成二进制也就是11111111111111,10进制的话是255.255.255.255

这个网卡地址所有机器都能接收,这样广播就能广播连接到所有的要连接的机器,然后再问到需要的机器的mac地址,返回回来

来回是三趟,表示一个完整的arp请求

arp还会有缓存,所以再ping的话,最好清一下arp缓存,不然它不会再发arp连接了

7.两台电脑互相连接的话,使用交叉线,而不是直通线

  需要相同网段才能通信

多台电脑之间连接

方式一,同轴电缆

采用的是半双工通信(同一时间两台电脑之间只能存在一台发送数据)

全双工通信则是通道中双方可以同时发送数据,现在大家基本都是全双工

 需要相同网段才能通信

方式二,集线器

相比同轴电缆,不会一个地方出问题就全瘫,

比较大的问题是,每次都是每台设备都会发送,然后找到真的,就算找到了真的,发送的时候还是每台设备都会发送,每次都要找,会这样的话,一旦机器数量增加,效率是呈指数下降的

 需要相同网段才能通信

 方式三,网桥

网桥优点是可以提高效率,它会记录mac地址,而不是每次都找,这样等包发到他的时候,它就能知道大致方向,把包拦截掉,给到正确的通信方向,提高效率 

网桥就两个口,所以只能弄出两个冲突域,冲突域里还是会有冲突

 方式四:交换机

交换机是局域网的最终方案,

跨网段就需要路由器

就如图中思考所说,如果全球电脑都通过交换机连接

一个问题是,他虽然有多个孔且会学习,但是第一次的时候也会和集线器一样广播,这样如此庞大的计算机数量,效率实在可怕,而且会产生广播风暴,毕竟每个计算机都要在同一网段发广播

还一个是局域网是在同一个网段,这么多,可能ip都不够用

解决如上问题的方法是路由器

方式五:路由器

路由器内置交换机功能

关于网关,如果你想通过跨网段传递数据,就需要通过网关,网关在路由器上,路由器一个插口有一个网关,比如192.168.1.1要传到192.168.2.1,那么首先通过192.168.1.1所处在的路由器的那个插口的网关传递,然后,判断哪个网关可以通到192.168.1.1,就会去往哪个网关往下通信,其实网关可以理解为就是分发网段的,1网段要去2网段,每个网关负责一个网段,他们又可以互相交流通信

所以要跨网段通信,首先路由器插口的那个网关要和你当前的广播域或者说网段设置的相同,

这个是可以设置的,你买路由器回来就可以设置

好像是自己电脑可以设置一个默认网关,就可以通过这个,把网关设置成路由器的网关地址

路由器的网关地址不知道可不可以改,还是说买来就定死了的,应该是能够改的,所以就路由器和电脑都能设网关,设置成一样就可以通过网关跨网段通信上网

关于mac地址和ip地址的区别,一个是硬件层面,一个是虚拟层面

mac网卡地址从这台电脑出厂就已经确定了全球唯一的一个,而ip地址则是动态变换的,人为标识出来的,

关于调制解调器,路由器,交换机 https://blog.csdn.net/pan_tian/article/details/12339629这篇写的很好,特别是其中这句话 "比如上图中的路由器,实际上它既有路由器功能也具有交换机的功能,它路由功能就是联通内部局域网和外部的Internet网络,并且它还有具有交换机的功能,可以在内网中联通多台设备。"  

关于丢包,这个讲的也挺好的,https://zhidao.baidu.com/question/76678844.html

所以实际上,你办网是这样的,ISP也就是服务商,比如中国联通啊,中国电信啊

打个比方中国联通,首先你花钱买了它的网,比如200一学期办了它的网

然后你在寝室用网线连上它的口,然后网线的另一头连光猫,也叫调制解调器,然后再一根网线,连接它,另一头到路由器,然后路由器内置交换机,

假设不内置,那你还要再来个交换机,然后路由器和交换机网线互连,然后大家电脑连上交换机,就可以上网了

整体过程中,交换机用来让多台电脑通网,接入同一个网段,接入同一个局域网

路由器用来把而路由器是用来把当前局域网和联通内部局域网相连(两个处在不同网段),然后联通内部局域网又会与internet接轨,也是通过路由器,

当然所有中间都需要调制解调器,它在传输中起到最重要的作用,将电脑机器信号与网络传输模拟信号互相转换来支持着传输

8.DNS解析又是啥,和上面的路由器等又有什么关系,异同呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值