计算机网络1-TCP和UDP

在这里插入图片描述


在这里插入图片描述

TCP与UDP

同:都工作在传输层,目标都是在程序间传输数据(文本、视频等等),都是2进制数据;
区别:
TCP:电话,基于连接,
UDP:书信,基于非连接,

TCP(全双工)

需要准确无误得传输,稳定可靠(邮件、网页、文件)

三握:解决网络信道不可靠问题,在不可靠的信道建立可靠的连接;

1当客户端向服务端发起连接时,会先发一包syn包连接请求数据,进行询问,能否建立连接。
2如果服务端同意连接,则回复一包syn+ack包。
3客户端收到之后回复一包ack包,连接建立。

为什么要三次握手而不是两次握手呢?
1服务端回复完syn+ack之后就建立连接,这是为了防止因为已失效的请求报文,突然又传到服务器引起错误。
2假设采用两次握手建立连接,客户端向服务端发送了一个syn包,来请求建立连接,因为某些未知原因,并没有到达服务器,在中间某个网络节点产生了滞留,为了建立连接客户端会重发syn包。这次的数据包正常送达,服务端回复syn+ack之后建立了连接。
3但是第一包数据阻塞的网点节点,突然恢复,第一包syn包又送达到服务端,这时服务端会误认为是客户端又发起了一个新的连接,从而在两次握手之后,进入等待数据状态,服务端认为是两个连接,而客户端认为是一个连接,造成了状态不一致。
4如果在三次握手的情况下,服务端收不到最后的ack包,自然不会认为连接建立成功,所有三次握手本质上来说,就是为了保证在不可靠的网络链路中,建立起可靠的连接。如syn包阻塞重发会导致服务器创建多重连接,而客户端只接受唯一连接。从而造成状态不一致的情况。

四挥:

处于连接状态的客户端和服务端,都可以发起关闭连接请求,此时需要四次挥手来进行连接关闭。

1).假设客户端主动发起连接关闭请求,他需要向服务端发起一包fin包,表示要关闭连接,自己进入终止等待1状态,这是第一次挥手。
2).服务端收到fin包,发送一包ack包,表示自己进入了关闭等待状态,客户端进入终止等待2状态,这是第二次挥手
3).服务端此时还可以发送未发送的数据,而客户端还可以接收数据,待服务端发送完数据之后,发送一包fin包,进入最后确认状态。这是第三次挥手。
4).客户端收到之后回复ack包,进入超时等待状态,经过超时时间后关闭连接,而服务端收到ack包后,立即关闭连接。这是第四次挥手。

为什么客户端需要等待超时时间?这是为了保证服务端已收到ack包。
1)因为假设客户端发送完最后一包ack包后就释放了连接,一旦ack包在网络中丢失,服务端将一直停留在最后确认状态。
2)如果客户端发送最后一包ack包后,等待一段时间,这时服务端因为没有收到ack包,会重发fin包,客户端会响应这个fin包,重发ack包并刷新超时时间。
3)保证在不可靠的网络链路中,进行可靠的连接断开确认。

UDP

性能损耗少,资源占用少、速度快,稳定性弱,实时性要求高,对少量丢包可以接受(语音通话,视频直播等),隧道网络也用VPN;

补充:
TCP与UDP区别

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

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

相关文章

Golang图像处理实战:image/png包的应用详解

Golang图像处理实战:image/png包的应用详解 介绍基本操作读取PNG文件保存PNG文件 处理图像数据修改图像像素图像裁剪和缩放 高级功能使用 image/color 处理颜色优化PNG性能 错误处理与调试常见错误及其解决方法文件无法打开图像解码失败 使用工具和库进行调试 结语 …

软航H5 PDF签章产品经nginx代理之后浏览器中PDF盖章时提示:签章失败:网络错误 的问题排查及解决办法

目录 问题现象 问题排查思路 问题处理办法 附:软航H5 PDF签章产品介绍 软航电子签章系统 软航版式文档签批系统 问题现象 问题描述:在系统中集成了软航H5 PDF签章产品,软航H5 PDF签章产品的对应服务是通过nginx代理的,在奇安…

微信小程序地图polyline坐标太多异常显示BUG

描述 微信小程序map地图上显示polyline线,点位超过1250个出现bug,(仅真机上出现,模拟器上正常) 这里以加载四川省边界为例, 以下是示例代码 // 读取geojson数据 uni.request({url: https://geo.datav.aliyun.com/a…

公网IP地址如何申请SSL证书?有免费的IP ssl吗?

如果用户没有域名或只有公网IP地址或者不方便使用域名,IP地址ssl证书这一特殊的证书可以为IP地址实现HTTPS的安全保护,提高网站数据传输的安全性。 IP地址申请SSL证书的基本步骤 IP ssl证书下载---注册填写230916https://www.joyssl.com/certificate/sel…

CalcPad(2) 单位设置和绘制图表

