<计算机网络自顶向下> Internet Protocol

news2024/11/25 16:49:46

互联网中的网络层

IP数据报格式

  • ver: 四个比特的版本号(IPV4 0100, IPV6 0110)

  • headlen:head的长度(头部长度字段(IHL)指定了头部的长度,以32位字(4字节)为单位计算。这个字段的值乘以4就是头部的实际长度,因为每个值代表4个字节。所以,如果IHL字段的值为5,那么头部长度就是5 * 4 = 20字节,IP数据包头部最小长度是20所以这个headlen字段最小的值是5)

  • flgs字段是分片用的

  • upper layer: (该字段是8位长,就是protocol字段,它指示了数据部分所使用的上层协议类型。以下是一些常见协议类型的数值表示:1表示ICMP(Internet控制消息协议);6表示TCP(传输控制协议);17表示UDP(用户数据报协议))

  • 这里的Internet checksum是头部的校验和

  • Option:比如说有些option就是记录下途中每个路由器的地址

IP分片和重组(Fragmentation & Reassembly)

  • 网络链路有MTU(最大传输单元,是包括头部的)——链路层帧所携带的最大数据长度
    • 不同的链路类型
    • 不同的MTU
  • 大的IP数据报在网络上被分片(“fragmented”)
    • 一个数据报被封为若干个小的数据报(每个小的数据报必须都要加上头部)
      • 相同的ID
      • 不同的偏移量(以八个字节为单位偏移量)
      • 最后一个分片的fragflag标记为0,反之为1
    • “重组”旨在最终的目标主机进行(要是每个路由器都充足的话就太忙了)
    • 胖分组加入中间有分片没到就全扔了
    • IP头部的信息被用于表示,排序相关分片

IP编址

  • IP地址:32位标识,对主机或者路由器的接口编址(是标识接口点的而不是标识主机)
  • 接口:主机/路由器和物理链路的连接处
    • 路由器通常多个接口
    • 主机也有可能多个接口
    • IP地址和每个接口相关联
  • 一个IP地址和一个接口相关联

