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

计算机网络期末复习-Part4

1、UDP和TCP的比较

TCP提供可靠传输;UDP提供不可靠传输。TCP有连接;UDP无连接(减小时延)。TCP提供流量控制;UDP不提供流量控制。TCP提供拥塞控制;UDP不提供拥塞控制(传输快)。TCP提供差错检测;UDP也提供差错检测

2、TCP拥塞控制(端到端的拥塞控制)原理:不断调整发送窗口的大小

加性增、乘性减

TCP使用“加性增、乘性减”机制来动态调整发送速率。如果没有拥塞发生,缓慢增加拥塞窗口;如果发生丢包事件,将拥塞窗口减半

慢启动

初始阶段,将拥塞窗口设为1个MSS(最大报文段长度),然后以指数速度增加拥塞窗口,直到达到拥塞窗口的阈值。进入加性增阶段或者发生丢包后,切入乘性减再加性增的阶段。

超时后的保守机制

如果收到3个冗余ACK,表示发生了丢包,拥塞窗口减半。在之后,采用线性增加的方式逐步恢复窗口大小。如果超时事件发生,拥塞窗口直接变为1个MSS,之后采用指数增长,再达到一定阈值后,转为线性增长。

3、吞吐量=窗口/往返延时,信道利用率=达到的吞吐量/带宽

4、路由器典型的三种交换结构:经内存的交换,经总线的交换,经互联网络的交换

5、动态主机配置协议DHCP的步骤

DHCP服务器发现:

客户机在网络中启动时,如果没有配置IP地址,会发送一个DHCP发现报文的广播。该广播的目标IP地址为255.255.255.255,表示向网络中的所有主机发送。客户机的源IP地址通常设置为0.0.0.0。

DHCP服务器提供:

DHCP服务器接收到客户机的发现广播后,会向客户机发送DHCP提供报文,表示它愿意提供IP地址和其他网络配置信息。这同样是一个广播,目标IP地址为255.255.255.255。

DHCP请求:

客户机在收到一个或多个DHCP提供报文后,选择一个DHCP服务器,并向其发送DHCP请求报文,请求分配IP地址。这个请求报文的目标IP地址通常是选中的DHCP服务器的IP地址。

DHCP ACK:

选中的DHCP服务器接收到客户机的请求后,确认并回应,发送DHCP ACK报文。这个报文包含了客户机的IP地址及其他网络配置信息。客户机收到ACK后,配置并使用分配得到的IP地址。

6、NAT技术

英文全称:Network Address Translation;中文全称:网络地址转换

NAT的作用:将内部私有地址与外部共有地址进行转换,支持内网与公网的通信,使用NAT技术的目的是缓解IPV4的IP地址短缺问题。

NAT的工作过程示例:

内部设备使用私有IP地址发送请求;

NAT路由器接收请求,并为其分配一个临时的公有IP地址;

NAT表更新,将内部设备的私有IP地址和端口映射到分配的公有IP地址和一个新的端口;

NAT路由器使用分配的公有IP地址和新的端口将请求发送到Internet上的目标服务器;

外部服务器收到请求并向分配的公有IP地址和端口发送响应;

NAT路由器根据NAT转换表,将接收到的响应映射回内部设备的私有IP地址和端口。

7、分类IP编址

地址范围(包括网络地址本身,广播地址,私有地址等) 

8、内部网关协议:RIP,OSPF,EIGRP;外部网关协议:BGP-4

RIP协议是(分散的)路由协议,OSPF协议是(全局的)路由协议;

RIP协议是采用(距离矢量算法)的路由协议,OSPF协议是采用(链路状态算法)的路由协议。

9、RIP关于距离的定义

收到相邻路由器(其地址为 X)的一个 RIP 报文:

