💗计算机网络从放弃到入门(一)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 💗计算机网络从放弃到入门(一)

一、计算机网络基础


1.1计算机网络的含义


以能够相互共享资源的方式互联起来的自治的计算机系统的集合。


1.2 因特网的组成及特点


  • 边缘部分:由所有连接在因特网上的主机组成,用来进行通信和资源共享。
  • 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的。


1.3 电路交换、分组交换、报文交换各自的优缺点


  1. 电路交换:优点是适合传输大量连续实时的数据。缺点是对于突发数据信道利用率低。


  1. 分组交换:优点是提高了整个系统的平均响应时间,存储转发时延比报文交换要短,灵活的路由选择提高了网络的生存性。缺点是分组在各结点转发时可能排队,端到端时延不确定,网络通信量过大时会导致网络拥塞。分组首部携带的控制信息造成一定的额外开销。


  1. 报文交换:优点是简单,信道利用率高。其缺点是存储转发时延长,过长的报文误码率高不利于可靠传输,而且过长的报文占用链路时间太长,不利于资源共享。


1.4 网络性能指标


速率


连接到计算机网络上主机在数字信道上传送的速率,也称数据率比特率,单位b/s(比特每秒)


带宽


表示网络的通信线路所能传送的数据的能力,即“最高数据率”单位b/s(比特每秒)


信道利用率


指出某一信道有百分之多少的时间是有数据通过的,即信道利用率=有数据通过时间/(有+无)数据通过时间


吞吐量


单位时间内通过某个网络的数据量。吞吐量受网络带宽或网络额定速率的限制


时延


数据从网络的一端传送到另一端所需要的总时间,它由发送时延,传播时延,处理时延和排队时延组成。


发送时延


结点将分组的所有比特推向链路所需的时间。


传播时延


即一个比特从链路的一端传播到另一端所需的时间。


1.5 网络体系及网络体系结构


网络体系结构采用分层结构是因为“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。


1.6 五层协议模型的分层及各层的功能


物理层


在物理媒体上为数据端设备透明的传输原始比特流


数据链路层


在两个相邻结点之间传送以帧为单位的数据,可以概括为成帧、差错控制、流量控制和传输管理等


网络层


负责将分组从源主机通过中间若干路由器的转发传送到目的主机。核心功能是逻辑编址、路由选择和分组转发。


传输层


传输单位是TCP或UDP,负责主机中两个进程之间的逻辑通信(端到端通信)。具体包括:复用与分用、可靠数据传输、流量控制、拥塞控制等。


应用层


通过应用进程间的交互来实现特定网络应用,直接为用户或应用进程提供特定的应用服务,如文件传输、电子邮件等。


例题


练习1:收发两端之间的传输距离为1000 km,信号在媒体上的传播速率为2 x108 m/s。试计算以下两种情况的发送时延和传播时延。


(1)数据长度为 107bit,数据发送速率为100 kbit/s;

(2)数据长度为 103bit,数据发送速率为1 Gbit/s。


从以上计算结果可得出什么结论?


解答:(1) 发送时延为100 s,传播时延为5 ms。发送时延远大于传播时延。

(2) 发送时延为1微秒,传播时延为5 ms。发送时延远小于传播时延。

练习2:一个系统的协议结构有N层,应用程序产生M字节长的报文,网络软件在每层都加上h字节的协议头,网络带宽中至少有多大比率用于协议头信息的传输?

解答:(N × h/(N × h + M)) × 100%。若应用程序产生的报文再分为多个小的分组则比率会更大。


二、🍸物理层


基本概念


数据、信号与码元


数据是指传送信息的实体。信号是指数据的电气或电磁表现,是数据在传输过程中的存在形式。码元是指用一个固定时长的信号波形(数字脉冲)表示一位k进制数字,代表不同离散数值的基本波形是数字通信中数字信号的计量单位。


信源、信道与信宿


信源是产生和发送数据的源头,信宿是接受数据的终点,信道按传输信号形式不同分为模拟信道和数字信道。


速率、波特和带宽


速率和带宽的概念前面已经提过了,这里介绍一下波特

