网络协议分析期末复习(四)
目录
0.前言
1.IP层对改善TCP性能支持的机制
2.TCP防止半开放连接的机制
3.TCP协议中强推位(P)和紧急位(U)的用法
4.TCP的流量控制和拥塞控制的异同点
异:
(1)两者的特点不同:
(2)两者的主要方法不同:
(3)两者的实质不同:
同:
5.RIP克服慢收敛问题的对策
① 水平分割:
② 抑制法:
③ 毒性逆转:
④ 触发更新:
6.RIP路由协议保持信息时效性的定时器
7.各种OSPF报文的作用
① Hello报文
② DD报文
③ LSR报文
④ LSU报文
⑤ LSAck报文
8.OSPF协议的非骨干区域的差异
0.前言
从该篇开始的知识点大多会出简答题、分析题等题型,请重点关注。
1.IP层对改善TCP性能支持的机制
avgQ=(1-Wq)×avgQ+ Wq×q。
其中,Wq为权值,q为采样测量时实际队列长度。这样由于Internet数据的突发本质或者短暂拥塞导致的实际队列长度暂时的增长将不会使得平均队长有明显的变化,从而“过虑"掉短期的队长变化,尽量反映长期的拥塞变化。
2.TCP防止半开放连接的机制
半开放连接的定义:如果一方关闭或者异常关闭(断电,断网),而另一方并不知情,这样的链接称之为半打开。处于半打开的连接,如果双方不进行数据通信,是发现不了问题的,只有在通信是才真正的察觉到这个连接已经处于半打开状态,如果双方不传输数据的话,仍处于连接状态的一方就不会检测另外一方已经出现异常。
可以通过心跳机制(Keepalive机制)解决该问题,即:向应用程序协议框架添加一条keepalive消息(一条空消息)。长度前缀或定界系统可能发送空消息(例如,0字节的长度前缀或单个结束分隔符)。
此外,还可以通过显式定时器解决该问题:设置一个定时器,每次传输数据时该定时器都会被重置,定时器到期时则认为连接已经断开(每次传输数据时都会重置计时器)。
3.TCP协议中强推位(P)和紧急位(U)的用法
① URG(紧急位):设置为1时紧急指针有效。为0时紧急指针没有意义;
紧急指针是一个偏移量,以序号字段的值相加指向紧急数据的最后一个字节。紧急指针指向的数据段从第一个字节到指针的位置,不进入缓冲区直接交付给上层程序,其他数据段进入缓冲区。
② PSH(推位):设置为1时将数据尽快交给应用层,不做处理;
设置PSH位,客户段通知TCP在向服务器发送报文段的视乎不用等缓冲区满了以后在提交数据使数据滞留。发送方置PSH位是缓冲区的数据立即交付给上层数据。
URG和PSH最大的区别操作的数据位置不同,URG直接将TCP中紧急数据不进入缓冲区交付,PSH不因为缓冲区没满而滞留数据,尽快交付。
4.TCP的流量控制和拥塞控制的异同点
异:
(1)两者的特点不同:
① 拥塞控制的特点:拥塞控制基 于 终端的资源控制仅需设定一条规则,即可限定每台终端的带宽使用上限,同时可以设定每台终端的会话数量,防止由一病毒等原囚造成的网络资源耗尽。
② 流量控制的特点:流量控制基于内容进行会话识别可以通过高速的深层协议分析,识别每一个网络会话所属的应用,可以针对某种协议进行拦截或者制定相应的带宽分配策略,而传统的路由器和防火墙等网络设备只能根据端口进行最初级的识别。
(2)两者的主要方法不同:
① 拥塞控制的主要方法:拥塞控制的主要控制方法有缓冲区域分配法、分组丢弃法、定额控制法。
② 流量控制的主要方法:流量控制的最主要方法,是引入QoS的概念,从通过为不同类型的网络数据包标记,从而决定数据包通行的优先次序。
(3)两者的实质不同:
① 拥塞控制的实质:到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。
② 流量控制的实质:一种利用软件或硬件方式来实现对电脑网络流量的控制。用于控制调制解调器与计算机之间的数据流,具有防止因为计算机和调制解调器之间通信处理速度的不匹配而引起的数据丢失。
同:
流量控制和拥塞控制都是流量控制机制。
5.RIP克服慢收敛问题的对策
① 水平分割:
路由器记录收到各路由的接口,而这路由器通告路由时,就不会把该路由再通过那个接口送回去。
② 抑制法:
抑制法迫使路由器收到某网络不可达的信息后固定时间内忽略任何关于该网络的路由信息.该抑制时间典型长度一般为60s。
③ 毒性逆转:
当一条连接消失后,路由器在若干个更新周期内斗保留该路由,但是在广播路由时则规定该路由的费用为无限长。
④ 触发更新:
当路由信息发生变化时,运行RIP的设备会立即向邻居设备发送更新报文,而不必等待定时更新,从而缩短了网络的收敛时间。
6.RIP路由协议保持信息时效性的定时器
RIP主要使用四个定时器:
① 更新定时器(Update timer):它定时触发更新报文的发送,更新周期默认为30秒。
② 老化定时器/超时定时器(Age timer):如果设备没有在某条路由的老化时间内收到邻居发来的路由更新报文,则认为该路由不可达。Age timer缺省为180s。
③ 垃圾超时定时器/删除定时器(Garbage-Collect timer):RIP协议规定,在某条路由失效(Age timer超时或收到某条路由的不可达消息)后,该路由表项并不立即从路由表中删除,而是将这条路由放入Garbage队列。Garbage-Collect timer会监视Garbage队列,删除超时的路由。如果在此期间收到了任何关于该路由的更新报文,则会重新将这条路由放回到Age队列。设置Garbage-Collect timer的目的是为了防止路由振荡。Garbage-Collect timer的缺省为120s。
④ 抑制定时器(Hold-Down timer):当RIP设备收到对端的路由更新,其cost为16,对应路由进入抑制Hold-down状态,并启动抑制定时器。为了防止路由震荡,在抑制定时器超时之前,即使再收到对端路由cost小于16的更新,也不接受。只有满足以下条件,RIP设备才允许接受对端新的路由更新:
·更新报文携带的cost值等于或小于前一个报文的cost值。
·抑制定时器超时,路由器进入垃圾收集状态。
7.各种OSPF报文的作用
OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
① Hello报文
最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及已知的邻居。
② DD报文
两台路由器在邻接关系初始化时,用DD报文描述本端路由器的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。
LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
③ LSR报文
两台路由器互相交换过DD报文之后,需要发送LSR报文向对方请求更新LSA,内容包括所需要的LSA的摘要信息。
④ LSU报文
LSU报文用来向对端路由器发送其所需要的LSA或者泛洪本端更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文在支持组播和广播的网络中是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认,对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
⑤ LSAck报文
LSAck报文用来对接收到的LSU报文进行确认,内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck报文根据不同的链路以单播或组播的形式发送。
8.OSPF协议的非骨干区域的差异
① 标准区域:除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
② 末梢(末节)区域:即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
③ 完全末梢(完全末节)区域:即totally Stubby 区域,该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包含有自治系统边界路由器 ASBR。
④ 次末梢(末节)区域:即NSSA区域,允许接收以7类LSA发送的外部路由信息,并且ABR要负责把类型7的LSA转换成类型5的LSA。
相关文章:

