<计算机网络自顶向下> Internet Protocol(未完成)

互联网中的网络层

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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echarts实现水滴图

使用echarts实现水滴图 引入依赖&#xff0c;echarts-liquidfill3兼容echarts5; 安装依赖 "echarts": "^5.4.3","echarts-liquidfill": "^3.1.0",npm install echarts-liquidfill3.1.0 -S实现的效果图 构建一个水滴图的页面 <tem…

基于Spring Boot的商务安全邮件收发系统设计与实现

基于Spring Boot的商务安全邮件收发系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 已发送效果图&#xff0c;用户可以对已发送信息…

4.28总结

对部分代码进行了修改&#xff0c;将一些代码封装成方法&#xff0c;实现了头像功能&#xff0c;创建一个本地字节输入流 fileinputSteam 对象&#xff0c;构造方法中绑定读取的数据源&#xff0c;创建一个socket对象&#xff0c;构造方法中绑定服务器的IP地址和端口号使用sock…

Kafka(十二)Streams

目录 Streams1 什么式是流式处理2 流式处理的相关概念2.1 拓扑2.2 时间2.2.1 输入时间2.2.2 输出时间 2.3 状态2.4 流和表2.5 时间窗口2.5.1 测试时间窗口 2.6 处理保证 3 流式处理设计模式3.1 单事件处理3.2 使用本地状态3.3 多阶段处理和重分区3.4 使用外部查找&#xff1a;流…

阿里云操作日记

昨天买了一个超级便宜的阿里云服务器&#xff0c;2核2G&#xff0c;3M固定带宽&#xff0c;40G ESSD Entry云盘&#xff0c;搭载一个简单的系统&#xff0c;就想到了docker轻量级&#xff0c;易于管理 其实docker很好用&#xff0c;第一步就是安装docker 一、docker安装与端口…

Python快速入门1数据类型(需要具有编程基础)

数据类型&#xff1a; Python 3.0版本中常见的数据类型有六种&#xff1a; 不可变数据类型可变数据类型Number&#xff08;数字&#xff09;List&#xff08;列表&#xff09;String&#xff08;字符串&#xff09;Dictionary&#xff08;字典&#xff09;Tuple&#xff08;元…

python学习笔记----循环语句(四)

一、while循环 为什么学习循环语句 循环在程序中同判断一样&#xff0c;也是广泛存在的&#xff0c;是非常多功能实现的基础&#xff1a; 1.1 while循环语法 while 条件表达式:# 循环体# 执行代码这里&#xff0c;“条件表达式”是每次循环开始前都会评估的表达式。如果条件…

张大哥笔记:我付钱了,我就是大爷?

很抱歉用这个当做标题&#xff0c;来给大家分享一些电商的故事&#xff01;大家好&#xff0c;我是张大哥&#xff0c;今天聊聊在电商路上遇到过的奇葩买家&#xff1f; 比如最近我在做PDD的时候&#xff0c;就会遇到很多莫名其妙的sha子&#xff0c;咱是知识份子&#xff0c;肯…

漏洞扫扫工具合集

综合类扫描工具 AWVS Acunetix一款商业的Web漏洞扫描程序&#xff0c;它可以检查Web应用程序中的漏洞&#xff0c;如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面&#xff0c;并且能够创建专业级的Web站点安全审核报告。新版本集成了…

LeetCode1017题:负二进制转换(原创)

【题目描述】 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。注意&#xff0c;除非字符串就是 "0"&#xff0c;否则返回的字符串中不能含有前导零。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&…

高频面试题:解决Spring框架中的循环依赖问题

引言&#xff1a;什么是Spring框架与循环依赖&#xff1f; 在Spring框架中&#xff0c;循环依赖是指两个或多个bean相互依赖对方以完成自己的初始化。这种依赖关系形成了一个闭环&#xff0c;导致无法顺利完成依赖注入。比如&#xff0c;如果Bean A在其构造函数中需要Bean B&a…

图像处理:乘法滤波器(Multiplying Filter)和逆FFT位移

一、乘法滤波器&#xff08;Multiplying Filter&#xff09; 乘法滤波器是一种以像素值为权重的滤波器&#xff0c;它通过将滤波器的权重与图像的像素值相乘&#xff0c;来获得滤波后的像素值。具体地&#xff0c;假设乘法滤波器的权重为h(i,j)&#xff0c;图像的像素值为f(m,…

基于51单片机的电子秤LCD1602液晶显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机电子秤LCD显示 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机电子秤LCD显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus8.9及以上 程序编译器&#xf…

NiceGUI:一个超赞的Python UI库

1. 引言 NiceGUI是一个基于Python的简单用户界面框架&#xff0c;可与浏览器或桌面应用程序流畅运行。无论你是制作小型网络应用程序、还是玩机器人项目&#xff0c;NiceGUI 都能以其简单的界面和众多的功能满足你的需求。这篇文章的目的是通过向大家展示如何构建和部署NiceGU…

如何选择适合自己需求的DC电源模块?

BOSHIDA 如何选择适合自己需求的DC电源模块&#xff1f; 在选择适合自己需求的DC电源模块时&#xff0c;需要考虑一些关键因素&#xff0c;以确保选择的模块能够满足电源要求并具有良好的性能。下面是一些值得考虑的因素&#xff1a; 1. 电压输出范围&#xff1a;首先&#xf…

短视频素材从哪里获取?推荐8个短视频素材高清网站

在这个视觉内容至关重要的数字化时代&#xff0c;高质量的视频素材是任何成功视频项目的核心。无论是加强品牌宣传、提升社交媒体互动还是制作引人注目的广告&#xff0c;这些精选的全球视频素材网站都将为你的创意注入活力&#xff0c;帮助你在激烈的市场竞争中脱颖而出。 1.…

2024LarkXR新增功能系列之六 | ⽀持8K分辨率

Paraverse平行云企业级实时云渲染解决方案LarkXR是平行云自主研发的CloudXR解决方案&#xff0c;在业界实现了创新突破。通过分钟级部署大规模云端资源、高度适配XR所有主流引擎、以及灵活支持不同交互和沉浸方式的内容形式&#xff0c;LarkXR解决了Cloud XR商业化过程中所面临…

Linux之进程间通信(二)

system V system V共享内存是内核中专门设计的通信的方式, 粗粒度划分操作系统分为进程管理, 内存管理, 文件系统, 驱动管理.., 粒度更细地分还有 进程间通信模块. 对于操作系统, 通信的场景有很多, 有以传送数据, 快速传送数据, 传送特定数据块, 进程间协同与控制以目的, 它…

SystemUI GlobalActions plugin解析

com.android.systemui.action.PLUGIN_GLOBAL_ACTIONS 系统的默认实现为GlobalActionsImpl: 是谁发送了showShutdownUi指令&#xff1f; GlobalActionsImpl 是通过inject的方式创建的 GlobalActionsComponent是一个system UI services&#xff0c;配置在config.xml中&#xff…

Docker容器:网络模式与资源控制

目录 一、Docker 网络模式 1、Docker 网络实现原理 2、Docker 网络模式概述 2.1 Host 模式 2.2 Container 模式 2.3 None 模式 2.4 Bridge 模式 2.5 自定义网络&#xff08;user-defined network&#xff09; 3、配置 docker 网络模式 3.1 查看网络基础命令 3.1.1 查…
最新文章