TCP/IP网络原理 【IP篇】

news2024/11/28 0:51:20

在这里插入图片描述

🎉🎉🎉写在前面:
博主主页:🌹🌹🌹戳一戳,欢迎大佬指点!
目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个小菜鸟嘿嘿
-----------------------------谢谢你这么帅气美丽还给我点赞!比个心-----------------------------

在这里插入图片描述


网络原理

  • 四,网络层
    • 4.1 地址管理
    • 4.2 路由选择
    • 4.3 关于IP地址的补充
  • 五,数据链路层


—承接上篇博文


四,网络层

网络层最重要协议就是IP协议,IP协议的作用:地址管理与路由选择


4.1 地址管理

首先,认识一下IP数据包的报文格式:
在这里插入图片描述


【各个部分介绍:】

4位版本号:
这个值只存在两种情况,4或者6,对应的就是IPv4和IPv6

4位首部长度:
这个4位首部长度和TCP一样,单位是字节,也就是表示的是有多少个4字节。

8位服务类型:
8位中实际只有4位有效,这四位中同时只能有一位为1,表示四种不同的工作模式。分别是最小延时,最大吞吐量,最高可靠性,最小成本

16位总长度:字节数
这里的总长度说的是一个IP数据报的总长度。对于IP数据报来说,我们知道它的总长度,知道它的报头长度,所以说可以求出其载荷部分的长度。
这个载荷其实就是TCP数据报的长度,TCP自身是没有总长度这一项的。

16位标识,3位标志位,13位片偏移
在这里插入图片描述
这几个属性主要是服务于IP协议的分包,组包机制。因为当一个数据报如果比较大,一个IP数据报放不下就会进行分包。
IP数据报分包的过程就相当于是分装货物的过程,一批货物找了多辆卡车来装,这些卡车的标识都是一样的,但是装了先走的车片偏移就小,后面的车片偏移就大。

8位生存时间(单位TTL):
网络上的数据传输,并不是所有的数据都能到底目的主机,比如你的目的IP地址写错了,那么无论中间你怎么转发都是不可能到达的。所以生存时间就对一个数据包的转发次数做出了限制,超过多少次转发次数之后就会直接将数据报丢弃,默认是到达不了的数据。
在这里插入图片描述
TTL是一个整数,代表转发次数,一般是32/64/128之类的数字,数据报每经过一个路由器转发,TTL就会减少1,直至TTL减为0的时候,数据报就会被丢弃,一般情况下,在较少的转发次数下数据是可以到达世界上的任何地方的。

8位协议:
指的是IP数据报的载荷部分使用的传输层协议是什么,因为当数据报到达接收方进行分用的时候,需要这一项来告诉传输层使用什么协议来进行解析。

32位源IP地址,32位目的IP地址:
表示你的数据报是从哪个主机发送过来,又要到哪个主机去。


4.2 路由选择

路由选择就是在两点之间规划处一条路线。这个过程是一个启发式的过程,类似与是问路。

在IP数据报里面,会有一个目的IP,当网络数据到达路由器的时候,路由器自身会有一个路由表的数据结构(里面记录着这个路由器所能认识的路,一个路由器肯定是无法认识到网络的全部的,但是相邻的一部分可以),如果当前的目的IP这个路由器的路由表中有记录,也就是有明确的路线给出,如果路由器没有记录,也就是不认识,那就是继续转发给下一个路由器(路由器中会有一个默认的选项,下一跳)。这样的转发不是无限制,一般都可以到达,但是如果说是IP地址错误了,那么就会根据TTL的限制,在TTL减为0之后就不会再转发了。
并且对于路由而言,在转发数据的时候,它不仅仅是找一路,在有多个选择的情况下,它会选择一条最优的路。


4.3 关于IP地址的补充

如何解决的IP地址不够用的问题?
我们都知道,IP地址是一个32位的整数,可以表示的IP地址也就42亿多,但是对于目前的互联网直接而言,IP地址早就不够用了,解决的办法有以下几个:
1,动态分配IP地址

设备上网的时候才会给它分配IP地址,当设备不再使用网络的时候就会回收IP地址。这种方法显然是治标不治本,并且回收,分配也比较麻烦。


