TCP/UDP/Socket 通俗讲解

news2024/11/23 2:40:57

1.封包和拆包

封包,就是发送数据前把自己本地需要发送的数据包装一下,即把要发送的原始数据附加上接受者可以辨识到自己身份等一些额外信息。有点像寄一封信,信封上填写的寄件人和收件人以及地址。
拆包,是接收到对方封包后发送来的数据后,拆出原始信息和对方的附加信息,以得知对方的来源。
像是拆信封。

2.TCP/UDP与socket

2.1 TCP 和UDP

  1. TCP 是面向连接的传输,需要通信双方完成三次握手成功后,才能正常通信,四次挥手后断开
    三次握手的目的是为了 通信双方的设备都没有问题,
    四次挥手是为了确保断开的双方本次通信连接时占用的内存全部释放掉。
  2. TCP 是基于字节流的传输,是按字节进行封装和发送的
  3. TCP 是可靠的传输,不允许有丢包,重复发送(对包后重发时),接收顺序出现错误等
  4. UDP 是面向无连接的,不需要握手
  5. UDP 是继续数据报文的,不是一个字节一个字节封装和发送的,是分块发送的
  6. UDP 是不可靠的传输,不负责接收方能够可靠的接收到消息,丢包后不会再做重发等弥补操作
  7. UDP 相比于TCP 来说比较快,效率更高,但它是不可靠的

2.2 socket介绍

  1. 一个端口号只允许一个进程占用,所以我们通过这个端口号就能找到特定的应用程序进程
  2. 两台主机之间通过网络通信需要知道 对方ip(最终解析成的ip)
  3. 想要两台主机的两个进程之间通信,就必须知道对方的 ip和端口号,
    人们把ip加端口号抽象成了套接字,用来完成两台主机之前的进程通信,
    套接字也叫Socket,人们实现了Socket的一些细节,并暴露出一些API接口,
    供开发人员开发,我们叫它Socket API,SocketAPI 是提供开发者调用TCP 和UDP的api,
    开发者不需要了解太底层,直接使用这些Api 就能实现TCP点对点通信,以及UDP的点播,多播和光播通信。

3.TCP/IP 协议族 示意图

在这里插入图片描述

3.主机A 向主机B 通信时 各层数据的流向

应用层(封包) ---->传输层(封包)---->网络层(封包)---->对方网络接口层(封包并发送数据)---->对方网络接口层(拆包)---->对方网络层(拆包)---->对方传输层(拆包)
如下图箭头1,2,3,4,5,6,7,8流向
主机B 向主机A 发送也是类似
在这里插入图片描述

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

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

相关文章

强化学习领域值得关注的国际顶级会议

导读: 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达…

目标检测论文解读复现之十三:改进YOLOv5s的遥感图像目标检测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

LeetCode 0799. 香槟塔

【LetMeFly】799.香槟塔 力扣题目链接:https://leetcode.cn/problems/champagne-tower/ 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香…

几何算法——介绍

几何算法——介绍介绍1 关于几何引擎介绍2 关于模型的表达2.1 CSG (Constructive Solid Geometry )表示2.2 Brep (Boundary Representation)表示3 关于翼边结构和半边结构3.1 翼边结构3.2 半边结构4 关于边界表示法4.1 ACIS中的Brep表示很早之前就想写一些几何算法相关的文章&a…

一汽大众迈腾车前悬架系统设计

目 录 摘要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2国内外的研究现状 1 1.3本文的主要研究内容 3 第二章 悬架的结构分析与整体参数设计 4 2.1悬架系统的简介与分类 4 2.1.1悬架系统的简介 4 2.1.2悬架系统的分类 5 2.2独立悬架的特点 5 2.3整体参数的设计 6 2.3…

VM Tools安装过程

系列文章目录 VM Tools安装过程 VM Tools安装过程系列文章目录一、VM Tools安装步骤二、安装后无法使用问题解决办法之一一、VM Tools安装步骤 此时系统会弹出装载虚拟CD驱动器 点击打开文件 打开文件后可将 文件夹里的文件全部复制到自己的某个文件夹中,比如桌面 注…

延误件如何筛选 物流查询分享查询方法筛选延误三天以上物流件

当你拥有大量快递单号需要查询时,如何快速查询出每个单号的物流信息呢?分析物流更新是否及时,有没有延误,今天小编给大家分享一款软件批量查询物流,并且筛选出延误件,一起来看看吧! 第一步&…

