TCP/IP 网络模型

TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层

应用层

应用层专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。我们电脑或手机使用的应用软件都是在应用层实现。应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。

传输层

传输层代表协议:分别是 TCP 和 UDP。

  • TCP:TCP 的全称叫传输控制协议(Transmission Control Protocol),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。具备流量控制、超时重传、拥塞控制等..
  • UPD:UDP 相对来说就很简单,简单到只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高.例如视频使用的就是UDP

TCP段

当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。在 TCP 协议中,我们把每个分块称为一个 TCP 段TCP Segment)。 

由于传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。

当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口

网络层

网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。

网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文。

IP分片

如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。

(ps:和传输层不同即使只丢失一片数据也要重传整个数据报。)

网络接口层

生成了 IP 头部之后,接下来要交给网络接口层Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。

IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。

以太网在判断网络包目的地时和 IP 的方式不同,因此必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。

MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息,我们可以通过 ARP 协议获取对方的 MAC 地址。

 所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。

总结

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

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

相关文章

ubuntu 20.04部署brc20 ordinals铭文

1、btc节点部署文档详见btc节点部署 官方文档 2、更改之前节点部署rpc访问方式 下载bitcoin包后相对路径:bitcoin-26.0/share/rpcauth/rpcauth.py 文件 执行文件 ~# python3 rpcauth.py admin String to be appended to bitcoin.conf: rpcauthadmin:sdoieoifjeofg3…

mysql日期时间函数

当前时间 > SELECT CURDATE(),CURTIME(),NOW(); ->2024-01-10 | 10:47:18 | 2024-01-10 10:47:18 > select sysdate(); ->2024-01-10 10:47:18 NOW() 返回当前日期时间,返回格式要么是字符串"YYYY-MM-DD HH-MM-SS"格式,要么是…

波动,热传导,扩散方程建立

数学物理方程是从自然科学的各个领域和工程技术领域中导出的偏微分方程和积分方程.在这些以偏微分方程为基础的数学模型中,二阶线性偏微分方程中的三个典型方程与定解条件的建立、解法及其应用.描述振动和波动过程的波动方程、描述输运过程的热传导&…

【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码

前言 在一些特殊场景中,我们可能需要使用java或者其他任意语言调用python脚本或sdk等。本文的需求衍生也不例外于此,python端有sdk,但只能在python中调用,于是就有了本文章。 常见的调用方式如jython、python提供http rest接口、…

照片模糊如何变清晰不妨试试这款软件吧

很多人希望能把模糊的图片或照片变得很清晰,或者把一个只有几十KB的小图变成有几M大小的高清大图。一般来说,一张模糊或打了马赛克的图片本身很多细节信息就没有或被删除了,就像一本书缺了很多页,我们是可能百分百的还原出它原来的…

知道IP怎么反查域名?这几个方法一查一个准!

知道网络IP怎么反查出真实域名来?给大家分享几个我常用的方法,就算你不懂技术你都能查得出来! 一、fofa 这是一个白帽黑客非常喜欢用的社工平台,只要你输入IP就能查到很多背后的信息。 传送门:https://fofa.info 二…

Redis学习指南(2)-Redis与传统SQL数据库的差异

前言 在数据库领域,Redis和SQL数据库是两种不同的存储解决方案,各自具有一系列优势和劣势。本文将对Redis和SQL数据库进行对比分析,以帮助读者更好地了解它们的特点和适用场景。 Redis的优势 1. 高性能 Redis以其出色的性能而闻名&#x…

GPT Store开业大吉:一场AI技术与创新的盛宴

就在1.11 日,ChatGPT 正式上线 GPT Store ! OpenAI CEO 山姆奥特曼第一时间确认了这个消息: 自从GPTs的概念提出以来,短短两个月内,全球用户已经创造了超过300万个GPTs。 点击 GPT Store 或者进入ChatGpt页面&am…

【Vue】引入路径正确,不影响正常运行但文件爆红

