当前位置: 首页 > news >正文

计算机网络复习 吉林大学

1、信息交换的三种方式:电路交换,分组交换,报文交换。

从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。

电路交换:(星形结构替代全连接)

电话交换机接通电话的方式叫做电路交换;

电路交换的三个步骤:建立连接(分配通信资源,其实就是通过交换机确确定好线路),通话(占用通信资源,双方可以通信了),释放连接(归还通信资源)。

效率:使用电路交换来传送计算机数据时,传输效率很低。

计算机之间传输数据往往是“突发式”,即高频次、少量的传输。

原因:建立连接时间长;线路独占,使用效率低;灵活性差;无差错控制;

报文交换:(采用了存储转发的技术思想)

报文(message):包含了发送方、接收方、信息内容。控制信息+用户数据。

中间媒介报文交换机;

存储转发:把传送的数据单元先存储在中间节点,再根据目的地址转发到下一个节点,这一点报文交换机会自己处理。并且通信线路可以灵活分配,交换机 会考虑走最便捷的线路。

 

优点:

通信前不用建立连接;

数据以报文为单位,采用存储转发的方式,通信线路可以灵活分配;

线路利用率高,不存在资源独占情况,两个用户无需独占一整天线路;

交换节点支持“差错控制”,节点之间可以对数据效验。

缺点:

报文不定长(因为你不知道用户发的内容多长,发给谁),不方便存储转发管理(比如有的大报文占很大内存,小报文占用小,那么交换机要能够发送大报文,就必须确保内存足够大;),

长报文的存储转发时间、缓存开销大;长报文容易出错,重传代价高。

存在存储转发时延;

 

为了解决上述报文交换问题,实际上,计算机网络往往采用分组交换;

分组交换:

分组交换和报文交换类似,但是将报文进行了切割,得到定长的分组作为数据传输单元。

这里分组号用来确定分组之间的相对顺序,以便于能够在接收方拼接成完整的内容。

相比于报文交换的优点:

分组定长,方便存储转发管理;

分组的存储转发时间开销小,缓存开销小;

分组不易出错,重传代价低。

缺点:

控制信息的占比增加,因为每个分组要附加额外的控制信息头。分组越多,这个控制信息的开销越大。

相比于电路交换,依然有存储转发时延。

报文被拆成多个分组,传输过程可能出现丢序、失序,增加处理的复杂度。

附加:虚电路交换技术,基于分组交换。

2、三种交换方式的性能对比:

纵轴表示时间递增方向,ABCD表示节点。

 

 

 

 

第x章  物理层

1、物理层概述

目的:解决在各种传输媒体上传输比特0和1的问题

物理层主要任务:指明四个特性(机械特性、电气特性、功能特性、过程特性)

 

2、物理层下的传输媒体:

传输媒体分类:导引型传输媒体、非导引型传输媒体

导引型传输媒体:双绞线、同轴电缆、光纤、电力线;

非导引型传输媒体:微波通信、无线电波、微波、红外线、可见光;

(1)同轴电缆:

基带同轴电缆:数字传输,过去用于局域网;

宽带同轴电缆:模拟传输,目前主要用于有线电视;

缺点:贵,布线不方便,不灵活;

(2)随着集线器的出现,局域网领域一般采用双绞线:

 

绞合的作用:减少电磁干扰(来自外界、来自相邻导线);

(3)光纤:

优点:通信容量大(25000-30000GHZ);

传输损耗小,远距离传输更实惠;

抗雷电、电磁干扰能力强;

无串音干扰、保密性好、不易被窃听;

体积小、重量轻;

缺点:昂贵,割弃设备得专用

 

多模光纤:存在许多条不同角度入射的光线在一条光纤中传播。

由于色散导致信号失真,多模光纤只适合近距离传输,而对光源要求不高。

 

单模光纤:光在纤芯中一直向前传播而不发生全反射。

适合长距离传输,制作成本高,对光源要求高

(4)电力线:适合小空间

(5)非导引型传输媒体:

  1. 无线电波(Radio Waves)

    • 无线电波是一种电磁波,其频率范围广泛,从几百千赫兹到数百太赫兹。
    • 无线电波可以穿透大气层,适用于长距离通信,如广播、电视、移动通信等。
    • 无线电波的传播可能会受到地形、建筑物等因素的影响。
  2. 微波(Microwaves)

    • 微波是频率在300 MHz到300 GHz之间的电磁波。
    • 微波传播损耗较小,适用于点对点通信,如微波中继通信、卫星通信等。
    • 微波的传播受天气条件(如雨、雾)的影响较大,且需要直视路径(Line of Sight, LoS)。
  3. 红外线(Infrared, IR)

    • 红外线是波长在750纳米到1毫米之间的电磁波,位于可见光谱的红光之外。
    • 红外线的传播不需要直视路径,可以穿透薄雾和烟雾,但会被云层和雨滴吸收。
    • 红外线常用于短距离通信,如遥控器、红外通信接口等。
  4. 可见光(Visible Light)

    • 可见光是波长在380纳米到750纳米之间的电磁波,人眼可以感知的光谱。
    • 可见光通信(VLC)是一种利用可见光进行数据传输的技术,如LED灯通信。
    • 可见光通信的优点是不需要额外的发射器,可以直接使用现有的照明设备,但受环境光线影响较大。

 

3、数据的传输方式:

串行传输和并行传输;同步传输和异步传输;单工、半双工、全双工通信;

  1. 串行传输(Serial Transmission)

    • 数据一位接一位地传输。
    • 简单,适用于长距离传输,因为只需一根线。
    • 速度可能比并行传输慢,因为数据是逐位传输的。
  2. 并行传输(Parallel Transmission)

    • 数据的多位同时传输。
    • 速度快,因为多个位同时通过不同的线进行传输。
    • 复杂度较高,需要多根线,且不适合长距离传输。
  3. 同步传输(Synchronous Transmission)

    • 数据以固定的时间间隔传输,通常由时钟信号同步。
    • 传输效率高,因为数据和时钟信号一起传输,接收方可以准确地知道数据位的开始和结束。
    • 适用于高速数据传输,如磁盘驱动器和某些网络接口。
  4. 异步传输(Asynchronous Transmission)

    • 数据传输不需要固定的时间间隔,每个字符或数据块的开始和结束由特定的位模式标识。
    • 灵活性高,易于实现,适用于低速数据传输,如串行端口。
    • 由于每个字符都需要额外的起始位和停止位,可能会引入一些额外的开销。

  1. 单向通信(Simplex Communication)

    • 数据只在一个方向上传输。
    • 简单,成本低,适用于广播或不需要反馈的通信场景。
  2. 双向交替通信(Half-Duplex Communication)

    • 数据可以在两个方向上传输,但同一时间只能单向传输。
    • 适用于需要双向通信但不需要同时进行的场景,如对讲机。
  3. 双向同时通信(Full-Duplex Communication)

    • 数据可以同时在两个方向上传输。
    • 提高了通信效率,适用于电话、以太网等需要实时双向通信的场景。

 

4、编码与调制

 

 

5、信道的极限容量

 

第 1 章 计算机网络和因特网

概念速览

计算机网络:一些具有独立功能的计算机通过通信介质相互连接起来,以实现资源共享的计算机的集合。

互连网:一些相互连接的计算机网络的集合(网络的网络)。

互联网:互连网的同义词。

internet 与 Internet

  • internet:普通名词,泛指一般的互连网
  • Internet:专有名词:世界范围的互连网;使用 TCP/IP 协议族;前身是阿帕网 ARPANET

主机、端系统:与因特网相连的计算机或其他设备。如PC,工作站,服务器,智能手机,电视,游戏机,汽车,电器,手表,温度调节系统。

端系统通过通信链路分组交换机连接在一起。

分组:当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,由此形成的信息包叫分组。

分组交换机分为路由器链路层交换机两种

  • 链路层交换机用于接入网
  • 路由器用于网络核心

因特网标准(Internet Standard)因特网工程任务组(IETF)研发

IETF 的标准文档称为请求评价(RFC)

因特网应用程序运行在端系统上,并不运行在网络核心中的分组交换机中。尽管分组交换机能够加速端系统之间的数据交换,但它们并不在意作为数据的源或宿的应用程序。

协议:定义了两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。

  • 语法
  • 语义
  • 时序(同步)

网络边缘:端系统位于因特网的边缘,故称为端系统

接入网:将端系统物理连接到其边缘路由器的网络。边缘路由器:是端系统到任何其他远程端系统的路径上的第一台路由器。

  • 家庭接入:DSL、电缆、FTTH、拨号和卫星
    • 数字用户线(DSL):本地电话公司也是ISP。
    • 电缆因特网接入:利用有线电视公司现有的有线电视基础设施。共享广播媒体:由头端发送的每个分组向下行经过每段链路到达每个家庭;每个家庭发送的每个分组经上行信道向头端传输。
    • 光纤到户(FTTH):从本地中心局直接到家庭提供了一条光纤路径。
    • 拨号与卫星:在无法提供以上方式的偏远地方,使用传统电话线拨号接入。
  • 企业(和家庭)接入:以太网和 WiFi
  • 广域无线网接入:3G和LTE

物理媒体

  • 引导型媒体:光缆、双绞铜线、同轴电缆
  • 非引导型媒体:无线局域网、数字卫星频道

网络核心:由互联因特网端系统的分组交换机和链路组成的网状网络。

分组交换:计算机网络中,源主机将长报文划分为较小的数据块,称之为分组。在源和目的地之间,这些分组中的每个都通过通信链路和分组交换机传送。

  • 存储转发:在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。

  • 丢包:因为排队缓存空间大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了,此时到达的分组或已经排队的分组之一将被丢弃。

电路交换:双方通话前先建立连接,连接期间在该网络链路上预留了恒定的传输速率,发送方能够以确保的恒定速率向接收方传送数据。