2,NAT模式

这是现在的主流机制NAT模式下不再强制要求一个主机一个不一样的IP地址,而是将IP地址进行了划分:公网(外网)IP 和 私网(局域网/内网)IP 常见的内网IP 例如:10.x/172.16.~172.31.x/192.168.x
并且约定,在一个局域网的内部,IP地址不能重复,但是在不同的局域网之间,IP地址可以重复,另外,如果想要访问外网的设备,那么则会使用一个外网IP来代替这一个局域网的设备,这样就大大减少了外网IP的数量,减少了消耗。
在这里插入图片描述


3,IPv6

采用IPv6是根本的解决方案,因为IPv6是16字节,128位来表示一个IP地址,也就是说IPv6所能表示的IP地址的数量是IPv4的2^96倍,目前肯定是完全够用了的。

现在IP地址的分配方式还是采取的NAT加上动态分配的方式,IPv6现在支持但是使用的更多的还是IPv4地址。
局域网内的设备之间可以相互通信,但是不同局域网之间的设备是不能够直接进行通信的,也就是跨局域网通信,如果想要直接跨局域网通信,需要使用特殊手段比如内网穿透和vlan虚拟局域网。


五,数据链路层

认识以太网数据帧格式:
在这里插入图片描述
这里的目的地址指的是MAC地址而不是IP地址。类型有三种,分别对应IP,ARP,RARP,帧尾是CRC校验码。

认识MTU:
以太网数据帧的最长是1500个字节,这个限制就是MTU,不同的网络类型有不同的MTU。如果说物理层是公路,那么数据链路层就是公路上的卡车,在进行数据的运输
在数据链路层里面,有很多的协议,不同协议的MTU不同,也即是卡车的载重量不同,以太网协议的载重量是比较小的,所以,在IP协议中会有分包机制,会将一个IP数据包分包,然后确保一辆卡车能够装得下,只不过是需要多辆卡车进行装货了。


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

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

相关文章

聚观早报 | 马斯克丢掉世界首富宝座;加密货币FTX创始人被捕

今日要闻:马斯克丢掉世界首富宝座;加密货币FTX创始人被捕;美团推出高峰打车极速版;魔兽制作组正研发新功能;SpaceX出售公司内部股票马斯克丢掉世界首富宝座 12 月 13 日消息,据国外媒体报道,受特…

7-54 孤岛营救问题——状压bfs+三维标记

1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩。瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图。迷宫的外形是一个长方形, 其南北方…

二、小程序框架

目录 框架 一、响应的数据绑定 二、页面管理 三、基础组件 四、丰富的API 模块化 一、模块化 二、文件作用域 三、API 视图层 View 一、WXML 事件 什么是事件 事件的使用方式 使用 WXS 函数响应事件 事件详解 框架 小程序开发框架的目标是通过尽可能简单、高效…

万字长文详解 YOLOv1-v5 系列模型

一,YOLOv1二,YOLOv2三,YOLOv3四,YOLOv4五,YOLOv5参考资料 一,YOLOv1 YOLOv1 出自 2016 CVPR 论文 You Only Look Once:Unified, Real-Time Object Detection. YOLO 系列算法的核心思想是将输入的图像经过…

同时安装python3和Python2

一刚开始我很疑惑,Python为何要并行两个版本呢?今天我算知道了,原来是因为有的项目一直在用python2。虽然我已经安装了python3但是那些使用python2进行部署的项目我仍然无法使用,这就导致我要在电脑上同时安装python2和Python3了。…

【无标题】SIP网络广播音频模块

SIP2101V和SIP2103V网络音频模块是一款通用的独立SIP音频功能模块,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议和音频编解码协议,可用于VoIP和IP寻呼以及高质量音乐流媒体播放等应用。同时&a…

如何将onnx转ncnn供移动端推理使用

ncnn是一个为手机端极致优化的高性能神经网络前向计算框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。 但是onnx直接转ncnn会存在很多问题,所以一般考虑都是先将onn…

Mysql 进阶(面向面试篇)InnoDB引擎(redo log undolog readview mvcc)