码元传输速率:单位时间内数字通信系统所传输的码元个数(也可称脉冲个数)

波特是码元传输速率的单位,1波特表示数字通信系统每秒传输一个码元。


编码、调制与解调


编码


将数字数据编码为数字信号,有归零编码、非归零编码、反向非归零编码、曼切斯特编码、差分曼切斯特编码


调制


将数字数据调制为模拟信号


解调


将模拟信号转换为数字信号,三个步骤:采样、量化、编码。


奈氏准则及应用


前提条件:在理想低通(没有噪声、带宽有限)的信道中:


极限码元传输率为2W波特,其中W是理想低通信道的带宽,单位为Hz。


极限数据率为2Wlog2V,V是指有多少种码元。


例题


假定某信道受奈氏准则限制的最高码元速率为20000码元/秒。如果采用幅移键控,把码元的振幅划分为16个不同等级来传送,那么可以获得多高的数据率(b/s)?

解答:16个等级可以表达4位二进制数,每个码元可以表示4个比特,因此,可以获得80000 b/s的数据率。


香农定理及应用


前提条件:在带宽受限且有高斯白噪声干扰的信道中:


极限数据率为Wlog2(1+S/N)W为信道的带宽,S/N为信噪比,S为信道所传输信号的平均功率,N为信道内部的高斯噪声功率。


总结


奈氏准则只考虑了带宽与极限码元传输速率的关系,而香农定理不仅考虑到了带宽,也考虑到了信噪比。


信道复用的概念及作用


频分复用(FDM)


一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。


时分复用(TDM)


将一条物理信道按时间分成若干时间片,轮流分配给多个信号使用。


波分复用(WDM)


即光的频分复用。由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用。


码分复用(CDM)


采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它即共享信道的频率,又共享时间。


码分多址(CDMA)


码分复用的一种方式,给每个用户分配一个唯一的正交码,在发送端,不同用户的数据用该正交码编码后复用到同一信道进行传输;在接收端,用同一正交码解码进行分用。CDMA主要用于无线通信,具有很强的抗干扰能力。


例题


共有4个用户进行CDMA通信。这4个用户的码片序列为: A: (–1 –1 –1 +1 +1 –1 +1 +1);B: (–1 –1 +1 –1 +1 +1 +1 –1) C: (–1 +1 –1 +1 +1 +1 –1 –1);D: (–1 +1 –1 –1 –1 –1 +1 –1)

现收到码片序列:(–1 +1 –3 +1 –1 –3 +1 +1)。问是哪些用户发送了数据?发送的是1还是0?(求规格化内积,对应位相乘再相加在除以总的位数)

解答:A的内积为1,B的内积为–1,C的内积为0,D的内积为1。因此,A和D发送的是1,B发送的是0,而C未发送数据。


三、🍹数据链路层


功能


在两个相邻结点之间传送以帧为单位的数据,可以概括为成帧、差错控制、流量控制和传输管理等。


解决透明传输的方法:零比特填充法


325f9017f80041af8e09b16be5a34823_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


停止等待协议


就是每发送完一个帧就停止发送,等待对方确认,在收到确认后再发送下一个帧。


为什么要有停止等待协议?


除了比特出差错,底层信道还会出现丢包问题(物理线路故障、设备故障、病毒攻击、错误等原因,会导致数据包的丢失),为了实现流量控制,就有了停止等待协议。


研究停等协议的前提


仅考虑一方发送数据,一方接受数据。


停等协议——无差错情况

f1d62646b0464baaa15c28b3614d0939_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


停等协议——有差错情况

1.数据帧丢失或检测到帧出错


fc88230f344244edb323a410aea10600_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

:发送完一个帧后,必须保留它的副本;数据帧和确认帧必须编号。

2.确认帧丢失


f83ac28f21b244d2ac529ca73808bd3f_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

3.确认帧迟到


f4f30877610640fe99112bb85a3fa059_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


停等协议优缺点


简单但是信道利用率很低。


cd0907e3877249d68431bcdf75e8fee5_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


例题


1ca6923218d24542babaaaf84feac0f2_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


后退N帧协议GBN(发送窗口大于1,接受窗口等于1)


