当前位置:网站首页>网络原理(1)——基础原理概述
网络原理(1)——基础原理概述
2022-07-07 18:09:00 【瘦皮猴117】
目录
网络原理
应用开发者眼中的网络:跨主机的、两个进程之间的通信。
网络出现的背景及历史:通信学科
国家->机构/组织->家庭->个人
基础原理概述
从硬件角度简述网络通信
数据在传输介质(网线)上的传播(可能存在信号衰退、信号差错等问题),传入接收方。
至此,两台主机之间只要能用一个网络介质连接,就可以从硬件角度实现数据交换了。
多台主机组网问题
协议与分层
要完成整个通信,中间要处理的问题还是非常复杂的。所以有必要进行分工合作。
当有了分层之后,就需要针对每一层,都指定好一些规范,让大家都去遵守,进而更好地完成工作。这些规范具备一定的权威性,在网络学科下,将其称为协议(protocol)
协议分层
对于网络协议来说,往往分成几个层次进行定义。
什么是协议分层
协议分层类似于打电话时,定义不同的层次的协议:
在这个例子中,协议只有两层;但是实际的网络通信会更加复杂,需要分更多的层次。
网络标准分层
分层
1. 学院派:OSI (Open System Interconnect)提供了一个共7层的解决方案.
2. 实践派:TCP/IP 5层协议(4层协议,表述中省略了物理层)。
网络设备
3个重要的网络设备(network deivce),注意:这些网络设备不是主机。
1.集线器(hub)
2.交换机(switch sw)3.路由器(router)
集线器(物理层)
LAN内部的通信问题
1. 最简单的局域网:两台主机直连。2. 带有一定拓扑的局域网:
使用集线器进行组网,天生就处于同一个冲突域。这是集线器的工作原理导致的。
冲突域
老师说:“张三,请回答一个问题”,这句话谁能听到?所有人都能听到。
但是,只有张三会做出回应。因为我们传送的数据中携带有目标地址(“张三”)。
自习场景下,人人都可以主动起来讲话。导致互相之间都听不到对方说法。——冲突域。已经在同一个冲突域下,怎么解决?
通过一定的冲突避免算法,进行冲突避免(数据链路层去解决)。
最常见的一种冲突避免算法:发现冲突之后,静默随机时间,再次发送。
即使有冲突避免算法,使得同一个冲突域内的数据可以有效传输了,但信号传输效率还是会产生影响。所以需要:
1.冲突域内的主机不要太多。
2.尽可能减少冲突域的出现。
交换机(数据链路层)
交换机(switch)出现,来减少冲突域、划分冲突域。
集线器:只做工具复制,根本不知道数据是什么。交换机:需要理解数据链路层放入的目标地址(需要能解析数据链路层协议),根据数据的目标地址,决定数据给谁、不给谁。
交换机工作在数据链路层。
根据数据中的目标地址,将数据只发给对应的目标。通过交换机也可以组局域网。
广播域
地址
地址:数据链路层的地址指的是MAC地址(物理地址)
MAC地址的长度为48位(6个字节),通常表示为12个16进制数。如:00-16-EA-AE-3C-40就是一个MAC地址
网卡生产的时候已经固定了,全世界的网卡的 MAC地址是不会冲突的。
一个LAN 内部,无论哪种设备,哪种拓扑,主机和主机都已经可以正常的通信了——数据链路层协议的职责。
以上为数据链路的职责+两个设备(hub、switch)工作在哪一层,基本工作原理。
域名(domain)
www.baidu.com -> 182.193.33.232
localhost -> 127.0.0.1:代表本机的一个域名
路由器(网络层)
网络层:通过数据路由,解决跨LAN的主机间通信问题。路由器工作在网络层。
路由器至少处于两个局域网(至少有两张网卡)。
数据只能在同一个LAN传输路由器横跨两个LAN。所以,跨LAN的传输是需要经过路由器传递的
路由(route):又称寻路;路由器(router) :用于完成寻路功能的一种设备。
网络层有自己的地址:IP地址
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6.
IP地址是软件地址:同一个网络内部的IP是不应该“重复”的。IP地址是随时变化的。
传输层
传输层:城市对比主机。主机到主机已经全部连接起来了。
例如:城市中的一个人(进程)要另一个城市中的另一个人(进程)进行通信。(进程间的通信)端口(port) 0-65525两个字节的无符号数。
进程<->端口,类比人<->手机号
写明端口,对应到具体的人,
寄快递,写收件人电话就可以对应到该人。一个进程可以有多个端口(不冲突)
一个端口只能分配个一个人(不能重复)
五个层次
重要协议:
HTTP/HTTPS/DNS 属于应用层TCP/UDP 属于传输层
IP 属于网络层
应用层
发送:封装(必须携带分用和解包信息)
接收:解包/分用(根据本层的控制信息)
发送
接收
五元组
在TCP/IP协议中,用五元组来标识一个网络通信:
1. 源IP:标识源主机
2. 源端口号:标识源主机中该次通信发送数据的进程
3. 目的IP:标识目的主机
4. 目的端口号:标识目的主机中该次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双方约定的数据格式
边栏推荐
- Force buckle 989 Integer addition in array form
- TS quick start - Generic
- ASP. Net learning & ASP's one word
- 机器学习笔记 - 使用Streamlit探索对象检测数据集
- 九章云极DataCanvas公司摘获「第五届数字金融创新大赛」最高荣誉!
- My creation anniversary
- The boundary of Bi: what is bi not suitable for? Master data, Martech? How to expand?
- LeetCode_7_5
- 力扣 643. 子数组最大平均数 I
- Data island is the first danger encountered by enterprises in their digital transformation
猜你喜欢
使用高斯Redis实现二级索引
BI的边界:BI不适合做什么?主数据、MarTech?该如何扩展?
Interpretation of transpose convolution theory (input-output size analysis)
九章云极DataCanvas公司获评36氪「最受投资人关注的硬核科技企业」
MRS离线数据分析:通过Flink作业处理OBS数据
Automatic classification of defective photovoltaic module cells in electroluminescence images-論文閱讀筆記
Openeuler prize catching activities, to participate in?
Implement secondary index with Gaussian redis
机器学习笔记 - 使用Streamlit探索对象检测数据集
整型int的拼接和拆分
随机推荐
一文读懂数仓中的pg_stat
Boot 和 Cloud 的版本选型
【mysql篇-基础篇】事务
[sword finger offer] sword finger offer II 012 The sum of left and right subarrays is equal
力扣 1790. 仅执行一次字符串交换能否使两个字符串相等
torch.nn.functional.pad(input, pad, mode=‘constant‘, value=None)记录
Force buckle 1961 Check whether the string is an array prefix
Graduation season | regretful and lucky graduation season
Implement secondary index with Gaussian redis
[philosophy and practice] the way of program design
Force buckle 599 Minimum index sum of two lists
Semantic SLAM源码解析
TS快速入门-泛型
Force buckle 989 Integer addition in array form
vulnhub之Funfox2
YoloV6:YoloV6+Win10---训练自己得数据集
How C language determines whether it is a 32-bit system or a 64 bit system
第二十章 使用工作队列管理器(三)
831. KMP string
Chapter 20 using work queue manager (3)