分组交换和电路交换的比较

  • 电路交换不考虑需求,而预先分配了传输链路的使用,预留了端系统之间沿通信路径所需要的资源,这使得已分配而并不需要的链路时间未被利用(静默期专用链路空闲),发送方能够以确保的恒定速率向接收方传送数据。
  • 分组交换按需分配链路使用,不预留资源,链路传输能力将在所有需要在链路上传输分组的用户之间逐分组地被共享。分组交换的端到端时延是可变的和不可预测的(主要是排队时延的变动),不适合实时服务,但是提供了比电路交换更好的带宽共享,比电路交换更简单、更有效,实现成本更低。

网络的网络

  • 因特网服务提供商(ISP):端系统通过因特网服务提供商接入互联网。每个 ISP 自身就是一个由多台分组交换机和多段通信链路组成的网络。
  • 因特网交换点(IXP):IXP 是一个汇合点,多个 ISP 能够在这里一起对等。客户 ISP 支付给提供商 ISP 的费用数额反映了它通过提供商交换的通信流量。为了减少这些费用,位于相同等级结构层次的邻近一对 ISP 能够对等(peer),也就是说,能够直接将它们的网络连到一起,使它们之间的所有流量经直接连接而不是通过上游的中间 ISP 传输。

时延

  • 处理时延 dprocdproc:检查分组首部和决定将该分组导向何处、检查比特级别差错等所需要的时间。

  • 排队时延 dqueuedqueue:如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达的分组必须在输出缓存中等待。时间无法确定。

  • 传输时延 dtransdtrans:L/R ,L 比特表示分组长度,R bps表示路由器之间的链路传输速率。这是将所有分组的比特推向链路所需要的时间。

  • 传播时延 dpropdprop:d/s,d 是路由器之间的距离,s 是链路的传播速率。表示从链路起点到另一个路由器传播所需要的时间。

  • 总时延:dnodal=dproc+dqueue+dtrans+dpropdnodal=dproc+dqueue+dtrans+dprop

  • 流量强度La/R,a 表示分组到达队列的平均速率。流量强度不能大于 1

 

吞吐量:单位时间内通过某个网络或接口的实际数据量。

实际吞吐量:min{R1,R2,...,RN}min{R1,R2,...,RN} ,R 是链路传输速率。即瓶颈链路传输速率。当没有其他千扰流最时,其吞吐量能够近似为沿着源和目的地之间路径的最小传输速率

时延带宽积传播时延*带宽以比特位单位的链路长度链路上存在的最大比特数

通信子网:物理层、数据链路层、网络层

资源子网:传输层、会话层、表示层、应用层

计算机网络的宽带:网络可通过的最高数据率,即每秒多少比特。

宽带线路:可通过较高数据率的线路。每秒有更多比特从计算机注入到线路。

宽带线路和窄带线路上比特的传播速率是一样的。:通信线路上通常都是串行传输的。宽带线路传输的比特间距短,密度大。

协议

 

 

 

 

 

 

第二章  应用层

1、网络应用是计算机网络存在的理由,如果我们不能构想岀任何有用的应用,也就没有 任何必要去设计支持它们的网络协议了。

事实上,网络核心设备并不在应用层上起作用,而仅在较低层次起作用。

研发网络应用的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。

2、网络应用程序体系结构

注意:应用程序的体系结构区别于网络的体系结构。

在应用程序研究者的角度,网络体系结构是固定的,并为应用程序提供了特定的服务集合;

应用程序体系结构由应用程序研发者设计, 规定了如何在各种端系统上组织该应用程序;

现代网络应用程序的两种主流体系结构:客户-服务器体系结构、对等(P2P)体系结构。

3、客户—服务器体系结构:客户机+服务器

特点:

总有一个打开的主机,称为服务器,服务器服务于来自其他称为“客户”的主机的请求。

客户之间不直接通信,而是通过服务器间接相互通信;

服务器具有固定的、周知的地址,客户总能通过向该IP地址发生分组来与它联系。

例子:Web、 FTP、Telnet和电子邮件。

缺点:

在一个客户-服务器应用中,常常会出现一台单独的服务器主机跟不上它所有客户请求的情况。

高成本,需要庞大的服务器基础设施和服务器带宽。

优化:

配备更多主机作为服务器,形成数据中心,提高效率。

配备大量主机的数据中心(data center)常被用于创建强大的虚拟服务器。

 

4、对等体系结构(P2P体系结构):它允许网络中的每个节点(或称为对等方)既可以作为客户端也可以作为服务器。

特点:

 P2P 体系结构中,对位于数据中心的专用服务器有最小的 (或者没有)依赖;

应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方;

自扩展性,尽管每个对等方都由于请求文件产生工作负载,但每个对等方通过向其他对等方分发文件也为系统增加服务能力。

特点解释:

优点:

自扩展性强,网络可以自适应用户数量的增长;

有成本效率,不需要昂贵的服务器基础设施和大量服务器带宽;

 缺点:

由于高度非集中式结构,面临安全性、性能和可靠性等挑战;

 

注意:

某些应用具有混合的体系结构,它结合了客户-服务器和P2P的元素。

(例如,对 于许多即时讯息应用而言,服务器被用于跟踪用户的IP地址,但用户到用户的报文在用 户主机之间(无须通过中间服务器)直接发送)

举例:文件共享(BitTorrent)、对等方协助下载加速器(如迅雷)、因特网电话和视频会议。

 

5、进程通信

在构建网络应用程序前,还需要对运行在多个端系统上的程序是如何互相通信的情况有一个基本了解。

本质:进行通信的实际上是进程(process)而不是程序。

进程:一个进程可以被认为是运行在端系统中的一个程序。

重点关注:运行在不同端系统(可能具有不同的操作系统)上的进程间的通信。

进程通信方式:通过跨越计算机网络交换报文而互相通信。即发送进程生成并向网络中发送报文,接受进程接收之,并可能响应。

 

6、客户和服务器进程:

网络应用程序由成对的进程组成,这些进程通过网络相互发送报文。

客户:在一对进程之间的通信会话场景中,发起通信的进程;

服务器:在会话开始时等待联系的进程。

举例:

对于Web而言,浏览器是一个客户进程,Web服务器是一台服务器进程。对于P2P文件 共享,下载文件的对等方标识为客户,上载文件的对等方标识为服务器。

 

7、进程与计算机网络之间的接口:套接字。

多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文必须通过下面的网络。

套接字:进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。

套接字是同一台主机内应用层与运输层之间的接口,也称为应用程序和网络之间的应用程序编程接口(Application Programming Interface, API) ;

应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没有控制权。

在运输层的控制权仅有:1、选择运输层协议 2、设定某些运输层参数 

 

8、进程寻址:(主要指接收进程)

在一台主机上运行的进程为了向在另一台主机上运行的进程发送分组,接收进程需要有一个地址。

标识接收进程:主机的地址+目的主机中接受进程的标识符(或者说端口号、接收套接字);

因特网中,主机地址由其IP地址标识;接收进程需要知道目的地端口号或者接收套接字。

举例:已经给流行的应用分配 了特定的端口号。例如,Web服务器用端口号80来标识。邮件服务器进程(使用SMTP 协议)用端口号25来标识。用于所有因特网标准协议的周知端口号的列表能够在http:// www. iana. org处找到。

 

9、可供应用程序使用的运输服务:

前面讲过套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧,运输层协议负责从接收进程的套接字得到该报文。

网络提供的运输层协议不止一种,开发应用时,必须选一种可用的。

评估运输层协议的标准:

一个运输层协议能够为调用它的应用程序提供什么样的服务呢?我们大体能够从四个方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性。

 

(1)可靠数据传输:如果一个协议提供了某种确保数据交付服务,就认为提供了可靠数据传输(reliable血ta transfer) 。

当一个运输协议提供这种服务时,发送进程只要将其数据传递进套接字,就可以完全相信该数据将能无差错地到达接收进程;当一个运输层协议不提供可靠数据传输时,由发送进程发送的某些数据可能到达不了接收进程,这可能能被容忍丢失的应用(loss-tolerant application)所接受,比如“多媒体应用”,可以承受一些音频、视频的一定数据丢失。

(2)吞吐量:某个进程对的可用吞吐量就是发送进程能够向接收进程交付比特的速率。

因为其他会话将共享沿着该网络路径的带宽,并且因为这些会话将会到达和离开,该可用吞吐量将随时间波动。运输层协议能够以某种特定的速率提供确保的可用吞吐量。

两个相关概念:

具有吞吐量要求的应用程序被称为带宽敏感的应用;

弹性应用(elastic application)能够根据当时可用的带宽或多或少地利用可供使用的吞吐量。(例如:电子邮件、文件传输以及Web传送 都属于弹性应用)

我们希望,吞吐量越多越好。

(3)定时:运输层协议也能提供定时保证,可以多种形式实现。为了有效性而要求数据交付有严格的时间限制。

 适用于交互式实时应用程序:因特网电话、虚拟环境、电话会议、多方游戏

举例:协议要求发送方注入进套接字中的每个比特到达接收方的套接字不迟于 100ms。

(4)安全性:运输协议能够为应用程序提供一种或多种安全性服务。

举例:在发送主机中,运输协议能够加密由发送进程传输的所有数据;在接收主机中,运输层协议能够在将数据交付给接收进程之前解密这些数据。

 

10、具体的因特网提供的运输服务,实际上通过运输层协议实现:

因特网(更一般的是TCP/IP网络)为应用程序提供两个运输层协议,即UDP和TCP。

(1)TCP服务模型提供两种基本服务:

  • 面向连接服务:在数据传输开始之前,TCP协议通过一个握手过程在客户端和服务器之间建立连接。这个过程确保双方都准备好进行数据交换。一旦连接建立,数据可以在两个进程的套接字之间全双工地传输,即双方可以同时发送和接收数据。当数据传输完成后,连接会被拆除。

  • 可靠数据传输服务:TCP保证数据的可靠传输,即数据将无差错、按顺序地从发送方传输到接收方,没有数据丢失或重复。

    不安全,无论TCP还是UDP都没有提供任何加密机制,这就是说发送进程传进其套接字的 数据,与经网络传送到目的进程的数据相同。

 

