IP协议,网络层

news/2024/5/20 16:25:00

一、IP协议报文

在网络层最主要的协议是IP协议,网络层的主要任务是进行:1.地址管理 2.路由选择

地址管理:使用一套地址体系,描述互联网中每个设备所处的位置。

IP地址有两个版本,1.IPV4     2.IPV6  ,IPV6比IPV4 更加复杂,但IPv4比IPv6应用更加广泛。

版本号:IPV4、IPv6.

4位首部长度:单位:4字节,15*4=60字节(最大程度)

TOS:只有四位有效。最小延时、最大吞吐量、最高可靠性、最小成本。4位彼此冲突。

由于IP数据报有长度限制,所以在数据链路层有拆包/组包这样的功能。主要的因为在于:数据链路层的协议规定了数据字段的最大长度,无法干预。每个IP数据报来携带一部分的载荷。

16位标识:用于区分是否为同一个数据报的载荷。用一个传输层的数据报拆分后的IP数据报具有相同的数值标识。

3位标志:但只有两位有效。其中一位DF表示是否拆包了。还有一位MF ,表示数据报片是否结束。当MF为1时,表示“还有分片”,为0时,表示这已经是最后一个了。

13位片偏移:表示组的包之间的先后关系。

TTL: 一个数据包,没经过一个路由器TTL数值就会-1。TTL的初始值一般为32/64,当TTL为0时,该数据报就要被丢弃了。防止,数据报在互联网中无限的兜圈子,而消耗网络资源,或者IP地址无法找到。

8位协议:表示在传输层使用那个协议。

16位首部校验和:只校验首部。

二、IP地址

IP地址的表示方式:点分十进制。例如:192.168.0.1。4字节表示。0-255,可以表示42亿94万的IP地址。

IP地址分为2类:

(1)私有IP/局域网IP: 10.*,172.16.*-172.31.*,192.168.*,这些范围的IP地址为私有IP

(2)公网IP/广域网IP  :除私有IP其余对公网IP。

Win+R->cmd+ipconfig->

一般自己的

1、IP协议如何进行地址管理

(1)动态分配IP地址,给上网的设备分配IP地址,同时,同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定相同。

(2)NAT 机制(网络地址映射)

(3)使用IPv6(16个字节表示)

2.网段划分

IP地址可以划分为两部分:网络号+主机号

同一个网段内,主机之间具有相同的网络号,但主机号不能相同。

相邻网段,网络号不同。

例如:

一般路由器都有2个IP地址,一个是LAN口IP:局域网私有IP

一个是WAN口IP,可以是局域网IP,也可以是公网IP。

路由器LAN口连接的主机,都从属于当前路由器的子网中。不同的路由器,子网IP其实都是一样的。


通过设置主机号和网络号,可以保证在相互连接的网络中,每台主机的IP地址都不相同。

可以引入一个子网掩码来区分主机号和网络号。

假设网络号为18位,则子网掩码的前18位为1,后14位为0.子网掩码为255.255.192.0。当IP地址与子网掩码相与后,得到的数据就是网络号。

例如:

IP地址140.252.20.68
子网掩码255.255.255.0
网络号140.252.20.0
子网地址范围140.252.20.-140.252.20.255

IP地址可以自己划分,也可以系统分配。例如:DHCP就会自动分配IP地址。

3.特殊的IP地址

(1)127.*表示本机环回测试,表示本机自己,通常是127.0.0.1;

(2)将IP地址的主机地址全部设为0,就成了网络号,表示整个局域网。

(3)将IP地址的主机地址全部设为1,就成了广播地址。局域网中所有人都能收到。

这三个地址,不能分配给某个主机。

4.之前的IP地址划分

由于浪费了很多的IP地址,所以该分配方法已经被摒弃。

三、路径选择

           路由的过程是通过一跳一跳的方式进行选择。对于该数据要发向哪里,最主要的依据就是路由表。如果路由表中可以查询到发向哪,直接转发,否则发向一个默认的接口。


http://www.mrgr.cn/p/86404836

相关文章

uiautomator2使用方法

一.设备连接 1.usb单设备连接d = u2.connect()2.usb多设备连接d = u2.connect("90bf8faf") # 多台设备填写device即可3.wifi连接d = u2.connect("ip:proxy") # wifi连接设备adb使用wifi连接设备:https://www.cnblogs.com/lihongtaoya/p/17553171.html 二…

W801学习笔记二十:宋词学习应用

前三章完成了唐诗的应用,本章将实现宋词的学习应用。 宋词与唐诗的区别不大,马上开始。 1、我们需要参考前面唐诗的方式,把宋词文本下载下来,并进行格式整理。 W801学习笔记十七:古诗学习应用——上 2、在菜单中添加…

查看、删除数据库

#删除和查询数据库 #查看当前数据库服务器中的所有数据库 show databases #查看hsp_db01数据库的定义信息 show create database `hsp_db01` #在创建数据库,表的时候为了规避关键字,可以用``反引号解决 #删除数据库hsp_db01 drop database hsp_db01

element-ui使用el-date-picker日期组件常见场景

开始 最近一直在使用 element-ui中的日期组件。 所以想对日期组件常用的做一个简单的总结; 1.处理日期组件选择的时候面板联动问题 2.限制时间范围解除两个日期面板之间的联动 我们发现2个日期面板之间其实是有联动关系的; 开始时间面板和结束时间面板始终只能相邻; 不能出…

