[JavaEE] IP协议

news2024/9/29 0:34:30

目录

一、 IP协议

1.1 基本概念

1.2 协议头格式

1.3 特殊IP

二、 地址管理

2.1 网段划分

2.2 CIDR(Classless Interdomain Routing)

2.3 私有IP地址和公网IP地址

2.4 NAT(Network Address Translation)-网络地址转换

2.5 路由选择

三、数据链路层

3.1 认识以太网

3.2 认识MAC地址

3.3 对比理解MAC地址和IP地址

四、重要应用层协议DNS(Domain Name System)

4.1 DNS背景


一、 IP协议

1.1 基本概念

•  主机:配有IP地址,但是不能进行路由控制的设备

•  路由器:配有IP地址,又能进行路由设备控制

•  节点:主机和路由器的统称

1.2 协议头格式

•  4位版本号(version):只有两个取值,4代表使用IPV4协议,6代表使用IPV6协议。

•  4位首部长度(header length):4bit表示的最大数字是15,单位是 32bit,也就是length*4的字节数,因此IP头部最大长度是60字节。

•  8位服务类型(Type Service):3位优先权字段(已弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延迟,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个,对于ssh/telnet这样的应用程序,最小延迟比较重要:对于ftp这样的程序,最大吞吐量比较重要。

•  16位总长度(total length):IP数据报整体占多少个字节

•  16位标识(id):唯一标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。

•  3位标志字段:第一位保留(为了可拓展性);第二位置为1表示禁止分片,这个时候如果报文长度超过MTU,IP模块就会丢弃报文;第三位表示"更多分片",最后一个分片置为1,其他是0,类似于一个结束标记。

•  13位片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移,其实就是在表示当前分片在元报文中处于那个位置。实际偏移的字节数是这个值*8得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。

•  8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数,一般是64,每次经过一个路由器,TTL-=1,一直减到0还没到达,那么就会丢弃,这个字段主要用来防止路由循环。

•  8位协议:表示上层的协议的类型(决定使用TCP/UDP)

•  16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏

•  32位源地址和32位目标地址:表示发送端和接收端

•  选项字段(不定长,最多40字节)

1.3 特殊IP

•  主机号全为0(二进制),此时这个IP就是表示当前网段,相当于网络号。

•  主机号全为1(二进制),这个IP就是广播IP,往这个IP地址上发送数据包,就相当于给整个局域网所有的设备发送了一次数据包。(UDP支持,TCP不支持广播,只能一对一)

•  127.*  环回IP(loopback),自发自收,给这个IP发送一个数据,设备就会从这个IP上再收到同一个数据,环回IP一般使用于自测。

二、 地址管理

2.1 网段划分

IP地址分为两个部分,网络号和主机号

• 网络号:保证互相连接的两个网段具有不同的标识

• 主机号:同一网段内,主机号之间具有相同的网络号,但是必须有不同的主机号。

2.2 CIDR(Classless Interdomain Routing)

引入一个额外的子网掩码(subnet mask)来区分网络号和主机号,子网掩码是一个32位的正整数,通常用一串"0"来结尾。将IP地址和子网掩码进行"按位与"操作,得到的结果就是网络号。

我们知道IP地址(IPv4)是一个4字节32位的正整数,那么一共只有2的32次方个IP地址,大概是43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。实际上,由于一些特殊的IP地址存在,数量远不足43亿,另外IP地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址。

CIDR在一定程度上缓解了IP地址不够用的问题(但是IP地址的绝对上限并没有增加),并不是很够用,于是我们就想出了三种办法:

1、动态分配IP:只给接入网络的设备分配IP地址,因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的。

2.、NAT 网络地址转换

3、IPv6:IPv6并不是IPv4的简单升级版,这是两个协议,彼此不兼容;IPv6用16字节128位来表示一个IP网址。

2.3 私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不能直接连接到Internet上,理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址,公网IP必须不同,私网Ip可以重复,不同局域网里的主机IP可以相同

10.* ,前8位是网络号,共16,777,216个地址

172.16. 到172.32. ,前12位是网络号,共1,048,576个地址

192.168.* ,前16位是网络号,共65,536个地址

包含在这个范围内,都成为私有IP,其余的则称为全局IP(或公网IP)。

2.4 NAT(Network Address Translation)-网络地址转换

针对于我们上网的设备,不需要给每一个机器都赋于全局IP,对于局域网内部的设备,我们只要分配一个虚拟IP即可。

内网又称局域网(Local Area Network,LAN),是指在某一区域内由多台计算机以及网络设备构成的网络,比如校园网、政府网等,一般方圆几公里。一个局域网里面,路由器会给设备自动随机分配虚拟 IP,IP 由子网掩码决定,子网掩码有多少个1,IP 前多少位就是网络号,后面的才是主机号。

对于这样的虚拟 IP ,不能直接从局域网访问服务器,我们在从内网访问外网的时候,需要公网IP,这个公网IP是唯一的,可以是你路由器提供的,也可以是网关提供。

让局域网内的设备先传输给网关,然后由网关通过 NAT 映射记住,传输信息主机的虚拟 IP 和端口号,之后传递信息都是由网关来传递,返回信息也是由网关查出映射关系来返回给主机。

2.5 路由选择

路由的过程,是一跳一跳(Hop by Hop)"问路"的过程

所谓 一跳 就是数据链路层中的一个区间,具体在以太网中指从MAC地址到目的MAC地址之间的帧传输区间。

IP数据包的传输过程也和问路一样;

•  当IP数据报,到达路由器时,路由器会先查看目的IP;

•  路由器决定这个数据包是能直接发送给目标主机,还是需要发送给下一个路由器(如果此路• 由器没有记录目标路由器);

•  依次反复,一直到达目标IP地址;

•  路由器可以使用 route 命令查看;

•  如果目的IP命中了路由表,就可以直接转发;

•  路由表中的最后一行,主要由吓一跳地址和发送接口两部分组成,当目的地址与路由表中的其他都不匹配时,就按照规定发送到吓一跳地址;

三、数据链路层

3.1 认识以太网

•  以太网 不是一种具体的网络,而是一种技术标准;包含了数据链路层的内容,也包含了一些物理层的内容。比如:规定了传输速率等.....

•  例如以太网中的网线必须使用双绞线,传输速率有10M,100M,1000M等;

•  以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

以太网的帧格式:

•  源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,在网卡出厂时固化的;

•  帧协议类型字段有三种值,分别对应 IP、ARP、RARP;

•  帧末尾是CRC校验码;

MTU(Maximum Transmission Unit)和硬件相关,不同的硬件设备对应到了不同的数据链路层协议,对应到了不同的MTU;

此处MTU的先至,就会对上层IP协议产生直接影响,当一个IP数据报,达到1500字节以上的时候,就会自动拆包,进而也会对UDP/TCP产生影响。

3.2 认识MAC地址

•  MAC地址用来识别数据链路层中相连的节点;

•  长度位48位,6个字节,一般用16进制数字加上冒号的形式来表示;

•  网卡出厂时确定MAC地址,不能修改,地址通常是唯一的(虚拟机中的mac地址不是真实地址,有可能会和真实mac地址冲突);

3.3 对比理解MAC地址和IP地址

•  IP地址描述的是总体的起点和终点;

•  MAC地址描述的是路径上每一个区间的起点和终点;

四、重要应用层协议DNS(Domain Name System)

4.1 DNS背景

TCP/IP中使用IP地址和端口号来确定网络上的一台主机和一个程序,但是IP地址不方便记忆;

于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系;

记录IP地址很麻烦,用字符串表示IP ,把域名转化成IP地址,这样的系统就叫做  “域名解析系统”

=========================================================================

如果对你有帮助的话,给博主一个三连吧,这对博主真的很重要 ( ´•̥̥̥ω•̥̥̥` )

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

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

相关文章

嵌入式Linux系统TF卡热插拔检测问题

一、背景介绍 项目上使用linux系统,运行主控是君正T41,遇到一个系统无法识别TF卡的问题,经过一番探索最终成功解决。感觉挺有意思的,记录下分析和解决的过程。 二、现象描述 插入TF卡后系统无任何反应,也没有生成 /…

工业缺陷检测——Windows 10本地部署AnomalyGPT工业缺陷检测大模型

0. 引言 在缺陷检测中,由于真实世界样本中的缺陷数据极为稀少,有时在几千甚至几万个样品中才会出现一个缺陷数据。因此,以往的模型只需在正常样本上进行训练,学习正常样品的数据分布。在测试时,需要手动指定阈值来区分…

Java零工市场小程序如何改变自由职业者生活

如今,自由职业者越来越多,他们需要找到合适的工作机会,Java零工市场小程序,为自由职业者提供了一个方便、快捷的寻找工作机会的方式,这样一来,改变了自由职业者找寻工作的方式,也提高了他们的收…

DudeSuite Web Security Tools 渗透测试工具集

《Java代码审计》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484219&idx1&sn73564e316a4c9794019f15dd6b3ba9f6&chksmc0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene21#wechat_redirect 《Web安全》h…

探索私有化聊天软件:即时通讯与音视频技术的结合

在数字化转型的浪潮中,企业对于高效、安全、定制化的通讯解决方案的需求日益迫切。鲸信,作为音视频通信技术的佼佼者,凭借其强大的即时通讯与音视频SDK(软件开发工具包)结合能力,为企业量身打造了私有化聊天…

vue3学习记录-computed

vue3学习记录-computed 1.为什么要用computed2.使用方法2.1 基本实例2.2 可写计算属性 1.为什么要用computed 写个购物车的案例 <script setup> import { ref, reactive,computed } from "vue" const tableData reactive([{ name: 商品1, price: 10, num: 1…

Mysql数据库相关操作总结

目录 1.背景知识 2.创建数据库 2.1创建指令 2.2字符集 3.查看数据库 3.选中数据库 4.删除数据库 5.数据表的操作 5.1基本数据类型 5.2创建表 5.3查看所有的表 5.4查看表的结构 5.5删除表 6.CRUD增删查改 6.1新增和效果查看 6.3删除 6.4查找 1.背景知识 数据库就…

微pe和u深度pe哪个好用_微pe和u深度pe对比分析

大家在安装系统时都喜欢用pe来安装&#xff0c;pe安装系统的好处就是稳定可靠&#xff0c;不担心进不了系统。最近有网友问我&#xff0c;微pe和u深度pe哪个好用?下面小编就给大家分析一下微pe和u深度pe对比分析。 微pe和u深度pe哪个好用? 微PE好&#xff0c;目前公认良心PE…

【JavaScript】JQuery基础知识及应用

一、JQuery的导入方法 https://editor.csdn.net/md/?articleId132214798 二、JQuery介绍 JQuery(JQ)&#xff1a;JS的一个类库&#xff08;方法库&#xff1a;包含了大量的、有助于项目开发的属性和方法&#xff09; 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的&#xff0…

iOS 项目中的多主题颜色设计与实现

引言 在现代iOS应用中&#xff0c;用户对个性化体验的需求越来越高&#xff0c;除了功能上的满足&#xff0c;多样的视觉风格也是提升用户体验的重要手段之一。提供多主题颜色的切换功能不仅能满足用户的审美偏好&#xff0c;还可以让应用更具活力&#xff0c;适应不同场景下的…

在LLMs模型中发现人类的记忆特征

论文地址&#xff1a;https://arxiv.org/abs/2311.03839 介绍 大型语言模型&#xff08;LLM&#xff09;&#xff0c;如 ChatGPT&#xff0c;为语言建模和生成人类水平的文本输出带来了质的飞跃。 这些模型在庞大的文本库中进行训练&#xff0c;有效地建立了高度复杂和准确的…

队列——单调队列

题目描述 有一个大小为 k 的滑动窗口&#xff0c;它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 例如&#xff1a;[1, 3, −1, −3, 5, 3, 6, 7] k3。 有一个长为 n 的序列 a&#xff0c;以及一个大小为 k 的窗口。现在这个从…

哈希表(HashMap、HashSet)

文章目录 一、 什么是哈希表二、 哈希冲突2.1 为什么会出现冲突2.2 如何避免出现冲突2.3 出现冲突如何解决 三、模拟实现哈希桶/开散列&#xff08;整型数据&#xff09;3.1 结构3.2 插入元素3.3 获取元素 四、模拟实现哈希桶/开散列&#xff08;泛型&#xff09;4.1 结构4.2 插…

javaweb之会话管理

Cookie&#xff1a; 1. Cookie 的定义 Cookie 是存储在用户浏览器中的小块数据&#xff0c;通常由服务器发送并存储&#xff0c;以便在用户浏览器和服务器之间保持会话状态。每次用户发送请求时&#xff0c;浏览器都会自动附带相应的 Cookie&#xff0c;允许服务器辨识用户。…

58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录深度循环神经网络1. 模型复杂性增加2. 训练数据不足3. 梯度消失和爆炸4. 正则化不足5. 特征冗余总结 函数依赖关系简洁实现训练与预测小结练习 深度循环神经网络 &#x1f3f7;sec_deep_rnn 到目前为止&#xff0c;我们只讨论了具有一个单…

基于大数据的亚健康人群数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

在vsCode中将某个字符替换成换行符并且换行展示

将下面一行字符串中的“,”替换成换行符并且换行展示。 CTRLF键检索&#xff0c;查找和替换内容根据如下图输入即可。 点击全部替换后得到如下结果&#xff1a;

图文深入理解Oracle Network配置管理(二)

本篇图文深入介绍Oracle Network配置管理。 Oracle网络配置的目的 为了方便对Oracle 数据库进行管理&#xff0c;一般以下情况应该对Oracle进行网络配置。 • 在客户端对服务器端数据库进行管理&#xff08;网络客户端管理&#xff09; • 在一台服务器上管理多个数据库&…

性能测试学习1:性能测试的理论与目的,与功能测试的区别

一.什么是性能&#xff1f; 1&#xff09;性能&#xff1a;就是软件质量属性中的“效率”特性 2&#xff09;效率特性: ①时间特性&#xff1a;表示系统处理用户请求的响应时间【通俗来说&#xff0c;就是使用系统是否流畅】 ②资源特性&#xff1a;表示系统运行过程中&…

青动CRM-仓储云V1.1.2

多平台(微信公众号(高级授权)、微信小程序(高级授权)、H5网页(高级授权)、Android-App(高级授权)、iOS-App(高级授权))仓库管理系统&#xff0c;拥有强大的表单设计、多角色员工权限、出入库管理、仓库管理、送货管理、自定义审批流、绩效管理、客户管理、合同管理等功能。提供…