传输层和网络层的关系,ip协议+ip地址+ip报头字段介绍(4位TOP字段,8位生存时间(ttl)),ip地址和端口号的作用

目录

传输层和网络层的关系

引入

介绍 

ip协议

介绍

ip地址

引入

数据传递过程

举例(ip地址的作用)

ip报头

格式

4位版本号

ip地址不足的问题

8位服务类型

4位TOP(type of service)字段

最小延时

最大吞吐量

4位首部长度

16位总长度

8位协议号

首部校验和

8位生存时间

集线器

提供ip地址和端口号的作用

介绍

举例


传输层和网络层的关系

引入

就像班里有个小王数学成绩可好,每次都在140以上,10次有6次满分

  • 这样的人就可以说他具有考满分的能力(也就是大概率可以上满分),但不一定全是满分

虽然不能百分百考满分,但他有一个校长爸爸

  • 一旦考试没考满分,就让他重考,直到满分
  • 当然,这也是因为这个人有很大概率可以考满分,才会让他重考,否则要是压根考不到满分,再重考几次也白搭

介绍 

在这个场景下:

校长起到的是策略作用,小王没拿到满分就重考

  • 对应计算机里的超时重传机制,也就是传输层的tcp协议,提供可靠性策略

而小王是实际参加考试的人,起到的是执行作用

  • 对应计算机里网络层的ip协议,它提供一种将数据跨网络从a主机送到b主机的能力

虽然主机已经具有跨网络传输数据的能力,但对于用户来说,需要的不只是能力,能力不代表100%可以做到,而是要可靠的送到

  • 所以需要策略和能力相结合,来保证达到用户的需求

ip协议

介绍

ip协议提供的能力 -- 实现跨网络跨主机传输

要想实现,有前提条件:

  • 唯一标识每台主机(也就是ip地址的作用) -- 只有保证唯一性,才有可能在众多主机中定位某一台
  • 就像学号,身份证号一样

ip分为 -- 私有ip , 公有ip

  • 在不同网络的两台主机通信,默认是以公网ip通信
  • 如果两台主机在同一个网络内,它们会使用私有ip地址直接进行通信

ip地址

引入

去某个地点,一般不能直接到达

  • 假如你要去故宫玩,你必须坐高铁/飞机先到北京,再乘坐北京内部的交通工具前往故宫
  • 所以,要去某个地方,一定是目标城市+目标地点才能定位的

类比到ip地址

  • ip地址不仅仅是4字节数据
  • ip地址=目标网络+目标主机

数据传递过程

如果要实现传递,就必须要经过路由器转发,经过多个子网

  • 数据到达b主机前,一定是要先到达b所在子网

也就是,在宏观上,报文发送是要经过两阶段

  • 先到达目标网络,再交给目标主机

举例(ip地址的作用)

假如有以下场景:

  • 在大学里,有各种学院,学院有各自的编号
  • 学院内部有自己的群,各学院的学生会主席也都一起拉了群
  • 当某个计算机院的学生捡到了一个学生证,上面有学号,他只知道学院编号与自己的不同,但具体是哪个学院不清楚,所以他拍个照片发给了自己院的学生会主席
  • 主席是肯定要记住每个学院的编号的,所以他将照片转发给了对应的学院的学生会主席
  • 而主席是认识自己院的学生的,于是直接找到了那个学生

如果这个同学没有使用这种方法,而是选择蹲在某个地点,遇到学生就问

  • 他找到猴年马月都找不到
  • 询问的过程其实就是在查找,查找本质上是在排除,只不过一次只能排除一个人,属于线性遍历

但使用了上面的方式就可以很轻松的找到,为什么呢?

  • 因为同样是在排除,他直接找到本院的学生会主席就排除了自己学院内的其他人
  • 而主席找到对应院的主席,就是排除了其他院
  • 该院主席对照学号找到学生本人,也就排除了本院内的其他人
  • 排除的效率提高了,也就可以在报文路由时,提高路由的效率

ip地址就是用这种原理定义的

  • 学号就是ip地址
  • 学院就是局域网,院内学生就是局域网内的主机
  • 学生会主席就是出口路由器
  • 主席之间的群叫做公网
  • 公网内的每一台路由器,天然都认识里面的其他路由器,就可以精准转发
  • 这就可以提高定位主机的效率