现象:引入路径正确但文件爆红,不影响运行但不美观(按住Ctrl可以跳转到该文件,关闭后过段时间再打开还是爆红) 原因 (1)相对路径使用了不正确的大小写 (2)项目不支持force…

typescript递归数据结构的定义和处理

typescript是一种类型强约束的语言,一般来讲定义类型时都要明确指定类型的数据结构。而如果数据结构中涉及到不知道几层嵌套的递归时,就会有一些麻烦。 在 https://stackoverflow.com/questions/51657815/recursive-array-type-typescript 有一个回答…

AD20 解决PCB铺铜与锡盘之间锯齿状连接问题的设置方法

上一篇文章:PCB简单绘制一般步骤 对上一篇文章中,关于铺铜设置的补充,解决铺铜与锡盘之间的锯齿状连接情况。 1、新建Demo,创建PCB板子,布置锡盘和铺铜,如图: 2、设置规则,参考上一…

OLAP型数据库 ClickHouse的简介 应用场景 优势 不足

ClickHouse 是一个开源的分布式列式数据库管理系统 (DBMS),专门用于在线分析处理 (OLAP)。它最初由 Yandex 开发,并且在处理大规模数据分析和实时查询方面表现出色。以下是关于 ClickHouse 的简介、应用场景、优势和不足的概述: 简介 Click…

【AI应用】HumanCenteredSensing

1. 人体存在感知 **目标:**检测环境中的所有人体,标记出每个人体的坐标位置;不限人体数量,适应中低空斜拍、人体轻度遮挡、截断等场景.1. WAYV AIR WAYV AIR 智能人体存在感知雷达目前已成功应用于多个智能卫生间项目中,实现厕位的占位及人流量统计 • 检测准确率高,不管…

Python⾼阶函数

定义: 把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。函数式编程就是指这 种⾼度抽象的编程范式。 体验⾼阶函数 需求:⼀个函数完成计算任意两个数字的绝对值之和 方法一: def add_num(…

8. 《自动驾驶与机器人中的SLAM技术》基于保存的自定义NDT地图文件进行自动驾驶车辆的激光定位

目录 1. 为 NDT 设计一个匹配度评估指标,利用该指标可以判断 NDT 匹配的好坏。 2. 利用第 1 题的指标,修改程序,实现 mapping 部分的回环检测。 3. 将建图结果导出为 NDT map,即将 NDT 体素内的均值和协方差都存储成文件。 4.…

Redis的安装与在spring中使用

1. Redis入门 1.1 Redis简介 Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 官网:Redis 中文网:Redis中文网 key-value结构存储:(哈希)时间o1 主要特点&#xff1…

在线旅游2024:新旧交锋,暗流涌动

旅游热带来的泼天富贵,还在继续传递。 2023年大火的“烧烤之都”淄博曾是最大受益者,小烧烤风靡整个夏天。最近的哈尔滨凭借冰雪和异域特色一举成为新晋“网红旅游城市”,元旦假期的游客接待量和旅游总收入双双达到历史峰值。 “网红城市”…

stl中的list模拟实现

目录 一、list的简单介绍二、写出节点的代码三、模拟实现迭代器(重点)1、list中的迭代器是怎么实现的2、编写iterator类的代码3、对const_iterator进行理解4、编写const_iterator类的代码5、对iterator类和const_iterator类进行合并 四、list类进行代码实…

Git基础操作:git stash 相关命令举例讲解

git stash 是 Git 提供的一个强大的工具,它允许你临时保存(或“暂存”)当前工作目录和索引(暂存区)的改动,从而可以切换分支或执行其他操作而不影响当前的工作状态。下面是 git stash 的一些常用命令及其解…

VLAN 详解二(VLAN 基础配置)

VLAN 详解二(VLAN 基础配置) VLAN 配置其实是非常简单的,但是想要学得比较精还是需要花费一些功夫的,根据不同的 VLAN 划分方式用不同的配置方法,但其实配置方法基本上都大同小异。 下面就以在实际网络中最常用的基于…