一文带你了解TCP/IP模型以及封装和分用

文章目录

  • 1. 网络协议
  • 2. OSI七层网络模型
  • 3.TCP/IP (五层/四层)
  • 4. 封装和分用

在这里插入图片描述

1. 网络协议

网络协议是计算机网络中用于规定数据在网络中传输和处理的规则,它定义了在网络中通信的格式、规范和顺序。网络协议可以分为不同的层次,每个层次负责不同的功能和任务,通过协议栈的方式实现网络通信。

常见的网络协议包括:

  1. 传输控制协议(TCP):TCP协议是一种面向连接的、可靠的传输协议,它通过建立连接、数据分段、流量控制、拥塞控制等机制来实现可靠的数据传输。
  2. 网络互联协议(IP):IP协议是一种无连接的、不可靠的协议,它负责将数据包从源主机传输到目标主机,并为它们分配唯一的IP地址。
  3. 超文本传输协议(HTTP):HTTP协议是一种用于在Web上传输超文本的协议,它定义了浏览器和服务器之间的通信规则,包括请求和响应的格式、状态码、请求方法等。
  4. 网际组管理协议(ICMP):ICMP协议是一种用于传输与IP协议相关的消息的协议,它用于网络异常、错误、路由信息等的传输和通知。
  5. 动态主机配置协议(DHCP):DHCP协议是一种用于自动分配IP地址的协议,它允许在局域网上自动分配和管理IP地址,避免了手动配置的繁琐性。
  6. 域名系统(DNS):DNS协议是一种用于将域名转换为IP地址的协议,它通过将域名映射到相应的IP地址,实现了人类可读的域名与计算机可理解的IP地址之间的转换。
  7. 文件传输协议(FTP):FTP协议是一种用于在计算机之间传输文件的协议,它支持文件上传、下载、删除、重命名等操作。
  8. 简单邮件传输协议(SMTP):SMTP协议是一种用于在计算机之间传输电子邮件的协议,它定义了邮件的传输格式和通信规则。

网络协议分层有两种: OSI七层网络模型和TCP/IP(五层/四层)

2. OSI七层网络模型

  1. 应用层:负责处理用户应用程序之间的通信和数据交换。这包括应用程序协议(如HTTP、FTP、SMTP等)、资源定位和身份验证等功能。
  2. 表示层:负责数据格式的转换和加密解密等。它可确保不同计算机之间的数据能够正确交换和解释,并处理数据的压缩和加密。
  3. 会话层:负责建立、管理和终止会话(会话是应用程序之间的通信会话)。它提供了会话控制和同步功能,以确保数据在不同应用程序之间的有序传输。
  4. 传输层:负责在网络中的端到端通信提供可靠性和数据流控制(如TCP),或者提供无连接的、不可靠的数据传输(如UDP)。它还处理数据的分段和重组以及错误检测和纠正。
  5. 网络层:负责处理不同网络之间的路由和转发,以及数据包的传输。这包括IP地址的分配和路由选择。
  6. 数据链路层:负责将数据包转换为比特流并在网络的物理媒介上进行传输。它通过物理地址(如MAC地址)来识别网络设备,提供了数据帧的传输和错误检测等功能。
  7. 物理层:负责在物理媒介上传输比特流。它定义了电压、电缆规范、传输速率等细节,确保数据能够在物理媒介上正确传输。

OSI七层网络模型其实并不适用,了解即可

3.TCP/IP (五层/四层)

对于TCP/IP是五层还是四层,其实都是对的.有的地方说五层是因为把"物理层"算进去了. 这一层属于"硬件". 而其它四层都属于"软件". 所以导致有的地方没把物理层算进去.

与OSI七层模型相比,TCP/IP模型更简洁:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层

4. 封装和分用

假设张三要在微信上给李四发一句"hello"