ip报头

格式

和tcp协议报头类似,都是20字节定长,并且都有选项,只是一般不用

4位版本号

一般是固定的,ipv4的版本号就是4

ip地址不足的问题

使用ipv4协议的ip地址有2^32=42亿多个

  • 但是,在当前全世界中,入网设备肯定是超过了这个数字的
  • 所以ip地址已经不够分了

于是发展出了新技术来解决

  • NAT
  • ipv6

ipv6

  • 其实它和ipv4并不兼容,相当于是一个新的协议,所以即使在这里的字段填成6也没啥意义
  • 使用128bit(16字节)来表示ip地址,目前多使用于内网环境

8位服务类型

3位已经启用

  • 用于指定数据包的优先级

1位保留字段

  • 必须为0
4位TOP(type of service)字段
  • 从a主机到b主机有多条路径可以选择,需要结合自身的传输策略来决定路径选择
  • 也就是用来指导路由器转发的4个小策略
最小延时
  • 也就是用时最短
  • 如果设置了该位,表示需要低延迟,适用于需要快速传输的应用,如实时语音和视频通信
最大吞吐量
  • 表示单位时间内传输的数据量最大
  • 如果设置,表示需要高吞吐量,适用于需要高数据传输速率的应用,如大文件传输和数据备份

最高可靠性

  • 也就是可靠性最好,适用于需要确保数据完整性的应用,如电子邮件和文件传输
  • 但是网络层不是不保证可靠性吗,这里的可靠从何而来呢?
  • 丢包是可能的,且ip协议对丢包无能为力,只能等待上层进行超时重传,它只是会尽量选择丢包概率最小的路径

最小成本

  • 耗费资源最少,适用于对传输费用敏感的应用,如非紧急数据传输

这四者互相冲突,只能取其一

  • 根据具体的应用场景选择

4位首部长度

可以用来分离报头和有效载荷

  • 即使报头长度一定,选项长度是不定的,所以无法确定有效载荷的正确位置
  • 和tcp一样,报头+选项的长度=首部长度*4

16位总长度

表示整个报文的长度,可以知道有效载荷的长度

  • 16位报文总长度-首部长度=有效载荷长度

这里就和tcp不同了,而和udp类似

  • 因为报头保存了总报文长度
  • 说明网络层传输时,都是一个一个的,所以这一层的报文叫做数据报
  • 而面向字节流的概念,是tcp协议提供给应用层的,并不在ip层体现

8位协议号

用来标识该报文具体交给上层的哪个协议

  • 假如自己是发送端,由tcp交给ip,就会填入tcp协议号
  • 当传送到对面的网络层时,就会知道要交给传输层的tcp协议

首部校验和

和tcp里的用处一样

  • 用于检测传输过程中是否发生了错误

8位生存时间

一个ip报文在转发的过程中(查找路由表,跳转下一个路由器):

  • 如果本身主机不可达/网络问题,可能会被一直转发
  • 因为它找不到目标主机->形成游离报文->会大量积压(一直存在在网络里,不停被转发,且因集线器的处理而不会信号衰减)
  • 所以,需要设置一个报文存活时间(ttl -- time to live) ,记录最大经历路由器的跳数(相当于是一个基准值)

每经过一个路由器,ttl-1

  • ttl=0时,当前路由器会丢弃这个报文
集线器

路由器中的数据->二进制序列->光电信号->会衰减

  • 而集线器会在信号衰减时,自动帮我们进行信号放大,保证长距离传输

提供ip地址和端口号的作用

介绍

创建套接字时,需要提供ip和端口号

  • 其中,端口号给tcp协议填充报头
  • ip地址给ip协议填充报头 -- 这也就是为什么要把字符串格式的ip地址(点分十进制)->4字节,因为ip报头的ip地址字段是4字节

举例

以唐僧为例:

  • 他受唐王所托,从东土大唐而来,要去往西天,向佛祖求取真经

而里面的人物/地点对应到网络中就是:

  • 东土大唐 -- src_ip
  • 唐太宗 -- src_port(进程)
  • 西天 -- dst_ip
  • 如来佛祖 -- dst_port(进程)
  • 只有提供了以上数据,唐僧才能成功到达并返回

