网际协议IP

网际协议IP

一、IP地址
1、分类的IP地址

IP地址::={<网络号>,<主机号>}

在这里插入图片描述

2、无分类编址CIDR

IP地址::={<网络前缀>,<主机号>}

(1)网络前缀

与分类IP最大的区别就是网络前缀的位数n是不固定的,可以是0~32位。

​ 采用斜线标记法,“/”后面的是网络前缀的位数。111.112.113.1/20,表示前20位为网络前缀,后12位为主机号。

(2)地址块

​ CIDR把网络前缀都相同的所有连续IP地址组成一个CIDR地址块。

​ 一个大的地址块往往包含很多小的地址块,所以在路由器的转发表中利用一个大的地址代替许多小的地址,这种方法称为路由聚合。这样就能大大压缩转发表的空间,减少了查找转发表的时间。

(3)地址掩码

​ 我们人类可以通过斜线标记法快速计算出网络前缀,这种斜线标记在计算机中是没有的,而是通过地址掩码来计算的。

​ 子网掩码是一串连续的1和0组成,CIDR记法中斜线后面的数字即为1的个数。

​ 111.112.113.1/20 AND 255.255.240.0 =>111.112.112.0/20

二、地址解析协议ARP

​ 我们知道IP地址是网路层和上层使用的地址,是一种逻辑地址,而MAC地址是数据链路层使用的地址。IP地址放在IP数据报的首部,IP数据报在数据链路层被封装成帧,而MAC地址则放在MAC帧的首部,所以数据链路层是看不见数据报的IP地址的,是依靠MAC地址传送的。所以在数据链路层怎样知道目的地址的MAC地址呢?

​ ARP在主机的ARP高速缓存中存放一个本局域网上的各主机和路由器的IP地址到MAC地址的映射表,并且经常动态更新。

​ 例如在某个局域网,A向B发送数据报,首先在ARP高速缓存中查找B的IP地址,如有则将其对应的MAC地址写入MAC帧然后发送到该MAC地址。

​ 如果找不到呢?

​ (1)A的ARP进程在本局域网上广播一个ARP请求分组,其中包含A的IP地址和MAC地址。

​ (2)本局域网上的所有主机都能收到该分组。

​ (3)主机B的IP地址与ARP请求分组中要查询的IP地址一致,则收下该分组,其他主机都不会理睬这个分组。B向A单播ARP响应分组,其中包含B的MAC地址。(为了避免B向A发送ARP请求分组,减少网络通信量,B在收到A的请求分组后,也会将A的映射信息写入自己的高速缓存)。

​ (4)A收到响应分组后就在其ARP高速缓存中写入主机B的IP到MAC地址的映射。

ARP对保存在高速缓存中的映射项都设置生存时间,凡超过生存时间的项目就从告诉缓存中删掉。这样就能避免因某主机网络适配器损坏导致MAC地址失效,而无法被别的主机找到的问题。

三、IP数据报格式

IP数据报首部格式分为2部分:
在这里插入图片描述

1、固定部分

(1)版本

​ 4位。协议IP的版本。

(2)首部长度

​ 4位。以4字节位为单位。因为首部固定长度为20字节,所以最小值为5。最大值为15,所以首部长度最大值为60字节。当首部长度不是4字节的倍数时,则需在填充字段加以填充。这样就能保证数据部分永远在4字节的整数倍开始,方便实现IP协议。

(3)区分服务

​ 8位。用来获得更好的服务。

(4)总长度

​ 16位。首部和数据部分长度之和。最大长度为216-1=65535字节,但是受链路层MTU限制,超过MTU则需分片处理,而且实际中也很少传送这么长的数据报。

​ 尽可能长的IP数据报会提高传输效率,但IP数据报越短,路由器转发的速度就越快。因此规定主机和路由器必须能够接受长度不超过576字节的数据报。(512上层数据+60首部长度+4富余)。

(5)标识

​ 16位。IP软件在存储器中维护一个计数器,每产生一个数据报,计数器就加1,但这并不是为了按序接收的问题,因为IP本身就是无连接的,而是为了在分片时,给每个分片的标识字段赋值,相同字段值的数据报片就能重装为原来的数据报。

(6)标志

​ 3位,目前只有两位有效。

  • 最低位MF(more fragment):值为表示后面还有分片,为0表示已是数据报片的最后一个。
  • 中间位DF(don’t fragment):不能分片,值为0时才允许分片。

(7)片偏移