CalcPad(2) 单位设置和绘制图表 Hi uu们,CalcPad用的还好吗?有发现一些问题吗? 在我的使用中,经常需要指定一些计算结果的符号,比如说我希望ADC最小分辨率的计算结果是以uV展示,那我们该怎么操作呢&#…

x-cmd mod | x whisper - 使用 whisper.cpp 进行本地 AI 语音识别

介绍 Whisper 模块通过 whisper.cpp 帮助用户快速将音频转换为文字。 INFO: whisper.cpp 是一个用 C/C 编写的轻量级智能语音识别库,是基于 OpenAI 的 Whisper 模型的移植版本,旨在通过深度学习模型实现音频转文字功能。 由于 whisper.cpp 目前只支持 1…

cdp集群Hbase组件HRegionServer服务停止原因以及排查

前言:重启集群后某一节点HRegionServer服务停止,重启前所有服务均正常 去查看日志: 日志报错 ERROR HRegionServer Master rejected startup because clock is out of sync org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.h…

OpenHarmony鸿蒙南向开发案例:【智能窗户通风设备】

样例简介 本文档介绍了安全厨房案例中的相关智能窗户通风设备,本安全厨房案例利用轻量级软总线能力,将两块欧智通V200Z-R/BES2600开发板模拟的智能窗户通风设备和燃气告警设备组合成。当燃气数值告警时,无需其它操作,直接通知软总…

小球反弹(蓝桥杯)

文章目录 小球反弹【问题描述】答案:1100325199.77解题思路模拟 小球反弹 【问题描述】 有一长方形,长为 343720 单位长度,宽为 233333 单位长度。在其内部左上角顶点有一小球(无视其体积),其初速度如图所…

企业单位IPTV数字电视直播与点播系统-中国卫通怀来地球站IPTV数字电视直播与点播系统应用浅析

企业单位IPTV数字电视直播与点播系统-中国卫通怀来地球站IPTV数字电视直播与点播系统应用浅析 由北京海特伟业科技有限公司任洪卓发布于2024年4月19日 一、运营商光猫接入企业/单位IPTV数字电视直播与点播系统建设概述 中国卫通怀来地球站,位于怀来县土木镇&#xf…

W11安装WSL2 ubuntu 攻略

W11安装WSL2 ubuntu 攻略 最近换了新电脑重新安装一遍wsl2,记录一下方便以后使用。 打开控制面板,选择程序 —— 启用或关闭Windows功能,勾选 适用于Linux的Windows子系统还有虚拟机平台选项,修改后需要重启 wsl2版本 wsl --se…

springcloud第4季 springcloud-alibaba之nacos篇-配置中心

一 nacos的配置中心 1.1 配置中心 namespace,group,dataid 之间的关系 1.2 配置样例

基于ssm汽车租赁系统业务管理子系统论文

系统简介 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的管理系统。本文介绍了汽车租赁系统业务管理子系统的开发全过程。通过分析企业对于汽车租赁系统业务管理子系统的需求,创建了一个计算机管理汽车租赁系统业务管理子系统的方案。文章介…

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡(偏爱Saga)->解决方案

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡->解决方案->底层实现->应用案例 不断有同学问我大厂中实践分布式事务的问题,这里从分布式事务的产生,到强弱一致性与性能的权衡,再到最终落地的解决方案,再到实际的代码实现,再到我工作中实际使用SA…

高斯溅射融合之路(一)- webgl渲染3d gaussian splatting

大家好,我是山海鲸的技术负责人。之前已经写了一个GIS融合系列。其实CesiumJS的整合有相当的难度,同时也有很多方面的工作,很难在几篇文章内写完,整个山海鲸团队也是投入了接近两年的时间,才把周边整套工具链进行了完善…

Rust入门-引用借用

一、引用借用,是什么、为什么、怎么用 所有权上篇我们已经讨论过了,所以这篇我们讨论Rust的引用借用 1、引用借用 是什么? Rust 通过借用(Borrowing) 这个概念来达成上述的目的,获取变量的引用,称之为借用(borrowin…

nodejs工具脚本json转excel

json转excel 主要使用 sheetjs 库 vim convertJsonToExcel.js 封装转换方法 import fs from fs; import XLSX from xlsx;/*** 扁平化嵌套json对象* param {Object} jsonObj* param {String} prefix* returns*/ export function flattenKeys(jsonObj, prefix ) {const resul…

Echarts-丝带图

Echarts-丝带图 demo地址 打开CodePen 什么是丝带图? 丝带图是Power BI中独有额可视化视觉对象,它的工具提示能展示指标当期与下期的数据以及排名。需求:使用丝带图展示"2022年点播订单表"不同月份不同点播套餐对应订单数据。 …

给rwkv-pytorch 写个chat ui demo

rwkv-pytorch 项目地址 rwkv-pytorch from nicegui import uimessage_dict {1: [{"name":"Assistant","text":"你好"}]} current_name 1 import aiohttpasync def get_text_async(text"Hello, how are you?"):# 定义AP…

统一SQL-支持CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…
最新文章