唐僧在其中充当什么角色呢?

  • 唐僧只是个跑腿的 -- 报文
  • 真经 -- 目标数据

西游记本质上是唐太宗和如来佛祖之间的通信过程

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

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

相关文章

《样式设计001:表单的2种提交方式》

描述:在开发小程序过程中,发现一些不错的案例,平时使用也比较多,稍微总结了下经验,以下内容可以直接复制使用,希望对大家有所帮助,废话不多说直接上干货! 一:表单的2种…

【强化学习的数学原理】课程笔记--4(随机近似与随机梯度下降,时序差分方法)

目录 随机近似与随机梯度下降Mean estimationRobbins-Monro 算法用 Robbins-Monro 算法解释 Mean estimation用 Robbins-Monro 算法解释 Batch Gradient descent用 SGD 解释 Mean estimation SGD 的一个有趣的性质 时序差分方法Sarsa 算法一个例子 Expected Sarsa 算法n-step S…

电容认识和特点总结

图片 常见的电容名字及特点 名字特点容量和耐压独石电容MLCCMulti layer Ceramic Capacitors (多层陶瓷电容) 常见的贴片电容&#xff0c;容量大于瓷片电容0.5pF~100uF,耐压<100V瓷片/陶瓷电容耐压远高于独石电容,容量小<0.1uf&#xff0c;用于晶振旁路电容滤波铝电解电…

PY32F002B单片机 ISP 串口下载注意事项

一、PY32F002B ISP 串口下载的连接方式 仿真上的 VCC 和 GND 连接到 MCU 的 VCC 和 VSS&#xff0c; 仿真的 TX 接 MCU 的 RX&#xff0c;RX 接 MCU 的 TX。 二、因为 PY32F002B 没有 BOOT&#xff0c;需要用 ISP 串口下载的话需要下载串口引导程序。 下载这个目录下的 IAP…

Python酷库之旅-第三方库Pandas(036)

目录 一、用法精讲 111、pandas.Series.item方法 111-1、语法 111-2、参数 111-3、功能 111-4、返回值 111-5、说明 111-6、用法 111-6-1、数据准备 111-6-2、代码示例 111-6-3、结果输出 112、pandas.Series.xs方法 112-1、语法 112-2、参数 112-3、功能 112-…

几种常用排序算法

1 基本概念 排序是处理数据的一种最常见的操作&#xff0c;所谓排序就是将数据按某字段规律排列&#xff0c;所谓的字段就是数据节点的其中一个属性。比如一个班级的学生&#xff0c;其字段就有学号、姓名、班级、分数等等&#xff0c;我们既可以针对学号排序&#xff0c;也可…

OpenGL-ES 学习(7) ---- VBO EBO 和 VAO

目录 VBO(Vertex Buffer Object)EBO(Element Buffer Object)VAO(Vertex Array Object) VBO(Vertex Buffer Object) EBO(Element Buffer Object) VBO(Vertex Buffer Object) 实际是指顶点缓冲器对象 在 opengl-es 2.0 的编程中&#xff0c;用于绘制图元的顶点数据是从 CPU 传…

暑假第一周学习内容-ZARA仿写

仿写ZARA总结 文章目录 仿写ZARA总结前言无限轮播图分栏控制器与UIScrollViewUIScorllView的协议部分UISegmentedControl的协议部分 自定义cell 前言 本文主要是用来总结仿写ZARA中遇到的一些问题&#xff0c;以及ZARA中学习到的一些新知识。 无限轮播图 这里我们先给出无限…

使用Windows Linux 子系统安装 Tensorflow,并使用GPU环境

在Microsoft Store商店安装Ubuntu 20.04 使用 nvidia-smi 命令查看GPU信息&#xff0c;查看支持的CUDA版本&#xff0c;这里最高支持11.7 安装cuda工具集 进入官网&#xff1a;CUDA Toolkit Archive | NVIDIA Developer&#xff0c;现在对应版本&#xff0c;点击 配置平台&…

LeNet实验 四分类 与 四分类变为多个二分类

目录 1. 划分二分类 2. 训练独立的二分类模型 3. 二分类预测结果代码 4. 二分类预测结果 5 改进训练模型 6 优化后 预测结果代码 7 优化后预测结果 8 训练四分类模型 9 预测结果代码 10 四分类结果识别 1. 划分二分类 可以根据不同的类别进行多个划分&#xff0c;以…