为什么叫后退N帧协议?


GBN协议中,对N号帧的确认采用累计确认的方式,表明接收方已经收到n号帧和它之前的全部帧。


该协议名称来源于出现丢失和时延过长帧时发送方的行为,如果出现超时,发送方重传所有已发送但未被确认的帧。


b8a0ba4c7eaa41c8907139bbc228e2b2_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


滑动窗口长度


若采用n个比特对帧编号,则1<发送窗口长度<2n−12^n-12n1 。因为发送窗口尺寸过大,无法区别新帧和旧帧。


选择重传协议SR(发送窗口大于1,接受窗口大于1)


设置单个确认,同时加大接受窗口,设置接受缓存,缓存乱序到达的帧。


f10f792743b6429a838266600e631313_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg

滑动窗口长度怎么设计?


发送窗口等于接受窗口 窗口长度W maxW~maxWmax=2n−12^{n-1}2n1


GBN协议重点总结


  1. 累计确认
  2. 接收方只按序接受帧,不按序无情丢弃
  3. 确认序列号最大的、按序到达的帧
  4. 发送窗口最大为2n−12^n-12n1,接受窗口为1


性能分析


  • 连续发送提高了信道利用率
  • 发送正确的帧也会被重传,传送效率降低


例题


5b7e2bb1144c4b669de5cf79c397862e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


SR协议总结


  1. 对数据帧逐一确认,收一个确认一个
  2. 只重传出错帧
  3. 接收方有缓存
  4. 窗口长度W maxW~maxWmax=2n−12^{n-1}2n1


习题


26d345dbe481444fae2ab204e4aadc05_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

CSMA/CD协议


又称载波监听多点接入/碰撞检测协议(carrier sense multiple access with collision detection)

CS:每一站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据.

MA:多点接入,表示多计算机以多点接入的方式连接在一根总线上.总线型网络.

CD:适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据.


为什么先监听后发送还会冲突?


因为电磁波在总线上总是以有限的速率传播的.有传播时延.


传播时延对载波监听的影响


5e74c01fdfaa43f78218f93f12b8500e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


如何确定碰撞后的重传时机


截断二进制指数规避算法


1b73b97982a34067a20ab5900dbdd733_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

最小帧长问题


A站发了一个很短的帧,但发生了碰撞,不过帧在发送完毕后才检测到发生了碰撞,没法停止发送,因为发完了.故要定义一个最小帧长.帧的传输时延至少要等与两倍信号在总线中的传播时延.帧长/数据传输速率>=2∗传播时延帧长/数据传输速率>=2*传播时延/>=2,故最小帧长=2∗传播时延∗数据传输速率最小帧长=2*传播时延*数据传输速率=2


以太网的最小帧长为64B

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
3月前
|
监控 安全 数据安全/隐私保护
智能家居安全入门:保护你的网络家园
本文旨在为初学者提供一份简明扼要的指南,介绍如何保护自己的智能家居设备免受网络攻击。通过分析智能家居系统常见的安全漏洞,并提供实用的防御策略,帮助读者建立起一道坚固的数字防线。
|
10天前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
25 3
图卷积网络入门:数学基础与架构设计
|
7天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
26 3
|
14天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
26天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
84 0
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
2月前
|
弹性计算 人工智能 运维
Terraform从入门到实践:快速构建你的第一张业务网络(上)
本次分享主题为《Terraform从入门到实践:快速构建你的第一张业务网络》。首先介绍如何入门和实践Terraform,随后演示如何使用Terraform快速构建业务网络。内容涵盖云上运维挑战及IaC解决方案,并重磅发布Terraform Explorer产品,旨在降低使用门槛并提升用户体验。此外,还将分享Terraform在实际生产中的最佳实践,帮助解决云上运维难题。
131 1
Terraform从入门到实践:快速构建你的第一张业务网络(上)
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
29 1
|
3月前
|
域名解析 网络协议 应用服务中间件
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1
本文将以网络编程入门者视角,言简意赅地为你请清楚localhost和127.0.0.1的关系及区别等。
158 2
网络编程入门如此简单(四):一文搞懂localhost和127.0.0.1