软考第六章 网络互连与互联网
网络互连与互联网
1.网络互连设备
组成因特网的各个网络叫做子网,用于连接子网的设备叫做中间系统。它的主要作用是协调各个网络的工作,使得跨网络的通信得以实现。
网络互连设备可以根据它们工作的协议层进行分类:
- 中继器:工作于物理层
- 网桥和交换机:工作于数据链路层
- 路由器:工作于网络层
- 网关:工作于网络层以上的协议
1.1 中继器
用中继器连接两个网段可以延长信号的传输距离,中继器的功能是对接收信号进行再生和发送。在以太网中限制最多使用4个中继器。中继器工作于物理层,只是起到扩展传输距离的作用,对高层协议是透明的。中继器也能把不同传输介质的网络连接在一起。
集线器的工作原理与中继器相同,简单来说,集线器就是一个多端口中继器,它把一个端口上收到的数据广播发送到其他所有端口上。
1.2 网桥
网桥要分析帧地址字段,以决定是否把收到的帧转发到另一个网段上。网桥工作于MAC子层,只要两个网络MAC子层以上的协议相同,就可以通过网桥互连。例如可实现同轴电缆以太网与双绞线以太网之间的互连,或是以太网与令牌环网之间的互连。
1.3 路由器
路由器根据网络逻辑地址在互连的子网之间传递分组。路由器适合于连接复杂的大型网络,它工作于网络层,因而可以用于连接下面三层执行不同协议的网络,协议的转换由路由器完成。
1.4 网关
网关是最复杂的网络互连设备,它用于连接网络层之上执行不同协议的子网,组成异构型的因特网。网关能对互不兼容的高层协议进行转换。为了实现异构型设备之间的通信,网关要对不同的传输层、会话层、表示层和应用层协议进行翻译和变换。由于工作复杂,因而用网关因特网时效率比较低,而且透明性不好,往往用于针对某种特殊用途的专用连接。
2.广域网互连
广域网互连一般采用在网络层进行协议转换的方法实现,这里使用的互联设备是路由器。
2.1 OSI 网络层内部结构
OSI把网络层划分为3个子层:
-
子网访问子层:对应于实际的网络层,它可能符合也可能不符合OSI的网络层标准,如果两个实际网络的子网访问子层不同,则不能简单的互连
-
子网相关子层:增强实际网络的服务,使其接近于OSI的网络层服务
-
子网无关子层:提供标准的OSI网络服务。
2.2 面向连接的网际互连
X.75网关执行X.25协议,从而实现两个子网的互连。两个网络之间建立一条网际虚电路。
2.3 无连接的网际互连
因特网协议(IP)是为ARPAnet研制的网际数据报协议,后来ISO以此为蓝本开发了无连接的网络协议(CLNP)。在这里叙述IP协议,CLNP与IP是类似的。
3.IP协议
IP地址分为5类。在点对点通信中使用A、B、C类地址,D类地址是组播地址。E类地址保留作为研究之用,以后的IPv6地址就是在此基础上扩展的。
IP数据报:

4.ICMP
ICMP与IP协议同属网络层,用于传送有关通信问题的消息,例如数据报不能到达目标站,路由器没有足够的缓存空间,或者路由器向助级提供最短通路信息等。ICMP报文封装在IP数据报中传送,因此不保证可靠的提交。
5.TCP和UDP
在TCP/UDP协议簇中有两个传输协议,即传输控制协议(TCP)和用户数据报协议(UDP)。TCP是面向连接的,而UDP是无连接的。
5.1 TCP协议

端口编号用于标识TCP用户:
应用层协议 | 端口号 |
---|---|
FTP | 20(数据) + 21(控制) |
SSH 安全登录,文件传送和端口重定向 | 22 |
Telnet 远程登录协议,不安全的文本传送 | 23 |
SMTP 简单邮件传送协议 | 25 |
DNS | 53 |
HTTP | 80 |
POP3 邮局协议第3版 | 110 |
IMAP 网络邮件接入协议 | 143 |
HTTPS | 443 |
三次握手四次挥手:


