学习计网之前非看不可的一篇文章

发布于:2023-10-25 ⋅ 阅读:(54) ⋅ 点赞:(0)

一、计算机网络背景

计算机网络的发展背景可以追溯到20世纪初。以下是计算机网络发展的一些重要背景因素和阶段:

  1. 第一阶段 - 早期计算机网络(1960年代至1970年代):

    • 计算机网络的起源可以追溯到冷战时期,美国政府和军方机构开始研究分散式通信系统,以提高通信的可靠性和韧性。
    • 1969年,美国国防部的ARPA(高级研究计划署)启动了ARPANET项目,这可以视为互联网的前身,它连接了四个大学的计算机。
    • 这一时期还涌现了一些重要的网络协议,如TCP(传输控制协议)和IP(互联网协议),它们构成了互联网的基础。
  2. 第二阶段 - 商业化和互联网的崛起(1980年代至1990年代):

    • 1980年代,计算机网络开始向商业领域扩展。企业和组织开始建立内部局域网(LAN)以提高内部通信效率。
    • 1990年代,互联网经历了爆炸性的增长。万维网(World Wide Web)的发明和HTTP(超文本传输协议)的出现使互联网变得更加用户友好。
    • 商业化的互联网服务提供商(ISP)开始涌现,人们能够通过拨号上网或宽带连接访问互联网。
  3. 第三阶段 - 移动互联网和物联网(2000年代至今):

    • 移动互联网的崛起,包括3G、4G和5G技术的发展,使人们可以通过智能手机和平板电脑访问互联网。
    • 物联网(IoT)的兴起,使设备和传感器能够互相连接,并与互联网交互,从智能家居到智能城市的应用广泛增加。
  4. 未来趋势 - 量子互联网和更高级的互联互通性:

    • 量子互联网是一个前沿领域,利用量子通信的性质来提供更高级别的安全性和效率,有望在未来取代部分现有的加密和通信技术。
    • 5G和6G等更高级别的移动通信技术将继续推动互联网的发展,使更多设备能够高速、低延迟地互联。

总的来说,计算机网络的发展背景涵盖了技术、政治、商业和社会因素,互联网已经成为全球通信和信息交流的基础设施,并持续演化以满足不断变化的需求和挑战。

二、认识“协议”

协议在我们日常生活中随处可见!!!
我们人与人能正常的沟通,实际上就是“协议”作用!比如语言的“协议”、动作的“协议”,随着社会的发展、语言的发展…已经形成了很多约定俗成的“协议”
所以“协议”从根本作用上看,就是为了能够更高效的沟通!

  • 计算机生产厂商有很多
  • 计算机操作系统, 也有很多
  • 计算机网络硬件设备, 还是有很多
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议

三、从协议到分层

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在上图的例子中,A和C都是中国人,他们都讲汉语,也就是他们共同遵守了“汉语协议”所以他们才能高效地沟通
而他们通过电话这种通信设备进行通信,那A的电话机是怎样与C的电话机进行通信呢? —— 因为遵守了“电话机协议”

我们再思考和发现,好像协议也能分类、分层!

为何需要分层
从上图例子中,汉语交流遵循了“汉语协议”我们可以统一为在“语言协议层”遵循协议;通过电话机远程通信可以统一为在“通信设备层”遵循协议
如此分层之后,我们就不用强耦合地去设置:只能遵循于“汉语协议”和“电话机协议”的通信过程;而是将通信过程的协议分为“语言层”和“通信设备层”。如此一来,我们通信的过程中就可以灵活地适应和变化,也就是 —— 低耦合

网络通信的过程是十分复杂的,需要经过很多环节。如果不分层,当有其他情况或者变动就无法灵活适应。
所以我们分层的依据是:功能比较集中,耦合度比较高的模块就分为一层;每一层都要解决特定的问题!

因此,通过上图的例子,我们便能深刻地认识到“协议”和“分层”带来的通信效率

