当前位置: 首页 > news >正文

计算机网络-基本概念

目录

计算机网络-基本概念

互联网

Java的跨平台原理

​编辑 C\C++的跨平台原理

解释性语言的跨平台原理(python,js等)

客户端 vs 服务器

什么是协议?

网络互连模型

请求过程

计算机之间的通信基础

计算机之间的连接方式-网线直连(需要用交叉线,而不是直通线)

 计算机之间的连接方式-同轴电缆(Coaxial)

 计算机之间的连接方式-集线器(Hub)

计算机之间的连接方式-网桥

计算机之间的连接方式-交换机

计算机之间的连接方式-路由器


计算机网络-基本概念

互联网

Java的跨平台原理

 C\C++的跨平台原理

 

解释性语言的跨平台原理(python,js等)

 

客户端 vs 服务器

阶段1:

阶段2:

 整体图:

请求url地址解析:

什么是协议?

网络互连模型

(1) 如果多个生产商生产出多个服务器系统,对于多个服务器系统不同的生产商规定不同的协议标准,那么客户端和服务器进行数据交互的成本就会大幅度增加,因此国际标准化组织站了出来。

(2)

ISO组织规定了理论上的一套协议:OSI(分为七层)

实战中总结出的一套协议为:TCP/IP(分为四层)

 高校学习研究的一套协议:分为五层

请求过程

过程:

(1)客户端请求服务器数据这一过程需要通过国际标准所规定的协议,学习研究时视其为五层。

(2) 客户端的请求会经过这五层不断的进行包装,包装之后传递到服务器。

(3) 服务器对于这一包装后的数据再一层层的进行解包,最终得到客户端最原始的请求。

(4)这一原始请求会通过应用层给到服务器软件(Tomcat),然后进行解析。

(5)当服务器进行响应数据给客户端时,同样遵循(1)-(4)的步骤。先一层层封装,传递给客户端,再一层层解包,客户端应用层最后得到的数据为服务器最原始的响应数据。

计算机之间的通信基础

两个计算机传输数据的交互过程:

(1) 两个计算机进行传输数据需要:源ip地址,目标ip地址,源MAC地址,目标MAC地址。

(2) 源计算机得知目标ip地址才可以通过ICMP协议进行传输数据给对方的(比如:互相ping)。

但是在传输数据之前需要通过ARP协议进行广播获取到目标计算机的MAC地址,通过MAC地址才可以找到目标计算机对应的端口,最终找到目标计算机对应的网卡进行传输数据。

注释:一个计算机可以有多个网卡,所以MAC地址不是唯一的,一个MAC地址对应一个网卡

补充:通过ARP协议获取到的MAC地址是有缓存的。当进行一次新的传输数据过程时,可能就无需进行ARP广播啦!

计算机之间的连接方式-网线直连(需要用交叉线,而不是直通线)

 计算机之间的连接方式-同轴电缆(Coaxial)

分析:

(1) 半双工通信:计算机1传输数据给计算机2时,计算机2不可以传输给计算机1

(2) 容易冲突,不安全:同轴电缆是随机发送数据传输给任意计算机的

 计算机之间的连接方式-集线器(Hub)

 分析:

集线器相对于同轴电缆的好处:

一个计算机连接集线器的线断了,不会影响其它计算机的正常运行

集线器的问题:

当集线器上连接的计算机达到1000台时,任意一个计算机给另外一个计算机发送数据时,集线器会广播传输数据,会发送给1000台设备。这样会很长时间占用带宽(通过ICMP协议传输数据占用的时间+通过ARP协议获取MAC地址占用的时间)。后面引入网桥解决这个问题!

计算机之间的连接方式-网桥

(1)网桥通过自学习得知每一个计算机接口的MAC地址,可以分清左右两边分别有哪些计算机

(2)网桥左边的计算机传输数据就不会达到网桥右边,网桥右边的计算机传输数据也不会传输到网桥左边,这样形成隔绝冲突域。

网桥存在的问题:

即使网桥使其左右两边形成隔绝冲突域,但是左右两边的集线器也会随机传输数据给链接的计算机,当计算机数量巨大时 同样会形成较大的资源消耗。所以后面引入了智能的交换机!

