前端面试高频考点—TCP vs UDP

目录

简介:

区别:

应用选择:

tcp为什么需要三次握手?


简介:

  • TCP(传输控制协议)和UDP(用户数据报协议) TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,是专门为了在不可靠的网络中提 供一个可靠的端对端字节流而设计的,面向字节流。
  • UDP(用户数据报协议)是iso参考模型中一种无连接的传输层协议,提供简单不可靠的非连接传 输层服务,面向报文

区别:

  1. TCP是面向连接的,可靠性高;UDP是基于非连接的,可靠性低
  2. 由于TCP是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差,同时过程 复杂,也使其易于攻击;UDP没有建立连接的过程,因而实时性较强,也稍安全
  3. 在传输相同大小的数据时,TCP首部开销20字节;UDP首部开销8字节,TCP报头比UDP复杂,故 实际包含的用户数据较少。TCP在IP协议的基础上添加了序号机制、确认机制、超时重传机制等, 保证了传输的可靠性,不会出现丢包或乱序,而UDP有丢包,故TCP开销大,UDP开销较小
  4. 每条TCP连接只能时点到点的;UDP支持一对一、一对多、多对一、多对多的交互通信

应用选择:

  • 对实时性要求高和高速传输的场合下使用UDP;在可靠性要求低,追求效率的情况下使用UDP;例如:在线语言聊天,视频
  • 需要传输大量数据且对可靠性要求高的情况下使用TCP;例如:电子邮件传输,FTP等

tcp为什么需要三次握手?

两个目的:

  1. 确保建立可靠连接
  2. 避免资源浪费

详:

三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”

这种情况是:

假设client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。

假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。

所以,采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接

想要了解更多相关TCP三次握手、四次挥手过程及原理请转到:

一文彻底搞懂 TCP三次握手、四次挥手过程及原理 - 知乎 (zhihu.com)

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

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

相关文章

西工大网络空间安全学院计算机系统基础实验一(61分答案)

只能说没有一道题是自己写的,都是在网上查资料抄别人的,也不知道这有什么意思。也不知道自己学到了什么,怎么说呢,Emmmm......对了,文末最后的几段话是为了凑字数,大家简单忽略掉就好。 /* * tmin - retur…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器,可以用来分析SQL执行计划,需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

代码随想录训练营第五十二天300.最长递增子序列674. 最长连续递增序列718. 最长重复子数组

300.最长递增子序列 题目链接 300. 最长递增子序列 - 力扣(LeetCode) 讲解链接 代码随想录 (programmercarl.com) 定义dp数组dp[i]为以num[i]为结尾的增长数组的最大长度; 此时dp[0]1; i遍历nums数组的长度,逐渐形成以每个元素结…

【防抖和节流】Vue和React当中的防抖和节流处理

1 防抖和节流函数 /*** 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数* 防抖又分为立即执行和延迟执行* - 立即执行:点击第一次就会执行,后续指定时间内的点击不会生效* - 延迟执行:指定…

干了3年功能测试,技术回到原点

简单概括一下 先说一下自己的情况,普通本科,18年通过校招进入深圳某软件公司,干了3年多的功能测试,21年的那会,因为大环境不好,我整个人心惊胆战的,怕自己卷铺盖走人了,我感觉自己不…

推荐一款优秀的json在线格式化校验工具

www.bjson.chat 这个工具是目前见过最好用的JSON工具, 页面简单,支持text,tree两种显示格式,关键词高亮显示支持亮白和暗黑两种风格最主要的是如果要格式化很长的json的话,这个工具还可以全屏显示,简直不…

非标设计之螺纹选型

目录 一、螺纹种类二、 螺纹加工:第一大类:螺纹切削第二大类:螺纹滚压三、螺丝钻孔和选型: 一、螺纹种类 一、螺纹种类 按牙型可分为三角形、梯形、矩形、锯齿形和圆弧螺纹; 按螺纹旋向可分为左旋和右旋;…

IDEA2023.2.3 servlet.java中import com.alibaba.fastjson.JSONObject;标红问题解决

IDEA提示 java: 程序包com.alibaba.fastjson不存在_mob64ca12e98e58的技术博客_51CTO博客 2023/12/1 域名小李

外文文献如何高效阅读

外文文献阅读需要一定的技巧和方法,以下是一些高效阅读外文文献的建议: 预览:在开始阅读之前,先快速浏览全文,了解大意和主题。这有助于您更好地理解文章的重点和目的。 标记:使用笔记或荧光笔等工具标记…

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀?参加了一个学校举办的短视频大赛,视频拍摄都很顺利,音乐却出了问题,朋友说可以用电脑录制一段音乐应付一下,可是我不会操作,有哪位大佬教教我!” 声音是一种强大的媒介&#…

七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHelper)

前言 上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法(SQLiteHelper)。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3]示例 2: 输入:head [0,1,2], …

酒店 KPI绩效考核指标及应用

“路遥知马力,日久见人心”,目前国内各类型酒店风起云涌,大有在市场竞争中一比高下之势,各路精英受经济型酒店低投入高回报的市场利益驱动,都分分抢占市场,从而使国内经济型酒店的数量不断增加,…

⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)

1.这里我代码没啥问题~~~编辑器里也没毛病 void Start(){// 加载底图和上层图片string backgroundImagePath Application.streamingAssetsPath "/background.jpg";Texture2D backgroundTexture new Texture2D(2, 2);byte[] backgroundImageData System.IO.File.R…

永恒之蓝漏洞复现

网安2211-202221336029 目录 1.介绍: 2.操作: 1.实验环境: 2.渗透实现 3.实现后操作 3.总结: 1.介绍: 1.漏洞描述:Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞&#xff0…

【无标题】mmocr在云服务器上

这里写目录标题 1、创建虚拟环境2、切换和退出conda虚拟环境3. 显示、复制(克隆)、删除虚拟环境4、删除环境安装指示中 cd进项目文件夹开始训练模型(python XXX.py | tee record.txt 记录训练结果)如何在Linux服务器上安装Anacond…

数据结构--->单链表

文章目录 链表链表的分类 单链表单链表的存储结构单链表主要实现的接口函数单链表尾插动态申请新节点单链表头插单链表的尾删单链表的头删在指定位置之前插入单链表查找插入 在指定位置之后插删除指定位置元素删除指定位置之后的元素顺序输出链表销毁单链表 顺序表和单链表的区…

苍穹外卖--客户催单

需求分析 用户在小程序中点击催单按钮后,需要第一时间通知外卖商家 设计思路:* 通过WebSocket实现管理端页面和服务端保持长连接状态当用户点击催单按钮后,调用WebSocket的相关API实现服务端向客户端推送消息客户端浏览器解析服务端推送的…

【超全】JavaScript知识速查:JavaScript ES6标准语法

JavaScript知识速查 文章目录 JavaScript知识速查[toc]JavaScript ES6标准语法1. 变量和常量以及块级区域变量 (let):常量 (const): 2. 模板字符串3. 解构赋值数组解构:对象解构: 4. 数组和对象的扩展扩展运算符 (...):Array.from:Object.assign: 5. 类和对象定义类:继承: 6.箭…

Redis主从与哨兵架构详解

目录 主从架构 主从环境搭建 主从复制流程 1. 全量复制 2. 部分复制 主从风暴 哨兵架构 概念 哨兵环境搭建 主从架构 主从环境搭建 1. 复制一份redis.conf文件, 修改下面几行配置 port 6380 pidfile /var/run/redis_6380.pid logfile "6380.log" dir /usr/…