[鸟哥私房菜]4.首次登录与在线求助

第4章 首次登录与在线求助 4.1.3 X Window 与命令行模式的切换 通常我们称命令行界面为终端界面、Terminal 或 Console。Linux 默认的情况下会提供六个终端(Terminal)来让用户登录, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6] 的组合按钮。其中 [Ctrl] + [Alt] + [F1] 为…

vue3项目引入VueQuill富文本编辑器(成功)及 quill-image-uploader 图像模块(未成功)

tip:重点解释都写在代码注释里了,方便理解,所以看起来比较密集 富文本基本使用 项目文件夹路径安装依赖 npm install vueup/vue-quilllatest --save 全局注册:main.js // main.js// 自己项目的一些配置(只放了主要…

vue+ant-design+formBuiler表单构建器——技能提升——form design——亲测有效

最近看到后端同事在弄一个后台管理系统,额,前端真的是夹缝中生存啊,AI抢饭碗,后端也想干前端的活儿。。。 他用到了表单构建器,具体效果如下: 网上有很多适用于ElementUi和ant-design的form design插件,下…

wePWNise:一款功能强大的红队Office宏VBA代码生成工具

关于wePWNise wePWNise是一款功能强大的Office宏VBA代码生成工具,该工具基于纯Python开发,可以帮助广大研究人员生成用于Office宏或模版的VBA代码,并以此来测试目标Office环境、应用程序控制和防护机制的安全性。 wePWNise的设计理念将自动化…

20211317李卓桐 Exp6 MSF攻防实践 实验报告

Exp6 MSF攻防实践 实践内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成: 1.1一个主动攻击实践,尽量使用最新的类似漏洞; 1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞; 1.3 一个针对客户端的攻击,如Adobe或office,尽量使…

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories:后端开发tags:Django 中间件 信号 异步 性能 缓存 多语言引言 在当今的Web开发领域,Django以其强大的功能、简洁的代码结构和高度的可扩展性,已成为众多开发者…

JAVA链表相关习题2

1.反转一个单链表。 . - 力扣(LeetCode) //2在1前面 //1在3前面 //ListNode curhead.next //head.nextnull(翻转后头节点变为最后一个节点) // while(cur ! null) { //记录 当前需要翻转节点的下一个节点 ListNode curNext cu…

零知识证明: Tornado Cash 项目学习

前言 最近在了解零知识证明方面的内容,这方面的内容确实不好入门也不好掌握,在了解了一些基础的概念以后,决定选择一个应用了零知识证明的项目来进行进一步的学习。最终选择了 Tornado Cash 这个项目,因为它著名且精致,适合入门的同学进行学习。 学习 Tornado Cash 项目,…

高并发秒杀项目随手笔记

1 数据库基字符集为什么选择utf8mb4? 2 在 MyBatis 中,JavaBean 属性名和数据库字段名的映射非常关键,正确设置这一映射是保证数据正确封装到 JavaBean 中的前提。以下是 MyBatis 映射机制的详细解释: 1. 默认映射行为 如果在 MyBatis 的 <resultMap> 中没有明确指定…

创建数据库

#数据库的操作 #删除数据库指令 DROP DATABASE hsp_db01;#hsp_db01这个对应的是数据 #用指令创建数据库 CREATE DATABASE hsp_db01; #创建一个使用utf8字符集的hsp_db02数据库 CREATE DATABASE hsp_db02 CHARACTER SET utf8 #创建一个使用utf8字符集,并带校队规则的hsp_db03数…

前后端数据交互形式随手笔记

注解@RequestParam Map<String, String> params 的使用1 在Spring MVC中,使用@RequestParam Map<String, String> params可以接收前端发出的请求参数并将它们作为一个Map收集起来。这种方式非常灵活,可以处理来自前端的各种数据提交形式。以下是一些常见的前端数…

【华为】AC直连二层组网隧道转发实验配置

【华为】AC直连二层组网隧道转发实验配置 实验需求拓扑配置AC数据规划表 AC的配置顺序AC1基本配置(二层通信)AP上线VAP组关联--WLAN业务流量 LSW1AR1STA获取AP的业务流量 配置文档 实验需求 AC组网方式&#xff1a;直连二层组网。 业务数据转发方式&#xff1a;隧道转发。 DHC…

SpringBoot随手笔记

SpringBoot随手笔记 0 关于火狐浏览器什么时候会发出http请求的说明 在抓包的情况下(按下F12后的模式),不管是刷新页面还是在浏览器地址栏回车,该页面中的图片都会发出http请求; 但如果不是抓包的模式下,如果访问的页面和上一次访问的页面相同(地址栏的地址没有更改),不管是…

Maven随手笔记

1 当同时存在多个maven软件时,在windows上要如何区分?查看当前使用的是哪个maven的指令,mvn -v C:\Users\yangd>mvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: D:\Java_developer_tools\Must_learn_must_know_technology\MavenProgra…

解决$‘\r‘: command not found 或syntax error near unexpected token `$‘\r‘的四个方法

问题原因&#xff1a; 两个报错原因都是Linux和windows下的回车换行符不兼容 解决方法&#xff1a; 方法一&#xff1a;在windows系统可以用文本编辑器查看所有字符&#xff0c;例如notepad&#xff0c;编辑->档案格式转换->转换为UNIX格式 方法二&#xff1a;在Linux系…