​ 13位。分片后,某片在原分组中的相对位置。以8字节为偏移单位(也就是说除了最后一个数据报片外,其他分片都是8字节的整数倍)。

(8)生存时间

​ 8位。TTL(time to live),表明数据报在网络中的寿命。由发出数据报的源点来设置,防止无法交付的数据报无限制的在互联网中兜圈子而耗费网络资源。

​ TTL起初以秒为单位,每经过一个路由器TTL就减去数据报在该路由器所消耗的时间。随着技术的进步,路由器处理数据报的时间一般都远远小于1秒,TTL功能则改为了“跳数限制”。表示该数据报在互联网至多可经过多少个路由器(最大值255)。当TTL减为0时,该数据报就会被丢弃。

(9)协议

​ 8位。指出此数据报携带的数据适用何种协议,以便使目的主机IP层知道应将数据部分上交给哪个协议处理。
在这里插入图片描述

(10)首部检验和

​ 16位。只检验数据报的首部,不检验数据部分。

​ 在发送方将首部划分为16位的序列,并把检验和字段置0,以反码算数运算全部相加后再取反码得到检验和字段值。在接收方将所有16位序列以反码算数运算相加后取反码,如果不为0则表示首部发生变化,并将此数据报丢弃。

(11)源地址

​ 32位。发送IP数据报的主机的IP地址。

(12)目的地址

​ 32位。接收IP数据报的主机的IP地址。

2、可变部分

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

月入8K, 计算机专业应届女孩转行5G网络优化工程师,她说:这行请慎入

小C说&#xff0c;如果要用两个字描述23年计算机专业的就业心情&#xff0c;那就是“焦虑”&#xff1b;用三个字描述23年计算机专业的就业环境&#xff0c;那就是“卷麻了”。 得益于张雪峰老师的就业推荐计算机专业需求的日益减少&#xff0c;2023年&#xff0c;计算机专业成…

三、 链表

一、链表的定义 链表是一种动态数据结果&#xff0c;内存分配不是在创建链表时一次性完成的&#xff0c;每添加一个节点&#xff0c;分配一次内存&#xff0c;由于没有闲置的内存&#xff0c;链表的空间效率高于数组 二、定义单向链表 struct ListNode {int m_nValue;ListNo…

DevChat:VSCode中基于大模型的AI智能编程助手

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 1. 前言2. 安装2.1 注册新用户2.2 在VSCode中安装DevChat插件2.3 设置Access Key 3. 实战使用4. 总结 1. 前言 DevChat是由Merico公司精心打造的AI智能编程助手。它利用了最先进的大语言模型技术&#xff0c;像人类…

nodejs+vue智慧补助系统的设计与实现-计算机毕业设计

随着网络技术的不断发展&#xff0c;多媒体技术应用渐渐的出现在教育领域中&#xff0c;智慧补助系统已经成为教育发展的一个热门话题。 在众多网络开发技术中&#xff0c;nodejs是当前很热门的一种软件&#xff0c;因为它可以进行数据库操作及方便用户控制管理。 在各学校的教…

QML 创建 Web 混合应用

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 随着互联网的快速发展,Web 应用在各个领域中变得越来越流行。为了满足用户对多样化功能的需求,我们经常需要将 Web 技术和原生应用相结合,来创建混合应用程序。 混合应用程序:是一种应用程序开发方法,它…

k8s、pod

Pod k8s中的port【端口&#xff1a;30000-32767】 port &#xff1a;为Service 在 cluster IP 上暴露的端口 targetPort&#xff1a;对应容器映射在 pod 端口上 nodePort&#xff1a;可以通过k8s 集群外部使用 node IP node port 访问Service containerPort&#xff1a;容…

错误: 找不到或无法加载主类 回归java运行的本质

错误: 找不到或无法加载主类 回归java运行的本质 一&#xff0c;背景 当有了idea这种工具后&#xff0c;java的mian方法执行起来是如此简单&#xff0c;很少有人再手动编辑并通过命令行执行了。 同时&#xff0c;在当今Spring Boot盛行的今天&#xff0c;恐怕很少再有人执行j…

跟着步骤,快速实现图书行业小程序商城

跟着步骤&#xff0c;快速实现图书行业小程序商城 打造独特图书购物体验&#xff0c;小程序商城制作指南 轻松搭建图书馆与书店的线上商城小程序 值得一试的图书教材小程序商城搭建方法 图书商城小程序制作指南&#xff0c;助你成为行业领袖 实战教程&#xff1a;如何制作…

