半导体行业的新闻、研报-资源汇总-自媒体参考4大咨询公司等的研报

半导体行业的新闻、研报啥的,发现能找到的资料都比较凌乱,于是自己整理了一份资源汇总,分享给大家,希望能方便大家找各种资讯。汇总表还比较简单,欢迎留下自己的意见以及继续补充。

序号机构类别地址备注
1SEMI行业协会https://www.semi.org/en专业,但是需要企业会员
2SIA 美国半导体行业协会行业协会https://www.semiconductors.org/主要关注美国市场
3WSTS 全球半导体贸易统计协会行业协会https://www.wsts.org/比较权威
4TSMC 台积电半导体科技https://investor.tsmc.com/english/annual-reports全球龙头,看年报季报
5Samsung 三星半导体科技https://www.samsung.com/global/ir/financial-information/audited-financial-statements/韩国龙头,看年报季报
6Intel 因特尔半导体科技https://www.intc.com/filings-reports/annual-reports美国龙头,看年报季报
7SMIC 中芯半导体科技https://www.smics.com/site/company_financialSummary大陆龙头,看年报季报
8Gartner 高德纳咨询https://www.gartner.com/en/newsroom不定期更新
9Mckinsey 麦肯锡咨询https://www.mckinsey.com/industries/semiconductors/our-insights不定期更新
10PwC 普华永道咨询https://www.pwc.com/gx/en/industries/tmt.html不定期更新
11Accenture 埃森哲咨询https://www.accenture.com/us-en/services/high-tech/semiconductors对TMT都比较专业
12Goldman Sachs 高盛金融财务https://www.goldmansachs.com/insights/index.html公司研究的报告不免费
13KPMG 毕马威金融财务https://home.kpmg/xx/en/home/insights.html有较多行业数据
14Seeking Alpha媒体https://seekingalpha.com/投资者的讨论比较多
15Bloomberg 彭博媒体https://www.bloomberg.com/行业新闻及指数
16Google Finance 谷歌财经媒体https://www.google.com/finance/行业新闻及指数
17Reuters 路透社媒体https://www.reuters.com/news/archive/rbssSemiconductors行业新闻有专栏
18Statista媒体https://www.statista.com/topics/1182/semiconductors/行业指数
19萝卜投研媒体https://robo.datayes.com/国内研报
20半导体行业观测媒体http://semiinsights.com/中文新闻,一手报道比较少

深入研究 Transformer 模型时,将反复提到 architecture 和 checkpoints 以及 model。这些术语的含义略有不同:architecture:这是模型的结构——每个层的定义以及模型中发生的每个操作。checkpoints:这些是将在给定架构中加载的权重。model:这是一个总括术语,不像 “architecture” 或 “checkpoints” 那么精确。它可以同时表示两者。例如,BERT是一种 architecture,而BERT-base-cased(谷歌团队 BERT 的第一个版本训练的一组权重)是一个 checkpoints。然而,人们可以说 “BERT model” 和“BERT-base-cased model”

召回率

召回率是指在所有正样本中,被成功预测为正样本的样本数占比。在机器学习领域,召回率是评估模型预测性能的重要指标之一。在本文中,我们将从多个方面深入探讨召回率的概念和应用。
阈值越高,精准率越高,召回率越低;阈值越低,精准率越低,召回率越高。
精准率(precision)的实际含义是,在所有预测为正例的样本中,真实为正例的比例。

召回率(recall)的实际含义是,在所有真实为正例的样本中,被正确预测为正例的比例。

举个例子,假设有一个垃圾邮件分类器,它要从100封邮件中识别出垃圾邮件。假设其中有20封是真正的垃圾邮件,80封是正常邮件。如果分类器预测出了15封垃圾邮件,其中10封是真的垃圾邮件,5封是误判的正常邮件,那么它的召回率和精准率分别是:

精准率 = 10 / 15 = 0.67,表示分类器预测出的垃圾邮件中有三分之二是真的垃圾邮件。

召回率 = 10 / 20 = 0.5,表示分类器只能找到一半的真正垃圾邮件。

一、什么是召回率
召回率是指模型成功检测到的所有真实正样本个数与真实正样本总数的比例。直观来讲,它衡量了模型在识别正样本方面的准确性。召回率数值越高,模型对正样本的识别越精准,但也可能带来更高的误报率。当真实正样本比较少时,召回率也会相对较低。