(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。

(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:

若项目中的目的网络不在路由表中,则将该项目加到路由表中。

若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。

若收到项目中的距离小于路由表中的距离,则进行更新, 否则,什么也不做。

看例题:

首先根据(1),修改通告图:

下一跳路由器全部是B,因为通告来自B;目的子网不变,但是所有的距离都要加一。

接着我们根据(2),更新D的转发表:

z是原来D的转发表里面没有的,我们直接添加进去;

y是原来有的,但是我们要替换成更新了的,因此将距离改成8;

x也是有的,原来通过F到达是8,但是通过B到达只有5,因此需要替换优化;

h也是有的,但是原来的距离更短,因此保留;

w在B的通告里没有,因此我们也保留原有的即可。

相关文章:

计算机网络期末复习-Part4

1、UDP和TCP的比较 TCP提供可靠传输;UDP提供不可靠传输。TCP有连接;UDP无连接(减小时延)。TCP提供流量控制;UDP不提供流量控制。TCP提供拥塞控制;UDP不提供拥塞控制(传输快)。TCP提…...

解决EnableKeyword(“_Emission“)运行状态不起作用

我使用的是Standard Shader,一开始“_Emission”没有开启 当我运行下面的代码,可以看到Inspector窗口已经生效,然而物体本身并没有重新开始渲染,反射没有开启 public GameObject go; // Start is called before the first frame…...

管理能力测评,如何提升管理能力?

管理能力是综合能力的体现,通常也解读为组织管理能力,如果要再细分的话,可能还包括有沟通能力,协调能力,组织能力,执行力和专业能力等等。不过没有办法说的太细节,因为每个部分铺开了都是一个独…...

基于工业智能网关的汽车充电桩安全监测方案

近年来,我国新能源汽车产业得到快速发展,电动车产量和销量都在持续增长,不仅国内市场竞争激烈,而且也远销海外,成为新的经济增长点。但与此同时,充电设施的运营却面临着安全和效率的双重挑战。 当前的充电桩…...

基于JavaWeb+SpringBoot+微信小程序的酒店商品配送平台系统的设计和实现

基于JavaWebSpringBoot微信小程序的酒店商品配送平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 本章内容概括了基于微信小程序的酒店商品配送平台的可行性分析、系统功…...

Android修行手册-POI操作Excel实现超链接并且变为蓝色

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…...

Halcon WPF 开发学习笔记(2):Halcon导出c#脚本

文章目录 前言HalconC#教学简单说明如何二开机器视觉 前言 我目前搜了一下我了解的机器视觉软件,有如下特点 优点缺点兼容性教学视频(B站前三播放量)OpenCV开源,免费,因为有源码所以适合二次开发学习成本极高,卡学历。研究生博士…...

Scrum敏捷开发全流程,3款必备的项目管理工具!

​Scrum是一种敏捷方法,致力于帮助团队高效地协作和完成复杂的项目。它强调迭代和快速迭代、自组织、快速响应变化等原则,使得项目开发变得更加灵活和高效。 在Scrum敏捷开发过程中,项目管理工具是必不可少的。下面介绍3款常用的敏捷开发工具…...

基于Quartz实现动态定时任务

生命无罪,健康万岁,我是laity。 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之…...

hdlbits系列verilog解答(计算向量中1出现次数)-41

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 “频次计数”电路对输入向量中的“1”数进行计数。为 255 位输入向量构建频次计数电路。 Module Declaration module top_module( input [254:0] in, output [7:0] out ); 二、verilog源码 module top_module…...

2023年最新的前端面试收集(1)

2023年最新的前端面试收集 一、你在项目中做的性能优化的事情有哪些网络优化页面渲染优化JS优化图片优化webpack打包优化vue优化react优化 二、webworker中为什么能提升js执行的性能三、微前端 一、你在项目中做的性能优化的事情有哪些 网络优化 DNS预解析 link标签的rel属性设…...

flutter实现上拉加载下拉刷新

效果如下: flutter实现上拉加载下拉刷新 使用到的库是easy_refresh 安装请查看官网 接口用的是提供的接口https://reqres.in/ 请求接口用到的库是dio 下面主要是介绍如何使用easy_refresh实现上拉加载数据,详细学习其它例子请查看easy_refresh main…...

tomcat+idea--如何在idea上发布项目

对应于idea2022以后的版本 (一)如何配置idea上的tomcat? 1、新建一个项目,左上角File,new,project,新建后就和普通的java项目一样。 2、然后点击项目名,右键选择“Add framework s…...

考研数据结构单链表的增删改查看这一篇就够了

目录 一. 单链表的特点 1.1 解引用拓展 🤖 二. 单链表的操作 2.1不带头节点的操作 2.1.1 打印 2.1.1.1 创建结点 2.1.2 尾插(需要二级指针) 注意形参的值不改变实参:(精髓部分) 2.1.3 头插 2.1.4…...

Windows查看端口占用情况

Windows如何查看端口占用情况 方法1. cmd命令行执行netstat命令,查看端口占用情况 netstat -ano 以上命令输出太多信息,不方便查看,通过如下命令搜索具体端口占用情况,例如:8080端口 netstat -ano | findstr "…...

Python:词法分析(行结构与显式、隐式行拼接)

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 1、逻辑结构 一个Python程序由许多逻辑行组成,字面意义上的一行指的是末尾有换行符(\n),但在不同的情况下,行末尾的换行符(\n)可能有…...

前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!

目录 1.前言2.数据定义3. 页面布局4.上传之前的事件5.解析excel文件,并组装系统表头与excel表头的对应关系6.下拉框改变事件 1.前言 最近有一个需求,就是用户可以任意导入一个自定义的excel文件,让用户可以自己选择,组装表头的对应关系&…...

RabbitMQ集群配置以及负载均衡配置

RabbitMQ集群配置以及负载均衡配置 环境配置集群配置安装rabbitmq启动rabbitmq开启远程登录添加用户并且授权用户添加数据存放目录和日志存放目录查看端口拷⻉erlang.cookie将mq-2、mq-3作为内存节点加⼊mq-1节点集群中查看集群状态添加一个新的队列 RabbitMq负载均衡配置-HAPr…...

Leetcode Hot100之六:42.接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 提示&#xff1a; n height.length 1 < n < 2 * 10^4 0 < height[i] < 10^5 思路 暴力循环&#xff1a; 原本的思路是左边界i从左到…...

electron 主进程 和 渲染进程通信 ipcRenderer 和 mainWindow.webContents

electron 开发时最麻烦就是electron版本和node版本的选择和正确安装 electron 用npm安装时太慢容易报错&#xff0c;建议用cnpm i 进行安装 注意最新版渲染进程使用node nodeIntegration: true, // 渲染进程可用node contextIsolation: false, // 这个值影响nodeIntegration是…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中&#xff0c;如果使用的模块多&#xff0c;一个文件内会有很多代码&#xff0c;不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里&#xff0c;在.h文件里提供外部可调用函数声明&#xff0c;其他.c文…...