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

news2024/11/15 21:54:00

互联网中的网络层

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.coloradmin.cn/o/1630771.html

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

相关文章

mysql 开启远程连接

登录到mysql mysql -uroot -p 打开mysql数据库并查询user表 use mysql; select user, host from user;更改需要远程连接数据库为任何ip 可以连接, 并刷新系统权限相关的表 update user set host% where hostlocalhost and userroot; flush privileges;

算法课程笔记——如何倍增

快速幂 读入量大于1e5不要用cin读入&#xff0c;要用也要关闭同步流 第i个o次方的父亲 #include<bits/stdc.h>usingnamespacestd; #definemaxn 110000#definell long longintn, a[maxn], f[maxn][40]; intquery(intl, intr){intk (int)(log((r - l 1) * 1.0) / log(2.0…

第3篇:创建Nios II工程之Hello_World<二>

Q&#xff1a;上一期介绍完基本设计流程和实验原理&#xff0c;接着我们完成系统硬件设计部分&#xff0c;包括Platform Designer系统及Quartus工程。 A&#xff1a;依次搜索并添加Nios II Processor、JTAG UART、On-Chip Memory和System ID IP组件&#xff0c;连接各组件并As…

扫码分享文件效果怎么做?文件转换成二维码的教程

文件如何快速分享并通过手机查看呢&#xff1f;传统方式一般会通过微信、QQ或者网盘的方式来分享在线内容&#xff0c;但是这种方式需要占用获取内容者的存储空间&#xff0c;所以很多人现在会通过文件转二维码的方式&#xff0c;将二维码分享后通过扫码来获取文件内容。这种方…

Java 基于Graphics2D 实现海报(支持自定义颜色,背景,logo,贴图)

效果&#xff1a; 海报一&#xff1a; 海报二&#xff1a; 代码&#xff1a; 参数实体类&#xff1a; package com.ly.cloud.dto;import lombok.Data;/*** Author * Date Created in 2024/4/24 下午2:16* DESCRIPTION: 海报页面所需的参数 实体类* Version V1.0*/ Dat…

防火墙对要保护的服务器做端口映射的好处是几个

防火墙对要保护的服务器进行端口映射具有多重好处&#xff0c;这些好处主要围绕网络安全性、灵活性和可管理性展开。以下是对这些好处的专业分析&#xff1a; 1. 增强网络安全性&#xff1a;端口映射允许防火墙对进入服务器的流量进行精确控制。通过映射特定端口&#xff0c;防…

volatile的相关知识点

volatitle这个关键字&#xff0c;不管是在Java还是在C中都有使用到&#xff0c;但是在两种语言中&#xff0c;由于编译器的原因&#xff0c;他们存在一点点区别。 C中的volatile关键字 在C中volatile主要用于告诉编译器&#xff0c;这个变量的值可能会意外改变 ,例如被硬件或者…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现 一、简单介绍 二、简单进行…

ChatGPT记忆功能终于上线了, OpenAI 官方:用得越久越聪明!

原文 ChatGPT记忆功能终于上线了, OpenAI 官方&#xff1a;用得越久越聪明&#xff01; Aitrainee | 公众号&#xff1a;AI进修生 &#x1f31f; 记得今年2月份OpenAI发布过ChatGPT上线记忆功能的消息&#xff0c;我记得当时还弹出过这个窗口给我&#xff0c;但是仅仅体验了几…

centos7 openresty lua 自适应webp和缩放图片

目录 背景效果图准备安装cwebp等命令&#xff0c;转换文件格式安装ImageMagick&#xff0c;压缩文件下载Lua API 操控ImageMagick的依赖包 代码参考 背景 缩小图片体积&#xff0c;提升加载速度&#xff0c;节省流量。 效果图 参数格式 &#xff1a; ?image_processformat,…

C语言之详细讲解文件操作