二、如何计算召回率
召回率的计算公式如下:

召回率 = 模型成功检测到的所有真实正样本个数 / 真实正样本总数
举个例子,假设某个模型对500个正样本进行了预测,其中正确识别出了450个,但漏识别了50个。这个模型的召回率为450/500=0.9,即90%。

三、什么情况下需要召回率
召回率适用于以下场景:

二分类问题,其中正样本数相对较少。
模型的预测结果需要被进一步修正或筛选。
需要优化模型的敏感性,即尽可能地识别更多的真实正样本。
四、如何提高召回率
提高召回率的方法有以下几种:

增加正样本数。增加正样本数能够提高召回率,但前提是正样本确实存在,并且可以扩大正样本范围。
调整模型阈值。降低模型阈值能够减少漏识别,但也会增加误报。调整模型阈值需要根据具体场景进行。
优化模型训练。在模型训练时,可以多采用正样本,增加正样本的特征和数量,有效提高模型的召回率。
采用不同的算法和模型。不同的算法和模型具有不同的优劣特点,在选择算法和模型时需要充分考虑召回率的需求。
五、召回率与精确率的关系
召回率和精确率都是模型评估中比较重要的指标。召回率注重的是尽可能识别更多的真实正样本,而精确率则注重的是尽可能排除误识别的负样本。一般而言,召回率与精确率存在一定的负相关关系,提高其中一个指标可能会降低另一个指标。在实际应用中,需要根据具体场景进行取舍。

六、总结
本文对召回率进行了深入的探讨,并从多个方面介绍了召回率的概念、计算、应用和提高方法。在实际应用中,需要根据具体场景选择合适的召回率指标和优化方法,以实现更好的模型性能。

稀疏向量

稀疏向量和密集向量都是向量的表示方法

密集向量和稀疏向量的区别: 密集向量的值就是一个普通的Double数组 而稀疏向量由两个并列的 数组indices和values组成 例如:向量(1.0,0.0,1.0,3.0)用密集格式表示为[1.0,0.0,1.0,3.0],用稀疏格式表示为(4,[0,2,3],[1.0,1.0,3.0]) 第一个4表示向量的长度(元素个数),[0,2,3]就是indices数组,[1.0,1.0,3.0]是values数组 表示向量0的位置的值是1.0,2的位置的值是1.0,而3的位置的值是3.0,其他的位置都是0

稀疏向量 [1]通常用两部分表示:一部分是顺序向量,另一部分是值向量。例如稀疏向量(4,0,28,53,0,0,4,8)可用值向量(4,28,53,4,8)和顺序向量(1,0,1,1,0,0,1,1)表示。

Doc2Bow简介与实践Demo

Doc2Bow是Gensim中封装的一个方法,主要用于实现Bow模型,下面主要介绍下Bow模型。

1、BoW模型原理
Bag-of-words model (BoW model) 最早出现在自然语言处理(Natural Language Processing)和信息检索(Information Retrieval)领域.。该模型忽略掉文本的语法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。BoW使用一组无序的单词(words)来表达一段文字或一个文档.。近年来,BoW模型被广泛应用于计算机视觉中。
基于文本的BoW模型的一个简单例子如下:
首先给出两个简单的文本文档如下:

John likes to watch movies. Mary likes too.
John also likes to watch football games.

1
2
基于上述两个文档中出现的单词,构建如下一个词典 (dictionary):

