2023.9.7 关于 TCP / IP 的基本认知
目录
网络协议分层
TCP/IP 五层(四层)模型
应用层
传输层
网络层(互联网层)
数据链路层(网络接口层)
物理层
网络数据传输的基本流程
网络协议分层
为什么需要分层?
- 分层之后,类似于面向接口编程,定义好两层的接口规范,让双方遵循这个规范来对接,这样有利于更好的扩展和维护
TCP/IP 五层(四层)模型
- TCP/IP 是一种网络通信协议族,是互联网的核心协议,也是全球广泛使用的网络通信标准,定义了数据如何在网络中分组、传输、路由和接收方式,其中 TCP 为传输控制协议,IP 为 Internet 协议!
- TCP 负责数据的可靠传输,确保数据的完整性和有序性
- IP 负责数据的分组和路由,将数据从源地址传递到目的地址
应用层
- 应用层定义了应用程序之间的通信规则和数据格式
- 我们的网络编程主要是针对应用层,经常涉及实现一个应用层协议
- 该层包含了各种应用层协议
HTTP
- 用于 Web 应用的写于,用于在客户端和服务器之间的通信协议,用于请求和传输网页、图片、视频和其他资源
HTTPS
- 是 HTTP 的安全版本,通过 SSL 或 TLS 加密协议,提供了安全的数据传输,其在进行敏感数据传输时常被使用,例如网上银行和电子商务网站
DNS
- 用于域名解析协议,他将人类可读的域名转换为计算机可识别的 IP 地址,使得用户能够通过域名访问互联网上的资源
FTP
- 用于文件传输协议,允许在客户端和服务器之间进行文件上传、下载和管理,其提供了一种标准的方法来访问远程文件系统
SSH
- 用于安全远程登录和文件传输的协议,其提供了加密和身份验证机制,用于安全地远程管理网络设备和传输文件
SMTP
- 用于电子邮件传输的协议,它定义了电子邮件的发送方式、邮件服务器之间的通信规则和数据格式,使得电子邮件能够在不同邮件服务器之间进行传输和投递
POP3
- 用于接收电子邮件的协议,它允许邮件客户都安从邮件服务器上下载电子邮件,并在客户都安上存储和管理邮件
IMAP
- 用于接收和管理电子邮件的协议,IMAP允许客户端在邮件服务器上直接操作邮件,包括查看、删除、移动和标记邮件等操作
传输层
- 负责两台主机之间的数据传输
- 包括传输控制协议 TCP 和 用户数据报协议 UDP
TCP
- 提供可考的、面向连接的数据传输,确保数据的可靠性和有序性
UDP
- 提供不可靠的、无连接的数据传输,适用于实时性要求较高的应用
网络层(互联网层)
- 负责地址管理和路由选择
- 包括 Internet 协议 (IP)
IP
- IP 协议定义了数据报文的结构和寻址规则,使得数据能够在不同网络之间进行传递
数据链路层(网络接口层)
- 负责处理与物理网络介质的通信,设备之间的数据帧的传送和识别
- 如以太网、Wi-Fi 等
物理层
- 负责在物理媒介上传输原始的比特流,将数据从发送方传输到接收方
注意:
因为物理层我们考虑的相对较少,所以通常也称 TCP/IP 为四层模型
网络数据传输的基本流程
实例假设:
- 用户 A 通过微信给用户 B 发送一条消息 "你吃了嘛?"
第一步:进行封装(用户A)
1.应用层形成协议报文
- 假设微信内部约定好一个应用协议,这个一般由程序员所定义,我们不知道,所以假设为下面这样
- 把用户输入的字符串构造成约定好的应用层数据报文
- 随后数据报文便会通过 调用操作系统内核所提供的一些 API 来传递给传输层,因为传输层正是操作系统内核所实现的
2.传输层添加 UDP 报头
- 在传输层,需要把应用层数据报文构造成传输层数据报文
- 此处是使用 UDP 报头,从而仅需在 应用层数据报文 的基础上加个 UDP 报头 即可
- UDP 报头也是一个特定格式的字符串,涉及到源端口和目的端口,将其与数据拼到一起,进而传输给网络层
3. 网络层添加 IP 报头
- 在网络层,需要把传输层数据报文构造成网络层数据报文
- 仅需在 传输层数据报文 的基础上加个 IP 报头
- IP 报头也是一个特定格式的字符串,涉及到 源 IP 和 目的 IP,将其与传来的数据拼到一起,进而传输给数据链路层
4.数据链路层添加帧头和帧尾
- 数据链路层中最典型的是 以太网
- 基于上述数据我们还需再将其打包一个 以太网数据帧
- 帧头包含了 目的MAC地址,用于指示数据帧的接收方
- 帧头包含了 源MAC地址,用于指示数据帧的发送方
- 帧尾包含帧校验序列 FCS 组成,用于检查数据帧是否在传输过程中出现错误的校验值
数据链路层继续将该数据传输给物理层
5.物理层进行解析传输
- 物理层将上述二进制数据转换成电信号或光信号,完成真正的传输
第二步:进行分用操作(用户B)
总结:
- 通信双方需使用相同的协议才能进行通信
- 这五层协议之间有明确的层级关系,只有相邻的两层之间才能进行交互,不能跨层交互
- 上层协议要调用下层协议进行封装操作,下层协议要给上层协议提供支持要进行解析操作
相关文章:
2023.9.7 关于 TCP / IP 的基本认知
目录 网络协议分层 TCP/IP 五层(四层)模型 应用层 传输层 网络层(互联网层) 数据链路层(网络接口层) 物理层 网络数据传输的基本流程 网络协议分层 为什么需要分层? 分层之后,…...
Python 图片处理
Step1 提取PDF中的图片,并另存 Step2 去除灰色纸张背景 import PyPDF2 from PIL import ImageEnhance,Image,ImageFilter import cv2 import numpy as np from skimage.filters import unsharp_mask from skimage.filters import gaussian from skimage.restora…...
信道估计 | 信道
文章目录 定义分类LS 估计MMSE估计LS vs MMSE 定义 从接收数据中将假定的某个信道模型参数估计出来的过程,如果信道是线性的,信道估计是对系统的冲击响应进行估计,需强调的是,信道估计是信道对输入信号影响的一种数学表示&#x…...
腾讯发布超千亿参数规模的混元大模型;深度学习与音乐分析与生成课程介绍
🦉 AI新闻 🚀 腾讯发布超千亿参数规模的混元大模型 摘要:腾讯在2023腾讯全球数字生态大会上发布混元大模型,该模型拥有超千亿的参数规模和超2万亿 tokens 的预训练语料。混元大模型将支持多轮对话、内容创作、逻辑推理、知识增强…...
[html]当网站搭建、维护的时候,你会放个什么界面?
效果图: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网站建设中</title><style>/* 基础样式 */body, html {margin: 0;padding: 0;height: 100%;font-family: Arial, sa…...
javaee spring aop 的五种通知方式
spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns:aop"http://www.springframework.…...
【Redis】3、Redis主从复制、哨兵、集群
Redis主从复制 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器…...
vcpkg方式安装zlmediakit
主要参考: https://github.com/ZLMediaKit/ZLMediaKit/wiki/vcpkg%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85zlmediakit vcpkg的相关配置不在本文论述。很多库或源码下载不下来,通过第三方下载后放在download目录下,名称要和vcpkg期望的一致。可通过云服务器…...
【大数据】基于 Flink CDC 高效构建入湖通道
基于 Flink CDC 高效构建入湖通道 1.Flink CDC 核心技术解析2.CDC 数据入湖入仓的挑战2.1 CDC 数据入湖架构2.2 CDC 数据 ETL 架构 3.基于 Flink CDC 的入湖入仓方案3.1 Flink CDC 入湖入仓架构3.2 Flink CDC ETL 分析3.3 存储友好的写入设计3.4 Flink CDC 实现异构数据源集成3…...
微信小程序开发---网络数据请求
目录 一、小程序中网络数据请求的限制 二、发起get请求 三、发起post请求 一、小程序中网络数据请求的限制 具体有两个限制: (1)只能请求HTTPS类型的接口 (2)必须将接口的域名添加到信任列表中,在调试的时…...
vulkan学习路径
1.学习路径 了解图形渲染基础知识: 学习计算机图形学基础概念,包括坐标系统、三角形渲染、光照模型等。可以参考经典的图形学教材,如《Real-Time Rendering》和《Computer Graphics: Principles and Practice》。了解图形API的发展历史&#…...
NIFI使用InvokeHTTP发送http请求
说明 这里介绍四种平时常用的http请求方法:GET、POST、PUT、DELETE。 在官方的介绍文档中关于InvokeHTTP处理器的描述是这么说的: An HTTP client processor which can interact with a configurable HTTP Endpoint. The destination URL and HTTP Met…...
Spire.xls+excel文件实现单据打印
报表和单据打印,通常都是使用fastreport之类的,因为有了现成的xls模板样式,如果转成fastreport那还需要花时间,是用spire.xls这个玩意简单,超好用。 一.引用 using Spire.Xls; 二.基本的操作 // 创建工作簿ÿ…...
win10系统配置vmware网络NAT模式
1,查看win10 IP地址:ipconfig 2, vmware设置:编辑>>虚拟网络编辑器>>点击添加网络(选择NAT模式) 3,虚拟机网络设置:点击VMware虚拟机>>设置>>网络适配器 4ÿ…...
什么是数据中台,关于数据中台的6问6答6方法
在大数据/数字孪生时代,数据中台已经成为企业治理数据的核心平台。数据中台不仅处理和整合大量数据,还负责数据的存储、管理和保护工作,确保数据的准确性和可用性。数据中台的特点在于其能够提高业务效率,降低成本,增加…...
什么是机器学习中的目标函数和优化算法,列举几种常见的优化算法
1、什么是机器学习中的目标函数和优化算法,列举几种常见的优化算法。 在机器学习中,目标函数和优化算法是两个核心概念。目标函数用于描述模型预测结果与实际结果之间的差距,而优化算法则用于最小化目标函数,从而得到最优的模型参…...
Edge被2345浏览器劫持 解决方法
Edge 被 hao123 劫持解决方法_edge被hao123锁定改不了_小子宝丁的博客-CSDN博客...
uni-app:重置表单数据
效果 代码 <template><form><input type"text" v-model"inputValue" placeholder"请输入信息"/><input type"text" v-model"inputValue1" placeholder"请输入信息"/><input type&quo…...
全球城市汇总【最新】
文章目录 案例图国家城市大洲 数据获取政策: 全球城市、国家、介绍汇总。包含 .csv .sql .xml 格式数据。 案例图 国家 城市 大洲 数据 获取上图资源绑定 https://blog.csdn.net/qq_40374604/category_12435042.html 获取政策: 如找不到在合集中查找…...
Java jvm 内存溢出分析
1.如何分析jvm内存溢出呢 我们经常用visualVm监控Jvm的内存,cpu,线程的使用情况,通常可以根据内存不断增长来判断内存是否存在不释放。但是我们不可能时时盯着去看,这里涉及jvm堆内存配置,堆内存参数配置和调优会在其…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
Linux信号保存与处理机制详解
Linux信号的保存与处理涉及多个关键机制,以下是详细的总结: 1. 信号的保存 进程描述符(task_struct):每个进程的PCB中包含信号相关信息。 pending信号集:记录已到达但未处理的信号(未决信号&a…...
触发DMA传输错误中断问题排查
在STM32项目中,集成BLE模块后触发DMA传输错误中断(DMA2_Stream1_IRQHandler进入错误流程),但单独运行BLE模块时正常,表明问题可能源于原有线程与BLE模块的交互冲突。以下是逐步排查与解决方案: 一、问题根源…...