科研绘图系列:R语言分割小提琴图(Split-violin)

介绍 分割小提琴图(Split-violin plot)是一种数据可视化工具,它结合了小提琴图(violin plot)和箱线图(box plot)的特点。小提琴图是一种展示数据分布的图形,它通过在箱线图的两侧添加曲线来表示数据的密度分布,曲线的宽度表示数据点的密度。而分割小提琴图则是将小提…

绿色算力|暴雨服务器用芯片筑起“十四五”转型新篇章

面对全球气候变化、技术革新以及能源转型的新形势&#xff0c;发展低碳、高效的绿色算力不仅是顺应时代的要求&#xff0c;更是我国建设数字基础设施和展现节能减碳大国担当的重要命题&#xff0c;在此背景下也要求在提升算力规模和性能的同时&#xff0c;积极探索推动算力基础…

【iOS】APP仿写——网易云音乐

网易云音乐 启动页发现定时器控制轮播图UIButtonConfiguration 发现换头像 我的总结 启动页 这里我的启动页是使用Xcode自带的启动功能&#xff0c;将图片放置在LaunchScreen中即可。这里也可以通过定时器控制&#xff0c;来实现启动的效果 效果图&#xff1a; 这里放一篇大…

31_MobileViT网络讲解

VIT:https://blog.csdn.net/qq_51605551/article/details/140445491?spm1001.2014.3001.5501 1.1 简介 MobileVIT是“Mobile Vision Transformer”的简称&#xff0c;是一种专门为移动设备设计的高效视觉模型。它结合了Transformer架构的优点与移动优先的设计原则&#xff0…

在eclipse中导入本地的jar包配置Junit环境步骤(包含Junit中的方法一直标红的解决方法)

搭建JUnit环境 一、配置环境 跟上一篇的那种方法不一样&#xff0c;直接Add to Build Path 是先将jar包复制到项目的lib目录下&#xff0c;然后直接添加 选定项目>>>右键>>>Bulid Path>>>Add Libraries>>>Configure Build Path(配置构建路…

python—爬虫爬取电影页面实例

下面是一个简单的爬虫实例&#xff0c;使用Python的requests库来发送HTTP请求&#xff0c;并使用lxml库来解析HTML页面内容。这个爬虫的目标是抓取一个电影网站&#xff0c;并提取每部电影的主义部分。 首先&#xff0c;确保你已经安装了requests和lxml库。如果没有安装&#x…

Fast Planner规划算法(一)—— Fast Planner前端

本系列文章用于回顾学习记录Fast-Planner规划算法的相关内容&#xff0c;【本系列博客写于2023年9月&#xff0c;共包含四篇文章&#xff0c;现在进行补发第一篇&#xff0c;其余几篇文章将在近期补发】 一、Fast Planner前端 Fast Planner的轨迹规划部分一共分为三个模块&…

4.基础知识-数据库技术基础

基础知识 一、数据库基本概念1、数据库系统基础知识2、三级模式-两级映像3、数据库设计4、数据模型&#xff1a;4.1 E-R模型★4.2 关系模型★ 5、关系代数 二、规范化和并发控制1、函数依赖2、键与约束3、范式★3.1 第一范式1NF实例3.2 第二范式2NF3.3 第三范式3NF3.4 BC范式BC…

rockchip的yolov5 rknn python推理分析

rockchip的yolov5 rknn推理分析 对于rockchip给出的这个yolov5后处理代码的分析&#xff0c;本人能力十分有限&#xff0c;可能有的地方描述的很不好&#xff0c;欢迎大家和我一起讨论&#xff0c;指出我的错误&#xff01;&#xff01;&#xff01; RKNN模型输出 将官方的Y…

直方图的最大长方形面积

前提知识&#xff1a;单调栈基础题-CSDN博客 子数组的最大值-CSDN博客 题目描述&#xff1a; 给定一个非负数&#xff08;0和正数&#xff09;&#xff0c;代表直方图&#xff0c;返回直方图的最大长方形面积&#xff0c;比如&#xff0c;arr {3, 2, 4, 2, 5}&#xff0c…