热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络层详解——湖南科技大学《计算机网络微课堂》笔记4.1

本文详细介绍了网络层的主要路由协议,包括RIP、OSPF、BGP的工作原理及其特点,并探讨了IPv4数据报的首部格式、ICMP协议以及虚拟专用网(VPN)和网络地址转换(NAT)的相关知识。

网络层概述


网络层的主要任务是在源主机和目的主机之间实现数据包的传输。这一层涉及到多个重要的协议和技术,如路由选择协议、RIP、OSPF、BGP等。此外,还包括IPv4数据报的首部格式、ICMP协议以及虚拟专用网(VPN)和网络地址转换(NAT)等内容。



路由选择协议概述


路由选择协议用于确定数据包从源主机到目的主机的最佳路径。路由器的结构通常分为路由选择部分、分组转发部分和输入与输出端口三部分。路由表包含从目的网络到下一跳的映射,需要定期更新以适应网络拓扑的变化。转发表是从路由表中提取的,用于优化数据包的查找和转发过程。



路由信息协议RIP


RIP的基本原理


RIP是一种基于距离向量的路由协议,适用于小型网络。它通过交换路由表信息来更新每个路由器的路由表。RIP的最大跳数限制为15,超过15跳的目的地被视为不可达。



RIP的基本工作过程


RIP路由器定期向相邻路由器发送整个路由表,接收方路由器根据接收到的信息更新自己的路由表。更新规则包括:
1. 到达同一目的网络且下一跳相同,更新为最新消息。
2. 发现新的网络,添加到路由表。
3. 到达同一目的网络但下一跳不同,如果新路由更优,则更新。
4. 到达同一目的网络但下一跳不同,如果新路由等效,则进行负载均衡。
5. 到达同一目的网络但下一跳不同,如果新路由更劣,则不更新。



RIP存在的问题


RIP存在“坏消息传播得慢”的问题,也称为路由环路或距离无穷计数问题。为了解决这个问题,可以采取以下措施:
1. 限制最大路径距离为15。
2. 当路由表发生变化时立即发送更新报文,而不仅仅是周期性发送。



开放最短路径优先OSPF


OSPF是一种基于链路状态的路由协议,适用于大型网络。OSPF路由器通过交换链路状态通告(LSA)来构建链路状态数据库(LSDB),并使用Dijkstra算法计算最短路径树,从而确定最佳路径。



OSPF的分组类型


OSPF定义了五种分组类型,包括Hello报文、数据库描述报文、链路状态请求报文、链路状态更新报文和链路状态确认报文。这些报文用于建立和维护邻居关系、同步链路状态数据库以及更新路由信息。



边界网关协议BGP


BGP是一种用于自治系统之间的外部网关协议。BGP路由器通过TCP连接交换路由信息,使用路径向量算法来选择最佳路径。BGP支持丰富的路由策略和过滤功能,适用于复杂的互联网环境。



IPv4数据报的首部格式


IPv4数据报的首部包含多个字段,用于控制数据报的传输。主要字段包括:
1. 版本:4比特,表示IP协议的版本,目前广泛使用的是IPv4。
2. 首部长度:4比特,表示IP数据报首部的长度,最小值为5(20字节),最大值为15(60字节)。
3. 可选字段:长度从1到40字节不等,用于支持排错、测量及安全等措施。
4. 填充字段:确保首部长度为4字节的整数倍,使用全0填充。
5. 区分服务:8比特,用于提供不同等级的服务质量。
6. 总长度:16比特,表示IP数据报的总长度(首部+数据载荷),最大值为65535字节。
7. 标识、标志、片偏移:用于IP数据报的分片和重组。
8. 首部检验和:16比特,用于检测首部在传输过程中是否出现差错。
9. 生存时间TTL:8比特,表示数据报在网络中可以经过的最大跳数,每经过一个路由器减1,减至0则丢弃。



网际控制报文协议ICMP


ICMP用于更有效地转发IP数据报和提高交付成功的机会。主机或路由器使用ICMP发送差错报告报文和询问报文。ICMP报文被封装在IP数据报中发送。



ICMP差错报告报文分类



  • 终点不可达:当路由器或主机不能交付数据报时,向源点发送终点不可达报文。

  • 源点抑制:当路由器或主机过载时,向源点发送源点抑制报文,建议源点降低发送速率。

  • 时间超过:当数据报的TTL值减至0时,向源点发送时间超过报文。

  • 参数问题:当路由器或目的主机发现IP数据报首部出现误码时,向源点发送参数问题报文。

  • 改变路由(重定向):当路由器发现有更好的路径时,向源点发送改变路由报文。



常用的ICMP询问报文


ICMP还支持多种询问报文,如回送请求和回送应答报文(ping)、时间戳请求和时间戳应答报文等,用于测试网络连通性和性能。



虚拟专用网(VPN)和网络地址转换(NAT)



虚拟专用网(VPN)


虚拟专用网(VPN)通过在公共网络上建立一个安全的隧道,实现私有网络之间的通信。常见的私有地址包括10.0.0.0/8、172.16.0.0/12和192.168.0.0/16。这些地址只能用于内部通信,不能用于因特网上的主机通信。数据报在通过路由器时会被加密并重新封装,以确保数据的安全性和隐私。



网络地址转换(NAT)


NAT用于解决私有地址与全球IP地址之间的转换问题。NAT路由器通过将私有地址转换为全球IP地址,使使用私有地址的主机能够与因特网上的主机通信。NAT不仅解决了IPv4地址短缺的问题,还提供了额外的安全保护,因为外网主机不能直接访问内网主机。


推荐阅读
  • TP-Link无线路由器WPS安全配置指南
    本文详细介绍了如何在TP-Link无线路由器上进行WPS的安全设置,包括关闭不必要的服务、同步主路由器的无线设置等步骤。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文详细介绍了如何为笔记本电脑配置无线网络连接,确保其安全性和稳定性,适合初学者快速上手。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 在项目中使用 Redis 时,了解其不同架构模式(如单节点、主从复制、哨兵模式和集群)对于确保系统的高可用性和扩展性至关重要。本文将详细探讨这些模式的特点和应用场景。 ... [详细]
  • 本文深入探讨了MAC地址与IP地址绑定策略在网络安全中的应用及其潜在风险,同时提供了针对该策略的破解方法和相应的防御措施。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
author-avatar
明年夏天1314520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有