Linux之网络的基础认识
1.网络的发展
独立模式(计算机之间相互独立)->实现互联(通过软盘等方式实现数据的交换)->网络出现局域网LAN(计算机之间通过交换机和路由器连接在一起,)->广域网WAN(实现长距离通信)
| 局域网(LAN) | 广域网(WAN) |
---|---|---|
设计目标 | 高速、低延迟的本地通信 | 远距离、高可靠的全球通信 |
物理介质 | 双绞线、短距光纤 | 长距光纤、卫星、微波 |
协议重点 | 以太网(L2) | IP |
覆盖范围 | 1公里内(典型) | 全球 |
管理主体 | 单一组织 | 多运营商协同 |
2.以太网
以太网属于局域网的一种通信方式,核心依赖于MAC地址(用于同一局域网设备的直接通信),本质上是共享的资源
1.以太网中,任何时刻只允许一台机器向网络中发送数据 (类似于临界资源,具有互斥属性)
2.如果有多台同时发送的情况下会发生数据干扰,我们称为数据碰撞
3.如果没有交换机(避免数据冲突)的情况下,一个以太网就是一个碰撞域
4.所有发送数据的主机要进行碰撞检查和碰撞避免
3.协议
3.1 初识协议
协议是一种约定,是计算机或网络设备之间通信的规则和标准
协议的制定需要很多细致的规定,并且要求参与的人都要遵守,这通常由国际标准化组织,区域标准化组织等权威组织来制定.
3.2 协议分层
协议本质算是软件,在设计上为了更好的进行模块化,解耦合,让每层专注于一个功能,故而被设计成层状结构
3.2.1 OSI七层模型
3.2.2 TCP/IP 五层模型
在工程实践中会话层和表示层大多用不上,故最终落地的为五层协议
层级 | 核心协议/技术 | 主要作用 |
---|---|---|
应用层 | HTTP、FTP、DNS、SMTP | 直接为用户提供服务(如网页浏览、文件传输、域名解析、电子邮件)。 |
传输层 | TCP、UDP | 管理端到端通信: - TCP(可靠传输,如网页加载) - UDP(高效传输,如视频通话)。 |
网络层 | IP、ICMP、BGP、OSPF | 负责逻辑寻址(IP地址)和路由选择,实现跨网络的数据包传输(如从北京到纽约)。 |
数据链路层 | Ethernet、MAC、PPP | 在本地网络中通过MAC地址传输数据帧,控制物理介质的访问(如交换机转发)。 |
物理层 | 双绞线、光纤、Wi-Fi | 传输原始比特流(0和1的电信号/光信号),定义物理介质特性(如电压、频率)。 |
主机进行通信:本质是两个协议栈在通信
消息从应用层到网卡,然后发送给接收设备的网卡,再由接收设备的网卡从下往上到接收用户
数据在协议栈中自顶向下封装(必须要贯穿操作系统,协议栈),报文(报头+有效载荷),报头的主要作用是用来确保数据能正确传输,解析和处理
报头必须能做到将有效载荷分离以及交付给下一层的具体协议
底层收到报文,数据链路层能判断发送对象是否正确,如果否则直接丢弃
3.3 IP地址
IP用来标识全球范围内主机的唯一性(公网IP)
3.3.1 区别于MAC地址
唐僧是从东土大唐而来要到西天,这属于从哪来到哪去,最终去哪(IP地址)
唐僧从女儿国到黑风岭,这属于上一站从哪来,下一站去哪(MAC地址)
通俗来讲就是MAC地址用来标识物理设备 ,通信范围在同一局域网
IP地址用来标识网络位置,通信范围在全球路由
3.3.2 报文发送的过程
在网络层能判断目标IP是否在局域网中,如果不在局域网中就直接发给路由器
在报文发送给路由的途中IP地址不变,而MAC地址一直在变,当路由把报文发出后MAC地址因出原局域网所以失效了
网络层+IP的本质意义:给网络提供了虚拟化层,让所有网络都叫做IP网络