1.1 逻辑存储结构 1). 表空间 表空间是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空间&…

【ElasticSearch 进阶】倒排索引 + FOR + RBM压缩算法

1. 倒排索引 如果有100w的数据,进行分词后,每个id按数字类型进行存储,假设每个行数据都包含相同的词,则每个词的 Posting List 需要占用约4M的空间: 1 int 4 Bytes 100W int 400W Bytes ≈ 4M 极大的浪费了空间。则需…

IDC:中国网络安全市场投资规模将在2026年达到319亿美元

近日,IDC咨询发布《IDC Market Forecast:中国网络安全市场预测,2022-2026》报告,对未来五年的中国网络安全市场发展走向做出分析预测。报告认为,中国IT安全市场投资规模逐年攀升,到2026年将达到319亿美元&a…

MySQL经典50题

MySQL经典50题 mysq经典50题拿来练手 文章目录MySQL经典50题创建表及信息录入1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数3、查询平均成绩大于等于60分的同学的学生…

[阶段4 企业开发进阶] 5. Netty

文章目录1 Netty1.1 Netty介绍1.2 Netty应用场景2 Java BIO编程2.1 IO模型2.2 BIO、NIO、AIO 适用场景分析2.3 BIO3 Java NIO编程3.1 NIO基本介绍3.2 NIO和BIO的比较3.3 NIO三大核心原理1 Netty 1.1 Netty介绍 Netty 是由 JBOSS 提供的一个 Java 开源框架Netty 是一个异步的、…

技术分享 | 做为测试,那些必须掌握的测试技术体系

软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程。其目的是尽快尽早地发现在软件产品中所存在的各种问题,与用户需求、预先定义的不一致性。检…

Revit 中柱子附着屋顶小技巧和“柱断墙梁”方法

一、Revit 中柱子附着屋顶小技巧 Revit 中如何正确的使柱子附着于屋顶? 有的朋友绘制完结构柱后想要附着到屋顶上,这时候大家会选择把柱子顶部拉上去或者选择“附着顶部/底部”命令。但是这样会出现如图 1所示情况 此时柱子并未与屋顶完全相交,这时候有…

seata分布式事务AT模式原理解析

文章目录TC相关的表解析AT 模式如何做到对业务的无侵入写隔离读隔离AT模式特点TC相关的表解析 global_table:全局事务表,每当有一个全局事务发起后,就会在该表中记录全局事务的ID。branch_table:分支事务表,记录每一个…

一个简单实用的 JavaScript 日历控件源代码,不依赖第三方库,支持日期、月份、年份视图切换;支持单选、多选、范围和星期选

一个简单实用的 JavaScript 日历控件!原生 JavaScript 编写,不依赖任何第三方库。支持日期、月份和年份试图切换;支持单选、多选、范围和星期选择模式;界面简介、配置简单、使用方便! 完整代码下载地址:一个…

java计算机毕业设计ssm招聘信息管理平台9kvyw(附源码、数据库)

java计算机毕业设计ssm招聘信息管理平台9kvyw(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

终于有P8大佬把困扰我多年的《计算机网络原理》全部讲明白了

前言 为什么网络协议这么重要呢?集群规模一大,我们首先想到的就是网络互通的问题;应用吞吐量压不上去,我们首先想到的也是网络互通的问题。所以,要成为技术牛人,搞定大系统,一定要过网络这一关&…

投影仪可以当电视看吗?告诉你好用的电视应用市场,建议收藏

当初在买投影仪和买电视中纠结了很久,最终选择了投影仪,现在又想看电视了……但是又不想再买个电视,那么问题来了,投影仪可以当电视用吗?经过本人一番研究,终于找到投影仪看电视的最简单方法:安…

Go C 编程 第3课 魔法自动机

慧通教育 慧通教育 30.画奔驰车标志(魔法学院第3课) 难度:1 登录 31.画拱型(魔法学院第3课) 难度:1 登录 32.画正三角形(魔法学院第3课) 难度:1 登录 33.画棱形(魔法学院第3课) 难度:1 登录 魔法学院的奇幻之旅:…