网络协议分析期末复习(四)
目录 0.前言 1.IP层对改善TCP性能支持的机制 2.TCP防止半开放连接的机制 3.TCP协议中强推位(P)和紧急位(U)的用法 4.TCP的流量控制和拥塞控制的异同点 异: (1)两者的特点不同:…...
Matlab对图像和视频的简单处理(图像视频文件读取和输出,转灰度图,取指定帧的图像)
文章目录1.图像文件的读取2.图像效果展示3.将彩色图转换为灰度图4.视频文件的读取5.读取视频中指定帧的图像6.图片文件的报错1.图像文件的读取 语法介绍: A imread(filename) A imread(filename, fmt)参数介绍: filename:要读取的图像文…...

ArrayList源码分析
ArrayList源码分析目标:一、 ArrayList的简介二、ArrayList原理分析2.1 ArrayList的数据结构源码分析2.2 ArrayList默认容量&最大容量2.3 为什么ArrayList查询快,增删慢?2.4 ArrayList初始化容量1、创建ArrayList对象分析:无参数2、创建A…...

SpringBoot IOC、DI、@Autowired、@Resource、作用域
一、初识Spring1.1 Spring是什么Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,Java开发者可以专…...

链表相关oj题
1.Leetcode203 移除链表元素 解题思路:从头节点开始进行元素删除,每删除一个元素,需要重新链接节点 struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode*dummyheadmalloc(sizeof(struct ListNode));dummyhea…...

【Linux】操作系统(Operator System)
操作系统(Operator System )一、操作系统的概念二、操作系统的作用三、系统调用和库函数一、操作系统的概念 操作系统是一组控制和管理计算机软硬件资源,为用户提供便捷使用的计算机程序的集合,是配置在计算机硬件系统上的第一层…...