Linux进阶-编辑器

常用两个编辑器 gedit编辑器:依赖图形界面。 vi/vim编辑器:sudo apt install vim(安装vim编辑器) vim与vi的区别: vim是vi的升级版本,兼容vi; vi按u只能撤销上次命令,而在vim里…

QT之OpenGL摄像机

QT之OpenGL摄像机1. 概述1.1 摄像机创建2. 旋转(欧拉角)3. demo示例4. 参考1. 概述 OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉。 当我们讨论摄像机/观察空间…

OpenCV图像处理——(实战)信用卡识别

总目录 图像处理总目录←点击这里 十四、信用卡数字识别 识别的图片模板图片 14.1、模板图片处理 读入图片->灰度图->二值图->计算轮廓->存储每一个模板 如果是所需模板匹配只有一个,课直接读入灰度图像即可 这里有10个模板(0-9),所以需…

学校教务管理系统的设计与实现--Word文档可在最后链接处下载,无code

一 设计背景 1.1 课题现状 国家经济水平逐渐的提升,各行各业发展也稳步向前,其业务也繁多起来。慢慢的对其管理需求也要求提高,因此很多行业临着新的困难和机遇,现如今要怎么利用利于对自身发展需要的而且适用的种种技术来提升自身…

【PID优化】基于正余弦算法 (SCA)优化PID实现微型机器人系统位置控制附simulink模型和matlab代码

​✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法…

CMake中math的使用

CMake中的math用于评估数学表达式&#xff0c;其格式如下&#xff1a; math(EXPR <variable> "<expression>" [OUTPUT_FORMAT <format>]) 计算数学<expression>并将<variable>设置为结果值。expression的结果必须可以表示为64位有符号…

用python gdal裁剪栅格数据提取添加xy经纬度和栅格值

用python gdal裁剪栅格数据提取添加xy经纬度和栅格值 问题&#xff1a;把遥感影像转为一张表。 现有一全球经济作物数据alfalfa的产量。 alfalfa是一种亚洲西南部多年生草本植物&#xff0c;是重要的经济作物。在图中也可以看到&#xff0c;主要分布在热带和南美洲。 我们想把…

Android PackageManager 基本使用

Android系统为我们提供了很多服务管理类&#xff0c;PackageManager管理类&#xff0c;它的主要职责是管理应用程序包。 通过PackageManager获取的应用程序信息来自AndroidManifest.xml。 AndroidManifest.xml是Android应用程序中最重要的文件之一&#xff0c;它是Android程序…

java语法复习:注解

目录 一.注解概念 二.常用注解(1) Override: 限定某个函数必须重载其他函数&#xff0c;该注解只能用于函数(2) Deprecated&#xff1a;用于表示某个程序元素&#xff08;类、函数&#xff09;已过时(3) SuppressWarnings&#xff1a;抑制编译器警告 三.元注解 一.注解概念 …

山东大学线性代数-2-行列式

目录 2.2 n阶行列式 2.2.1 代数余子式和余子式 2.2.2 n阶行列式的定义 2.3 特殊行列式的计算 2.3.1 对角行列式 2.3.2 三角行列式 2.3.3 斜三角行列式 2.3.4 其他特殊行列式 2.4 行列式的性质 2.4.1 性质1 2.4.2 性质2 2.4.3 性质3 2.4.4 性质4 2.4.5 性质5 2.5 行列…

【笔试题】【day25】

文章目录第一题&#xff08;缺页中断&#xff09;第二题&#xff08;多线程&#xff09;第三题&#xff08;系统死锁的原因&#xff09;第四题&#xff08;大小端在内存中的存储方式&#xff09;第五题&#xff08;处理器运行时间计算&#xff09;第六题&#xff08;计算机的访…

八.STM32F030C8T6 MCU开发之电源掉电检测案例

八.STM32F030C8T6 MCU开发之电源掉电检测案例 0.总体功能概述 使用STD库–en.stm32f0_stdperiph_lib_v1.6.0。 单片机在正常工作时&#xff0c;因某种原因造成突然掉电&#xff0c;将会丢失数据存储器(RAM)里的数据。在某些应用场合如测量、控制等领域&#xff0c;单片机正常…

RedisMysql同步

1. canal Canal&#xff0c;阿里巴巴 MySQL binlog 增量订阅&消费组件&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费。 首先了解一下mysql主备复制原理&#xff1a;   &#xff08;1&#x…