| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 从三大设备出发带你了解计算机网络 -> 正文阅读 |
|
[网络协议]从三大设备出发带你了解计算机网络 |
计网七大层图谱:传输层封了TCP,UDP这样的协议。TCP是为了保证数据的可靠性,实现可靠的传输;再往上是如http的应用层。但是这些所有的协议都是基于下面讲的这三层,其中,数据链路层和网络层尤为重要。 计算机网络:用来实现计算机两两之间都能互相通信(数据信号可以通过发送类似1010这样的高低电频收到) 利用 “转发” 和 “标识(表明自己的身份)”? 可以扩展网络规模,即增加设备。 第1种设备——HUB集线器(在物理层):网络诞生之初的一种网络组织形式。可以做消息的转发(用双绞线就可以,但是这个转发很暴力,一股脑把接收到的分 别转发给全部的,不需要的数据包就被丢弃了;多个信号转时不能识别,杂糅起来发给其它设备) 根据这个问题提出了一个协议:CSMA/CD【功能:发送前进行载波侦听,检测链路上有没有其他在发送数据,没有则进行数据的发送,可以防止冲突】 “HUB集线器” 这种方式的缺点:1. 进行数据的广播会导致带宽利用率较低 “HUB集线器” 最主要的问题:没有记录每台设备的标识,只是将数据广播出去,让设备自己判断消息是否属于它自己,因而工作效率较低。 第2种设备——SW交换机(在 数据链路/MAC 层):“SW交换机” 和 “集线器” 一样,是一个中心的作用,可以做消息的转发。
“SW交换机” 的特点:1.?可以记录(MAC)地址和端口的映射关系(mac地址在每个网络设备出厂的时候已经写死了,但仍可以改) 2. 全双工,和双绞线不一样(双绞线在工作中的时候,只能有一台设备进行数据发送),“SW交换机” 使用的是网线(有八根线,正常情况下至少有四根是工作的)。1在发送时,也可以接收数据;链路上的数据也不会再产生冲突;1在发送数据的时候,2也可以发送。 3. 可以进行 “桥接”... 4. 在局域网内可以进行高效的传输。 “SW交换机” 效率高于 “HUB交换机” 的一个重要原因:交换机所在的层叫做 “数据链路层”,其中分为数据头和数据,数据头中记录了原地址和目的地址(mac地址),这也就是SW效率高于HUB的一个重要原因。 重点:交换机的空表如何建立起MAC和端口的映射关系
“SW交换机和mac地址结合的这种方式” 的弊端:存储量只有几千,只能在一个比较小的局域网络内达到一个高效的传输。不能在较大的范围内建立计算机的互联网络,未能记录对应的路由信息的话,就会一直广播,导致消息的洪范。 抛出问题:交换机满足了小规模局域网的互联互通,但是互联网的目的是跨局域网的全球互联,因此联通两个网络成为急需解决的问题。 第3种设备——路由器/网关(在网络层)是跨两个网络之间的连接点。这个路由器其实也是一个Linux系统,也有一个路由表。引入路由器是为了在跨网络的时候进行数据的转发。这个网络是一个比较抽象的概念,我们要标识这个抽象的网络以及在网络层面标识每台设备,所以我们提出另一个标识——IP地址(IP地址的两个重要作用:标识网络 & 标识设备)。 “路由器” 工作的一个主要原理:既有网络一的IP地址,也有网络二的IP地址,充当一个中间人,联系两方。 ?? 比如1和3之间属于内部交互,通过交换机实现;1和2之间就通过路由器实现。
两大重点:1. 路由表的建立,这个比 SW交换机 中的地址端口映射表要复杂得多,用到了很多路由的算法,路由的算法目前也在不断更新迭代。但路由器经过一系列的算法会自动建立出一个完善的路由表。 2. 网络内的传输(IP地址是抽象的地址,不能直接用作通信,只能使用mac地址进行直接通信,因为mac地址是一个真实的地址) 比如 192.168.1.52 和 192.168.1.254,首先,1.52 先根据IP地址查 1.254 的MAC地址(这里有个ARP协议,是在这个网络中去广播询问谁的IP地址是 1.254,1.254 收到这个询问之后,就会回复反馈自己的mac地址),然后就可以在MAC层进行传输了。实际上,网络的传输都是走的MAC地址。
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:19:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |