【网络原理】TCP/IP协议五层模型

目录

一. 协议的分层

二. OSI七层网络协议

三. TCP/IP五层网络协议

四. 网络设备所在分层

五. 封装

六. 分用

七. 传输中的封装和分用

 八. 数据单位术语


一. 协议的分层

常见的分层为两种OSI七层模型和TCP/IP五层模型

为什么要协议分层?

在网络通信中,存在设计很多的细节和规则,如果这些规则依靠一个协议来说明,那么这个协议肯定会非常的复杂,如果把这一份协议根据某种要求分割成多个小份协议,为了让这些小份协议更好的相互配合,于是就引出了协议分层(上层调用下层提供的功能,下层为上次提供服务)的概念

协议分层的好处

  • 上层协议直接调用下层协议提供的接口即可,不需要了解下层协议具体的实现细节
  • 某一层协议被替换掉后,不会对其他层造成影响

参考打电话,1.只需要会说汉语就可以打电话,不需要知道电话是如何工作的  2.电话从无线电话变成有线电话,对你打电话没有任何的影响

二. OSI七层网络协议

 OSI七层网络协议将网络分为七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

  • 应用层:提供应用程序之间的通信服务(电子邮件——电子邮件协议)
  • 表示层:负责数据的格式化和转换
  • 会话层:负责建立、管理和终止会话
  • 传输层:负责数据(起点和终点)两个节点之间的数据传输(端到端的传输)
  • 网络层:负责起点和终点之间的道路(路径规划)
  • 数据链路层:负责两个相邻节点之间的通信
  • 物理层:负责在一条物理通信线路上传输比特

这是最初设计的七层网络协议,后来在实施的过程中,发现太麻烦了,于是进行了简化,现在最常用的是TCP/IP五层网络协议

三. TCP/IP五层网络协议

 TCP/IP五层网络协议将网络分为了五层:应用层,传输层,网络层,数据链路层,物理层

  • 应用层:明白数据要用来干什么,实现什么功能 (安排数据在应用程序中如何使用)
  • 传输层:负责数据(起点和终点)两个节点之间的数据传输(端到端的传输)
  • 网络层:负责起点和终点之间的道路(路径规划)
  • 数据链路层:负责两个相邻节点之间的通信
  • 物理层:负责在一条物理通信线路上传输比特

对于程序员来说,下面四层已经被操作系统内核和硬件实现好了,程序员只需要关注传输层提供的接口调用和具体代码要实现怎么样的功能即可


四. 网络设备所在分层

设备工作层级核心功能
中继器、集线器物理层放大电信号、扩展物理传输距离,广播信号
网桥、交换机数据链路层基于 MAC 地址转发数据帧,隔离冲突域(网桥)或提供高效局域网通信(交换机)。
路由器网络层基于 IP 地址路由数据包,连接不同网络,选择最优路径。
负载均衡器传输层分配流量、提高系统可用性和性能,处理TCP/UDP数据段
网关应用层用于连接不同类型的网络,处理应用层协议转换

 事实上,很多的交换机和路由器功能更强大,更复杂,交换机具有路由器的一些功能(可以工作在网络层),路由器也具有交换机的一些功能(可以工作在数据链路层)


五. 封装

发送方发送数据,当数据从应用层传递到物理层时(从上到下),每一层都会在数据上添加自己的协议头(或尾),形成新的数据单元。

1)应用层

  • 应用层使用应用层协议,将用户的数据封装成应用层数据单元
  • 应用程序调用操作系统提供的API,将这个数据单元交给传输层
  • 应用层主要使用的协议:HTTP协议,HTTPS协议,根据实际情况自己定义协议

2)传输层

  • 传输层使用传输层协议,将应用层数据单元添加TCP/UDP报头封装成TCP/UDP数据报
  • 下层(网络层)提供API,传输层调用API将数据报传给网络层,这样下层就可以处理这个数据
  • 传输层主要使用的协议:UDP协议和TCP协议

3)网络层

  •  网络层使用IP协议,将TCP/UDP数据报添加IP报头并封装成IP数据包
  • 下层(数据链路层)提供API,网络层调用下层API将IP数据包传给下层,这样数据链路层就可以处理数据
  • 网络层主要使用的协议:IP协议

4)数据链路层

  •  数据链路层使用以太网协议,将IP数据报添加以太网帧头和帧尾并封装成以太网数据帧
  • 下层(物理层)提供API,数据链路层调用API将以太网数据帧传给下层,这样物理层可以处理数据
  • 数据链路层主要使用的协议:以太网协议

5)物理层 

  •  将以太网数据帧,二进制结构的数据转换成光信号/电信号/电磁波,然后进行发送 

添加报头的过程就是封装,报头虽然起不到保护数据的操作,但是可以承载一些关键信息用来转发数据信息  

上述这些一系列的操作,数据从你的电脑发送了出去(刚出家门),具体路上怎么走的,我们不管,假设数据到接收端了,数据怎么处理,处理的过程就是分用

六. 分用

1)物理层

  •  将接受到的光信号/电信号/电磁波信号,这些物理信号转换成数字信号(二进制信号)
  • 调用上层协议提供的API,将这些数据传输给上层, 这样数据链路层就可以处理数据

2)数据链路层

  • 得到下层传来的二进制数据,根据以太网协议,按照以太网数据帧的格式对二进制数据进行解析,去除帧头和帧尾,取出其中的载荷部分
  • 通过调用上层(网络层)提供的API,将载荷部分交给上层协议,网络层就可以处理数据

3)网络层

  • 得到下层传来的IP数据包,根据IP协议,按照IP数据包的格式进行解析,去除IP报头,取出载荷部分
  • 通过调用上层(传输层)提供的API,将载荷部分交给上层,传输层就可以处理数据

4)传输层

 ​​​

  •  得到下层传来的UDP数据报,根据UDP协议,按照UDP数据报的格式进行解析,去除UDP报头,取出其中的载荷部分
  • 通过调用上层(应用层)提供的API,将载荷部分交给上层,应用层就可以处理数据

5)应用层

  •  得到下层传来的数据,按照应用层协议,根据对应的格式来解析数据,得到这些数据后,根据自己要实现的功能来处理这些数据

七. 传输中的封装和分用

在现实情况中,两台主机一般不是通过网线直连的 ,而是通过一系列的交换机或者路由器进行网络传输

  • 在经过交换机或者路由器的过程中,也需要进行封装和分用的过程
  • 在封装和分用的过程中,得到载荷部分和关键信息
  • 由于网络设备的不同,导致分层的程度也不同

1)交换机

 如果是交换机,则封装分用到数据链路层

  1. 物理层得到光电信号,将光电信号转换成二进制数据,交给数据链路层
  2. 交换机的数据链路层会对得到太网数据帧进行解析,

(1)取出载荷部分(2)解析帧头中的关键信息

根据帧头中的关键信息,决定数据往哪里发送,再进一步构建出新的以太网数据帧

 将这个新的以太网数据帧通过物理层发送出去

2)路由器 

 如果是路由器,则封装分用到网络层

  1. 物理层得到光电信号,将光电信号转换成二进制数据,交给数据链路层
  2. 数据链路层得到以太网数据帧,根据数据帧拿到载荷,将载荷(IP数据包)交给网络层
  3. 网络层得到IP数据包,网络层将会对IP数据包进行解析

(1)取出载荷部分(2)解析帧头中的关键信息

根据报头中的关键信息,决定数据往哪里发送,再进一步构建出新的IP数据包

将这个新的IP数据包交给数据链路层(加上帧头帧尾),再交给物理层(二进制数据转换成光电信号)继续传输


 八. 数据单位术语

 常见的单位有:包(packet)段(segment)报(datagram)帧(frame)

 IP数据包,TCP数据段,UDP数据报,以太网数据帧


 点赞的宝子今晚自动触发「躺赢锦鲤」buff!

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

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

相关文章

科技快讯 | 阿里云百炼MCP服务上线;英伟达官宣:CUDA 工具链将全面原生支持 Python

李飞飞团队最新AI报告:中美模型性能差距近乎持平 4月8日,斯坦福大学以人为本人工智能研究所发布《2025年人工智能指数报告》。报告显示,2023年AI性能显著提升,AI应用加速,投资增长,中美AI模型差距缩小。报告…

猫咪如厕检测与分类识别系统系列【三】融合yolov11目标检测

✅ 前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠…

2025年燃气证书:传承与发展的行业纽带

回溯历史长河,能源的利用与人类文明的发展息息相关。从远古时期的钻木取火,到如今广泛应用的燃气能源,每一次能源的变革都推动着社会的巨大进步。而在现代燃气行业蓬勃发展的背后,燃气从业人员资格证书正扮演着传承与发展的重要纽…

在Ubuntu下进行单片机开发是否需要关闭Secure Boot

