当前位置: 首页 > news >正文

【Java EE初阶 --- 网络原理】网络层---IP协议,数据链路层---以太网协议

乐观学习,乐观生活,才能不断前进啊!!!

我的主页:optimistic_chen

我的专栏:c语言 ,Java

欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~

文章目录

  • IP协议
    • 地址管理
      • IP的分配
        • NAT网络通信
      • 网段划分
      • 特殊的IP地址
    • 路由选择
  • 以太网协议
  • 完结

IP协议

继应用层HTTP(HTTPS)协议,传输层UDP/TCP协议后,接下来就是网络层的IP协议,开发最多用到传输层,网络层更加靠近硬件,用的很少。
在这里插入图片描述
IP协议的主要功能:
地址管理:使用IP地址,标识网络上某个设备的位置
路由选择:在两个通信节点之间,规化出合理路径
4位版本:IPv4 / IPv6
4位首部长度IP协议的报头,也可以变长(单位也是4字节)
8位服务类型:决定IP协议的工作方式,3位优先权字段(已弃用)4位TOS字段和1位保留字段(置为0);4位TOS分别表示:最大延时,最大吞吐量,最高可靠性,最小成本,四者只能选其一。IP协议可以随时切换。
16位总长度一个IP数据报报头+数据包的长度。大小位64KB,而且IP协议内置了拆包组包功能,如果IP携带一个较大的TCP数据包,IP协议就会自动拆成多个。
16位标识:把拆出来的多个包,设为相同的标识;组包时把相同标识的数据包组合到一起
3位标志:一个标志位表示是否触发了拆包操作,一个表示当前包是否是最后一个
13位片偏移:描述了数据包先后顺序,偏移小的放前面,大的放后面
8位生存时间(TTL)表示一个IP数据报,能够在网络上传输的最大时间。单位是“次数”, IP数据每次经过一个路由器一次,TTL值就-1,直到减到0说明包到不了。
8位协议:标识传输层使用哪种协议。分用的时候,IP协议解析IP数据包时,拿到数据包交给上层处理,上层就可以根据8位协议号知道使用哪种协议。
16位首部校验和:数据包部分有TCP/UDP校验
32位源IP地址 / 32位目的IP地址:IP协议的核心

地址管理

IP的分配

IP的格式:点分十进制,本质上是32位整数,但是32位的IP地址只能表示42亿多不同的IP,对于如今的互联网时代,远远不够
1. 动态分配IP:上网再分配,不上网就不分配;
2. NAT机制没网络地址转化:把所有的IP非为两大类,公网/外网 IP和私网/内网IP;NAT机制就是可以用一个外网IP对应一系列的内网设备,一个设备有一个独立的局域网IP(可以重复),但是多个设备公用同一个外网IP(不允许重复)
3. IPv6:使用16个字节作为IP地址

16个字节,一个字节8bit位,一共128位:2^128 = 2^32 * 2^32 * 2^32 * 2^32.超级大的数字
内网一般的格式:10. *;173.16-172.31. * ;192.168. *

NAT网络通信

1. 同一个局域网下,设备A可以访问设备B(IP不重复)
2. 公网设备A访问公网设备B(IP不重复)
3. 不同局域网下,设备A不可以访问设备B
4. 局域网设备A访问公网设备B(网络地址映射)
在这里插入图片描述
5. 公网设备A不允许访问局域网设备B

如果有多个请求去访问百度服务器,那么服务器该如何精准响应到每一个请求主机呢?(返回)
路由器在触发NAT机制地址替换的时候,自身有一个“哈希表”结构,记录替换的映射关系。
在这里插入图片描述

网段划分

把一个IP地址分成两个部分,前面是“网络号”,后面是“主机号”(可以自己配置)
在这里插入图片描述
同一个局域网中,网络号必须相同,主机号必须不同
两个相邻的局域网中,网络号必须不同,主机号无所谓
一个路由器有两个IP:WAN,LAN这两个局域网就是相邻局域网
子网掩码:也是一个32位的整数,左半部分都是1,右半部分都是0;1的部分就表示了哪些bit位是网络号
在这里插入图片描述

特殊的IP地址