子网(Subnet) 

  • IP地址:
    • 子网部分(高位bits)
    • 主机部分(低位bits)
  • 什么是子网
    • 一个子网内的节点(主机或路由器)它们的IP地址的高位部分相同,这些节点构成的网络的一部分叫做子网(条件一:前缀一样)
    • 无需路由器介入,子网内个主机可以在物理上相互直接到达(条件二:分组收发不需要路由器,一跳可达,可借助交换机)
    • 把纯子网的所有信息聚集为一条向外发送,可以减少在广域网范围路由表表项的数量,减小传输和计算路由信息的代价(所以说路由表的单位实际上是网络而不是IP地址)

  • 判断子网数量 (看"孤岛”): 把路由器连线断开看分区比如下图就是六个子网

IP地址分类

  • 单播地址(我->你)
    • A类:地址的最高位为0,第一个字节的其他7个比特代表网络号,后面三个字节的24比特代表主机号(一共有126个网络因为2^7-2,不要全0的网络和全1的网络,这是IP地址的约定,每个网络2^24-2个主机)
    • B类:最高地址为10,前面两个字节剩余部分代表网络号,后面两个字节代表主机号
    • C类:最高地址为110,前面三个字节剩余部分代表网络号,后面一个字节代表主机号
  • 主播地址(我->所有)
    • D类:最高地址为1110,后面就是主播地址(主播组成员)
  • 预留地址
    • E类:最高地址为11110

  •  一些约定
    • 回路地址:就是自己的地址(也叫测试地址,因为通常用于本地测试,诊断和通信,不涉及真实的网络通信)

  •  内网(专用)IP地址
    • 专用地址:地址空间的一部分供专用地址使用
    • 永远不会被当做公用地址来分配,不会与公用地址重复
      • 只在局部网络中有意义,区分不同的设备
    • 路由器不对目标地址是专用地址的分组进行转发
    • 举例来说,一个公司内部网络可以使用192.168.0.0/24的地址范围,例如192.168.1.0到192.168.1.255之间的IP地址,来连接其内部设备,比如电脑、打印机、服务器等。这些地址只在公司内部可用,不会被互联网路由器转发
    • 专用地址范围

  •  无类地址:按需分配IP地址
    • 因为是按需分配所以无法直接通过用IP地址在路由表查询,需要使用CIDR

CIDR:Class InterDomain Routing(无类域间路由)

  • 子网部分可以在任何位置
  • 地址格式:a.b.c.d/x,其中x是地址中子网号的长度(为1说明是网络号,为1为主机号)取与即可

  • 转发表和转发算法:
    • 目标子网号
    • 子网掩码
    • 下一跳
    • 端口
  • 步骤
    • 取出目标IP
    • 和每个表项子网掩码做个与(就可以把网络号取出来)
    • 取出来判断和目标子网号是否一样,要是不一样接着往下找
    • 一样的话表项就找到了
    • 只有最后一跳目标主机的主机号才有用

  • 这里再次详细叙述一下一次数据报从源主机到目标主机的过程 :某路由器从某个端口收到数据报,匹配表项,知道从哪个端口放出去,下一跳的IP地址是什么,找到IP地址相对应的网卡MAC地址(根据ARP协议,这还是匹配IP地址和MAC号的协议),然后重新解封装封装继续转发,直到最后一跳,到达目标网络,交给目标主机(只有最后一条需要用到主机号)

 如何获得IP地址

  • 自动分配IP地址
    • 系统管理员将地址配置在一个文件中
    • 上网必备的四个信息
      • IP地址(Internet Protocol Address)

      • 子网掩码(Subnet Mask):两种表示方式

      • 默认网关(Default Gateway):是一个设备(通常是路由器)的IP地址,用于将数据包发送到其他网络。当一个设备需要发送数据到不在同一子网内的目标时,它将数据包发送到默认网关,由默认网关来负责将数据包转发到正确的目标。

      • DNS服务器(Domain Name System Server)

    • DHCP:Dynamic Host Configuration Protocol 从服务器中动态获得一个IP地址
  • 手动分配IP地址
    • 非最大ISP就请求大网给你分配小网
    • 最大ISP找ICANN分配IP地址(Internet Corporation for Assigned Names and Numbers)

Dynamic Host Configuration Protocol(动态主机配置协议)

  • 目标:允许主机在加入网络的时候,动态的从服务器哪里获取IP地址
    • 可以更新对主机再用IP地址的租用期-租期快到了
    • 重新启动时,允许重新使用以前用过的IP地址
    • 支持移动用户加入到该网络(短期在网)
  • DHCP工作概况

层次编址:路由聚集(route aggregation)

  • 第一个路由器:当一个数据包被发送到一个目的地时,首先它需要知道它要去的第一个路由器,也就是数据包的第一个下一跳。

    通常情况下,源设备(发送数据包的设备)已经配置了默认网关(Default Gateway)。默认网关是一个设备的IP地址,用于指示发送到其他网络的数据包应该发送到哪个路由器。首先查路由表如果发现不是自己网络范围的所以要发到默认网关。源设备将数据包发送到默认网关,然后默认网关将根据自己的路由表将数据包发送到适当的下一跳。

  • 下一跳:路由器在转发数据包时选择的下一个路由器或者目的地设备的地址
  •  层次编制是指路由协议在路由信息传播时采用分层的方法。在分层编制中,路由信息首先传播到特定的节点,然后再传播到更广泛的节点,最终到达整个网络。这种分层的方法有助于减少路由信息的传播量和路由器之间的通信开销,提高了路由信息的有效传播效率。(路由器允许一定的空洞就是没必要全部都收到了再发出去)
  • 层次编制允许路由信息的有效广播,某一子网前缀的分组全部整合发到路由器以后再根据路由表查询最长匹配的下一跳发到下一个地点

 层次编址:特殊路由信息(more specific routes)

NAT: Network Address Translation 网络地址转换

  • 外网不接受内网地址所以需要转换
  • 本地网络只有一个有效IP地址:
    • 不需要从ISP分配一块地址,可用一个IP地址用 于所有的(局域网)设备(省钱)
    • 可以在局域网改变设备的地址情况下而无须通知外界
    • 可以改变ISP(地址变化)而不需要改变内部的 设备地址
    • 局域网内部的设备没有明确的地址,对外是不可见的(安全)
  • 实现
    • 出去转换原地址
    • 回来转换目标地址

  • 16-bit端口字段
    • 6万多个同时连接一个局域网 
  • NAT同时兼备优缺点
    • 路由器只应该对第3层做信息处理,而这里对端口号(4层)作了处理
    • 违反了end-to-end 原则(端到端原则:复杂性放到网络边缘
      • 无需借助中转和变换,就可以直接传送到目标主机
      • NAT可能要被一些应用设计者考虑, eg, P2P applications
      • 外网的机器无法主动连接到内网的机器上
    • 地址短缺问题可以被IPv6 解决
    • NAT穿越: 如果客户端需要连接在NAT后面的服务器,如何操作 
  • NAT 穿越问题

IPv6

  • 出现原因
    • IPV4的32-bit地址空间将会被很快用完
    • 头部格式改变帮助加速处理和转发
    • 头部格式改变帮助QoS IPv6
  • 数据报格式
    • 固定的40 字节头部
    • 数据报传输过程中,不允许分片 (分组太大目标主机就发送一个ICMPV6给源主机,丢弃分组,源主机收到ICMPV6后重传)
    • IPv6 头部
    • IPv6 中的流通过 Flow Label 字段来标识,它是 IPv6 头部中的一个20位字段。Flow Label 的作用是为数据包分配一个独特的标识符,用于标识具有相同特性的数据包流

      有关数据包流的解释:想象一下你正在播放视频流,并且同时在网页上浏览网页。视频流和网页浏览都是使用互联网连接来传输数据的活动,但它们具有不同的特性和需求:

      视频流:需要连续、稳定的数据传输,以确保视频的流畅播放。视频数据包之间的延迟和丢包率对观看体验有重要影响。 网页浏览:需要快速响应,以确保页面能够快速加载。虽然页面数据包也需要传输,但对延迟和丢包率的容忍度通常较高。

      在这个例子中,视频流和网页浏览可以被认为是具有不同特性的数据包流。视频流需要优先处理,以确保其连续性和质量,而网页浏览的数据包可以在一定程度上被延迟处理,只要最终页面能够快速加载即可。

      通过将具有相同特性的数据包流进行分类,网络设备可以采取不同的处理策略,以满足这些流的不同需求。例如,可以为视频流分配高优先级,以确保它们能够得到及时处理和传输,而为网页浏览分配较低优先级,允许它们在网络拥塞时被延迟处理。

    • IPv6的 "Next Header" 字段的作用是指示当前IPv6数据包中跟随在IPv6头部之后的下一个头部的类型或协议。通过 "Next Header" 字段,IPv6数据报的头部结构可以变得非常灵活和可扩展,支持多种不同类型的扩展和协议。在IPv6数据报中,可以存在多个扩展头部(Extension Header),每个扩展头部都有一个相应的 "Next Header" 字段来指示下一个头部的类型或协议。这意味着一个IPv6数据报可能包含一个或多个 "Next Header" 字段,用于指示数据包中下一个头部的类型或协议。

      一些常见的 IPv6 数据报头部结构示例:

      IPv6 头部 -> 扩展头部1 -> 扩展头部2 -> ... -> 扩展头部N -> 上层协议数据

  • 同IPV4的一些区别
    • Checksum: 被移除掉,降低在每一段中的处理 速度
    • Options: 允许,但是在头部之外, 被 “Next Header” 字段标示 
    • ICMPv6: ICMP的新版本
    • 附加了报文类型, e.g. “Packet Too Big”
    • 多播组管理功能:指 IPv6 协议中用于管理多播组的一系列机制。多播组是一组共享相同 IP 多播地址的主机的集合,它们可以在网络上进行多播通信
  • 从IPv4到IPv6的平移
    • 不可以直接停掉升级,因为这不等同于应用升级(给房子刷漆),这相当于换掉房子的建筑材料
    • 隧道技术:: 在IPv4路由器之间传输的IPv4数据报中携带IPv6数据报

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

How to solve matplotlib Chinese garbled characters in Ubuntu 22.04

conda create -n huizhou python3.8conda activate huizhouconda install numpy matplotlibpip install mplfontsmplfonts init# 导入必要的库 import numpy as np import matplotlib.pyplot as plt# 创建角度数组,从0到2π x np.linspace(0, 2 * np.pi, 100)# 计算…

NFTScan | 04.22~04.28 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.04.22~ 2024.04.28 NFT Hot News 01/ ApeCoin DAO 发起「由 APE 代币支持的 NFT Launchpad」提案投票 4 月 22 日,ApeCoin DAO 社区发起「由 APE 代币支持的 NFT Launch…

第8章 软件工程

一、软件工程概述 (一)软件危机 1、含义:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 2、解决方案:引入软件工程的思想。 (二&#x…

ubuntu samba 安装与配置

ubuntu samba 安装与配置 一:安装二:添加samba访问账号及密码三:修改配置文件四:重启服务五:登录 一:安装 sudo apt update sudo apt install samba samba-common二:添加samba访问账号及密码 …

YOLOv8: 快速而准确的对象检测

YOLOv8: 快速而准确的对象检测 背景 对象检测是计算机视觉中的一个关键任务,它可以帮助我们在图像或视频中识别和定位感兴趣的物体。其中,YOLO(You Only Look Once)系列是一类非常出色的实时对象检测算法,以其快速和准确的特点而闻名。YOLOv8是YOLO系列的最新版本,由Ultralyti…

Linux下的基本指令(1)

嗨喽大家好呀!今天阿鑫给大家带来Linux下的基本指令(1),下面让我们一起进入Linux的学习吧! Linux下的基本指令 ls 指令pwd命令cd 指令touch指令mkdir指令(重要)rmdir指令 && rm 指令(重要)man指令(重要)cp指…

020Node.js的FS模块使用fs.mkdir创建目录

Node.js的FS模块使用fs.mkdir创建目录 //fs.mkdir 创建目录 /*path 将创建的目录路径mode 目录权限(读写权限),默认777callback 回调,传递异常参数err*/ const fsrequire(fs);fs.mkdir(./css,(err)>{if(err){console.log(err)…

Spring Security OAuth2 统一登录

介绍 Spring Security OAuth2 是一个在 Spring Security 框架基础上构建的 OAuth2 授权服务器和资源服务器的扩展库。它提供了一套功能强大的工具和组件,用于实现 OAuth2 协议中的授权流程、令牌管理和访问控制。 Git地址:yunfeng-boot3-sercurity: Sp…

【会员单位】浙江晧月水务科技有限公司

中华环保联合会理事单位 水环境治理专业委员会副主任委员单位 公司成立于2018年3月14日,是专业研究废水处理业务的国家高新技术企业。 公司自主研发的脱硫废水“零排放”的技术,不仅适应性好,技术先进,智慧化程度高&#xff0c…

【C++第六课 - 模板、STL简介、string】函数模板、类模板、STL简介

目录 模板函数模板函数模板概念函数模板格式实例化推演实例化显示实例化 类模板 STL简介 模板 函数模板 函数模板概念 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定 类型版本。 函数模板…

如何用二维码实现现代仓库管理?

随着科技的进步,二维码技术逐渐应用与各个领域,其中在仓库管理中的应用也日益广泛。 那话不多说,我们直接来看如何用二维码实现现代仓库管理 简道云仓库管理模板,可以点击安装配合阅读:https://www.jiandaoyun.com 二…

【JAVA进阶篇教学】第七篇:Spring中常用注解

博主打算从0-1讲解下java进阶篇教学,今天教学第七篇:Spring中常用注解 在Java Spring框架中,注解(Annotation)是一种元数据,它提供了关于程序代码的额外信息,这些信息可以用于编译时检查、运行时…

裸金属服务器使用效果好吗

在当今的数字化时代,信息技术的飞速发展,云计算技术已经成为企业信息化建设的重要基石。在众多计算资源中,裸金属和云服务器是两种主流的服务模式,它们各有千秋,为不同的用户需求提供了适合的解决方案。而裸金属服务器…

【EMQX】使用websocket订阅EMQX数据

需求:某平台希望通过 websocket 来订阅 EMQX平台上的某些 Topic数据进行处理 1、EMQX 服务配置 前提是EMQX服务正常安装运行了,如果EMQX服务未安装的话,详见以下文章关于如何安装部署服务: 搭建自己的MQTT服务器、实现设备上云(W…

PC-3000 Mobile Pro: 智能手机及平板设备数据提取及取证工具

天津鸿萌科贸发展有限公司从事数据安全业务20余年,在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时,公司面向取证机构及数据恢复公司,提供数据恢复实验室建设方案,包含数据恢复硬件设…

【Redis 开发】详细搭建Redis主从,并了解数据同步原理

Redis主从搭建 Redis主从搭建Redis的主从架构数据全同步原理数据的增量同步优化Redis主从集群 Redis主从 搭建Redis的主从架构 主从节点可以实现读写分离,将都大量的读操作分担与诸多从节点当中去 从节点可以叫做slave或者replica 如何搭建: 在一台…

LeetCode 104.二叉树的最大深度

题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,null,…

20240425在Ubuntu20.04下检测HDD机械硬盘

20240425在Ubuntu20.04下检测HDD机械硬盘 2024/4/25 14:28 百度:免费 HDD 机械硬盘坏道检测 ubuntu HDD机械硬盘 坏道检测 https://blog.csdn.net/anny0001/article/details/136001767 ubuntu 坏道扫描 Mystery_zero 已于 2024-02-02 22:20:46 修改badblocks -b 819…

yo!这里是网络入门初识

目录 前言 基本概念 网络 协议 地址 网络传输流程 OSI七层模型 TCP/IP四层(五层)模型 流程图 数据封装&&分用 后记 前言 对于上一个专栏——Linux操作系统,我们学习了操作系统的基础知识以及基本的系统编程,其…

企业计算机服务器中了mkp勒索病毒如何解密,mkp勒索病毒解密工具

随着网络技术在企业中的不断应用,越来越多的企业离不开网络,通过网络数字化办公模式,可以为企业提高生产运营效率,大大提高了企业发展水平,但网络是一把双刃剑,在为企业提供便利的同时,也为企业…