什么是文件 与普通文件载体不同&#xff0c;文件是以硬盘为载体存储在计算机上的信息集合&#xff0c;文件可以是文本文档、图片、程序等等。文件通常具有点三个字母的文件扩展名&#xff0c;用于指示文件类型&#xff08;例如&#xff0c;图片文件常常以KPEG格式保存并且文件…

idea创建完项目如何隐藏不重要的文件

如果您不打算直接使用这些脚本&#xff0c;而是更倾向于通过IDEA的内置工具来运行Maven命令&#xff0c;那么您可以选择隐藏这些文件。但是&#xff0c;隐藏这些文件并不会影响它们的功能&#xff0c;只是在项目视图中不再显示它们。 1.转到 File > Settings&#xff08;Wi…

信息系统项目管理师——第7章项目立项管理

本章考选择题2-3分&#xff0c;案例和论文均有可能作为领域考试。 项目建议与立项申请♥♥♥♥♥ 立项申请的概念 立项申请又称为项目建议书&#xff0c;是项目建设单位向上级主管部门提交项目申请时所必须的文 件&#xff0c;是该项目建设筹建单位根据国民经济的发展、国家…

Spark高可用模式和Spark分布式Yarn环境安装

Spark分布式HA环境安装 图-12 高可用模式原理 因为在目前情况下&#xff0c;集群中只有一个Master&#xff0c;如果master挂掉&#xff0c;便无法对外提供新的服务&#xff0c;显然有单点故障问题&#xff0c;解决方法就是master的ha。 有两种方式解决单点故障&#xff0c;一…

无脑入单向无头链表的实现| ArrayList和LinkedList的区别

1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用&#xff0c;并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素。 由于其底层是一段连续空间&#xff0c;当 在 ArrayList 任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往…

如何使用docker部署前端项目

账号&#xff1a;root 密码&#xff1a;*** 主机&#xff1a;ip地址 登录后&#xff1a; 初级名词&#xff1a; sudo 是Linux和类Unix操作系统中的一个命令&#xff0c;全称为“super user do”&#xff0c;用于允许普通用户以超级用户(root)的身份执行某些或全部命令 需要下…

【python】简单实现遍历文件夹和子文件夹重命名

个人简介 &#x1f468;&#x1f3fb;‍&#x1f4bb;个人主页&#xff1a;九黎aj &#x1f3c3;&#x1f3fb;‍♂️幸福源自奋斗,平凡造就不凡 &#x1f31f;如果文章对你有用&#xff0c;麻烦关注点赞收藏走一波&#xff0c;感谢支持&#xff01; &#x1f331;欢迎订阅我的…

sql注入漏洞及其sqlmap工具的使用

一、sql注入的原理 sql注入概念&#xff1a; sql注入主要是将sql语句&#xff0c;插入到web表单提交或者输入域名或者页面请求的查询字符串&#xff0c;最 终 达到一个欺骗服务器执行sql语句的效果。 sql注入的原理&#xff1a;主要分为平台层注入和代码层注入两种原因 …

TechTool Pro for mac中文激活版:硬件监测和系统维护工具

TechTool Pro mac帮助用户实现系统硬件监测&#xff08;CPU、内存、硬盘、网络、USB等&#xff09;、内存测试、S.M.A.R.T检测、磁盘宗卷扫描、宗卷重建和优化、数据恢复和粉碎等等&#xff0c;定期使用&#xff0c;可以确保您的Mac保持优化和无故障。 TechTool Pro for mac v1…

(学习日记)2024.04.19:UCOSIII第四十七节:各文件夹功能介绍

之前的章节都是针对某个或某些知识点进行的专项讲解&#xff0c;重点在功能和代码解释。 回到最初开始学μC/OS-III系统时&#xff0c;当时就定下了一个目标&#xff0c;不仅要读懂&#xff0c;还要读透&#xff0c;改造成更适合中国宝宝体质的使用方式。在学完野火的教程后&a…