在这里插入图片描述
上述就是一个简单的封装过程

  • 应用层对应着应用程序
  • 传输层是操作系统内核实现的,操作系统会提供一系列API给应用程序,调用这些系统API就可以把应用层的数据交给传输层
  • 传输层有很多协议,最典型的就是TCP,以TCP为例,TCP协议就要在原来数据的基础上添加TCP协议报头.传输层再把数据交给网络层
  • 网络层中最典型的协议就是IP协议,IP协议把整个TCP数据报视为整体,作为载荷部分,再添加IP协议报头
    数据链路层中的协议也很多,最典型的就是"以太网"

封装是由上往下,依次添加信息,

在这里插入图片描述
当李四这个客户端收到张三发来的数据报时

  • 数据链路层会根据以太网协议,去除帧头和帧尾,拿到载荷部分并交给网络层
  • 网络层会根据IP协议,去除IP协议报头,拿到载荷部分并交给传输层
  • 传输层根据TCP协议,再去除TCP报头,再交给应用层
  • 应用层再把数据进行解析,再显示在应用程序上

而分用则是从下往上,依次去除添加的信息.

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux大神Brendan Gregg 性能之巅 第二版(systems performance)阅读心得(第一章)

笔者从事某副省级市政务云系统运维7年,最近被下面这张图吸引开始阅读Brendan Gregg的《性能之巅 第二版》,下面将结合自己的运维经验一起来看看这本700多页的书。 1、绪论 1.1 系统性能 系统性能的影响因素涉及软件和硬件,CPU、内存、磁盘io…

opencv 30 -图像平滑处理01-均值滤波 cv2.blur()

什么是图像平滑处理? 图像平滑处理(Image Smoothing)是一种图像处理技术,旨在减少图像中的噪声、去除细节并平滑图像的过渡部分。这种处理常用于预处理图像,以便在后续图像处理任务中获得更好的结果。 常用的图像平滑处理方法包括…

Redis的订阅者和发布者模式、主从双备和密码认证

四、Redis的订阅者和发布者模式、主从双备和密码认证 1、Redis的订阅者和发布者模式 两个数据库,一个是10,一个是15。订阅频道: 向频道推数据: 接收到数据: 2、redis的高可用(HA)主从双备 模拟…

idea application.yml配置文件没有提示或读不到配置

1.首先确定你的resources文件夹正常且yml文件图表和下面一样 不一样的右键去设置 2.确保你已经缩进了且层级关系正常 3.如果以上都不是,先考虑删除.idea重开试试 4.以上解决不了就装以下两个插件解决

vue - 【完整源码】实现评论区发表评论、回复评论、评论盖楼等功能,前端PC网站/移动端H5实现多用户评论与回复功能(详细示例源码,一键复制开箱即用)

效果图 在vue项目开发中,实现一个类似社交软件的评论区发表留言及回复等评论功能效果,可以无限回复盖楼。 一、功

Hololens2二维码识别

配置 目前大部分Hololens进行二维码识别的开发都是基于ZXing的包完成,首先需要完成zxing.unity.dll,很多地方应该都能下载,也可以直接上github上下载(下载点这里)。 下载时注意一下版本就好,过老的zxing兼…

Leetcode-每日一题【剑指 Offer 39. 数组中出现次数超过一半的数字】

题目 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2 限制&#xff1a; 1 < 数组长度 < 50000 解题思路 前置知…

无人机电力巡检方案在电网安全与维护中的应用

目前&#xff0c;无人机技术已经在各行各业都有广泛的应用&#xff0c;其中之一就是在电力巡检中的应用。无人机电力巡检方案以其高效、安全、精准的特点&#xff0c;为电网安全与维护带来了重大突破和进步。 一、无人机电力巡检方案是高效巡检的利器 传统的电力巡检方式需要人…

【深度学习】Vision Transformer论文,ViT的一些见解《 一幅图像抵得上16x16个词:用于大规模图像识别的Transformer模型》

必看文章&#xff1a;https://blog.csdn.net/qq_37541097/article/details/118242600 论文名称&#xff1a; An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale 论文下载&#xff1a;https://arxiv.org/abs/2010.11929 官方代码&#xff1a;https:…

