[JavaEE] IP协议

目录

一、 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.mzph.cn/web/53904.shtml

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

相关文章

监控易监测对象及指标之:全面监控Sybase_New数据库

随着企业数据量的不断增长和业务的复杂化,数据库的稳定性和性能成为了保障业务连续性的关键因素。Sybase_New数据库作为众多企业选择的数据管理解决方案,其稳定性和性能对于企业的运营至关重要。 为了确保Sybase_New数据库的稳定运行和高效性能&#xff…

【CSS in Depth 2 精译_042】6.4 CSS 中的堆叠上下文与 z-index(下)——深入理解堆叠上下文

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…

Adobe Photoshop 2024 v25.12 (macOS, Windows) 发布下载 - 照片和设计软件

Adobe Photoshop 2024 v25.12 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adobe XD…

【unity进阶知识3】封装一个事件管理系统

前言 框架的事件系统主要负责高效的方法调用与数据传递,实现各功能之间的解耦,通常在调用某个实例的方法时,必须先获得这个实例的引用或者新实例化一个对象,低耦合度的框架结构希望程序本身不去关注被调用的方法所依托的实例对象…

收银系统源码-ERP进销存解决方案

收银系统目前已经成为门店日常经营的必备软件工具,功能一般需涵盖线下门店收银,ERP进销存、线上商城等。一套好的ERP进销存模块也能很大程度帮助门店经营管理门店。 ERP进销存功能涵盖了商品的采购、销售、调拨、盘点、库存管理、资金管理等全链路管理&…

对话总结:Scale AI的创始人兼CEO Alex Wang

AI的三大支柱 计算:主要由大公司如NVIDIA推动。算法:顶尖实验室如OpenAI主导。数据:Scale致力于推动数据进展。前沿数据的重要性 与人类智能相比较,前沿数据是AI发展的关键。互联网数据是机器与人类合作的结果。语言模型的发展 第一阶段:原始的Transformer论文和GPT的小规…

初识ZYNQ——FPGA学习笔记15

一、ZYNQ简介 ZYNQ:Zynq-7000 All Programmable SoC(APSoC),赛灵思公司(AMD Xilinx)推出的新一代全可编程片上系统 PS:Processing System,处理系统 PL:Program Logic&…

html TAB切换按钮变色、自动生成table--使用函数优化结构

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

RTA-OS Port Guide学习(三)-基于S32K324 OS

文章目录 前言HardwareSupported DevicesRegister UsageInitializationModificationRequired OS resourcesInterruptsInterrupt Priority LevelsAllocation of ISRs to Interrupt VectorsVector TableWriting Category 1 Interrupt HandlersWriting Category 2 Interrupt Handl…

Qualitor processVariavel.php 未授权命令注入漏洞复现(CVE-2023-47253)

0x01 漏洞描述&#xff1a; Qualitor 8.20及之前版本存在命令注入漏洞&#xff0c;远程攻击者可利用该漏洞通过PHP代码执行任意代码&#xff0c;利用难度较低危害较大。 0x02 影响版本&#xff1a; Qualitor < 8.20 0x03 搜索语句&#xff1a; Fofa:app"Qualitor-…

服务运营 | 运营前沿:生成式AI改变医疗保健的运作方式

编者按 人工智能正在重塑医疗保健的运作方式&#xff0c;减少医生负担并优化病人的就医体验。从解答患者疑问到开发新药&#xff0c;人工智能正在快速革新医疗保健这一行业。编者团队此次将关注《哈佛商业评论》于2023年11月27日发布的文章《GenAI Could Transform How Health …

数字乡村解决方案-3

1. 国家大数据战略与数字乡村 中国第十三个五年规划纲要强调实施国家大数据战略&#xff0c;加快建设数字中国&#xff0c;推进数据资源整合和开放共享&#xff0c;保障数据安全&#xff0c;以大数据助力产业转型升级和提高社会治理的精准性与有效性。 2. 大数据与数字经济 …

【韩顺平Java笔记】第2章:Java概述

按视频的标号来对应小标题&#xff0c;自用学习笔记 文章目录 5. 内容梳理6. 程序举例6.1 什么是程序 7. Java故事7.1 Java诞生小故事7.2 Java技术体系平台 8. Java特性8.1 Java重要特点 9. sublime10. jdk介绍10.1 Java运行机制及运行过程10.1.1 Java虚拟机&#xff08;JVM&a…

无人机飞手入伍当兵技术优势分析

随着现代战争形态的不断演变&#xff0c;无人机技术在军事领域的应用日益广泛&#xff0c;成为提升军队作战能力的重要手段。对于无人机飞手而言&#xff0c;其专业技能和实战经验在入伍当兵后能够转化为显著的技术优势&#xff0c;为国防事业贡献重要力量。以下是从专业技能优…

【学习笔记】TLS/SSL握手之Records

TLS / SSL会话是由记录&#xff08;Records&#xff09;所组成&#xff0c;有4种records HandshakeAlertChange Cipher SpecApplication DataHandshake和Alert Records被分为子类型&#xff08;Subtypes&#xff09;&#xff1a; Handshake&#xff1a;Client HelloHandshake&a…

Miniforge详细安装教程(macOs和Windows)

(注&#xff1a;主要是解决商业应用anaconda收费问题&#xff0c;这是轻量级的代替&#xff0c;个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器&#xff0c;类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境&#xff0c;专注于…

Java新手指南:从菜鸟到编程大师的趣味之路-多态

这里是Themberfue 本章讲的是Java三大特性之一的多态&#xff0c;也是最后一个特性 多态概念 既然我们要学习多态&#xff0c;首先得知道这玩意儿到底是个什么东西&#xff1f; 通俗地说&#xff0c;多态其实就是多种形态。具体来说就是去完成某个行为&#xff0c;当不同的对象…

Secret Configmap

应用启动过程中可能需要一些敏感信息&#xff0c;比如访问数据库的用户名&#xff0c;密码或者秘钥&#xff0c;讲这些信息直接保存在容器镜像中显然不合适&#xff0c;kubernetes提供的解决方案就是Secret Secret会以密文的方式存储数据&#xff0c;避免了直接在配置文件中保…

tauri开发配置文件和文件夹访问路径问题

文件夹没权限&#xff1a;Unhandled Promise Rejection: path not allowed on the configured scope: /Users/song/Library/Application Support/com.pakeplus.app/assets/default.png 没有文件夹&#xff0c;需要先创建&#xff1a;Unhandled Promise Rejection: path: /Users…

数据结构与算法——Java实现 24.中缀表达式转后缀

目录 中缀表达式转后缀表达式 引言 思路 代码 正因为我有能力跨越&#xff0c;考验才会降临 —— 24.9.28 中缀表达式转后缀表达式 引言 Java中的编译器会将我们编写代码中的中缀表达式转化为后缀表达式&#xff0c;然后编译好输出程序 思路 遍历中缀表达式&#xff0c;如果遇…