机器学习自学笔记——感知机
感知机预备知识 神经元 感知机算法最初是由科学家从脑细胞的神经凸起联想而来。如下图,我们拥有三个初始xxx值,x1,x2,x0x_1,x_2,x_0x1,x2,x0。其中x01x_01x01为一个初始的常量,专业上称作“偏置”。每个xxx的值都会乘上一个权重…...
C++ Primer第五版_第三章习题答案(21~30)
文章目录练习3.21练习3.22练习3.23练习3.24练习3.25练习3.26练习3.27练习3.28练习3.29练习3.30练习3.21 请使用迭代器重做3.3.3节的第一个练习。 #include <vector> #include <iterator> #include <string> #include <iostream>using std::vector; usi…...

colmap+openmvs进行三维重建流程全记录
window下的colmapopenmvs进行三维重建流程全记录 1.colmap安装与配置 可参考:https://blog.csdn.net/weixin_44153180/article/details/129334018?spm1001.2014.3001.5501 2.openmvs安装与配置 可参考:https://blog.csdn.net/rdw1246010462/article…...

yolov8命令行运行参数详解
序言 整理来自yolov8官方文档常用的一些命令行参数,官方文档YOLOv8 Docs yolov8命令行的统一运行格式为: yolo TASK MODE ARGS其中主要是三部分传参: TASK(可选) 是[detect、segment、classification]中的一个。如果没有显式传递…...

分布式锁简介
Redis因为单进程、性能高常被用于分布式锁;锁在程序中作用是同步工具,保证共享资源在同一时刻只能被一个线程访问。 Java中经常用的锁synchronized、Lock,但是Java的锁智能保证单机的时候有效,分布式集群环境就无能为力了…...

【嵌入式Linux学习笔记】Linux驱动开发
Linux系统构建完成后,就可以基于该环境方便地进行开发了,相关的开发流程与MCU类似,但是引入了设备树的概念,编写应用代码要相对复杂一点。但是省去了很多配置工作。 学习视频地址:【正点原子】STM32MP157开发板 字符…...
2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)(H题)(线段树)
又到了万物复苏的季节,家乡的苹果树结果了。像往常一样小龙同学被叫回家摘苹果。 假设需要采摘的一棵树上当前有a颗苹果,那么小龙会采摘⌈a/3⌉颗苹果,其中⌈x⌉表示不小于x的最小整数。 但是,为了可持续发展,若a小于1…...
Linux内核Thermal框架详解十三、Thermal Governor(3)
接前一篇文章Linux内核Thermal框架详解十二、Thermal Governor(2) 二、具体温控策略 上一篇文章介绍并详细分析了bang_bang governor的源码。本文介绍第2种温控策略:fair_share。 2. fair_share fair_share governor总的策略是频率档位⽐较…...
TikTok品牌出海创世纪(二)
目录 1.推荐算法打造王者品牌 2.品牌聚焦海外Z群体 3.持续扩展应用场景 加速品牌全球化传播 品牌聚焦海外Z群体 “这个地球上,三分之二的人都在用Facebook“,这是对Facebook曾经统治地位最直观的描述。 但如今,这家全球社交媒体巨头的光环正…...

iOS中SDK开发 -- cocoapods库创建
在iOS项目中,经常使用cocoadpods来进行依赖管理以及三方库引入等。引入的三方库一般会有几种形式:一、在Pods目录下可以直接看到源代码的开源库,如AFNetworking,Masonry等常见开源库。二、在Pods目录下拉取的项目文件只能看到对应…...

2023年了,还是没学会内卷....
先做个自我介绍:我,普本,通信工程专业,现在飞猪干软件测试,工作时长两年半。 回望疫情纪元,正好是实习 毕业这三年。要说倒霉也是真倒霉,互联网浪潮第三波尾巴也没抓住,狗屁造富神…...

chatGPT爆火,什么时候中国能有自己的“ChatGPT“
目录 引言 一、ChatGPT爆火 二、中国何时能有自己的"ChatGPT" 三、为什么openai可以做出chatGPT? 四、结论 引言 随着人工智能技术的不断发展,自然语言处理技术也逐渐成为了研究的热点之一。其中,ChatGPT作为一项领先的自然语言处理技术…...

【Matlab算法】粒子群算法求解一维非线性函数问题(附MATLAB代码)
MATLAB求解一维非线性函数问题前言正文函数实现(可视化处理)可视化结果前言 一维非线性函数是指函数的自变量和因变量都是一维实数,而且函数的形式是非线性的,也就是不符合线性函数的形式。在一维非线性函数中,自变量…...

2023 最新发布超全的 Java 面试八股文,整整 1000道面试题,太全了
作为一名优秀的程序员,技术面试都是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 2023 年的互联网行业竞争越来越严峻,面试也是越来越难,很多粉丝朋友私信希望我出一篇面试专题或…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

如何做好一份技术文档?从规划到实践的完整指南
如何做好一份技术文档?从规划到实践的完整指南 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...

关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
【Java基础】向上转型(Upcasting)和向下转型(Downcasting)
在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...