TCP的加强版本,称为安全套接字层(Secure Sockets Layer, SSL) 用SSL加强后的TCP不仅能够做 传统的TCP所能做的一切,而且提供了关键的进程到进程的安全性服务,包括加密、数 据完整性和端点鉴别。

(2)UDP服务:

UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP是无连接的,因此在两个进程通信前没有握手过程。

 

10、应用层协议:定义运行在不同段系统上的应用程序如何相互传递报文。

报文类型、报文类型的语法、字段语义、规则。

 

11、常见的网络应用:Web、文件传输、电子邮件、目录服务DNS、流式视频和P2P;

12、

(1)Web(world Wide Web):万维网,从学术界、研究界到被公众使用。

    特性:按需操作。当用户需要时,Web搜索,就能得到所想要的内容。

    Web的传输层协议:TCP;

    Web的应用层协议:HTTP (超文本传输协议),Web的核心;

      HTTP定义了 Web客户向Web服务器请求Web页面的方式,以及服务器向客户传 送Web页面的方式。

    Web页面(文档):由对象组成,一个对象只是一个文件。多数Web页面含有一个HTML基本文件以及几个引用对象。

        (举例:如果一个Web页面包含HTML文本和5个JPEG图形,那 么这个Web页面有6个对象:一个HTML基本文件加5个图形)

   HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换 HTTP报文进行会话。Web服务器存储对象,每个对象由URL寻址。

        URL=存放对象的服务器主机名+对象的路径名