Libevent开源库的介绍与应用

libeventhttps://libevent.org/ 一、初识 1、libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库&#xff0c;主要有以下几个亮点&#xff1a;事件驱动&#xff08; event-driven&#xff09;&#xff0c;高性能;轻量级&#xff0c;专注于网络&#xff…

RocketMQ 事务消息

事务消息是 RocketMQ 的高级特性之一 。这篇文章&#xff0c;笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。 1 应用场景 举一个电商场景的例子&#xff1a;用户购物车结算时&#xff0c;系统会创建支付订单。 用户支付成功后支付订单的状态…

微信小程序选项卡切换(滑动切换,点击切换)

效果如下&#xff1a;可点击切换&#xff0c;滑动切换 代码如下 这个可以在项目用 index.wxml <view classtopTabSwiper><view classtab {{currentData 0 ? "tabBorer" : ""}} data-current "0" bindtapcheckCurrent>选项一&…

警惕!中科院预警,Frontiers这本不被收录!2023年7月EI目录已更新!(附全年下载)

2023年7月EI期刊目录更新 爱思唯尔官网近日更新了EI期刊目录&#xff0c;此次更新是2023年7月1日&#xff0c;与上次更新&#xff08;2023年6月&#xff09;相比&#xff0c;有1本期刊名称在Serials&#xff08;连续出版&#xff09;列表中搜索不到&#xff0c;详情如下&#…

Java课题笔记~ 动态SQL详解

一、动态 sql 是什么&#xff1f; 1、动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中&#xff0c;开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。 例如&#xff0c;拼接时要确保添加了必要的空格&#xff0c;还要…

AgileBoot - 全栈项目启动

AgileBoot-Back-End: 基于Ruoyi做了大量重构优化的基础快速开发框架。采用Springboot Vue 3 Mybatis Plus 更面向对象的业务建模 面向生产的项目。&#xff08;非玩具项目&#xff09; 首先克隆代码&#xff0c;同是克隆前端和后端的代码。 前端代码启动&#xff1a; np…

阿里云容器服务 Serverless 版(ACK Serverless)全新升级

7 月 31 日&#xff0c;阿里云智能云原生应用平台负责人丁宇宣布&#xff0c;容器服务 Serverless 版 ACK Serverless 全新升级。 ACK Serverless&#xff1a;免运维、极致弹性的 K8s 全托管服务 阿里云在 2018 年发布了首个 Serverless 容器服务 ASK&#xff0c;其本质是将容…

音视频--DTMF信号发送及检测

参考资料 https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%9F%B3%E5%A4%9A%E9%A2%91 1. DTMF是什么 1.1 DTMF定义 双音多频信号&#xff08;英语&#xff1a;Dual-Tone Multi-Frequency&#xff0c;简称&#xff1a;DTMF&#xff09;&#xff0c;电话系统中电话机与交换机之间…

list删除重复元素几种思路

文章目录 list删除重复元素几种思路hashsetStream流删除所有重复元素 list删除重复元素几种思路 hashset List<String> list2 new ArrayList<>();list2.add("a");list2.add("b");list2.add("a");Set<String> set new HashS…

uni-app 微信小程序自定义导航栏

一、效果图 二、导航栏的组成 上面的导航栏主要由状态栏&#xff08;就是手机电量显示栏&#xff09;和小程序的导航栏组成&#xff0c;android手机一般为48px&#xff0c;ios手机一般为44px 三、开发步骤 1、设置navigationStyle:custom {"path": "pages/v…

1.初识typescript

在很多地方的示例代码中使用的都是ts而不是js&#xff0c;为了使用那些示例&#xff0c;学习ts还是有必要的 JS有的TS都有&#xff0c;JS与TS的关系很像css与less ts在运行前需要先编译为js&#xff0c;浏览器不能直接运行ts 目录 1 编译TS的工具包 1.1 安装 1.2 基本…