Android开发知识学习——HTTPS

文章目录 定义HTTPS连接HTTPS 连接建立的过程课后题 定义 HTTP Secure / HTTP over SSL / HTTP over TLS SSL&#xff1a;Secure Socket Layer -> TLS Transport Layer Security 定义&#xff1a;在HTTP之下增加的一个安全层&#xff0c;用于保障HTTP的加密传输 本质&…

云计算助力史上首届“云上亚运”圆满成功!

201金&#xff0c;魔幻的BGM&#xff0c;以及崛起的中国科技&#xff0c;让杭州亚运会成功出圈。 很多网友表示太震撼了&#xff01;开幕式很漂亮&#xff0c;杭州为了奥运造新城真豪横&#xff0c;看完一整个文化自信住&#xff01; 赛场内外除了无数个令人感动的瞬间&#…

FPGA时序分析与约束(8)——时序引擎

一、概述 要想进行时序分析和约束&#xff0c;我们需要理解时序引擎究竟是如何进行时序分析的&#xff0c;包括时序引擎如何进行建立分析&#xff08;setup&#xff09;&#xff0c;保持分析(hold)&#xff0c;恢复时间分析(recovery)和移除时间分析(removal)。 二、时序引擎进…

Django添加csrf保护机制

步骤 要在Django中启用CSRF保护&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 在Django的settings.py文件中&#xff0c;确保django.middleware.csrf.CsrfViewMiddleware中间件已添加到MIDDLEWARE设置中。通常&#xff0c;这个中间件默认就会包含在其中。 2. 在HTM…

一文速通 StarRocks 数据库:核心概念、架构与特性

Author: Xinyao Tian 概述 本文档简要梳理了 StarRocks 的基本信息。 简介 Introduction StarRocks 是面向下个时代的&#xff0c;高性能的数据分析仓库。其提供了实时、多维度、高并发的数据分析能力。 StarRocks is a next-gen, high-performance analytical data warehou…

杂牌行车记录仪特殊AVI结构恢复案例

最近遇到一个杂牌的行车记录仪需要恢复数据&#xff0c;其使用AVI格式&#xff0c;但是在扫描恢复的过程中却发现厂家对其AVI结构进行了“魔改”致程序无法正常识别 故障存储:16G SD卡 fat32文件系统 故障现象: 16G的SD卡&#xff0c;在发生事故后客户尝试自行接到手机上读…

在 Visual Studio 中远程调试 C++ 项目

目录 一、说明二、下载远程工具1. 官网下载2. 自己电脑上拷贝 三、 运行远程工具四、本机Visual Studio配置五、自动部署 一、说明 参考官方文档&#xff1a;https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-cpp?viewvs-2022 二、下载远程工具 …

解决:http://localhost:8080 不在以下 request 合法域名列表中

在搭建资源服务器时&#xff0c;遇到了微信开发者工具中无法访问本地资源服务器的情况&#xff0c;报错如下&#xff1a; 参考一篇博文的方法&#xff0c;完美解决 【解决】http://localhost:8080 不在以下 request 合法域名列表中_localhost不在以下 request 合法域名列表中-…

Mac 解决 APP 快捷键冲突

打开 Mac 系统设置键盘->键盘快捷键->App快捷键->添加快捷键&#xff08;加号&#xff09;->标题需要和tab名称完全一致&#xff08;包括中英文、标点符号等&#xff0c;如下图&#xff09;设置快捷键即可 Reference&#xff1a; https://www.cnblogs.com/Questio…

Android开发,车载通讯应用——binder通讯原理解析

Binder简单理解 简单来说&#xff0c;Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程&#xff0c;Client 可以向 Server 端发起远程调用&#xff0c;也可以向Server传输数据&#xff08;当作函数参数来传&#…

【element-ui】表格

效果展示 组件代码 <el-table class"compTableClass" ref"tableOOOOO":class"(className in tableConfig)?tableConfig.className:":data"tableConfig.data" :height"tableConfig.height" style"width: 100%"…

阿里发布AI编码助手:通义灵码,兼容 VS Code、IDEA等主流编程工具

今天是阿里云栖大会的第一天&#xff0c;相信场外的瓜&#xff0c;大家都吃过了。这里就不说了&#xff0c;有兴趣可以看看这里&#xff1a;云栖大会变成相亲现场&#xff0c;最新招婿鄙视链来了... 。 这里主要说说阿里还发布了一款AI编码助手&#xff0c;对于我们开发者来说…