1. 将IP地址中的主机地址全部设为0,就成了网络号,代表这个局域网
2. 将IP地址中的主机地址全部设为1,就成了广播地址,用于给同一个链路中相互连接的所有主机发送数据包
3. 127.*的IP地址用于本机环回测试,通常是127.0.0.1

192.168.100.0是一个网络号,注意:局域网中,不能直接把主机号设为0
192.168.100.255 是广播地址,往广播地址上发送数据包,就会被转发给局域网中的所有设备(只限于此局域网)
而主机号位1的IP192.168.100.1,在IP协议中,只是普通IP,但是在实际中,通常使用这个IP作为网关IP:就是网络的入口/出口

路由选择

通过IP协议,进行数据转发的过程。
没有路由器可以知道所有的网络信息,但是每个路由器都知道附近网络情况(谁和它相连)。当数据包到达某个路由器的时候,就会匹配这个路由器的“路由表”,它里面记录了这个路由器周围设备的IP是什么,以及记录每个设备要通过哪个口转发
1. 如果目的IP刚好匹配到路由表中的记录,直接按照当前的对应的口转发过去
2. 如果没有匹配到,路由表会有一个特殊的表项“下一跳”,指向上一级路由器所在位置,路由器越往上,涵盖的范围越大

以太网协议

实际上,以太网是数据链路层+物理层的协议,但凡电脑是通过网线的方式来上网,走的协议就是以太网,网线就是以太网线。
网络上描述传输数据的单位

包packet IP协议
段segment TCP协议
报 datagram UDP协议
帧 frame 以太网协议

以太网数据帧格式:
在这里插入图片描述
注意:此处的地址,不是IP地址,而是mac地址(物理地址)
在这里插入图片描述
物理地址是一个6字节数据, 足够用
IP在网络层使用,关注整个网络路径的转发传输过程;Mac在数据链路层使用,重点是两个相邻设备之间的转发
类型:类型不同,载荷的数据格式也不同,比如:0800就是16进制数字
IP数据报载荷部分最大长度是1500个字节,但是IP数据报,报头最多有64Kb,在数据链路层这里只有1Kb左右,所有IP数据报,拆包组包更多时候是因为数据链路层的限制
ARP:根据IP地址,得到对应的mac地址,网络通信中,网络层转发IP,数据链路层要根据mac转发数据,路由器要根据下一节点的IP找到对应mac

完结


可以点一个免费的赞并收藏起来~
可以点点关注,避免找不到我~ ,我的主页:optimistic_chen
我们下期不见不散 ~ ~ ~

http://www.dtcms.com/a/308971.html

相关文章:

  • OpenCV学习day2
  • YodA数据集的格式化(二)
  • MySQL 8.0 OCP 1Z0-908 题目解析(39)
  • 项目中如何追踪项目进度,避免项目延期如何追踪项目进度
  • 尚硅谷尚庭公寓学习笔记
  • 《P2910 [USACO08OPEN] Clear And Present Danger S》
  • JVM之【Java虚拟机概述】
  • uniapp中uview组件中u-input格式化后赋值踩坑
  • 网站技术攻坚与Bug围剿手记
  • nodejs——在Express中使用Session认证
  • 基于 AXI-Lite 实现可扩展的硬件函数 RPC 框架(附完整源码)
  • graph attention network
  • Sklearn 机器学习 文本数据 计数向量化加入停用词
  • Spring Boot 项目问题:Web server failed to start. Port 5566 was already in use.
  • Linux应用开发基础知识——Makefile初级教程(九)
  • 订单识别与发票识别结合的技术实现方案
  • 最新PS 2025安装包下载与安装教程(Adobe Photoshop 2025 )
  • Java客户端连接Redis
  • langchain--2--invoke、batch、stream、ainvoke、abatch、astream
  • 51c自动驾驶~合集12
  • Python脚本批量将usdz文件转为glb文件
  • 智能体通信协议
  • C++(模板,智能指针)
  • 什么是数据集成?和数据融合有什么区别?
  • Video_1920×1080i 1920_1080p
  • 7月31日作业
  • 模型训练速度慢排查
  • C++法则22:运算符 ::* 和 ->* 和 ::* 是独特的整体运算符,是不可分的。
  • 从关键词到用户意图:2025年Google Trends的语义化SEO实战手册
  • 化学结构式解读指南:从基础认知到InDraw智能识别