1. Secure Boot的作用 功能:Secure Boot是UEFI的安全功能,旨在阻止未经验证的驱动或操作系统启动,防止恶意软件篡改引导过程。 影响范围:它主要限制的是操作系统启动阶段加载的内核级驱动(如显卡驱动、虚拟化模块&…

国达陶瓷重磅推出陶瓷罗马柱外墙整装尖端新产品“冠岩臻石”

近日,记者在佛山国达建材有限公司(以下简称国达陶瓷)董事长杨建平处了解到,该公司重磅推出的“冠岩臻石”新产品,是属于陶瓷罗马柱外墙整装产品中的尖端产品。新产品自面市之后,深受高端用户的青睐与认可。…

【分享】Ftrans文件摆渡系统:既保障传输安全,又提供强集成支持

【分享】Ftrans文件摆渡系统:既保障传输安全,又提供强集成支持! 在数字化浪潮中,企业对数据安全愈发重视,网络隔离成为保护核心数据的关键防线,比如隔离成研发网-办公网、生产网-测试网、内网-外网等。网络…

实验一 字符串匹配实验

一、实验目的 1.熟悉汇编语言编程环境和DEBUG调试程序的使用。 2.掌握键盘输入字符串的方法和分支程序的设计。 二、实验内容 编程实现:从键盘分别输入两个字符串,然后进行比较,若两个字符串的长度…

添加登录和注册功能

先写前端再写后端 前提&#xff1a;ideavue3mybatisspringBoot3前后端分离实现对一张表的增删改查&#xff08;完整代码版&#xff09;-CSDN博客 项目地址 1.添加一个Login.vue视图 <template><div class"login_container"><div class"login…

【Windows】系统安全移除移动存储设备指南:告别「设备被占用」弹窗

Windows系统安全移除移动存储设备指南&#xff1a;告别「设备被占用」弹窗 解决移动硬盘和U盘正在被占用无法弹出 一、问题背景 使用Windows系统时&#xff0c;经常遇到移动硬盘/U盘弹出失败提示「设备正在使用中」&#xff0c;即使已关闭所有可见程序。本文将系统梳理已验证…

Springboot下载文件, 文件名中文是乱码, 空格变加号

默认把文件名放上去, 中文会乱码, 文件名种有空格, 就会被截断 public void download(HttpServletResponse response){// 文件名先进行url编码, 避免乱码问题// 把用%20进行替换fileName URLEncoder.encode(fileName, "UTF-8").replace("", "%20&qu…

MySQL 超详细安装教程与常见问题解决方案

一、MySQL 安装教程 1. Windows 系统安装&#xff08;以 MySQL 8.0 为例&#xff09; 步骤 1&#xff1a;下载 MySQL Installer 访问 MySQL 官网下载页面。 选择 Windows (x86, 64-bit), MSI Installer&#xff08;推荐使用完整版 mysql-installer-web-community-8.0.xx.xx.…

【cuda学习日记】5.2.1 共享内存额外篇

共享内存(Shared Memory) 1.是一种低延迟、高带宽的片上内存 2.由同一个Block内的所有线程共享 3.生命周期与Block相同 4.访问速度比全局内存快约100倍 Block(线程块) 1.GPU执行的基本单位&#xff0c;包含一组线程 2.多个Block组成Grid(网格) 3.Block内的线程可以通过共享内存…

[250411] Meta 发布 Llama 4 系列 AI 模型 | Rust 1.86 引入重大语言特性

目录 Llama 4 家族登场&#xff1a;开启原生多模态 AI 创新新纪元Rust 1.86.0 版本发布亮点主要新特性与改进其他重要信息 Llama 4 家族登场&#xff1a;开启原生多模态 AI 创新新纪元 Meta AI 近日发布了其最新、最先进的 Llama 4 系列人工智能模型&#xff0c;标志着 AI 技术…

ArrayList 和 数组 的区别

定义与本质 数组&#xff1a;是 Java 语言内置的数据结构&#xff0c;是存储相同类型元素的连续内存空间。它是一个基本的语言特性&#xff0c;在内存中是一块连续的区域。ArrayList&#xff1a;是 Java 集合框架中的一个类&#xff0c;属于动态数组。它是基于数组实现的&#…

​‌FireCrawl‌爬虫工具​, Craw4ai

‌FireCrawl‌是一款开源的AI爬虫工具&#xff0c;专门用于Web数据提取&#xff0c;并将其转换为Markdown格式或其他结构化数据。FireCrawl特别适合处理使用JavaScript动态生成的网站&#xff0c;能够自动抓取网站及其所有可访问的子页面内容&#xff0c;并将其转换为适合大语言…

通信原理-非线性调制

今天给大家带来的是关于通信原理中非线性调制的内容,一起来看看吧&#xff01;&#xff01;&#xff01; 1.角度调制 2.FM与PM的区别 3.单音调制FM 4.窄带调频 5.宽带调频 5.1FM信号的频谱 5.2FM信号的带宽 5.3FM信号的功率分配 6.FM信号的产生与解调 6.1FM信号的产生 6.2FM…

文心一言开发指南03——千帆大模型平台产品优势

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 千帆大模型平台作为百度智能云推出的企业级大模型一站式平台&#xff0c;具有显著的产品优势。千帆大模型平台以其基础强大、流程完善、运行稳定和安全可靠的产品优势成为企…

mysql DQL

一.基本查询 1.查询多个字段 2.查看所有字段 3.设置别名 4.去除重复记录 二.条件查询 1.大于小于等于 2.查询 身份证为空的 没有所以没有记录 3.在15到20这个区间范围内 4.or/in 或者 4.like 匹配 &#xff08;_匹配单个字符 %匹配多个字符&#xff09; 查询员工信…

关于 软件开发模型 的分类、核心特点及详细对比分析,涵盖传统模型、迭代模型、敏捷模型等主流类型

以下是关于 软件开发模型 的分类、核心特点及详细对比分析&#xff0c;涵盖传统模型、迭代模型、敏捷模型等主流类型&#xff1a; 一、软件开发模型分类及核心特点 1. 瀑布模型&#xff08;Waterfall Model&#xff09; 核心特点&#xff1a; 线性阶段划分&#xff1a;需求分…