{“John”: 1, “likes”: 2,”to”: 3, “watch”: 4, “movies”: 5,”also”: 6, “football”: 7, “games”: 8,”Mary”: 9, “too”: 10}
1
上面的词典中包含10个单词, 每个单词有唯一的索引, 那么每个文本我们可以使用一个10维的向量来表示。如下:

 [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
 [1, 1,1, 1, 0, 1, 1, 1, 0, 0]

1
2
该向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在文本中出现的频率。
也是通过余弦定理计算两个句子的相似度。

以下是实践DEMO

import gensim
import jieba
# 训练样本
from gensim import corpora
from gensim.similarities import Similarity


# fin = open("questions.txt",encoding='utf8').read().strip(' ')   #strip()取出首位空格
jieba.load_userdict("userdict.txt")
stopwords = set(open('stopwords.txt',encoding='utf8').read().strip('\n').split('\n'))   #读入停用词
raw_documents = [
    '0无偿居间介绍买卖毒品的行为应如何定性',
    '1吸毒男动态持有大量毒品的行为该如何认定',
    '2如何区分是非法种植毒品原植物罪还是非法制造毒品罪',
    '3为毒贩贩卖毒品提供帮助构成贩卖毒品罪',
    '4将自己吸食的毒品原价转让给朋友吸食的行为该如何认定',
    '5为获报酬帮人购买毒品的行为该如何认定',
    '6毒贩出狱后再次够买毒品途中被抓的行为认定',
    '7虚夸毒品功效劝人吸食毒品的行为该如何认定',
    '8妻子下落不明丈夫又与他人登记结婚是否为无效婚姻',
    '9一方未签字办理的结婚登记是否有效',
    '10夫妻双方1990年按农村习俗举办婚礼没有结婚证 一方可否起诉离婚',
    '11结婚前对方父母出资购买的住房写我们二人的名字有效吗',
    '12身份证被别人冒用无法登记结婚怎么办?',
    '13同居后又与他人登记结婚是否构成重婚罪',
    '14未办登记只举办结婚仪式可起诉离婚吗',
    '15同居多年未办理结婚登记,是否可以向法院起诉要求离婚'
]
corpora_documents = []
for item_text in raw_documents:
    item_str = jieba.lcut(item_text)
    print(item_str)
    corpora_documents.append(item_str)
print(corpora_documents)
# 生成字典和向量语料
dictionary = corpora.Dictionary(corpora_documents)
corpus = [dictionary.doc2bow(text) for text in corpora_documents]
#num_features代表生成的向量的维数(根据词袋的大小来定)
similarity = Similarity('-Similarity-index', corpus, num_features=400)

test_data_1 = '你好,我想问一下我想离婚他不想离,孩子他说不要,是六个月就自动生效离婚'
test_cut_raw_1 = jieba.lcut(test_data_1)

print(test_cut_raw_1)
test_corpus_1 = dictionary.doc2bow(test_cut_raw_1)
similarity.num_best = 5
print(similarity[test_corpus_1])  # 返回最相似的样本材料,(index_of_document, similarity) tuples

print('################################')

test_data_2 = '家人因涉嫌运输毒品被抓,她只是去朋友家探望朋友的,结果就被抓了,还在朋友家收出毒品,可家人的身上和行李中都没有。现在已经拘留10多天了,请问会被判刑吗'
test_cut_raw_2 = jieba.lcut(test_data_2)
print(test_cut_raw_2)
test_corpus_2 = dictionary.doc2bow(test_cut_raw_2)
similarity.num_best = 5
print(similarity[test_corpus_2])  # 返回最相似的样本材料,(index_of_document, similarity) tuples

记几个开源项目

https://github.com/kekewind/Kaleidoscope,python selenim QQ空间 虎牙 电影 微信 微博 抖音 知乎 B站 bili Bili 百度贴吧 小红书 tiktok youtube twitter 有颜色 爬虫

https://github.com/facert/awesome-spider爬虫收集

https://github.com/lonerge/tiktok_youtube_douyin_handling搜索关键字下载并可视化

https://github.com/Maryin-c/KeywordSpider_pictures_videos搜索关键字爬

https://github.com/Evil0ctal/Douyin_TikTok_Download_API是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载

https://github.com/kekewind/MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫

https://github.com/cuemacro/findatapy,python来下载yahoo等的金融数据

https://gitee.com/AJay13/ECommerceCrawlers爬虫集

https://github.com/EstrellaXD/Auto_Bangumi,自动追动漫

https://github.com/kekewind/public-apis#open-data一些API的集合,可能新闻类有用

服务器部署Navidrome开源音乐服务器

可以用来自建云端音乐播放器,让你在任何地方通过浏览器或者手机来收听自己的音乐,兼容 Subsonic、Aironic 播放器

支持各大平台,包括:

  • Windows
  • macOS
  • Linux
  • Docker

这次用docker安装,先安装docker,我是直接用宝塔装了个docker管理器,

然后进终端

mkdir -p /opt/docker/navidrome && cd /opt/docker/navidrome && mkdir -p /music && chmod 755 -R /music

新建docker-compose.yaml文件并编辑

执行以下命令,新建 docker-compose.yaml 文件并编辑

nano docker-compose.yaml

然后输入以下配置内容,然后 Ctrl X + y +回车 退出并保存即可。

---
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - 2079:4533
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_DEFAULTLANGUAGE: zh-Hans
      #设置默认语言为简体中文
      ND_ENABLESHARING: "true"
      #开启共享功能
    volumes:
      - /opt/docker/navidrome:/data
      - /music:/music:ro

docker-compose.yaml 文件中 2079 为暴露端口,4533上传页面,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!然后放音乐文件的文件夹设置的根目录下的music

docker compose up -d
启动容器
浏览器访问服务器 IP:2079 即可访问,还可以配置反向代理加个域名,还可以用支持Subsonic/Madsonic/Airsonic 的客户端来播放。
各种第三方客户端:

iOS: play:Sub, substreamer, Amperfy and iSub
Android: DSub, Subtracks, substreamer, Ultrasonic  Audinaut
推荐https://ultrasonic.gitlab.io/download/
Web: Subplayer, Airsonic Refix, Aurial, Jamstash and Subfire
Desktop: Sublime Music (Linux) and Sonixd (Windows/Linux/macOS)
CLI: Jellycli (Windows/Linux) and STMP (Linux/macOS)
Connected Speakers:
Sonos: bonob
Alexa: AskSonic
Other:
Subsonic Kodi Plugin
Navidrome Kodi Plugin
HTTPDirFS

格式文档-套用

房产估价报告使用的限制条件
1、本次评估结果仅为人民法院确定财产处置参考价服务,不是评估估价
对象处置可实现的成交价格,也不应当被视为对评估对象处置成交价格的保
证。
2、本估价报告结论系为估价委托人提供的专业化估价意见,这个意见本
身无强制执行的效力,估价人员只对结论本身符合规范要求负责,而不对房地
产定价决策负责。

本报告必须完整使用方为有效。

加密和解密技术

  1. 加密和解密的基本概念
    加密:加密是一种将数据(明文)转换为其他格式(密文)的过程,以防止未经授权的人员访问。加密使用特定的算法(称为加密算法)和密钥来执行此转换。

解密:解密是将加密后的数据(密文)还原为原始数据(明文)的过程。解密通常使用相同的加密算法和相应的密钥来进行。

密钥:密钥是用于加密和解密数据的特定字符序列。密钥的长度和复杂性直接影响到加密算法的安全性。

  1. 对称加密
    对称加密是一种使用相同的密钥进行加密和解密的加密方法。这意味着加密和解密过程中使用的密钥是相同的。对称加密算法通常更快,但密钥管理可能会成为一个问题,因为每对通信方都需要共享相同的密钥。

常见对称加密算法:

AES(Advanced Encryption Standard)
DES(Data Encryption Standard)
3DES(Triple Data Encryption Standard)
RC4(Rivest Cipher 4)
Blowfish
实例:使用Python的cryptography库进行AES加密和解密:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.backends import default_backend
import os

# 生成一个随机密钥
key = os.urandom(32)

# 生成一个随机初始化向量(IV)
iv = os.urandom(16)

# 使用AES加密算法和CBC模式创建一个加密对象
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend())