(举例,URL 地址 http://www. someSchool. edu/someDepartment/pic ture. gif,其中的 www. someSchool. edu 就是主机名,/someDepartment/picture, gif 就是路径 名)

        HTTP是无状态协议:服务器只响应客户请求,不保存客户状态信息;同一客户短时间多次

请求同一对象,服务器依旧响应。

    (2)    连接方式:默认持续连接,也可以改为非持续连接。

简单估算一下 从客户请求HTML基本文件起到该客户收到 整个文件止所花费的时间:

                往返时间(Round-Trip Time,RTT):该时间是指一个短分组从客户到服务器然后 再返回客户所花费的时间。

RTT=分组传播时延+分组在中间路由器和交换机上的排队时延+分组处理时延

如上图,粗略地讲,总的响应时间就是 两个RTT加上服务器传输HTML文件的时间

非持续连接的缺点:必须为每一个请求对象建立和维护全新的连接;每一个对象经受两倍RTT的交付时延。

 

(3)HTTP报文格式

HTTP报文分类:请求报文,响应报文;

HTTP请求报文的第一行叫作请求行(request line),其后继的行叫作首部行(header line),注意后面都是首部行,不单指下面的Host。

HTTP的响应报文:

有三个部分:一个初始状态行(status line) , 若干个 首部行(headerline),然后是实体体(entity body)。

状态行有3个字段:协议版本字段、状态码和相应状态信息

实体体部分是报文的主要部分,即它 包含了所请求的对象本身。

(4)用户与服务器的交互:cookie

        cookie可以用于标识一个用户

        前面提到了 HTTP服务器是无状态的。这简化了服务器的设计,并且允许工程师 们去开发可以同时处理数以千计的TCP连接的高性能Web服务器。然而一个Web站点通常希望能够识别用户,可能是因为服务器希望限制用户的访问,或者因为它希望把内容与用户身份联系起来。

        cookie技术的四个组件:

                ①在HTTP响应报文中的一个cookie首部行;

                ②在HTTP请求报文中的一个cookie首部行;

                ③在用户端系统中保留有一个cookie文件,并由用户的浏览器进行管理;

                ④位于Web站点的一个后端数据库。

(5)Web缓存:也叫代理服务器,它是能够代表初始Web服务器来满足HTTP请求的网络实体。

        原理:Web缓存器有自己的磁盘存储空间, 并在存储空间中保存最近请求过的对象的副本。

 

 

注意:Web缓存器既是服务器又是客户。当它接收浏览器的请求并发回响应 时,它是一个服务器。当它向初始服务器发出请求并接收响应时,它是一个客户。

举例:一所大学可能在它的校园网上安装一台缓 存器,并且将所有校园网上的用户浏览器配置为指向它。

 

        优点:减少请求响应时间,速度快,特别是当客户与初始服务器之间的瓶颈带宽远低于客户与Web缓存器之间的瓶颈带宽时更是如此。Web缓存器能够大大减少一个机构的接入链路到因特网的通信量。通过减少通信量,该机构就不必急于增加带宽,因此降低了费用。

 

 

 

13、电子邮件:电子邮件是一种异步通信媒介,即当人们方便时就可以收发邮件, 不必与他人的计划进行协调。

        组成:用户代理,邮件服务器(电子邮件体系结构的核心),简单邮件传输协议(SMTP是因特网电子邮件的核心)。

举例:

(微软的Outlook和Apple Mail是电子邮件用户代理的例子。当 Alice完成邮件撰写时,她的邮件代理向其邮件服务器发送邮件,此时邮件放在邮件服务器的外出报文队列中。当Bob要阅读报文时,他的用户代理在其邮件服务器的邮箱中取得该报文)

每个接收方在其中的某个邮件服务器上有一个邮箱(mailbox); 

典型的邮件发送过程:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。

故障情况:如果邮件服务器A不能将邮件交付给另外的服务器B,则A将邮件保持在报文队列并周期性尝试发送,若始终不行,则删除报文,并以电子邮件形式通知发送方。

 

 

14、DNS——因特网的目录服务:

DNS,全称为域名系统(Domain Name System),是一个分布式的网络服务,它将人类易于记忆的域名转换为计算机用于网络通信的IP地址。

主机名(域名)不定长、字母数字混合、路由器难以处理;

IP地址:定长、4个字节组成、严格层次结构、便于识别;

DNS的主要功能是域名解析,即一种进行主机名到IP地址转换的目录服务,即将域名和IP地址相互映射,使得用户可以通过域名访问互联网上的资源,而不需要记住复杂的IP地址。

DNS的组成:一个分层的DNS服务器实现的分布式数据库+一个使得主机能够查询分布式数据库的应用层协议

DNS的运输层协议:UDP,使用53号端口;

DNS服务器通常是运行BIND软件的UNIX机器;

与HTTP、FTP和SMTP协议一样,DNS协议是应用层协议:

①使用 客户-服务器模式运行在通信的端系统之间;

②在通信的端系统之间通过下面的端到端 运输协议来传送DNS报文。

然而,在其他意义上,DNS的作用非常不同于Web应用、 文件传输应用以及电子邮件应用。与这些应用程序不同之处在于,DNS不是一个直接和用户打交道的应用。

DNS通常是由其他应用层协议所使用的,包括HTTP、SMTP和FTP,将用户提供的主 机名解析为IP地址。

DNS工作步骤:举例,考虑运行在某用户主机上的一个浏览器(即一个HTTP 客户)请求URL www. someschool. edu/index. html页面时会发生什么现象。

   将想获得的IP地址通常就缓存在一个 附近的” DNS服务器中,这有助于减少DNS的网络流量和DNS的平均时延。

       DNS的其他功能服务:主机别名、邮件服务器别名、负载分配;

DNS工作机理概述:(主机名到IP地址转换)

应用程序调用DNS客户端,指明要转换的主机名,向网络发送DNS查询报文,若干时延后,收到结果到应用程序。从应用程序调用DNS的角度来看,DNS是一个黑盒。

 

15、DNS的设计方式:

(1)DNS的最简单设计方式是只使用一个DNS服务器(集中式),该服务器包含所有的映射。问题:单点故障,通信容量,远距离的集中式数据库,维护。缺点:速度慢,易出错,不易扩展,服务器压力过大,难维护。

(2)分布式的设计方案:分布式、层次数据库;DNS缓存;

                【1】分布式、层次数据库:使用大量的DNS服务器,以层次方式组织,分布在全球。

                          特点:映射不完全(没有一台DNS服务器拥有因特网上所有主机的映射);

                                     映射广泛分布(映射分布在所有的DNS服务器上);

                        DNS服务器分类:根DNS服务器、顶级域DNS服务器(TLD)、权威DNS服务器

           (     举例:假定一个DNS客户要决定主机名www. amazon.com的IP地址。

                发生事件:客户首先和某根服务器联系,得到顶级域名com的TLD的IP地址,再与TLD联系,得到amazon.com下的权威服务器的IP地址,最后再与权威服务器联系,为主机名www.amazon.com返回IP地址。)

                特殊:本地DNS服务器;(严格说来,一个 本地DNS服务器并不属于该服务器的层次结构,但它对DNS层次结构是至关重要的,起到代理作用)当主机发岀 DNS请求时,该请求被发往本地DNS服务 器,它起着代理的作用,并将该请求转发 到DNS服务器层次结构中。

                域名解析的过程:递归查询,迭代查询。

   

 

 

        【2】DNS缓存:

                目的:改善时延,减少报文传输数量,减少流量消耗;

                原理:将接受到的映射缓存在本地存储器;

                时限:由于映射不是永久的,DNS服务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

                  可以绕过根: 本地DNS服务器也能够缓存TLD服务器的IP地址,因而允许本地DNS绕过查询链中的根DNS服务器。事实上,因为缓存,除了少数DNS查询以 外,根服务器被绕过了。

                举例:(如果在 DNS服务器中缓存了一台主机名/IP地址 对,另一个对相同主机名的查询到达该 DNS服务器时,该DNS服务器就能够提供 所要求的IP地址,即使它不是该主机名的权威服务器。)

 

 

 

DNS记录和报文:

        DNS报文分类:查询报文、回答报文;且两类报文格式相同

        格式:首部区域+问题区域+回答区域+权威区域+附加信息区域;

RR是“资源记录”(Resource Record)的缩写;

        标志位指出报文是查询报文 (0)还是回答报文(1)

DNS脆弱性:

        针对DNS服务的攻击:

                分布式拒绝服务(DDoS)带宽洪范攻击(试图向每个DNS根服务器发送大量的分组,使得大多数合法DNS请求得不到回答);

                向顶级域名服务器(例如向所有处理.com 域的顶级域名服务器)发送大量的DNS请求。(破坏性更有效)

 

 

第三章、运输层:

        1、运输层概述

        地位:运输层位于应用层和网络层之间,是分层的网络体系结构的重要部分,为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。

        功能:运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能。

 

      2、运输层和网络层的关系:

        (1)在协议中,运输层位于网络层之上;

        (2)网络层提供主机之间的逻辑通信;运输层提供不同主机上的进程之间的逻辑通信;【各自本职区别】

        (3)运输层协议只工作在端系统中,它可以推出或接受来自网络层的报文,但不关心报文怎么从网络移动过来的。【相对独立】

        (4)运输协议能够提供的服务常常受制于底层网络层协议的服务模型(如果网络层协议无法为主机之间发送的运输层 报文段提供时延或带宽保证的话,运输层协议也就无法为进程之间发送的应用程序报文提 供时延或带宽保证) 【功能制约关系】

        (5)即使底层网络协议不能在网络层提供相应的服务,运输层协议也能提供某些服务。(

即使底层网络协议是不可靠的,也就是说网络层协议会使分组丢失、篡改和冗余,运输协议也能为应用程序提供可靠的数据传输服务,比如使用安全性加强的套接字、加密方法等等)【功能扩展关系】

 

3、因特网运输层概述:

     (1)常用的运输层协议:TCP(传输控制协议:可靠、有连接);UDP(用户数据报协议:不可靠、无连接);

     (2)   因特网网络层协议:IP(网际协议)

        特点:尽力而为交付服务(尽最大努力保证在主机之间交付报文段,但不保证数据的完整性)、不可靠服务;每台主机至少有一个网络层地址,叫IP地址。

     (3)运输层协议的最基本责任:将两个端系统间IP(网络层协议)的交付服务扩展为运行在端系统上的两个进程之间的交付服务。即运输层的多路复用和多路分解。

     (4)将主机间交付扩展到进程间的交付被称为“运输层的多路复用和多路分解”

TCP和UDP的区别
名称提供的服务特点
TCP数据交付和差错控制、可靠数据传输、拥塞控制可靠,有连接
UDP

进程到进程的数据交付和差错控制——UDP所能提供的仅有的两种服务

 

 

不可靠,无连接
   

        

拥塞控制:防止任何一条TCP连接用过多流量来淹没通信主机之间的链路和交换设备;TCP力求为每个通过一条拥塞网络链路的连接平等地共享网络链路带宽。

 

4、多路复用和多路分解:多路复用与多路分解服务是所有计算机网络都需要的。

        将主机间交付服务扩展到进程间交付服务的门户:套接字。

        一个进程可能有一个或多个套接字,每个套接字有唯一的标识符,标识符格式取决于它是UDP还是TCP支持。

        接收主机如何将到达的运输层报文段定向到适当的套接字?

        过程:在接收端,运输层检查报文段,标识出接收套接字(端口号),进而定向。

 

多路复用:在源主机从不同套接字收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层的一系列工作;【采集】

多路分解:将运输层报文段中的数据交付到正确的套接字的工作;【寻觅】

 

运输层多路复用的必要要求:①套接字有唯一标识符; ②每个报文段有特殊字段(源端口号和目的端口号)来指示该报文段所要交付到的套接字。

端口号是一个16比特的数,其大小在0 ~ 65535之 间。0 ~ 1023范围的端口号称为周知端口号。

源端口号可能作为返回地址的一部分。

周知端口号:受限制的,专门保留给那些周知的应用层协议来使用(如HTTP使用端口80,FTP使用端口21)

 

区别
 面向连接的多路复用和多路分解无连接的多路复用和多路分解
连接需求需要建立连接,采用TCP不需要建立连接,采用UDP
数据传输方式保证可靠数据传输,数据交付和差错控制,拥塞控制不保证可靠,仅有数据交付和1差错控制
套接字标识(源IP地址,源端口号,目的地IP地址,目的端口号)(目的IP地址,目的端口号)
应用场景Web、文件传输、电子邮件;要求数据完整性和顺序性。P2P、视频通话、DNS;容忍偶尔的数据包丢失,但需要快速传输。
性能和资源更多的资源来管理连接,但提供了更可靠的服务较少的资源来建立和维护,因为不需要为每个数据包建立连接
   

 

5、细说UDP:

运输层最低限度必须提供一种复用/分 解服务,以便在网络层与正确的应用级进程之间传递数据。

除了复用/分解功能(数据交付)及少量的差错检测外,它几乎没有对IP增加别的东西。

使用UDP时,在发 送报文段之前,发送方和接收方的运输层实体之间没有握手,即无连接。

UDP特点:

(1)关于发送什么数据以及何时发送的应用层控制更加精细(实时应用通常要求最小的发送速率,不希望过分地延迟报文段的传送,且能 容忍一些数据丢失,TCP服务模型并不是特别适合这些应用的需要)

(2)无须连接建立,没有建立连接的时延(这可能是DNS运行在UDP之上而不是运行在TCP之上的主要原因)

(3)无连接状态(而TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、 拥塞控制参数以及序号与确认号的参数)

(4)分组首部开销小(每个TCP报文段都有20字节的首部开销,而UDP仅有8字节的开销)

(5)使用UDP的应用是可能实现可靠数据传输的。这可通过在应用程序自身中建立可靠性机制来完成(例如,可通过增加确认与重 传机制来实现)

 

6、UDP报文段与检验和;UDP检验和提供了差错检测功能

检验步骤:

首先得到检验和:将分组数据二进制码全部相加(多余进位不要)得到分组和,然后取反;

检验:将检验和与分组和相加,若结果中有某些位为0,则表明分组中出错;若全为1,则对。

举例:假定我们有下面3 个16比特的字

反码运算就是将所有的0换成1,所有的 1转换成0。因此,该和0100101011000010的反码运算结果是1011010100111101,这就变 为了检验和。在接收方,全部的4个16比特字(包括检验和)加在一起。如果该分组中 没有引入差错,则显然在接收方处该和将是llllllllllllllllo如果这些比特之一是0, 那么我们就知道该分组中已经出现了差错。

 

7、为什么UDP首先要提出检验和以确保差错控制?

        (1)数据链路层不一定全然确保差错控制:不能保证所有链路层协议都提供差错检测;报文存储在某台路由器内存时,可能发生比特差错;

        (2)在既无法确保逐链路的可靠性,又无法确保内存中的差错检测的情况下,如果端到端数据传输服务要提供差错检测,UDP就必须在端到端基础上在运输层提供差错检测;

        端到端原则:某种功能必须基于端到端实现(即发送和接收数据的主机)

注意:UDP提供差错检测,但它对差错恢复无能为力

 

8、可靠数据传输原理:

 

(1)服务抽象:数据可以通过一条可靠的信道进行传输。

运输层的下层协议可能不可靠,因此需要在运输层构造可靠数据传输协议弥补。

 

(2)可靠数据传输协议:rdt1.0;rdt2.0;rdt3.0;

可靠数据传输协议
名称信道类型错误检测机制确认/否认机制(接收方反馈机制)重传机制序列号使用状态机复杂度性能特点 
rdt1.0完全可靠信道简单高效 
rdt2.0有比特差错信道效验和ACK/NAK简单低效 
rdt3.0有比特差错和丢包信道校验和ACK复杂低效 

 

ACK:肯定确认;  NCK:否定确认;

相比于rdt3.0,rdt2.0没有考虑反馈(ACK,NCK)受损的情况;

rdt3.0也叫比特交替协议;

解决方法:在数据分组中添加一新字段,让发送方对其数据分组编号,即将发送数 据分组的序号放在该字段。于是,接收方只需要检查序号即可确定收到的分组是否一次重传。

 

9、流水线可靠数据传输协议:

rdt3.0性能问题的核心在于它是一个“停等”的协议;

解决方法:不以停等方式运行,允许发送方发送多个分组而无需等待确认。这叫流水线技术。

比较:

关键点:

  • 序号范围:为了区分不同的分组,每个分组必须有一个唯一的序号。这在流水线协议中尤为重要,因为可能有多个分组同时在传输中。

  • 缓冲:发送方和接收方可能需要缓存多个分组。发送方需要缓存已发送但未确认的分组,而接收方可能需要缓存已正确接收但等待后续分组的分组。

  • 差错恢复:流水线协议需要处理丢失、损坏或延时过大的分组。有两种基本的差错恢复方法:

    • 回退N步(GBN):如果发现错误,发送方需要回退到上一个正确接收的分组,并重传所有后续的分组。

    • 选择重传(SR):只重传那些被确认丢失或损坏的分组,而不是整个窗口的分组

10、流水线可靠传输协议的差错恢复方式:

(1)回退N部(GBN):“回退N步”来源于出现丢失和时延过长分组时发送方的重传行为。

 

GBN发送方必须响应的三种类型的事件:

上层的调用;收到一个ACK;超时时间;

累计确认机制:对序号为n的分组的确认采取累积确认的方式,表明接收方已正确接收到序号为n的以前且包括n 在内的所有分组。

(比如当接收方传来ACK4时候,表明前面的0,1,2,3,4都已经被接收方正确接收)

GBN本身也有一些情况存在着性能问题:尤其是当窗口长度和带宽时延积都很大时,在流水线中会有很多分组更是如此.

接收方效率问题:丢弃一个正确接收的分组的缺点是随后对该分组的重传也许会丢失或出错,因此甚至需要更多的重传;

 

 

(2)选择重传(SR):

为了解决“接收方效率问题:丢弃一个正确接收的分组的缺点是随后对该分组的重传也许会丢失或出错,因此甚至需要更多的重传”问题,采取选择重传,即只重传那些被确认丢失或损坏的分组,而不是整个窗口的分组。

交付上层的时机:失序的分组将被缓存直到所有丢失分组(即序号更小的分组)皆被收到为止,这时才可以将一批分组按序交付给上层。

 

 

可靠数据传输机制总结:

 

 

11、面向连接的运输:细说TCP;

        TCP “连接”不是一条像在电路交换网络中的端到端TDM或FDM电路。相反, 该“连接”是一条逻辑连接。

(1)为什么说TCP是面向连接的?

        两个进程通信前必须“握手”,相互发送某些预备报文段,以确保数据传输的参数。双方都要初始化一些与TCP连接相关的TCP状态变量。

        

注意:中间路由器对TCP 连接完全视而不见,他们仅关注数据报(报文);

(2)连接特点:点对点,无“多播”;

        点对点:单个发送方与单个接收方之间的连接;

        多播:一次发送中,一个发送方将数据传送给多个接收方

【待补充】

 

(3)TCP报文段结构

 

 

 

 

11、TCP流量控制和拥塞管理:

        (1)流量控制服务:消除发送方使接收方缓存溢出的可能性;本质是一个速度匹配服务,即发送方的发送速率和接收方应用程序的读取速率相匹配。

        原理:  TCP通过让发送方维护一个称为接收窗口的变量来提供流量控制;

通俗的说接收窗口用来给发送方一个指示:接收方还有多少可用的缓存空间。因为TCP是全双工通信,在连接两端的发送方都各自维护一个接收窗口。        

 

解决死锁的方式:超时后启动持续计时器,发送送零窗口探测报文。(即使接收窗口为0,也必须接收零窗口探测报文)注意零窗口探测报文也有重传计时器,超时后会重发。

 

        (2)拥塞控制:发送方可能因为IP网络的拥塞而被遏制。

拥塞:对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。

 

        拥塞控制的方法分类:根据网络层是否为运输层拥塞控制提供显示帮助划分

                                             分为:   端到端拥塞控制、网络辅助拥塞控制。

 

原理:TCP连接的每一端都是由一个接收缓存、一个发送缓存和几个变量组成。运行在发送方的TCP拥塞控制机制跟踪一个额外的变量,即拥塞窗口 (congestion window) ;

拥塞窗口表示为cwnd,它对一个TCP发送方能向网络中发送流量的速率进行了限制。

在一个发送方中未被确认的数据量不会超过拥塞窗口与接收窗口中的最小值。

即:

 

        (3)TCP拥塞控制算法:算法包括三个部分:慢启动,拥塞避免,快速恢复。

 

 

何时结束慢启动时拥塞窗口的指数增长:

        情况1:存在一个超时指示的丢包事件(即拥塞)

此时将慢启动阈值ssthresh:=cwnd/2;发送方将设置为1并重新慢启动。

        情况2:到达慢启动阈值(ssthresh)

 

接着将进入拥塞避免状态:

        一旦进入拥塞避免状态,cwnd的值大约是上次遇到拥塞时的值的一半。

        现在要很谨慎地变化cwnd,保守的方法是:每个RRT只是将cwnd值增加一个MSS;

 

最后到快速恢复:

        对于引起TCP进入快速恢复状态的缺失报文段,对收到的每个冗余的 ACK, cwnd的值增加一个MSS。最终,当对丢失报文段的一个ACK到达时,TCP在降低 cwnd后进入拥塞避免状态。如果出现超时事件,快速恢复在执行如同在慢启动和拥塞避 免中相同的动作后,迁移到慢启动状态:当丢包事件出现时,cwnd的值被设置为1个 MSS,并且ssthresh的值设置为 cwnd值的一半。

 

 

 

第四章 网络层:数据平面

网络层被分成两个相互作用的部分:数据平面和控制平面

1、网络层概述:

 

2、转发和路由选择:数据平面和控制平面

两种重要的网络层功能:转发和路由选择;

转发:当一个分组到达某个路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路;

路由选择:送方流向接收方时,网当分组从发络层必须决定这些分组所采用的路由或路径。

 

特性转发(Forwarding)路由选择(Routing)
定义将分组从一个输入链路接口转移到适当的输出链路接口确定分组从源到目的地所采取的端到端路径的处理过程
时间尺度短(通常为几纳秒)长(通常为几秒)
实现方式通常用硬件来实现  【数据平面】通常用软件来实现  【控制平面】
过程路由器本地动作网络范围处理过程
例子通过单个立交桥的过程规划从宾夕法尼亚州到佛罗里达州的行程
关键元素转发表(Forwarding Table)路由表(Routing Table)、转发表
操作检查分组首部字段值,使用这些值在转发表中索引转发分组根据网络拓扑和算法确定最佳路径
决策依据分组首部字段值网络状态、路径成本、策略等
目的确保分组在网络中正确转发选择最佳路径以最小化延迟和最大化网络效率

 

 

3、网络服务模型:定义了分组在发送端到接收端系统的“端到端”运输特性。

提供的服务:尽力而为服务

        (1)不确保交付

          (2)  不 具有时延上界的确保交付。

        (3)不有序分组交付

        (4)不确保最小带宽

        (5)不安全性

 

 

4、路由器和链路层交换机:

链路层交换机:基于链路层帧中的字段值做出转发决定,这些交换机因此被称为链路层设备。

路由器:基于网络层数据报中的首部字段值做岀转发决定。



5、路由器工作原理:

 

 

 

 

 

6、分组调度:排队的分组如何经输出链路传输的问题

先进先出;优先权排队;循环和加权公平排队;

 

(1)先进先出

 

FIFO队列在网络中广泛应用于数据包的传输,特别是在不需要特殊优先级处理的场景中。它确保了数据包按照到达顺序被处理,有助于维护网络的公平性和简单性。

(2)优先权排队:

在下面的例子中:

分组1、3和4属于高优先权类,分组2和5属于低优先权类。

  • 分组到达和离开:分组按照其到达时间和优先级被放入相应的队列,并在传输完成后离开。
  • 优先级传输:高优先级的分组在传输时会优先于低优先级的分组
  • 非抢占式优先权:一旦分组开始传输,即使有更高优先级的分组到达,也不会打断当前传输。

        (3)循环和加权公平排队:

当寻找给定类的分组但是没有找到时,保持工作的循环规则将立即检查循环序列中的下一个类

 

 

 

7、网际协议:IPv4、寻址、IPv6

 

IPv4地址的表述:

分类编址下的IPv4格式:

 

 

 

 

总结:(可分配的)

【1,126】=A;

【128,191】=B;

【192,223】=C;

 

 

 

 

子网掩码:

 

 

 

 

无分类编址的IPV4地址:

 

  • 8、动态主机配置协议(DHCP):允许主机自动获取一个 IP 地址。

  • 某组织一旦获得了一块地址,它就可为本组织内的主机与路由器接口逐个分配IP地 址。系统管理员通常手工配置路由器中的IP地址(常常在远程通过网络管理工具进行配 置)。主机地址也能手动配置,但是这项任务目前更多的是使用动态主机配置协议

  • 四个步骤

    • DHCP 服务器发现:新到达的主机向端口 67 广播 DHCP 发现报文

    • DHCP 服务器提供:DHCP 服务器广播 DHCP 提供报文

    • DHCP 请求:客户选择一个服务器提供,广播 DHCP 请求报文,指定选择的 DHCP 服务器 ID

    • DHCP ACK:服务器使用 DHCP ACK 报文对 DHCP 请求报文进行响应,广播

    • 客户-服务器协议:客户是新到达的主机,每个子网都具有一台 DHCP 服务器,或DHCP 中继代理(路由器)

    • 使用 UDP 协议实现

    • 由于 DHCP 具有将主机连接进一个网络的网络相关方面的自动能力,故它又常被称为即插即用协议零配置协议

  • 9、网络地址转换(NAT)

    • NAT 转换表
    • NAT 使能路由器对外界的行为就如同一个具有单一 IP 地址的单一设备
    • NAT 使能路由器对外界隐藏了子网内部的细节
    • 从广域网到达 NAT 路由器的所有数据报都有相同的目的 IP 地址
    • 离开 NAT 路由器的所有报文拥有相同的源 IP 地址

10、IPv6

  • 数据报格式

    • 重要变化
      • 扩大的地址容量:IP 地址 128 比特
        • 任播地址:可以使数据报交付给一组主机中的任意一个
      • 简化高效的 40 字节首部:40 字节定长首部
      • 流标签
    • 有效载荷长度:数据载荷字节数
    • 下一个首部:标识数据报中的内容需要交付给哪个协议。与 IPv4 中的协议字段相同。
    • 与 IPv4 相比,去除的字段
      • 分组/重新组装:IPv6 不允许在中间路由器上进行分片与重新组装。这种操作只能在源和目的地端系统执行。
      • 首部校验和:因为因特网中的运输层和数据链路层协议已经执行了校验操作,并且 IPv4 上的 TTL 字段使得在每个路由器上都要重新计算校验和,耗时。
      • 选项:IPv6 40字节 定长

从 IPv4 到 IPv6 迁移

  • 宣布一个标志日,指定某个日期和时间,届时因特网的所有及其都关机并从 IPv4 升级到 IPv6.
  • 建隧道:假定两个 IPv6 节点要使用 IPv6 数据报进行交互,但它们是经由中间 IPv4 路由器互联的。我们将两台 IPv6 路由器之间的中间 IPv4 路由器的集合称为一个隧道。借助隧道,在隧道发送端的 IPv6 节点可将整个 IPv6 数据报放到一个 IPv4 数据报的有效载荷中。于是该 IPv4 数据报的地址设为指向隧道接收端的 IPv6 节点,再发送给隧道中的第一个节点。隧道中的中间 IPv4 路由器在它们之间为该数据报提供路由,就像对待其他数据报一样,完全不用知道该 IPv4 数据报自身就含有一个完整的 IPv6 数据报。隧道接收端的 IPv6 节点最终收到该 IPv4 数据报,检查到协议字段值是 41 ,并确定该 IPv4 数据报含有一个 IPv6 数据报,从中取出 IPv6 数据报,然后再为该 IPv6 数据报提供路由,就好像它是从一个直接相连的 IPv6 邻居那里接收到该 IPv6 数据报一样。

 

  • 协议翻译技术:对 IPv6 和 IPv4 报头时行相互翻译,实现 IPv4/IPv6 协议和地址的转换。

  • 双栈技术:主机或路由器同时装有 IPv4 和 IPv6 两个协议栈,因此主机既能和 IPv4 通信, 也能和 IPv6 通信。

 

 

 

 

 

 

 

 

第五章 网络层:控制平面

1、概述:

控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络组件和服务如何配置和管理。

网络层首要元素:转发表、流表。

 

网络层中控制平面的两种控制方法:每路由器控制和逻辑集中式控制。

 

2、路由选择算法:

目的:确定一条从发送方到接收方的好的路径(最低开销)。

 

 

c(x,y)表示节点x和y间边的开销;

路由选择算法分类:

        集中式路由选择算法,分散式路由选择算法。

(1)集中式路由选择算法

用完整的、全局性的网络知识 计算岀从源到目的地之间的最低开销路径。也就是说,该算法以所有节点之间的 连通性及所有链路的开销为输入。这就要求该算法在真正开始计算以前,要以某 种方式获得这些信息。

(2)分散式路由选择算法

路由器以迭代、分布 式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。 相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。然后,通过迭 代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或 一组目的节点的最低开销路径。eg:DV算法。

 

第二种分类方式:根据算法静态还是动态

静态路由选择算法:路由随时间变化非常缓慢,通常人工调整;

动态路由选择算法:随着网络流量负载或拓扑发生变化而改变路由选择路径。

  1. 负载敏感与负载迟钝路由选择算法:

    • 负载敏感算法:链路开销会根据底层链路的当前拥塞水平动态变化。如果一条链路当前拥塞,其开销会增加,路由选择算法会倾向于选择其他路径以避开拥塞。ARPAnet的早期路由选择算法是负载敏感的,但这也带来了一些难题。

    • 负载迟钝算法:链路开销不明确反映当前或最近的拥塞水平。当前因特网使用的路由选择算法,如RIP、OSPF和BGP,都是负载迟钝的。这意味着这些算法在计算路由时,不会考虑链路的即时拥塞状态。

 

1、链路状态路由选择算法:

LS(link state broadcast) 链路状态广播算法:

        其实就是迪杰斯特拉算法。

DV(distance vector) 距离向量算法:

(DV说它是分布式的,是因为每个节点都要从一个或多个直接相连邻居接收某些信息,执行计算,然后将其计算结果分发给邻居。说它是迭代的,是因为此过程一直要持续到邻居之间无更多信息要交换为止。)

特性LS路由选择算法DV路由选择算法
工作原理网络拓扑和所有链路费用已知,通过广播状态分组来完成每个节点仅与直接邻居交谈,提供从自己到所有其他节点的最低费用
算法结构全局信息算法  迪杰斯特拉算法迭代的、异步的、分布式算法   贝尔曼弗洛伊德算法
时间复杂性O(|N|^2)对好消息反应迅速,对坏消息反应迟钝,存在计数无穷大问题
报文复杂性需要发送O(|N||E|)个报文仅当新费用导致最低费用路径改变时,才传播改变的链路费用
收敛速度快,允许路由更快收敛慢,可能会遇到路由选择环路和无穷计数问题
健壮性路由计算分离,提供一定程度的健壮性一个不正确的节点计算值会扩散到整个网络
可扩展性好,可靠差,随着网络规模增大,性能下降
跳数限制无跳数限制,使用最短路径优先算法使用跳数或向量来确定距离,不考虑每跳链路的速率
路由表更新每个节点根据全局拓扑结构计算路由表根据相邻节点的路由信息更新自己的路由表
代表协议OSPF, IS-ISRIP, BGP, ARPAnet

LS算法在健壮性和可扩展性方面通常优于DV算法,但DV算法在某些情况下可能更简单易用

 

 

 

路由信息协议RIP和工作原理DV:

特性描述
协议类型基于距离矢量的动态路由协议
度量标准跳数(Hop Count)
更新周期通常为30秒
跳数限制最大跳数为15,超过则认为不可达
收敛速度相对较慢,可能需要几分钟
网络规模适用于小型网络,不适合大型网络
带宽占用定期广播整个路由表,可能占用较多带宽
路由环路容易产生路由环路,特别是收敛速度慢时
安全性安全性较低,因为更新信息是广播的
配置简单易于配置和理解
不支持VLSM不支持可变长子网掩码(VLSM)

比如:

 

 

第七章  无线网络和移动网络

一个是在该网络中由通 信链路的无线特性所带来的挑战,另一个是由这些无线链路使能的移动性。

 

1、概述:

无线网络的要素:无线主机、无限通信链路、基站。

无线主机:运行应用程序的端系统设备;(主机本身可能移动,也可能不移动。)

无线链路:主机通过无线通信链路连接到一个基站或者另一台无线主机。(连接其他要素的媒介,不同的无线链路技术具有不同的传输速率和能够传输不同的距离)

                无线链路特性:覆盖区域和链路速率;

基站:关键的基础设施,没有明确的对应设备,职责是“向与之关联的无线主机发送数据和接收数据,协调无线主机之间的传输”;

什么叫相关联:①该主机位于该基站的无线通信覆盖范围内;②该主机使用该基站中继它 (该主机)和更大网络之间的数据。

 

 

 

 

 

切换:当一台移动主机的移动超出一个基站的覆盖范围而到达另一个基站的覆盖范围后,它 将改变其接入到更大网络的连接点。

带来的问题:如何确定位置?如何编址?如何确保连接?

 

 

2、基础设施模式与自组网络:

基础设施模式:无线主机通过基站与更大的网络(如因特网)相连,基站提供传统的网络服务,如地址分配和路由选择。

自组网络(Ad Hoc Network):无线主机之间没有基站,主机需要自行提供路由选择、地址分配等服务。

 


3、无线网络分类:

①在该无线网络中的分组是否跨越了一个无线跳或多个无线跳;②网络中是否有诸如基站这样的基础设施。

“跳”(hop)是一个重要的概念,它指的是数据包在网络中从一个节点传输到另一个节点的过程。

 

 

 

4、无线链路和网络特征:

重点关注:链路层的变化

我们的确能够发现有线链路和无线链路间的许多重要区别:

递减的信号强度,来自其他源的干扰,多径传播。

递减的信号强度:电磁波在穿过物体时强度将减弱,即使在自由空间中,信号仍将扩散,这使得信号强度随着发送方和接收方距离的增加而减弱(路径损耗)

来自其他源的干扰:在同一个频段发送信号的电波源将相互干扰。

多径传播。当电磁波的一部分受物体和地面反射,在发送方和接收方之间走了不 同长度的路径,则会出现多径传播。这使得接收方收到的信号变得模糊。位于发送方和接收方之间的移动物体可导致多径传播随时间而改变。

 

 

增加传输功率的缺点:发送方必须消耗更多的能量,并且发送方的传输更可能干扰另一个发送方的传输;

"隐藏终端"问题是指两个无线站点(如H1和H2)彼此无法直接通信,因为它们不在对方的无线信号覆盖范围内,但它们都可以与同一个接入点(AP)通信。

 

 

5、码分多址(CDMA)

定义:CDMA属于信道划分协议族,它允许多个用户共享同一个通信信道,通过编码来区分不同的信号。

原理:?

 

 

6、WiFi:802.11无线LAN

当前,无线LAN在工作场所、家庭、教育机构、咖啡屋、机场以及街头无所不在, 它已经成为因特网中的一种十分重要的接入网技术。

最普遍的标准:IEEE 802.11无线LAN;其实就是WiFi;

 

 

7、wifi体系结构(802.11体系结构)

基本构建模块:基本服务集(BBS);

BBS=若干无线站点+中央基站(在802.11中叫做接入点AP)

 

 

如上图,两个BSS中的AP,它们连接到一个互联设备上(如交换机或者路由器),互联设备又连接 到因特网中。在一个典型的家庭网络中,有一个AP和一台将该BSS连接到因特网中的路由器(通常综合成为一个单元)

配置AP的无线LAN经常被称作基础设施无线LAN。

相关概念:

  • 服务集标识(SSID):当网络管理员安装一个 AP 时,管理员为该接入点分配一个单字或双字的服务集标识。

  • 一个典型的家庭网络中,有一个 AP 和一台将该 BSS 连接到因特网中的路由器。

  • WiFi 丛林:是一个任意物理位置,在这里无线站点能从两个或多个 AP 中收到很强的信号。

  • 关联:为了获得因特网接入,无线站点需要加入其中一个子网并因此需要于其中的一个 AP 相关联。关联意味着这一无线站点在自身和该 AP 之间创建一个虚拟线路。

  • 信标帧802.11 标准要求每个 AP 周期性地发送信标帧,每个信标帧包括该 AP 的 SSID 和 MAC 地址。

  • 被动扫描:扫描信道和监听信标帧的过程。

  • 主动扫描:通过向位于无线主机范围内的所有 AP 广播探测帧完成的。AP 用一个探测响应帧应答探测请求帧。无线主机则能够在响应的 AP 中选择某 AP 与之相关联。

 

 

 

8、带碰撞避免的CSMA ( CSMA with collision avoidance),或简称为CSMA/CA

CSMA/CA中的“CSMA”代表“载波侦听多路访问”,意 味着每个站点在传输之前侦听信道,并且一旦侦听到该信道忙则抑制传输。

 

 目的站点收到一个通过 CRC 校验的帧后,它等待一个被称为短帧间间隔(SIFS)的一小段时间,然后发挥一个确认帧。如果发送站点在给定的时间内未收到确认帧,它假定出现了错误并重传该帧,使用 CSMA/CA 协议访问该信道 。如果在若干固定次重传后仍未收到确认,发送站点将放弃发送并丢弃该帧。

重点总结:

但是上述CSMA/CA协议不能完全避免碰撞,因为以下情况:隐藏终端问题。

 

9、处理隐藏终端的方法:RTS和CTS:

 

"隐藏终端"问题是指两个无线站点(如H1和H2)彼此无法直接通信,因为它们不在对方的无线信号覆盖范围内,但它们都可以与同一个接入点(AP)通信。

隐藏终端带来碰撞问题:假设站点H1正在传输一个帧,并且 在H1传输的中途,站点H2要向AP发送一个帧。由于H2未听到来自H1的传输,它将 首先等待一个DIFS间隔,然后发送该帧,导致产生了一个碰撞。从而在H1和H2的整个 发送阶段,信道都被浪费了

(1)RTS:(Request to Send  )允许站点发送一个短请求发送控制帧;

(2)CTS(clear to send)允许站点发送一个短允许发送控制帧;

 

 

 

 

 

相关文章:

计算机网络复习 吉林大学

1、信息交换的三种方式:电路交换,分组交换,报文交换。 从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。 电路交换:(星形结构替代全连接) 电话交换机接通电话的方式…...

超级好用的小软件,连接电脑和手机。

将手机变成电脑摄像头的高效工具Iriun Webcam是一款多平台软件,能够将手机摄像头变成电脑的摄像头,通过简单的设置即可实现视频会议、直播、录制等功能。它支持Windows、Mac和Linux系统,同时兼容iOS和Android手机,操作简单&#x…...

【JavaScript】十三、事件监听与事件类型

文章目录 1、事件监听1.1 案例:击关闭顶部广告1.2 案例:随机点名1.3 事件监听的版本 2、事件类型2.1 鼠标事件2.1.1 语法2.1.2 案例:轮播图主动切换 2.2 焦点事件2.2.1 语法2.2.2 案例:模拟小米搜索框 2.3 键盘事件2.3.1 语法2.3.…...

微服务架构技术栈选型避坑指南:10大核心要素深度拆解

微服务架构的技术栈选型直接影响系统的稳定性、扩展性和可维护性。以下从10大核心要素出发,结合主流技术方案对比、兼容性评估、失败案例及优化策略,提供系统性选型指南。 1. 服务框架与通信 关键考量点 扩展性:框架需支持定制化扩展&#x…...

虚拟试衣间微信小程序解决方案

目录 项目名称: 云尚衣橱 核心功能模块: 技术栈选型: 架构设计概览: 详细功能点实现思路: 数据库设计 (MongoDB 示例): 开发步骤建议: 关键注意事项和挑战: 项目名称: 云尚衣橱 核心功能模块: 用户系统 (User System) 我的衣柜 (My Wardrobe) 虚拟试衣间 (Vir…...

C++STL——容器-vector(含部分模拟实现,即地层实现原理)(含迭代器失效问题)

目录 容器——vector 1.构造 模拟实现 2.迭代器 模拟实现: ​编辑 3.容量 模拟实现: 4.元素的访问 模拟实现 5.元素的增删查改 迭代器失效问题: 思考问题 【注】:这里的模拟实现所写的参数以及返回值,都是…...

MoLe-VLA:通过混合层实现的动态跳层视觉-语言-动作模型实现高效机器人操作

25年3月来自南京大学、香港理工、北大和香港科技大学的论文“MoLe-VLA: Dynamic Layer-skipping Vision Language Action Model via Mixture-of-Layers for Efficient Robot Manipulation”。 多模态大语言模型 (MLLM) 在理解复杂语言和视觉数据方面表现出色,使通用…...

《数字图像处理》教材寻找合作者

Rafael Gonzalez和Richard Woods所著的《数字图像处理》关于滤波器的部分几乎全错,完全从零开始写,困难重重。关于他的问题已经描述在《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》。 现寻找能够共同讨论、切磋、…...

uni-app 框架 调用蓝牙,获取 iBeacon 定位信标的数据,实现室内定位场景

背景:最近需要对接了一个 叫 iBeacon 定位信标 硬件设备,这个设备主要的作用是,在信号不好的地方,或者室内实现定位,准确的找到某个东西。就比如 地下停车场,商城里,我们想知道这个停车场的某个…...

Java面试黄金宝典29

1. 什么是普通索引和唯一性索引 定义: 普通索引:是最基本的索引类型,它为数据表中的某一列或多列建立索引,以加快数据的查询速度。它不限制索引列的值重复,允许存在多个相同的值。唯一性索引:在普通索引的基…...

C语言常见3种排序

主要是三种排序方法:冒泡排序、选择排序、插入排序。 文章目录 一、冒泡排序 1.代码: 2.工作原理: 3.具体过程: 二、选择排序 1.代码 2. 工作原理 3.具体过程: 三、插入排序 1.代码 2.工作原理 3.具体过程 总结 一、…...

Nyquist插件基础:LISP语法-自定义函数

1 Nyquist插件基础:LISP语法-自定义函数 在 Nyquist 里,自定义函数能够让你把特定的操作封装起来,实现代码复用和逻辑模块化。下面详细介绍如何在 Nyquist 中定义和使用自定义函数。 1.1.1 1. 基本函数定义 在 Nyquist 中使用 defun 来定义…...

Visual-RFT:视觉强化微调

文章目录 速览摘要1. 引言2. 相关工作大型视觉语言模型(LVLMs)强化学习 3. 方法3.1. 初步带可验证奖励的强化学习DeepSeek R1-Zero和GRPO 3.2. Visual-RFT3.2.1. 视觉感知中的可验证奖励检测任务中的IoU奖励分类任务中的CLS奖励 3.2.2 数据准备 4. 实验4…...

快速入手-基于DRF的过滤、分页、查询配置(十五)

1、过滤需要安装插件 pip install django-filter 2、注册 INSTALLED_APPS [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages",…...

最新Spring Security实战教程(八)Remember-Me实现原理 - 持久化令牌与安全存储方案

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...

gcc 链接顺序,静态库循环依赖问题

链接过程由链接器 ld 负责。通常 GCC 间接驱动之。 越底层的库,在链接命令行中的位置应越靠后。 文章目录 链接过程※ 但是对于静态库,链接器仅提取当前未解析符号所需的对象文件,未使用的对象文件会被丢弃。静态库(.a&#xff09…...

linux内核漏洞检测利用exp提权

案例一dirtycow(CVE-2016-5159) 有个前置知识就是 获取liunx的内核 hostnamectl uname -a 然后这个内核漏洞进行提权的步骤也是和手工win进行提权差不多 也是需要使用辅助工具在本地进行辅助检测 然后去nomi-sec/PoC-in-GitHub: &#…...

【学Rust写CAD】21 2D 点(point.rs)

源码 //matrix/point.rs use std::ops::Mul; use super::algebraic_units::{Zero, One}; use super::generic::Matrix;/// 点坐标结构体 #[derive(Debug, Clone, Copy, PartialEq)] pub struct Point<X, Y>(Matrix<X, Y, One, Zero, Zero, One>);impl<X, Y>…...

Jmeter的压测使用

Jmeter基础功能回顾 一、创建Jmeter脚本 1、录制新建 &#xff08;1&#xff09;适用群体&#xff1a;初学者 2、手动创建 &#xff08;1&#xff09;需要了解Jmeter的常用组件 元件&#xff1a;多个类似功能组件的容器&#xff08;类似于类&#xff09; 各元件作用 组件…...

C语言--统计输入字符串中的单词个数

输入 输入&#xff1a;大小写字母以及空格&#xff0c;单词以空格分隔 输出&#xff1a;单词个数 代码 如果不是空格且inWord0说明是进入单词的第一个字母&#xff0c;则单词总数加一。 如果是空格&#xff0c;证明离开单词&#xff0c;inWord 0。 #include <stdio.h&g…...

《雷神之锤 III 竞技场》快速求平方根倒数的计算探究

1. 《雷神之锤 III 竞技场》快速求平方根导数源代码 此处先列出其源代码&#xff0c;这段代码的目标是计算一个浮点数平方根的导数&#xff0c;也就是如下形式&#xff1a; f ( x ) 1 x f(x) \frac{1}{\sqrt{x}} f(x)x ​1​这段代码可以说非常难以理解&#xff0c;尤其是 …...

深入解析 Java 8 Function 接口:函数式编程的核心工具

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Java 8 引入的 java.util.function.Function 接口是函数式编程范式的核心组件之一&#xff0c;本文将全面解析其使用方法&#xff0c;并通过丰富的代码示例演…...

软件重构与项目进度的矛盾如何解决

软件重构与项目进度之间的矛盾可以通过明确重构目标与范围、采用渐进式重构策略、优化项目管理流程、提高团队沟通效率、建立重构意识文化等方式解决。其中&#xff0c;采用渐进式重构策略尤为关键。渐进式重构是指在日常开发过程中&#xff0c;以小步骤持续进行重构&#xff0…...

redis的geo结构实现[附近商铺]功能

先上结论 geo地理位置算出来是不准的 实现思路 redis6.2支持了经纬度数据格式 支持经纬度检索 需要将redis升级 否则会报错不支持命令 pom文件如果spring-data-redis是2.7.9的boot版本则要改一下支持geo: <dependency><groupId>org.springframework.boot</g…...

W3C XML Schema 活动

W3C XML Schema 活动 概述 W3C XML Schema(XML Schema)是万维网联盟(W3C)定义的一种数据描述语言,用于定义XML文档的结构和约束。XML Schema为XML文档提供了一种结构化的方式,确保数据的一致性和有效性。本文将详细介绍W3C XML Schema的活动,包括其发展历程、主要特点…...

深入解析C++类:面向对象编程的核心基石

一、类的本质与核心概念 1.1 类的基本定义 类是将**数据&#xff08;属性&#xff09;与操作&#xff08;方法&#xff09;**封装在一起的用户自定义类型&#xff0c;是面向对象编程的核心单元。 // 基础类示例 class BankAccount { private: // 访问控制string owner; …...

MySQL 复制与主从架构(Master-Slave)

MySQL 复制与主从架构&#xff08;Master-Slave&#xff09; MySQL 复制与主从架构是数据库高可用和负载均衡的重要手段。通过复制数据到多个从服务器&#xff0c;既可以实现数据冗余备份&#xff0c;又能分担查询压力&#xff0c;提升系统整体性能与容错能力。本文将详细介绍…...

2025年上软考——【数据库系统工程师】考前60天冲刺学习指南!!!

距离2025上半年“数据库系统工程师”考试已经不足两个月了&#xff0c;还没有准备好的小伙伴赶紧行动起来。为了帮助大家更好的冲刺学习&#xff0c;特此提供一份考前60天学习指南。本指南包括考情分析、学习规划、冲刺攻略三个部分&#xff0c;可以参考此指南进行最后的复习要…...

如果数据包的最后一段特别短,如何处理?

在处理TCP粘包/拆包时&#xff0c;如果最后一个数据段特别短&#xff08;例如仅包含部分包头部或部分数据体&#xff09;&#xff0c;需要通过合理的缓冲区和协议设计来确保数据完整性。以下是具体处理方案&#xff1a; 1. 缓冲区管理&#xff1a;保留不完整数据 核心思想&…...

vue修饰符

在 Vue 中&#xff0c;修饰符是一种特殊的后缀&#xff0c;用于改变指令的默认行为 stop <template><div><h2>vue修饰符</h2><div class"box" click"boxClikc"><button click"btnClick">按钮</button&…...

Redis-06.Redis常用命令-列表操作命令

一.列表操作命令 LPUSH key value1 [value2]&#xff1a; LPUSH mylist a b c d: LRANGE key start stop&#xff1a; LRANGE mylist 0 -1&#xff1a; lrange mylist 0 2&#xff1a; d c b RPOP KEY&#xff1a;移除并返回最后一个元素 RPOP list a LLEN key…...

LTSPICE仿真电路:(二十四)MOS管推挽驱动电路简单仿真

1.Mos管驱动电路基本的拓扑 前面在十一篇的时候学习了MOS管的简单的应用&#xff0c; 这一篇继续补充MOS管的驱动电路。 这个电路应该是最基本的电路仿真&#xff0c;先看电路以及仿真结果&#xff0c;以下仿真结果的电压皆为信号发生器提供的波形图。 看仿真结果比较明了&a…...

GFS论文阅读笔记

文章目录 摘要一、引言二、设计总览2.1、假设2.2、接口2.3、架构2.4 单Master2.5 Chunk大小2.6 元数据2.7 一致性模型 3 系统交互3.1 租约和变更顺序3.2 数据流3.3 原子性的操作&#xff1a;Record append3.4 快照-SNAPSHOT 4. master操作4.1 namespace的管理与锁定4.2 副本的分…...

6. 王道_网络协议

1 网络协议和网络模型 2 TCP/IP协议族概览 2.1 四层模型的各层实体 2.2 协议数据单元的转换 2.3 常见协议以及分层 2.4 ifconfig 2.5 本地环回设备 3 以太网 3.1 以太网和交换机 3.2 以太网帧 MAC地址大小 48位 6字节 IP地址 32位 4字节 port 16位 2字节 3.3 ARP协议 4 IP协…...

《K230 从熟悉到...》颜色识别

《K230 从熟悉到...》颜色识别 颜色识别的基本原理 《庐山派 K230 从熟悉到...》颜色识别 颜色识别是计算机视觉中的重要组件&#xff0c;它允许算法在图像中检测、识别和分类不同颜色。 颜色识别的基本原理 颜色识别的核心是通过分析图像中像素点的颜色信息&#xff0c;从…...

实时内核稳定性 - scheduling while atomic

scheduling while atomic问题 根因:未成对使用获取cpu_id的函数[ 291.881071][ 0] [XW]: type=0x00000003 cpuid=4 time=1725877230 subj...

数据编排与Dagster:解锁现代数据管理的核心工具

在数据驱动的时代&#xff0c;如何高效管理复杂的数据管道、确保数据质量并实现团队协作&#xff1f;本文深入探讨数据编排的核心概念&#xff0c;解析其与传统编排器的差异&#xff0c;并聚焦开源工具Dagster如何以“资产为中心”的理念革新数据开发流程&#xff0c;助力企业构…...

stc8g1k08a定时读取内部1.2v电压值发送到串口1

1189mv #include "stc8g.h"void t0_timer_init(){EA 1;//总中断控制位,启用中断//启用定时器0中断ET0 1;//允许t0中断AUXR | 0x80; //定时器时钟1T模式 t0不频 t1 12分频TMOD & 0xF0; //设置定时器模式TL0 0xCD; //设置定时初始值 205TH0 0xD4; …...

前端开发时的内存泄漏问题

目录 &#x1f50d; 什么是内存泄漏&#xff08;Memory Leak&#xff09;&#xff1f;&#x1f6a8; 常见的内存泄漏场景1️⃣ 未清除的定时器&#xff08;setInterval / setTimeout&#xff09;2️⃣ 全局变量&#xff08;变量未正确释放&#xff09;3️⃣ 事件监听未清除4️⃣…...

「青牛科技 」GC4931P/4938/4939 12-24V三相有感电机驱动芯片 对标Allegro A4931/瑞盟MS4931

芯片描述&#xff1a; • 芯片工作电压 4.7-36V &#xff08; GC4931P &#xff09; • 芯片工作电压 7.5-36V &#xff08; GC4938/4939 &#xff09; • 外置 mos 驱动&#xff0c; NN 结构&#xff0c;内置升压预驱 • QFN5X5-28 封装&#xff0c;带 ePAD 散热&#…...

2025 年山东危化品经营单位考试攻略分享​

山东的考试在全省统一标准。理论考试深入考查危化品相关标准规范&#xff0c;如《危险化学品重大危险源辨识》等。对于危化品储存设施的设计与维护知识要求较高。实际操作考核注重在山东化工园区常见的作业场景&#xff0c;如大型储罐区的操作。​ 报名准备材料与其他省份类似…...

RustDesk 开源远程桌面软件 (支持多端) + 中继服务器伺服器搭建 ( docker版本 ) 安装教程

在需要控制和被控制的电脑上安装软件 github开源仓库地址 https://github.com/rustdesk/rustdesk/releases 蓝奏云盘备份 ( exe ) https://geek7.lanzouw.com/iPf592sadqrc 密码:4esi 中继服务器设置 使用docker安装 sudo docker image pull rustdesk/rustdesk-server sudo…...

CMake 中的置变量

在 CMake 中&#xff0c;变量是存储和传递信息的重要方式。以下是一些常用的 CMake 变量&#xff0c;以表格形式列出&#xff0c;包括它们的名称、含义和常见用途&#xff1a; 变量名称含义常见用途CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的…...

前后端数据序列化:从数组到字符串的旅程(附优化指南)

&#x1f310; 前后端数据序列化&#xff1a;从数组到字符串的旅程&#xff08;附优化指南&#xff09; &#x1f4dc; 背景&#xff1a;为何需要序列化&#xff1f; 在前后端分离架构中&#xff0c;复杂数据类型&#xff08;如数组、对象&#xff09;的传输常需序列化为字符…...

为什么你涨不了粉?赚不到技术圈的钱?

“你的代码如果能打造市值百亿的产品&#xff0c;为什么不能为你的未来加冕&#xff1f;” 这不仅是一句口号&#xff0c;而是一段激励人心的故事的起点。想象一下&#xff0c;一个普通的程序员&#xff0c;在无数个深夜独自敲击代码中&#xff0c;他的每一行代码都承载着对未…...

MATLAB之数据分析图系列 三

三维堆叠柱状图 Bar3StackPlot.m文件 clc; clear; close all; %三维堆叠柱状图 %% 数据准备 % 读取数据 load data.mat % 初始化 dataset X; s 0.4; % 柱子宽度 n size(dataset,3); % 堆叠组数%% 图片尺寸设置&#xff08;单位&#xff1a;厘米&#xff09; figureUnits c…...

【nvidia】Windows 双 A6000 显卡双显示器驱动更新问题修复

问题描述&#xff1a;windows自动更新nvidia驱动会导致只检测得到一个A6000显卡。 解决方法 下载 A6000 驱动 572.83-quadro-rtx-desktop-notebook-win10-win11-64bit-international-dch-whql.exehttps://download.csdn.net/download/qq_18846849/90554276 不要直接安装。如…...

使用Docker快速部署Dify

使用Docker快速部署Dify:一站式AI应用开发平台 Dify 是一款开源的AI应用开发平台,支持快速构建基于大模型的AI应用。通过Docker部署Dify,可以简化环境配置流程,实现高效部署和扩展。本教程将详细介绍如何通过Docker快速部署Dify。 前置条件 ​服务器/本地环境:Linux/Wind…...

Uniapp 实现微信小程序滑动面板功能详解

文章目录 前言一、功能概述二、实现思路三、代码实现总结 前言 Uniapp 实现微信小程序滑动面板功能详解 一、功能概述 滑动面板是移动端常见的交互组件&#xff0c;通常用于在页面底部展开内容面板。本文将介绍如何使用 Uniapp 开发一个支持手势滑动的底部面板组件&#xff0…...

PyQt5和OpenCV车牌识别系统

有需要请加文章底部Q哦 可远程调试 PyQt5和OpenCV车牌识别系统 一 介绍 此车牌识别系统基于PyQt5和OpenCV开发&#xff0c;蓝牌&#xff0c;新能源(绿牌)&#xff0c;黄牌&#xff0c;白牌均可以准确识别&#xff0c;支持中文识别&#xff0c;可以导出识别结果(Excel格式)。此…...