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

计算机网络笔记:第四章网络层

文章目录第四章网络层网络层提供的服务网络层如何转发数据包网络层协议IP协议ARP协议网际控制报文协议ICMPInternet组播管理协议IGMPIP数据包格式静态路由动态路由第四章


文章目录

  • 第四章 网络层
    • 网络层提供的服务
    • 网络层如何转发数据包
    • 网络层协议
      • IP协议
      • ARP协议
      • 网际控制报文协议 ICMP
      • Internet组播管理协议IGMP
    • IP数据包格式
    • 静态路由
    • 动态路由


第四章 网络层

网络层负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发,不负责丢失重传,不负责顺序


网络层提供的服务

image


网络层如何转发数据包

image

发送端:


  1. 应用程序准备要传输的文件
  2. 传输层 将文件分段 并编号
  3. 网络层 添加目标IP地址、源IP地址
  4. 数据链路层 两种情况:
    1. 使用自己的子网掩码 判断自己在哪个网段,再使用自己的子网掩码,判断目标地址在哪个网段,如果是同一网段,arp协议广播解析目标IP地址的MAC地址
    2. 如果不在一个网段,就要通过路由器来进行转发,这是目标地址的MAC地址就是路由器的MAC地址。
    3. 最后添加源MAC地址、目标MAC地址和FCS帧校验序列

  • 集线器工作在物理层,只负责传递信号,可以加强信号
  • 交换机工作在数据链路层,因为交换机在接收到bit流之后可以看懂帧的目的地址进行转发,负责存储转发。
  • 路由器工作在网路层,它根据路由表选择出口
  • 路由器再次选择路径之后,数据链路层更改目标MAC地址,再次封装
  • 整个传输过程中源IP地址和目标IP地址不变,变的是源MAC地址和目标MAC地址。

image
image
image


网络层协议

image


IP协议


  • RIP
  • OSPF

ARP协议

将IP地址通过广播,目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址,扫描本网段MAC地址


网际控制报文协议 ICMP


  1. 使用ICMP协议的命令:

  • ping
  • pathping:跟踪数据包路径,计算丢包情况
  • tracert:Windows上跟踪数据包路径的命令
  • traceroute:路由器上跟踪数据包路径的命令

  1. ping命令诊断网络故障

  • ping(Packe Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
  • ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
  • TTL是时间,也可说是耐久度,就是每经过一个路由器,TTL就减一。
  • TTL默认值:Linux64,windows128,unix255.从TTL的值可以大概判断对方是什么系统。
  • pathping 跟踪数据包路径,计算丢包情况

Internet组播管理协议IGMP


  • 点到点
  • 广播
  • 组播=多播

IP数据包格式

image
image


  • 版本:用来表示TCP/IP协议的版本,IPV4/IPV6

  • 区分服务

  • 标识:标识是一个数据包,数据包可能会在数据链路层分片,要重装就看这个标识

  • 标志:占三位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF(Don’t Fragment)。只有当DF=0时才允许分片。

  • 网络层:数据包 65535字节

  • 数据链路层:数据 1500字节,最大传输单元MTU

  • 数据包,如果不分配,数据包数据最大不超过1480字节

  • 首部校验和
    image


静态路由

需要管理员告诉路由器所有没有直连的网络下一条给谁,也就是手动配置路由表,每一跳都要配置。

特点:适合于小规模网络,不能够自动调整路由


动态路由


  • RIP:周期性广播路由表,选择跳数最小的,30秒更新一下路由信息,如果路由器宕机了,则删除路由信息,最大跳数15跳,超过则视为不可到达。

推荐阅读
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 本文详细介绍了在Windows XP系统中安装和配置Unix打印服务的方法,以支持远程行式打印机(LPR)功能。对于同时使用Windows 2000 Server打印服务器和Unix打印服务器的网络环境,该指南提供了实用的步骤和配置建议,确保不同平台之间的兼容性和高效打印。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • DHCP三层交换机设置方式全局模式和接口模式设置方式和命令resetsave回车输入yreboot输入n输入y重启后就恢复默认设置了默认用户名密码adminAdmin@huawei ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 利用 Python 管道实现父子进程间高效通信 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
author-avatar
帝薩克斯_271
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有