# 创建一个加密器对象
encryptor = cipher.encryptor()

# 明文数据
plaintext = b"Hello, world!"

# 使用PKCS7填充对明文进行填充
padder = padding.PKCS7(128).padder()
padded_data = padder.update(plaintext) + padder.finalize()

# 对填充后的明文进行加密
ciphertext = encryptor.update(padded_data) + encryptor.finalize()

# 创建一个解密器对象
decryptor = cipher.decryptor()

# 对密文进行解密
decrypted_data = decryptor.update(ciphertext) + decryptor.finalize()

# 使用PKCS7填充的解除器对解密后的数据进行解填充
unpadder = padding.PKCS7(128).unpadder()
unpadded_data = unpadder.update(decrypted_data) + unpadder.finalize()

assert plaintext == unpadded_data
  1. 非对称加密
    非对称加密是一种使用两个不同密钥进行加密和解密的加密方法:一个公钥用于加密数据,一个私钥用于解密数据。公钥可以公开分享,而私钥必须保密。非对称加密算法通常比对称加密慢,但解决了密钥管理的问题。

常见非对称加密算法:

RSA(Rivest-Shamir-Adleman)
DSA(Digital Signature Algorithm)
ElGamal
ECC(Elliptic Curve Cryptography)
实例:使用Python的cryptography库进行RSA加密和解密:

