需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网,轻量型云服务器低至112元/年,优惠多多。(联系我有折扣哦)
文章目录
- 1. 局域网和广域网
- 2. 协议
- 2.1 认识协议
- 2.2 协议分层
- 3. OSI七层模型和TCP五层(四层)模型
- 2.1 OSI七层模型
- 3.2 TCP/IP五层(四层)模型
- 4. 网络传输的基本流程
- 4.1 报头
- 4.2 局域网通信原理
- 4.3 数据包封装和分用
- 5. IP地址和MAC地址
- 5.1 IP地址
- 5.2 MAC地址
1. 局域网和广域网
在计算机最开始被设计出来的时候,仅仅是用来完成计算任务的,把任务输入给计算机,然后计算机将计算完成的结果输出给用户。在这个时间段内所有的计算机都是相互独立的,也叫独立模式
经过很长一段实践的发展,多台计算机之间的连接成为了趋势,这种多台计算机之间的连接叫做网络互联
而后会有更多的计算机之间需要相互连接,此时就需要一些中介设备,也就是路由器和交换机,这种连接的方式叫做局域网LAN,我们一般说的私有网络和内网都属于局域网的概念
把远隔万里的计算机之间进行连接所采用的就是广域网WAN
实际上,所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网。在有些教材里面也是用物理距离作为局域网和广域网之间分别。
在大学里面,经常会有一些校园网才能访问的网站,这个由学校搭建的一个内网也属于局域网的概念
2. 协议
2.1 认识协议
协议本质就是一种约定
在计算机中有各种的组件,这些组件之间的交流是内部通过线连接起来的,所以计算机内部也可以理解成一个小型的网络结构,在计算机内部各个组件/设备的识别和通信也是需要协议的。协议不是网络专属的。如果计算机内部的各个组件之间的距离比较远,假设把硬盘放在贵州,CPU放在南京,硬盘和CPU之间的数据互通就要通过网络和协议。所以计算机体系结构中有网络,网络中有体系结构
我们在学习系统的时候没有谈论过协议,那么现在为什么要进行讨论,这是因为多台主机距离较远,为了减少通信成本,所以需要协议
如何理解协议
在打电话需要花钱的背景下,有两个少年,在打电话之前规定了电话响铃几声对应的信息,那么此时就能够在电话不打通的前提下将信息传达给对方,相应的也就不用付钱,这种方式也就节约了打电话的成本。同理协议就是提前的约定,可以减少通信的成本。
现在虽然有了协议,但有很多的计算机生产厂商、也有不同的操作系统,它们可能各自有各自的协议,所以这个时候就需要约定一个共同的标准,让大家都遵守,这就是网络协议(TCP/IP标准)。
2.2 协议分层
举一个最简单的打电话的例子。在打电话的时候,我们最直观的感受就是电话这头的人在和电话另一边的人在沟通,但是实际上是电话这边的人在和自己的手机在通信,自己的手机和对方的手机通过某种方式通信,然后对方的手机将收到的信号转化成人说话的声音。最终实现了能听到对方的声音,宏观来看就是两个人在沟通。这种宏观上看两个人在说话,就属于在语言层上,两个设备的通信就属于通信设备层。在设备层的通信协议就是电话机协议,在人与人之间的就是语言(协议)
分层的好处:低耦合。把软件进行模块化,可以很好的进行解耦,解耦以后我们如果把通信设备进行更换,上层不用改变,而如果上层语言改变,底层不需要改变。所以对任何一层做任何修改并不影响其他层
分层的依据:我们把功能比较集中,耦合度比较高的模块放在同一层。体现高内聚
3. OSI七层模型和TCP五层(四层)模型
2.1 OSI七层模型
**OSI(Open System Interconnection,开放系统互连)**七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用; 所以后面根据实际应用,就出现了TCP/IP五层(四层)模型
3.2 TCP/IP五层(四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(这个模型有的说法是五层,有的说法是四层,其中的区别就是是否考虑最底层的物理层)
- 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
- 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
- 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
- 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
- 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层
这种协议分层的标准是全世界统一的,也正因如此才能够实现通信,这种协议分层我们称作为协议栈
4. 网络传输的基本流程
4.1 报头
再举个例子:假设我们网购一个杯子,我们收到的就只有一个杯子吗?当然不是,我们肯定收到的是一个带有快递单的快递盒子和杯子本身。这个多出来的的一部分中记录了这个快递的相关信息。那么同样的在发送数据的时候,真正发送的东西也是比要发的东西多一点,这个多出来的部分就是报头。
上面这个例子中:快递单号是给快递员看的,这个快递单就是快递公司自己定的协议,这个快递单子在它们的物流体系中都能够被识别。
由此得出结论:协议通常是通过协议报头来表达的。每一份数据最终在被发送或者在不同的协议层中,都要有自己的报头。
4.2 局域网通信原理
两台局域网内的主机能够直接通信
每台机器上都有网卡,每个网卡上面都会有一串标定自己唯一性的序列,叫做MAC地址
MAC地址虽然全球唯一,但是不应用于全球,只在局域网中标识自己的唯一性
查看方式:在Linux下可以通过ifconfig
指令来查看,在Windows下可以通过cmd中指令ipconfig
来查看
局域网中有很多的机器:
如果MAC1想要跟MAC7发送消息时,其他所有主机也都能收到,但是其他主机在内部做协议判断发现并不是发给自己的,会自动丢弃。最终只有MAC7收到。
- 同一个网段内的两台主机进行文件传输
- 跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
4.3 数据包封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
数据包封装:每一层在向下交付的时候都会添加自己的报头,所以报文=报头+有效载荷,将这个报文向下交付
数据包分用:向上解包的时候,因为同一层有相同的协议,所以能识别报头,它会解开报头,把有效载荷在向上解包。这样就形成了对称的结构
一个设备至少要横跨两个网络,才能实现数据报跨网络转发,路由器必须至少横跨两个网络,路由器必须有两个网络接口。在路由器部分传递给令牌环驱动程序的时候,加上的报头是令牌环协议(重新封装报头),这样跟左边不一样了,但是并不影响对称性。
简单理解路由器部分传输数据:像我们脱了外套换了新的外套,但人没有变。由此可得出IP层的作用就是屏蔽底层网络的差异。
不同的协议层对数据包有不同的称谓,在传输层叫做数据段,在网络层叫做数据报,在链路层叫做数据帧。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(报头),称为封装。
5. IP地址和MAC地址
5.1 IP地址
IP地址通常在广域网使用,图上的是内网IP的地址,IPV4一共4个字节,每个字节范围0-255;IPV6是16个字节。一般我们看到的这种通过三个点分割的表示方式叫做点分十进制
IP地址可以理解为起点到终点。
5.2 MAC地址
MAC地址通常在局域网使用,占6个字节。
MAC地址可以理解为起点到终点的一个个站点。
本节完…