Linux网络-基础概念
1.网络发展
独立模式:在开始没有网络,每个计算机之间相互独立,处理各自的数据
网络互联:当时代不断发展,计算机之间需要进行数据交互,多台计算机连接在一起进行数据共享
局域网LAN:当计算机的数量不断增加,通过交互机和路由器连接在一起
广域网LAN:通过路由器将全球各地的计算机都连接在一起
2.协议
最原始的协议并不完善,虽然大家可能遵守一套协议,但是语言不同,也无法正常通信,各个计算机厂商的协议设定也不同,就需要全球计算机领域的领先组织来创建一套共同的标准,让大家都遵守,大家就可以互相通信了,因为使用的是同一套标准!
1.协议看做是一种约定,全球都要遵守这种约定,本质是为了减少通信成本,快速形成共识
2.协议是层状的,协议本质上也是一种软件,在设计上更好的进行模块化,解耦合,让软件维护的成本更低
输出一个结论:协议就是通信双方都认识的结构化数据类型
3.OSI七层模型
OSI七层网络模型称为开放系统互联参考模型,是逻辑上的定义和规范,了解一下即可
这只是理想状态,实际是五层协议
4.TCP/IP五层模型
物理层 : 负责光 / 电信号的传递方式 . 比如现在以太网通用的网线 ( 双绞 线 ) 、早期以太网采用的的同轴电缆 ( 现在主要用于有线电视 ) 、光纤 , 现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等 . 集线器 (Hub) 工作在物理层 .数据链路层 : 负责设备之间的数据帧的传送和识别 . 例如网卡设备的驱动、帧同步 ( 就是说从网线上检测到什么信号算作新帧的开始 ) 、冲突检测 ( 如果检测到冲突就自动重发 ) 、数据差错校验等工作 . 有以太网、令牌环网 , 无线 LAN 等标准 . 交换机(Switch) 工作在数据链路层 .网络层 : 负责地址管理和路由选择 . 例如在 IP 协议中 , 通过 IP 地址来标识一台主机 , 并通过路由表的方式规划出两台主机之间的数据传输的线路 ( 路由 ). 路由器(Router) 工作在网路层 .传输层 : 负责两台主机之间的数据传输 . 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机 .应用层 : 负责应用程序间沟通,如简单电子邮件传输( SMTP )、文件传输协议( FTP )、网络远程访问协议( Telnet )等 . 我们的网络编程主要就是针对应用层 .
为什么要有TCP/IP协议?
多台主机通过网络通信,本质上也是设备到设备,就是通信的距离变长了,距离变长就会引发新的问题,传输过程中数据丢失,如何处理数据,如何定位要传输的目标主机,当下立即要去哪里的问题,而TCP/IP协议本质就是用来解决网络长距离通信的一种方案,协议是层状的,不同的层解决不同的问题!
操作系统可以不同,但是每个操作系统内的网络协议栈都是相同的,这也是为什么他们之间可以相互通信!
协议其实就是通信双方都认识的结构化数据类型
双方都有同样的结构体,双方都是使用统一的代码来实现协议,所以可以识别对方发来的数据
协议是分层的,每层都有双方的协议,所以只有同层之间互相才可以认识对方的协议
5.局域网通信原理
这里我们以大家最常见的以太网来说明,当两台主机在同一个局域网,是可以直接通信的
5.1MAC地址
每台主机在局域网上,我们需要有位移的标识来确定主机的唯一性,就需要MAC地址
MAC地址用来识别数据链路层中相连的节点,长度为48位
MAC地址无法被修改,在网卡出厂时就已经确定,MAC地址一般情况是唯一的
局域网通信,主机对收到的报文确定是不是发给自己的,是通过目标MAC地址判断
在以太网中,任何时刻只能有一台主机向网络发送数据
如果有多台发送,会发生数据干扰,也叫数据碰撞
为了避免数据碰撞,所有发送数据的主机要进行碰撞检测和碰撞避免算法
没有交换机的情况下,一个以太网就是一个碰撞域
在一个以太网有多台主机,主机A要发给主机E数据,其他主机都可以收到主机A发送的信息,但是他们进行目标MAC地址判断,发现自己不是目标MAC地址,就进行丢弃,所以只有主机E拿到数据
我们从协议栈来理解一下
报头:对应协议层的结构性字段
除了报头,剩下的就是有效载荷
报文=报头+有效载荷
OS是硬件的管理者,是人发送数据,所以我们需要自顶向下进行封装,通过网卡传输数据,然后再由底向上进行解包和分用,解包就是将报头和有效载荷进行分离,分用就是将有效载荷传给上一层协议,通过上述图片我们也可以理解为什么叫协议栈
6.IP地址
IP地址是在IP协议中用来标识网络中不同主机的地址
IP协议有两个版本,IPv4和IPv6 IPv4地址是一个4字节,32位整数
夸网段的主机数据传输,数据从一台计算机传输到另一台计算机需要经过一个或多个路由器!
我们来区分一下IP地址和MAC地址
IP地址是从哪里来到哪里去 源IP地址-目标IP地址
MAC地址是上一站从哪里来下一站到哪里 上一站MAC地址-下一站MAC地址
我们来举个例子:IP地址相当于我们的长远目标,比如我们要从起始站北京到终点站重庆
源IP就是北京,目标IP就是重庆,而到重庆需要进过石家庄,郑州,南阳等城市,这个MAC地址就是变化的,当高铁开始走时,源MAC地址就是北京,目标MAC地址就是石家庄,当到了石家庄,源MAC地址就是石家庄,目标MAC地址就是郑州
IP地址不变,MAC地址一直在变
当然只经过一个路由器是特例,也会经过多个路由器,道理是相同的
IP网络层存在意义:我们知道局域网有很多种,提供IP网络层,让世界的网络都是IP网络,屏蔽掉最底层的网络