from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.asymmetric importpadding as asym_padding
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.backends import default_backend

# 生成RSA密钥对
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
    backend=default_backend()
)
public_key = private_key.public_key()

# 明文数据
plaintext = b"Hello, world!"

# 使用公钥对明文进行加密
ciphertext = public_key.encrypt(
    plaintext,
    asym_padding.OAEP(
        mgf=asym_padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

# 使用私钥对密文进行解密
decrypted_data = private_key.decrypt(
    ciphertext,
    asym_padding.OAEP(
        mgf=asym_padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

assert plaintext == decrypted_data
  1. 哈希函数
    哈希函数是一种将任意长度的数据映射到固定长度的输出的单向函数。哈希函数具有以下特性:

输入变化时,输出有很大概率发生变化(敏感性)
不同输入产生相同输出的概率极低(碰撞抵抗)
无法从输出反推输入(单向性)
常见哈希算法:

MD5(Message-Digest Algorithm 5)
SHA-1(Secure Hash Algorithm 1)
SHA-2(Secure Hash Algorithm 2)
SHA-3(Secure Hash Algorithm 3)
实例:使用Python的hashlib库进行SHA-256哈希:

import hashlib

# 需要进行哈希的数据
data = b"Hello, world!"

# 计算SHA-256哈希值
hash_object = hashlib.sha256(data)
hash_hex = hash_object.hexdigest()

print("SHA-256 hash:", hash_hex)

5. 数字签名

数字签名是一种用于验证数据完整性和身份验证的技术。数字签名的基本原理是:

  1. 发送者使用私钥对数据生成签名。
  2. 接收者使用发送者的公钥验证签名。

实例:使用Python的cryptography库进行RSA数字签名和验证:

from cryptography.hazmat.primitives.asymmetric import padding as asym_padding
from cryptography.hazmat.primitives import hashes

# 需要签名的数据
data = b"Hello, world!"

# 使用私钥对数据生成签名
signature = private_key.sign(
    data,
    asym_padding.PSS(
        mgf=asym_padding.MGF1(hashes.SHA256()),
        salt_length=asym_padding.PSS.MAX_LENGTH
    ),
    hashes.SHA256()
)

# 使用公钥验证签名
try:
    public_key.verify(
        signature,
        data,
        asym_padding.PSS(
            mgf=asym_padding.MGF1(hashes.SHA256()),
            salt_length=asym_padding.PSS.MAX_LENGTH
        ),
        hashes.SHA256()
    )
    print("Signature is valid.")
except Exception as e:
    print("Signature is invalid:", e)
  1. 实际应用及案例代码
    在现实中,加密和解密技术被广泛应用于各种场景,如:

安全通信:HTTPS、SSH、SSL/TLS等协议使用加密技术保护数据在传输过程中的安全性。
数据存储:加密文件系统和数据库使用加密技术保护存储的数据。
身份验证:密码学可以用于实现各种身份验证机制,如一次性密码(OTP)、双因素身份验证(2FA)等。
数字货币:比特币等数字货币使用加密技术确保交易的安全性和匿名性。
上述示例代码已经展示了如何使用Python的cryptography和hashlib库进行加密、解密、哈希和数字签名操作。在实际应用中,请确保使用适当的加密算法、密钥长度和库,同时遵循最佳实践来保护数据的安全。

以下是一些加密和解密实践的建议:

保护密钥:确保密钥的安全存储和传输。对于对称加密,可以考虑使用密钥管理服务(如AWS KMS、Google Cloud KMS等)来管理密钥。对于非对称加密,保护私钥的安全至关重要。

使用现代、安全的加密算法:避免使用被认为是不安全或过时的算法,如DES、RC4等。相反,选择经过时间检验且被广泛认可的算法,如AES、RSA等。

加密模式和填充方案:选择正确的加密模式和填充方案也很重要。例如,对于对称加密,推荐使用诸如AES-CBC、AES-GCM等模式;对于非对称加密,推荐使用OAEP填充。

更新和维护:随着技术的发展,密钥长度、加密算法或其他加密相关技术可能变得不再安全。因此,请关注加密技术的最新发展,并根据需要更新和维护您的加密实践。

性能和效率:加密和解密操作可能会对性能产生影响。在选择加密算法时,请权衡安全性和性能。在某些情况下,可以考虑使用硬件加速来提高加密和解密操作的性能。

审计和合规:确保遵循相关法规和行业标准,如GDPR、HIPAA、PCI DSS等,这可能要求使用特定的加密算法、密钥长度或其他安全措施。

BGP、OSPF

边界网关协议(Border Gateway Protocol,简称BGP)和开放最短路径优先协议(Open Shortest Path First,简称OSPF)是两种最常见的动态路由协议,BGP在大型网络中具有动态路由优势,而OSPF具有更高效的路径选择和收敛速度。

OSPF和BGP路由协议之间最主要的区别是前者属于IGP(内部网关协议),而后者则属于EGP(外部网关协议)。OSPF是以链路状态为根据进行选路,一般运行在AS自治系统内部,而BGP协议是建立在IGP协议基础之上的高级路由选择协议,它被设计用于在完全不同的网络(被称为自治系统(ASes))之间共享路由信息。一般是由ISP服务提供商运用在各个AS自治系统之间。

OSPF是一种内部网关协议,在公司的私有局域网中最常使用。OSPF通常被认为比BGP更易于部署和管理,在大多数企业环境中,运行OSPF几乎不需要手动调整。

OSPF路由协议是用于网际层(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。基于IP,协议号是89。封装在IP报文中传输

1、OSPF路由协议是属于IGP(内部网关协议),各个ospf路由器维护一张全网的链路状态数据库。采用SPF算法(最短路径优先算法),通过发送Hellow来建立邻居关系并且更新自己的路由表。

OSPF维护一个本地派生和学习网络的数据库。如果到远端网络有多条OSPF路径,OSPF会根据计算出的成本或度量值选择一条路径。到远端网络的路径开销是根据计算的参考带宽除以接口带宽得出的。参考带宽是OSPF中用来量化链路速度的一个指标。

如何计算路径成本

数字越低,连接速度越快。例如,100mbps链路的OSPF参考带宽为10,1gbps链路的OSPF参考带宽为1,网络管理员可以根据需要调整这个计算。

路径开销=参考总带宽/接口带宽

OSPF使用路径带宽作为决定路径选择的主要因素,因此,与BGP相比,它更有可能根据网络性能选择最优路径。

与BGP不同的是,运行OSPF需要大量的CPU和内存,因此,它并不适合超大型网络。

虽然OSPF可以扩展到处理具有数百条路由的大型网络,但管理员必须注意使用手动调整来减少处理和内存开销,这一点比BGP更重要。

OSPF的收敛速度比BGP快。

网络收敛是指当网络中断时,路由器调整到目标网络的路径的速度。

由于其收敛速度和基于网络性能选择路径的能力,OSPF在企业局域网和私有数据中心中是一个更好的选择。

动态路由协议可以根据路由操作分为链路状态距离向量,它们之间的区别基于邻居如何通信、发送路由更新和收敛,最初,在 Internet 连接之前,网络域较小,RIP 等距离矢量协议就足够了,范式转变为纯 IP 互联网连接模型,具有更大的网络域和复杂的流量路由,为了可扩展性和性能,距离矢量路由协议正在被链路状态协议所取代。

距离矢量路由协议定期向所有连接的邻居通告其路由表,无论是否发生拓扑更改或邻居发送请求,都会发生这种情况,当出现链路故障时,整个网络域都会出现完整路由表的泛滥,这会导致收敛速度变慢,随着网络域变大,收敛速度会呈指数级恶化。由于路由器没有准确更新的路由信息,还存在路由不稳定和抖动。

OSPF 和 IS-IS 被认为是链路状态协议。RIP 确实是唯一剩下的纯距离矢量协议,并且已经更新了 RIPv2 增强功能。EIGRP 被归类为高级距离矢量协议,具有距离矢量和链路状态协议的特性。EIGRP 只有一个邻居拓扑表,而不是一个完整的网络拓扑数据库。与链路状态协议类似,EIGRP 确实形成邻居邻接并发送事件触发的更新,而不是定期的完整路由表更新。

BGP 是一种路径向量协议