接之前的传输层继续。
经历了应用层,传输层,接下来就是网络层了,它下面还有链路层。
网络层的主要目标是允许终端系统通过称为路由器(routes)的中间系统交换信息。网络层中的信息单元称为数据包(packets)。
数据链路层存在局限性,因为其中的不同技术使用不同的帧大小和寻址方法。这种不一致性给网络层带来了挑战,网络层需要处理通信,无论使用的具体数据链路层技术是什么。
网络层的原则:
这种独立性带来了以下优势:
网络层的两个层面:网络层在概念上分为两个层面。
网络层通过独立的寻址和分层设计,实现了灵活性、可扩展性和与底层技术的解耦。数据平面负责数据传输,控制平面负责路由决策,两者协同工作确保网络中数据包的可靠传递。
网络层可以提供多种服务,但对于当今的互联网而言,不可靠无连接服务 是最常使用的类型。这种服务高效、灵活,适用于数据量大、偶尔丢包可以接受的场景。比如网页,视频,游戏,提供商将数据丢进网络而不关心你是否能很好的接收它们。
一,数据报是最流行的,基于数据报的网络层包括全球互联网中的IPv4和IPv6,我们最熟知的两种。
这种组织方式很像传输层的 UDP,是无连接的,因此每个数据包包含:目的主机的网络层地址,发送方的网络层地址,要发送的信息。
它使用转发表(Forwarding tables)在数据报组织方式中使用逐跳转发。这意味着当路由器收到不是发往自己的数据包时,它会在其转发表中查找数据包的目标地址。
Forwarding Tables 和 Routing Tables 在网络中扮演着不同的角色,它们之间有着明显的区别:
总的来说,Routing Tables 是描述了网络拓扑和路由策略的逻辑结构,用于路由器之间的路由协议交换和管理,而 Forwarding Tables 是转发引擎内部的数据结构,用于实际的数据包转发过程中的快速查找和转发。Routing Tables 通常由路由器动态更新和管理,而 Forwarding Tables 则是根据 Routing Tables 构建的,用于路由器的数据包转发过程。
路由表通常用于生成转发表的信息,转发表是路由表的 子集。因此,路由表可能有 3 条路径,用于一个源和目的地对,这些路径是由几种不同的算法生成的,也可能是手动输入的。然而,转发表将仅具有这些条目中的一个,该条目通常是基于另一种算法或标准的首选条目。转发表通常针对存储和查找进行优化。
数据报在现实中的应用非常广泛,主要体现在计算机网络通信领域,包括但不限于以下几个方面:
总的来说,数据报在现实中的应用非常广泛,几乎涵盖了计算机网络通信的各个方面。作为网络通信的基本单位,数据报在实际应用中发挥着重要的作用,为各种网络应用提供了高效、灵活的通信方式。
二,虚拟电路(Virtual Circuit)是计算机网络中的另一种通信模型,它建立了一条预先定义的、固定的通信路径,用于在通信的两个端点之间进行数据传输。在虚拟电路模型中,通信的两个端点之间的通信路径被称为虚拟电路,它在逻辑上存在,但并不是物理上的实际连接。
虚拟电路通信模型包括了以下主要组成部分:
虚拟电路通信模型的特点包括了以下几点:
虚拟电路通信模型通常用于需要保证数据传输顺序和可靠性的应用场景,如传统的电话网络(电路交换网络)、传输控制协议(TCP)(和TCP工作方式还蛮像的)等。
虚拟电路通信模型在现实中有许多应用,主要包括以下几个方面:
虚拟电路通信模型在许多实际应用中都得到了广泛的应用,主要是为了保证数据传输的顺序和可靠性。这种模式在许多需要保证数据传输顺序和可靠性的场景中都表现出了良好的效果。
网络就像是一个有向加权图数据结构,每次数据传输的算法,都是在寻找最短路径。图上的加权,与传播延迟,以及可用带宽成正比。
静态路由和动态路由是在计算机网络中用于确定数据包传输路径的两种不同的路由方式。
静态路由是通过手动配置路由表来确定数据包传输路径的路由方式。在静态路由中,网络管理员手动配置路由器或主机的路由表,指定了每个目标网络地址的下一跳路由器或出口接口。这些静态路由条目在网络中不会自动更新,除非管理员手动进行修改。
静态路由的算法是非自适应的,通常只能处理较小、拓扑结构较简单的网络。它的主要优点是配置简单、稳定可靠,适用于小型网络或需要固定路径的场景。静态路由的缺点是不具备自动适应网络拓扑变化的能力,需要手动管理和更新路由表。
动态路由是通过路由协议动态学习和更新路由表来确定数据包传输路径的路由方式。在动态路由中,路由器之间通过路由协议交换路由信息,学习网络拓扑结构和路径状态,并自动更新路由表以反映网络变化。
动态路由的算法是自适应的,能够根据网络拓扑和路径状态实时调整路由表。常见的动态路由协议包括:距离向量路由算法(如RIP)、链路状态路由算法(如OSPF)、路径向量路由算法(如BGP)等。
动态路由的主要优点是能够适应网络拓扑的变化,自动发现故障并进行路径切换,具有较高的灵活性和可靠性。但动态路由也有一些缺点,包括配置复杂、网络开销较大、可能存在路由振荡和收敛延迟等问题。
在选择静态路由和动态路由时,需要根据网络规模、复杂度、管理要求以及对网络稳定性和性能的要求进行综合考虑。通常在小型网络或需要固定路径的场景下选择静态路由,在大型复杂网络或对动态适应性要求较高的场景下选择动态路由。
知识补充:网络拓扑
网络拓扑指的是计算机网络中设备之间物理或逻辑连接的排列方式或结构。简单来说,它描述了网络中设备之间的布局方式以及它们之间的连接关系。
网络拓扑可以分为两种主要类型:
网络拓扑的选择和设计对于网络的性能、可靠性和可管理性都有重要影响。不同的网络拓扑结构适用于不同的场景和需求,网络管理员需要根据实际情况进行选择和配置。在设计网络拓扑时,通常需要考虑以下因素:
综合考虑这些因素,网络管理员可以选择合适的网络拓扑结构来满足特定的需求和要求,从而构建出稳定、高效的计算机网络。
重要协议。提供不可靠数据报组织连接。IP主机地址必须具有固定大小32位长度(点分十进制)。
IP4用于标识路由器上的接口,或者主机上的接口。因此,路由器拥有的 IPv4 地址数量与它在数据链路层中拥有的接口数量一样多。大多数主机具有单个数据链路层接口,因此具有单个 IPv4 地址。然而,随着无线的发展,越来越多的主机具有多个数据链路层接口(例如以太网接口和WiFi接口)。这些主机被认为是多宿主的。因此,具有两个接口的多宿主主机具有两个 IPv4 地址。
关于子网划分:(路由无法路由到所有的主机,但可以路由到所有的IP组织(这些组织是子网的合集))
子网划分是将一个大的IP地址范围划分成若干个较小的子网络的过程。它是在IPv4网络中用于有效管理和利用IP地址空间的一种方法,可以将大的IP地址段分配给不同的网络或子网络,以满足不同网络的需求。
子网划分通常涉及以下几个重要概念:
关于地址类别ABCDE:
在IPv4网络中,IP地址被分为几种不同的类别,每种类别都具有不同的地址范围和用途。IPv4地址类别主要包括了A类、B类、C类、D类和E类地址。
这些地址类别根据其地址范围的不同,可以满足不同规模和需求的网络。例如,A类地址适用于大型企业网络,B类地址适用于中型企业或大学校园网络,C类地址适用于小型企业或家庭网络等。D类地址用于多播通信,E类地址保留未来使用。
世界上的IP地址分配:
IPv4地址的分配是由互联网注册管理机构(RIRs,Regional Internet Registries)负责进行的,它们负责将IPv4地址块分配给各个地区的互联网服务提供商(ISP)和组织。IPv4地址的分配通常遵循层级化的原则,并受到国际标准和协议的约束。
IPv4地址分配是按照层级结构进行的,从更高级别的RIRs到更低级别的ISP和最终用户。全球有五个RIRs,分别是亚太网络信息中心(APNIC)、美国互联网数字地址分配机构(ARIN)、欧洲网络协调中心(RIPE NCC)、拉美和加勒比地区互联网注册管理机构(LACNIC)以及非洲网络信息中心(AfriNIC)。
IPv4地址的分配受到国际标准和协议的约束,其中包括互联网工程任务组(IETF)发布的相关RFC文档。这些标准和协议规定了IPv4地址的分配原则、地址块的大小、分配过程等方面的内容,以确保地址分配的公平性和有效性。
IPv4地址分配通常基于组织的实际需求和使用情况进行。大型的ISP和组织可能会获得较大的IPv4地址块,而较小的ISP和组织可能会获得较小的地址块。此外,还会考虑到地址的可持续性和合理利用,以确保地址分配的公平性和有效性。
IPv4地址的分配是一个复杂的过程,受到国际标准和协议的约束,同时也受到地址枯竭问题的影响。随着IPv6的推广和部署,IPv4地址分配将逐渐减少,而IPv6将成为未来互联网地址分配的主要方向。
IPv4数据包的标头:
地址解析协议(ARP,Address Resolution Protocol)是一种用于在IPv4网络中将IP地址映射到物理MAC地址(数据链路层)的协议。ARP的主要作用是解决在局域网中,当知道目标主机的IP地址时,如何找到其对应的MAC地址的问题。
ARP产生的原因是,当主机在局域网中需要与其他主机进行通信时,它需要知道目标主机的MAC地址才能将数据帧正确地发送到目标主机。因为以太网是基于MAC地址进行通信的,而不是基于IP地址。因此,ARP协议解决了IP地址到MAC地址的映射问题。
ARP的运作过程如下:
总的来说,ARP协议通过在局域网中广播ARP请求来获取目标主机的MAC地址,从而实现了IP地址到MAC地址的解析,使得主机在局域网中能够正常进行通信。
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是一种网络协议,用于在计算机网络中自动分配IP地址和其他网络配置参数给客户端设备,使得网络设备能够在加入网络时自动获取所需的网络配置信息,而无需手动配置。
DHCP协议的产生是为了简化网络管理和提高网络的可扩展性。在网络中,当新增设备或移动设备时,手动配置每个设备的IP地址和其他网络参数会非常繁琐和耗时。DHCP的出现解决了这一问题,使得网络管理员可以集中管理IP地址池和网络配置,而客户端设备只需通过DHCP协议向网络中的DHCP服务器请求配置信息,即可自动获取所需的网络配置。
DHCP协议的运作过程如下:
通过DHCP协议,客户端设备可以动态地获取IP地址和其他网络配置信息,使得网络管理更加灵活和高效。DHCP服务器管理着一个地址池,可以根据需求动态地分配IP地址和其他网络配置参数给客户端设备,从而简化了网络管理的过程。
它可以是一个服务器,也可以是一个路由器上的功能。比如在一个子网中,通过路由器动态分配IP地址也是通过该协议。
IPv4数据包的生命周期也就是数据包从发送端到接收端经历的整个过程,包括路由、转发和处理等。下面是IPv4数据包的生命周期的基本组成。
TTL字段和ICMP协议密切相关,TTL字段用于控制数据包在网络中的生存时间,而ICMP协议用于处理生存时间超时等情况,并提供网络诊断和故障排除功能。
ICMP全称为Internet Control Message Protocol(互联网控制消息协议),是TCP/IP协议族中的一个重要协议。ICMP主要用于在IP网络中传递控制信息和错误报告,以及提供网络诊断和故障排除功能。以下是ICMP的主要功能和特点:
错误报告和消息传递:ICMP用于向源主机发送各种类型的错误报告和消息,以通知发送端发生了错误或不可达情况。例如,当目标主机不可达时,路由器会发送ICMP消息通知源主机。
网络诊断和故障排除:ICMP可以用于执行网络诊断和故障排除,例如通过Ping命令测试主机的可达性、通过Traceroute命令跟踪数据包的路径等。
生存时间(Time to Live,TTL):ICMP消息中包含生存时间字段,用于控制数据包在网络中的生存时间。当数据包通过路由器时,生存时间会递减,直到生存时间为0时,路由器会丢弃数据包并发送ICMP时间超时消息。
重定向(Redirect):ICMP重定向消息用于通知主机发送数据包的最佳路径已更改,主机应该更新其路由表以避免不必要的跳转。
Ping(Echo Request/Echo Reply):Ping是ICMP协议的一种常用应用,用于测试主机的可达性和网络延迟。Ping命令发送Echo Request消息到目标主机,并等待目标主机返回Echo Reply消息。
总的来说,ICMP是TCP/IP协议族中的一个重要协议,用于在IP网络中传递控制信息和错误报告,提供网络诊断和故障排除功能,以及管理网络通信中的各种问题和情况。
IPv6是互联网协议第6版(Internet Protocol version 6)的缩写,是IPv4的后继版本。IPv6相比IPv4拥有更大的地址空间、更好的安全性和更强的支持特性。
IPv6产生的主要原因有以下几点:
地址枯竭问题:IPv4采用32位地址,约有42亿个可用地址,但随着互联网的迅速发展,IPv4地址空间已经不足以满足全球互联网设备的需求,导致了IPv4地址枯竭问题。IPv6的采用能够解决IPv4地址空间不足的问题,因为IPv6采用128位地址,理论上可以提供约340亿亿亿亿(3.4 x 10^38)个地址。
地址分配的灵活性:IPv6引入了地址前缀和子网的概念,使得地址分配更加灵活,可以更好地支持各种网络规模和拓扑结构。
安全性增强:IPv6在协议设计中考虑了安全性的需求,引入了IPsec(Internet Protocol Security)协议,使得网络通信更加安全可靠。
支持新的应用和服务:IPv6支持更多的扩展和特性,可以更好地支持新的应用和服务,如物联网、大规模数据中心、移动互联网等。
但是它也有如下缺点:
总的来说,IPv6是为了解决IPv4地址空间不足的问题而产生的,具有更大的地址空间、更好的安全性和更灵活的地址分配特性,但也面临着兼容性问题和部署成本较高等挑战。
这也是我第一次听到的一个概念。
中间盒(Middlebox)是指位于网络通信路径中的网络设备或软件,用于提供各种网络服务和功能,以实现流量控制、优化、安全和管理等目的。中间盒可以是硬件设备、虚拟机器、软件程序或网络功能虚拟化(NFV)的实例,通常部署在网络中的关键位置,如边界路由器、交换机、网关、代理服务器等。
中间盒在网络中扮演着重要的角色,用于实现各种网络功能和服务,包括但不限于:
安全功能:防火墙、入侵检测与防御系统(IDS/IPS)、网关防毒、数据包过滤、网络访问控制等,用于保护网络免受未经授权的访问、恶意攻击和网络威胁。
流量优化:负载均衡、内容分发网络(CDN)、缓存服务器、网络加速器等,用于优化网络流量、提高网络性能和响应速度。
网络管理:网络监控、流量分析、日志记录、带宽管理等,用于监控和管理网络资源、识别网络问题和优化网络性能。
协议转换:网关、代理服务器等,用于实现不同网络协议之间的转换和互通,如IPv4与IPv6之间的转换、HTTP与HTTPS之间的转换等。
服务提供:虚拟专用网络(VPN)、云存储网关、VoIP网关等,用于提供各种网络服务和功能,满足用户需求。
中间盒的部署可以在物理网络设备上,也可以在虚拟化环境中,通过软件实现。它们通常被用来实现网络的各种功能和服务,从而提高网络的安全性、可靠性和性能,同时也为网络管理员提供了更多的控制和管理能力。
以下是常见的中间盒类型:
防火墙(Firewall):用于监控、过滤和控制网络流量,以保护网络免受未经授权的访问和网络攻击。
入侵检测与防御系统(IDS/IPS):用于检测和防御网络中的入侵行为,及时发现和阻止网络攻击。
网关防毒(Gateway Antivirus):用于检测和阻止网络流量中的恶意软件和病毒。
负载均衡器(Load Balancer):用于将网络流量分发到多个服务器或网络设备,以提高性能和可靠性。
内容分发网络(CDN):用于将内容缓存到多个分布式服务器上,以加速内容传输和提高用户体验。
缓存服务器(Cache Server):用于临时存储网络数据,以减轻服务器负载和加快数据访问速度。
VPN网关(VPN Gateway):用于建立安全的远程访问连接,实现虚拟专用网络(VPN)功能。
代理服务器(Proxy Server):用于代理客户端和服务器之间的网络通信,提供安全性、隐私保护和性能优化。
网络监控器(Network Monitor):用于监控和分析网络流量、性能和安全事件,及时发现和解决网络问题。
带宽管理器(Bandwidth Manager):用于管理和控制网络带宽的分配和使用,优化网络资源的利用。
流量分析器(Traffic Analyzer):用于分析和识别网络流量模式和趋势,帮助优化网络设计和规划。
内容筛选器(Content Filter):用于过滤和控制网络流量中的特定内容,如网页过滤、广告拦截等。
防火墙(Firewall)是一种网络安全设备或软件,用于监控、过滤和控制网络流量,以保护网络免受未经授权的访问、恶意攻击和网络威胁。防火墙通过检查传入和传出的数据包,根据预先定义的安全策略和规则来允许或阻止数据包的传输。防火墙可以部署在网络边界、主机、路由器等位置,以保护网络的安全和稳定性。
防火墙通常可以根据其工作层次和功能特点进行分类,常见的分类包括:
AWS(Amazon Web Services)中的ACL(Access Control List)和Security Group是用于控制网络访问和安全的两种不同机制。
总的来说,ACL和Security Group都是用于控制网络访问和安全的机制,但它们具有不同的特点和应用场景。ACL是应用于子网级别的无状态访问控制列表,而Security Group是应用于实例级别的有状态虚拟防火墙。
网络地址转换(Network Address Translation,NAT)是一种网络通信协议,用于在不同网络之间转换IP地址。它的主要作用是将私有IP地址转换为公共IP地址,或者将公共IP地址转换为私有IP地址,从而实现网络设备之间的通信。
NAT产生的主要原因包括:
IPv4地址短缺:由于IPv4地址空间有限,随着互联网的发展和设备数量的增加,IPv4地址逐渐枯竭。为了节省IP地址的使用,NAT技术被引入到网络中,允许多个私有IP地址通过少量的公共IP地址进行通信。
网络安全性:NAT可以隐藏内部网络结构和设备信息,提高网络的安全性。通过将私有IP地址转换为公共IP地址,外部网络无法直接访问内部网络中的设备,从而有效地防止了一些网络攻击。
灵活的网络设计:NAT可以帮助网络管理员灵活地设计和管理网络,不受IP地址空间的限制。例如,企业内部网络可以使用私有IP地址,而与外部网络通信时通过NAT转换为公共IP地址。
NAT的工作原理如下:
地址转换:NAT会维护一个地址映射表,记录内部私有IP地址与外部公共IP地址之间的映射关系。当数据包从内部网络发出时,NAT会将源IP地址转换为公共IP地址,并将转换后的数据包发送到外部网络;当外部网络返回响应时,NAT会将目标IP地址转换为内部私有IP地址,并将响应发送到内部网络。
端口转换:除了IP地址转换外,NAT还可以进行端口转换。当多个内部设备使用相同的公共IP地址与外部网络通信时,NAT会使用不同的端口号来区分不同的设备,从而实现一对多的地址转换。
状态跟踪:NAT会跟踪每个数据包的状态,以确保响应的数据包能够正确地返回到发送者。通过维护连接状态信息,NAT可以正确地转换数据包的源地址和目标地址,并确保通信的可靠性和完整性。
总的来说,NAT是一种用于解决IPv4地址短缺和提高网络安全性的重要技术,通过将私有IP地址转换为公共IP地址,实现了内部网络与外部网络之间的通信。