四、OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯

⭕OSI七层模型的各个分层:

在这里插入图片描述

五、TCP/IP协议

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

在这里插入图片描述

一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容
  • 对于一台路由器, 它实现了从网络层到物理层
  • 对于一台交换机, 它实现了从数据链路层到物理层
  • 对于集线器, 它只实现了物理层

六、网络传输流程

1- 数据包封装和分用

由上文我们知道,网络通信的过程中分出了好几层,每一层都有其对应的协议。协议其实就是一种约定,可以理解为就像签订了某种说明书;所以通信数据通过网络传输必定经过一个层层封装到层层解封的过程。

举个例子🌰
我们在网购的时候,也有一个分层的体现。比如我要买一瓶洗面奶,卖家不是自己跑来我家将洗面奶给我,而是把洗面奶拿去顺丰寄件,然后那边的顺丰就寄来我学校的顺丰,然后顺丰再送到我家。这些都是分层的表现。
而洗面奶,从卖家手里每经过一层,就会有“封装”的表现。在卖家那里,他需要给洗面奶加上使用说明书 ——> 在寄顺丰的时候,需要给洗面奶加上我的收货地址 ——> 等到我拿到手,洗面奶已经被加了“好几层”,而当我要使用的时候,我自己也需要去解封再使用

在上面这个例子中:

  • “洗面奶”就相当于网络通信中的数据,添加的“说明书”“寄快递信息”就相当于经过每层协议时,添加了对应协议的“协议报头”,用于说明此层协议的信息。
  • 在到我手里之前,对“洗面奶”添加的每一层,就是网络数据对报文进行封装的过程;我拿到手之后要一层层拆开,就是同理于对网络报文进行解包

⭕通过上面例子的理解,现在我们可以更加深刻的体会知识

  1. 协议每一层都有,而每一个协议的最终表现就是都要有报头
  2. 协议通常都是通过协议报头来进行表达的
  3. 每一份数据最终在发送时,和接收时,都会经过一层层“报头封装”和“报头解包”的过程

数据包封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息,称为报头
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

🚩下图为数据封装的过程(解包则相反)

在这里插入图片描述

🚩下图为数据包分用的过程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2- 网络传输流程

同一个网段内的两台主机进行文件传输

在这里插入图片描述

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

在这里插入图片描述

⭕综上所述,网络通信的过程,就是数据包从发送端开始,经过一层层网络协议栈的协议报头封装,一层层发送到接收端的底层,再经过一层层网络协议栈的解包,最终到用户端拿到数据。而要时刻记得,通信是一个双向的过程。
⭕TCP/IP的五层层级结构,每一层都有什么内容、做了什么事、如何具体解包分用、协议的内容… … 就是我们计算机网络所要学习的主要内容及核心。等到一连贯的知识学习后,我们便能深刻了解一个数据包,是如何从我们的主机发送到别人的主机。

七、网络中的地址管理

1- 认识IP地址

IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

2- 认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

对于上面这两个地址,我们这里先做感性的简单认识,在后面的学习中会慢慢加深对其的理解

🌰

举个例子:现在我们去旅游,会有一个目的地,但是往往都不是能够瞬间从起点咻的一下到达终点,中间会途径各种地点,而中间途径各种地点的时候如何选择下一个地点,就是因为我们知道了我们终点是哪,终点在哪个方向

所以在形容地址的时候我们会有2套地址
1.从哪里来(起点)- 到哪里去(终点)
2.在走的过程中上一站从哪来,下一站去哪里

类比此例子就能很好的理解ip地址和mac地址
ip地址就像是第一套地址,所以分为目的IP 和 源IP:为我们未来每一个阶段提供方向,方便进行路径选择

而mac地址就像是第二套地址,因为我们在网络通信往往中间都要途径各种路由器(主机)

本文含有隐藏内容,请 开通VIP 后查看