5.2 TCP拥塞控制
计算平滑往返时间估值:
S R T T ( K + 1 ) = α × S R T T ( K ) + ( 1 − α ) × R T T ( K + 1 ) SRTT(K+1) = \alpha \times SRTT(K) + (1-\alpha ) \times RTT(K+1) SRTT(K+1)=α×SRTT(K)+(1−α)×RTT(K+1)
重传计时器的设置:
R T O ( K + 1 ) = m i n ( U P B O U N D , m a x ( L O W B O U N D , β × S R T T ( K + 1 ) ) ) RTO(K+1) = min(UPBOUND,max(LOWBOUND,\beta \times SRTT(K+1))) RTO(K+1)=min(UPBOUND,max(LOWBOUND,β×SRTT(K+1)))
慢启动和拥塞控制:
TCP部分详细可参考自顶向下方法
5.3 UDP协议
UDP协议分为首部字段和数据字段,其中首部字段只占用8个字节,分别是个占用两个字节的源端口、目的端口、长度和检验和。
6.网关协议
6.1 自治系统
自治系统是由同构型的网关连接的因特网,自治系统内部的网关之间执行内部网关协议(IGP),互相交换路由信息。不同自治系统之间咏外部网关协议(EGP)交换路由信息。
6.2 外部网关协议
最新的外部网关协议叫BGP,现在BGP4已经广泛地应用于不同ISP的网络之间,成为事实上的Internet外部路由协议标准。BGP4是一种动态路由发现协议,支持CIDR。BGP的主要功能是控制路由策略,例如是否愿意转发过路的分组等。BGP基于TCP连接。
运行于同一AS内部的BGP称为iBGP,运行于不同AS之间的BGP称为eBGP。
BGP协议总结
BGP的四种报文:
报文类型 | 功能描述 |
---|---|
打开(open) | 建立邻居关系 |
更新(update) | 发送新的路由信息 |
保持活动状态(keep alive) | 对open的应答/周期性地确认邻居关系 |
通告(notification) | 报告检测到的错误 |
在BGP中可用上述4种报文实现3个功能过程:
- 建立邻居关系:open–keep alive
- 邻居可达性:周期性地相互发送keepalive
- 网络可达性:每个路由器维护一个数据库,记录着它可到达地所有子网。当情况有变化时用更新报文把最新信息及时地传送给其他BGP路由器。信息包括:
- 网络层可到达信息(NLRI)。发送路由器可到达的子网地址列表。
- 经过的自治系统(AS_path)。
- 下一跳(Next-Hop)
6.3 内部网关协议
常见内部路由协议包括路由信息协议(RIP)、开放最短路径优先协议(OSPF)、中间系统到中间系统的协议(IS-IS)、内部网关路由协议(IGRP)和增强的IGRP协议(EIGRP)等。最后两种是思科公司的专利协议。
RIP
采用Bellman-Ford的距离矢量路由算法,适用于小型网络,因为它允许的跳步数不超过15步。RIP以跳步技术来度量路由费用。
RIPv2报文封装在UDP数据报中发送,占用端口号520。
OSPF
是一种链路状态协议,用于在自治内部的路由器之间交换路由信息。OSPF从各个路由器收集链路信息,构造网络拓扑结构图,使用dijkstra的最短通路优先算法计算到达各个目标的最佳路由。OSPF采用TCP连接发送报文,每个报文都要求应答,通信更加可靠。
为了适应大型网络配置的需要,OSPF协议引入了“分层路由”的概念。
6.4核心网关协议
核心网关协议(GGP):主干网中的核心网关是由InterNOC直接控制的,GGP更具有专业性。当一个核心网关加入主干网时用GGP协议向邻机广播发送路由信息,各邻机更新路由表,并进一步传播新的路由信息。
7.路由器技术
7.1 NAT技术
主要解决IP地址短缺问题,NAPT还进行了端口号转化。
7.2 CIDR技术
CIDR的IP地址的表示与划分方法
7.3 第三层交换技术
IETF开发的多协议标记交换(MPLS)把第2层的链路状态集成到第三层的协议数据单元中,从而简化和改进了第3层分组交换的交换过程。当分组进入MPLS网络时,标记边缘路由器(LER)就为其加上一个标记,这种标记不仅包含了路由表项中的信息,而且还引用了IP头中的源地址字段、传输层端口号和服务质量等。这种分类一旦建立,分组就被指定到对应的标记交换通路(LSP)中,标记交换路由器(LSR)将根据标记来处置分组,不再经过第三层转发,从而加快了网络的传输速度。
8.IP组播技术
有人形容IP组播模型是:你在一端注入分组,网络正好可以把分组提交给任何需要的接收者。组播技术的有效性在于:在把一个组播分组提交给所有组播成员时,只有与该组相关的中间节点可以复制分组,在通往各个组成员的网络链路上只传送分组一个副本,所以利用组播技术可以提高网络传输的效率,减少主干网拥塞的可能性。实现IP组播的前提是组播源和组成员之间的下层网络必须支持组播。
8.1 因特网组管理协议
IGMP是在IPv4环境中提供组管理的协议,参加组播的主机和路由器利用IGMP交换组播成员资格信息,以支持主机加入或离开组播组。在IPv6环境中,组管理协议已经合并到ICMPv6协议中,不再需要单独的组管理协议。IGMP报文封装在IP数据报中传输。
成员资格询问报文由组播路由器发出,分为3种子类型:
- 通用询问:路由器用于了解在它连接的网络上有哪些组的成员
- 组专用询问:路由器用于了解在它连接的网络上一个具体的组是否有成员
- 组和源专用询问:路由器用于了解在它连接的主机是否愿意加入一个特定的组
为了维护一个当前活动的组播地址列表,组播路由器要周期性地发送IGMP通用询问报文,封装在以224.0.0.1(所有主机)为目标地址的IP数据报种。仍然希望保持一个或多个组成员身份的主机必须读取这种数据报,并且对其保持成员身份的组回答一个报告报文。
组播路由器无须知道组播组中每一个主机的地址,对于一个组播组,它只需要知道至少有一个组播成员处于活动状态就可以了。所以成员们可以等待别人发(
当主机要离开一个组时,它向所有路由器发送一个组离开报告,当路由器收到这样的报告时,它要确定该组是否还有其他成员存在,这时可以用组和源专用的询问报文。
8.2 组播路由协议
建立组播树是实现组播传输的关键技术。
- 密集模式路由协议:假定组播成员密集地分布在整个网络中,而且网络有足够的带宽,允许周期性地通过泛洪传播来建立和维护分布树。
- 稀疏模式路由协议:适用于带宽小、组播成员分布稀疏的互联网络。
9.IP QoS技术
Best-Effort服务模型:尽力而为
Best-Effort是最简单的QoS服务模型,用户可以在任何时候,发出任意数量的报文,而且不需要通知网络。提供Best-Effort服务时,网络尽最大的可能来发送报文,但对时延、丢包率等性能不提供任何保证。Best-Effort服务模型适用于对时延、丢包率等性能要求不高的业务,是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、E-Mail等。
IntServ服务模型:预留资源
IntServ模型是指用户在发送报文前,需要通过信令(Signaling)向网络描述自己的流量参数,申请特定的QoS服务。网络根据流量参数,预留资源以承诺满足该请求。在收到确认信息,确定网络已经为这个应用程序的报文预留了资源后,用户才开始发送报文。用户发送的报文应该控制在流量参数描述的范围内。网络节点需要为每个流维护一个状态,并基于这个状态执行相应的QoS动作,来满足对用户的承诺。
IntServ模型使用了RSVP(Resource Reservation Protocol)协议作为信令,在一条已知路径的网络拓扑上预留带宽、优先级等资源,路径沿途的各网元必须为每个要求服务质量保证的数据流预留想要的资源,通过RSVP信息的预留,各网元可以判断是否有足够的资源可以使用。只有所有的网元都给RSVP提供了足够的资源,“路径”方可建立。
DiffServ服务模型:差分服务
DiffServ模型的基本原理是将网络中的流量分成多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理,从而得到不同的丢包率、时延以及时延抖动。同一类的业务在网络中会被聚合起来统一发送,保证相同的时延、抖动、丢包率等QoS指标。
Diffserv模型中,业务流的分类和汇聚工作在网络边缘由边界节点完成。边界节点可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,对不同的报文设置不同的标记字段,而其他节点只需要简单地识别报文中的这些标记,即可进行资源分配和流量控制。
与Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,应用程序发出报文前,不需要预先向网络提出资源申请,而是通过设置报文的QoS参数信息,来告知网络节点它的QoS需求。网络不需要为每个流维护状态,而是根据每个报文流指定的QoS参数信息来提供差分服务,即对报文的服务等级划分,有差别地进行流量控制和转发,提供端到端的QoS保证。DiffServ模型充分考虑了IP网络本身灵活性、可扩展性强的特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作,是当前网络中的主流服务模型。
相关文章:

软考第六章 网络互连与互联网
网络互连与互联网 1.网络互连设备 组成因特网的各个网络叫做子网,用于连接子网的设备叫做中间系统。它的主要作用是协调各个网络的工作,使得跨网络的通信得以实现。 网络互连设备可以根据它们工作的协议层进行分类: 中继器:工…...

C6678-缓存和内存
C6678-缓存和内存 全局内存映射扩展内存控制器(XMC)-MPAX内存保护与地址扩展使用例程缓存 全局内存映射 扩展内存控制器(XMC)-MPAX内存保护与地址扩展 每个C66x核心都具有相同大小的L1和L2缓存,并且可配置为普通内存使…...

实操| 前端新人无敲代码开发APP
作为一种大型的基于GPT-3. 5结构的语言模型,ChatGPT由OpenAI训练,采用深度学习技术,通过大量的文本数据学习,可以生成类似于人类自然语言的文字。ChatGPT是一种非常强大的对话引擎,能进行对话、回答问题和完成任务。Ch…...

OpenCV图像处理之傅里叶变换
文章目录 OpenCV图像处理之傅里叶变换图像处理之傅里叶变换流程图OpenCv图像处理之傅里叶变换OpenCv傅里叶变换之低通滤波OpenCv傅里叶变换之高通滤波 OpenCV图像处理之傅里叶变换 傅里叶变换:目的就是得到图像的低频和高频,然后针对低频和高频进行不同…...

Docker网络案例
bridge 是什么 Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机…...

Java实验课的学习笔记(二)类的简单使用
本文章就讲的是很基础的类的使用 重点大概就是类的构造函数以及一些很基础的东西。 实验内容是些老生常谈的东西,Complex类,在当初学C面向对象的时候也是这个样子展开的。 内容如以下: public class Complex {float real;float imag;public…...

实战案例|聚焦攻击面管理,腾讯安全威胁情报守护头部券商资产安全
金融“活水”润泽千行百业,对金融客户来说,由于业务场景存在特殊性和复杂性,网络安全必然是一场“持久战”。如何在事前做好安全部署,构建威胁情报分析的防护体系至为重要,实现更为精准、高效的动态防御。 客户名片 …...

c++算法初级8——递推
c算法初级8——递推 文章目录 c算法初级8——递推递推递推思想的运用错位排序杨辉三角(二维递推) 递推 递推思想: 根据已有的东西一点点地推出未知的东西。 使用递推解题三步骤: 数学建模找出递推式和初始条件写出代码。 张爽…...

Java后端面试题 重难点和被问到没答上来的点(包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue等)
以下是我记录的一些重点问题和面试中被问到没答上来的问题,包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue 问题目录 1.fail-safe和fail-fast2.四引用3.explain字段重要内容4.maven三大生命周期5.MYSQL 创建修改表6.数据库三范式7.Strin…...

易观千帆 | 2023年3月银行APP月活跃用户规模盘点
易观:2023年3月手机银行服务应用活跃人数53289.05万,环比增长2.15%,同比增长8.87%。 2023年3月信用卡服务应用活跃人数10800.71万,环比增长1.87%,同比增长18.64%。 2023年3月城商行手机银行服务应用活跃人数3827.43万&…...

[Android+JetPack] (Java实现) Retrofit2+RxJava3+Paging3+RecyclerView 实现加载网络数据例子 记录
文章目录 前言参考链接依赖库及版本Demo效果接口及数据展示各项模块Retrofit2Bean,对应上面的接口返回.Service API部分 Paging3PagingSource以及 RxPagingSourcePagingDataAdapter 适配器ViewModelPublicInfoPage /Activity 最后 前言 继续安卓学习之旅,本章的主要目标是: 1.完…...
Java 解析配置文件注入到配置类属性中供全局使用【开发记录】
1、背景:假设目前有两个接口,一个是查询快递订单状态的JSF接口,一个是查询快运订单状态的JSF接口,现有一个需求,要将这两个接口统一为一个入口,发布到物流开放平台供外界调用。 注意:以下代码均…...

【Python开发手册】深入剖析Google Python开发规范:规范Python注释写作
💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝 CSDN主页:Zeeland🔥📣 我的博客:Zeeland📚 Github主页: Undertone0809 (Zeeland) (github.com)&…...

Python入门教程+项目实战-9.3节: 字符串的操作方法
目录 9.3.1 字符串常用操作方法 9.3.2 获取字符串长度 9.3.3 字符串的大小写操作 9.3.4 删除字符串中的空白字符 9.3.5 字符串的子串查找 9.3.6 字符串的子串统计 9.3.7 字符串的子串替换 9.3.8 字符串的拆分函数 9.3.9 字符串的前缀与后缀9.3.10 知识要点 9.3.11 系…...

ENVI 5.6软件安装教程
软件下载 [软件名称]:ENVI 5.6 [软件大小]:3.25G [安装环境]:Win7~Win11或更高 软件介绍 ENVI 5.6是一款实现遥感图像处理的工具,已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、地球科学、公用设施管…...

在Windbg中设置断点追踪打开C++程序远程调试开关的模块
目录 1、Windbg动态调试 2、在Windbg中设置断点 2.1、在函数入口处设置断点 2.2、在函数内部某一行上设置断点 3、设置断点跟踪对打开远程调试开关接口的调用 3.1、编写演示代码 3.2、在Windbg中设置调用SetRemoteDebugOn接口的断点进行跟踪 4、最后 VC常用功能开发汇总…...

CRM客户管理软件开发功能有哪些?
互联网技术的不断提高使得企业管理方式也发生了变化,企业CRM系统应用市场逐渐扩大,相关软件开发也引起越来越多商家企业的关注。因为企业CRM系统软件开发能够根据企业需求制作,帮助企业更好的追踪管理客户信息,实时更新并进行相关…...
C++函数式魔法之旅(Journey of Functional Magic)
C函数式魔法之旅(Journey of Functional Magic) 一、引言(Introduction)C Functional模板库简介(Overview of C Functional Template Library)Functional模板库的重要性和作用(The Importance a…...

Vue基础入门(上)
<script src"https://unpkg.com/vuenext"></script> 从面向dom编程到面向数据编程 输入显示列表 const appVue.createApp({data(){return{inputValue:,list:[]}},methods:{handleAddItem(){this.list.push(this.inputValue);this.inputValue;}},templ…...
字符串匹配—KMP算法
字符串匹配的应用非常广泛,例如在搜索引擎中,我们通过键入一些关键字就可以得到相关的搜索结果,搜索引擎在这个过程中就使用字符串匹配算法,它通过在资源中匹配关键字,最后给出符合条件的搜索结果。并且我们在使用计算…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...

GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...