计算机之间的连接方式-交换机

注释:

(1) 相当于接口更多的网桥:更加智能,记住每一个计算机的MAC地址,指定计算机ip地址进行传输数据时,不会随机传输给所有的计算机!

(2) 全双工通信 : 可以同时传输数据。eg:计算机1传输数据给计算机2时,计算机3也可以同时传输数据给计算机4,计算机2也可以同时传输数据给计算机1。

(3) 思考:全球所有的设备都使用交换机连接会是什么情况?

交换机仍然存在问题:

在不同计算机之间进行传输数据之前,会先进行ARP协议广播传输给所有计算机进行获取MAC地址,交换机需要学习这些MAC地址是和哪些计算机对应着的!

全球所有的设备都使用交换机的话,全球的计算机传输之前都需要先进行ARP广播,这个工作量也是十分大的!这即是广播风暴。

所以引入了路由器。

计算机之间的连接方式-路由器

 网络直线,同轴电缆,集线器,网桥,交换机:

(1)连接的设备对应的ip地址必须在同一网段。eg:192.168.3.10和192.168.3.11处于同一网段,

192.168.3.10和192.168.2.11处于不同网段,

(2)连接的设备处于同一广播域。意思即是ARP广播协议进行获取MAC地址时,对于同一广播域的计算机都会接收到该传播。

我们知道,不同网段的计算机是不可以跨网段进行传输数据的,但是如果全世界处于同一网段的话,势必会出现ARP广播风暴等问题,所以我们引入了路由器。

我们在路由器的两边接上两个网关,左边的网关的ip地址是与左边的计算机处于同一网段的,右边的网关同理即可。

提出问题:计算机1是如何传输数据给计算机4的,分析一下这个过程?

 (1) 计算机1在传输数据之前需要先进行获取左边网关的MAC地址:会先通过ARP广播获取到左边网关的MAC地址。补充:【计算机1的ARP同样会发送给计算机2,因为ARP是广播发送,同一交换机连接的所有计算机处于同一广播域,但是在对比目标ip地址后 就会被丢弃该数据包。】

(2)获取网关的MAC后,计算机1开始真正的传输数据给左边的网关,交换机通过目标ip地址,目标MAC地址智能识别后,传输数据给左网关

(3) 左网关会通过路由器传输数据给右网关

(4)右网关是和计算机4处于同一网段的,所以可以进行传输数据。同理,右网关会先获取计算机4的MAC地址,然后进行传输数据(具体过程参考前三条)。

 

http://www.lryc.cn/news/4588.html

相关文章:

  • 你评论,我赠书~【哈士奇赠书 - 13期】-〖Python程序设计-编程基础、Web开发及数据分析〗参与评论,即可有机获得
  • 【设计模式】我终于读懂了代理模式。。。
  • 每天10个前端小知识 【Day 2】
  • 帮助中心在线制作工具推荐这4款,很不错哟!
  • rabbitMQ相关文章汇总
  • 【C++】异常
  • @Validated注解不生效问题汇总
  • 华科万维C++章节练习2_4
  • 17万字数字化医院信息化建设大数据平台建设方案WORD
  • Android 11系统签名修改
  • 亚马逊、沃尔玛卖家自养号退款经验和测评技术
  • Spring Security in Action 第十一章 SpringSecurity前后端分离实战
  • 高级前端二面vue面试题(持续更新中)
  • 七大设计原则之依赖倒置原则应用
  • Dubbo面试题2023
  • Swift(5)
  • [Java 进阶面试题] CAS 和 Synchronized 优化过程
  • 算法思想 - 贪心算法
  • 解决需求变更难题的8大方案
  • NSSROUND#8[Basic]
  • Vue3代码初体验找不同
  • opencv调取摄像头录制
  • html标签手册
  • SpringMVC--视图、RESTful案例、处理AJAX请求
  • 一个同学升了leader,今年活还没干,他就已经想好组里成员的两次绩效考核怎么打了,还说:leader都是这样的!...
  • Docker 面试知识点
  • C++高级篇学习笔记
  • gentoo基本安装过程
  • 【LeetCode】1234. 替换子串得到平衡字符串
  • [动手写操作系统]-01-开机运行系统