4.6--计算机网络之TCP篇之TCP的基本认识--(复习+深入)---好好沉淀,加油呀

news2024/11/23 4:11:43

1.TCP 头格式有哪些?

在这里插入图片描述

序列号
在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。

用来解决网络包乱序问题。

确认应答号:
指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。

用来解决丢包的问题。

2.为什么需要 TCP 协议? TCP 工作在哪一层?
IP 层是「不可靠」的,它不保证网络包的交付;需要保障网络数据包的可靠性,那么就需要由上层(传输层)的 TCP 协议来负责。

TCP 是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。

3.什么是 TCP ?

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议

面向连接:一定是「一对一」才能连接
可靠的:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端

4.什么是 TCP 连接?
用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接

建立一个 TCP 连接是需要客户端与服务端达成三个信息的共识:

Socket:由 IP 地址和端口号组成
序列号:用来解决乱序问题等
窗口大小:用来做流量控制

5.如何唯一确定一个 TCP 连接呢?

TCP 四元组可以唯一的确定一个连接,四元组包括如下:

源地址
源端口
目的地址
目的端口

源地址和目的地址的字段(32 位)是在 IP 头部中,作用是通过 IP 协议发送报文给对方主机

源端口和目的端口的字段(16 位)是在 TCP 头部中,作用是告诉 TCP 协议应该把报文发给哪个进程

6.UDP 和 TCP 有什么区别呢?分别的应用场景是?

UDP利用 IP 提供面向「无连接」的通信服务,头部只有 8 个字节(64 位)

在这里插入图片描述

1.目标和源端口:主要是告诉 UDP 协议应该把报文发给哪个进程。
2.包长度:该字段保存了 UDP 首部的长度跟数据的长度之和。
3.校验和:校验和是为了提供可靠的 UDP 首部和数据而设计,防止收到在网络传输中受损的 UDP 包

TCP 和 UDP 区别:

  1. 连接

TCP 是面向连接的传输层协议,传输数据前先要建立连接。
UDP 是不需要连接,即刻传输数据

  1. 服务对象

TCP 是一对一的两点服务,即一条连接只有两个端点。
UDP 支持一对一、一对多、多对多的交互通信

  1. 可靠性
  1. TCP 是可靠交付数据的,数据可以无差错、不丢失、不重复、按序到达 2.UDP 不保证可靠交付数据。
    但是我们可以基于 UDP 传输协议实现一个可靠的传输协议,比如 QUIC 协议
  1. 拥塞控制、流量控制

TCP 有拥塞控制和流量控制机制,保证数据传输的安全性。
UDP 则没有,即使网络非常拥堵了,也不会影响 UDP 的发送速率

  1. 首部开销

1.TCP 首部长度较长,最小为 20 个字节,最长80字节。
2.UDP 首部只有 8 个字节,并且是固定不变的,开销较小

  1. 传输方式

TCP 是流式传输,没有边界,但保证顺序和可靠。
UDP 是一个包一个包的发送,是有边界的,但可能会丢包和乱序

  1. 分片不同

1.TCP 的数据大小如果大于 MSS 大小,则会在传输层进行分片,目标主机收到后,也同样在传输层组装 TCP 数据包,如果中途丢失了一个分片,只需要传输丢失的这个分片。
2.UDP 的数据大小如果大于 MTU 大小,则会在 IP 层进行分片,目标主机收到后,在 IP 层组装完数据,接着再传给传输层

TCP 和 UDP 应用场景:

TCP 是面向连接,能保证数据的可靠性交付,因此经常用于:

FTP 文件传输;
HTTP / HTTPS;

UDP 面向无连接,它可以随时发送数据, 处理既简单又高效,因此经常用于:

包总量较少的通信,如 DNS 、SNMP 等;
视频、音频等多媒体通信;
广播通信;

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

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

相关文章

MySQL优化——Explain分析执行计划详解

文章目录前言一. 查看SQL执行频率二. 定位低效率执行SQL三. explain分析执行计划3.1 id3.2 select_type3.3 table3.4 type3.5 key3.6 rows3.7 extra四. show profile分析SQL前言 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能…

酷炫的3D智慧工厂不会打造?这40+可视化大屏模板千万别错过!

数字化已成为各行各业的重要趋势,因为数字化能够带来精准的效益提升。小米公司最近推进了黑灯工厂业务。”24小时熄灯操作,全程无人工干预”,这是小米智能工厂的重要特征。走进工厂,闪烁的灯带提示生产正在进行,机器通…

【Spring从成神到升仙系列 四】从源码分析 Spring 事务的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

【ChatGPT】Prompt Engineering入门

Prompt Engineering入门一、什么是 Prompt Engineering?二、我们还需要学习 PE 吗?三、Prompt基础原则一、什么是 Prompt Engineering? 简单的理解它是给 AI 模型的指令。它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的…

数据结构 - 排序 | C (插入、希尔、选择、堆、冒泡)

目录0.排序思维导图(总)一、插入排序1.直接插入排序思路分析代码实现时间复杂度2.希尔排序思路分析代码实现时间复杂度二、选择排序1.选择排序思路分析代码实现时间复杂度2.堆排序思路分析代码实现时间复杂度三、交换排序冒泡排序思路分析代码实现时间复…

如何基于vue实现倒计时效果

如何基于vue实现倒计时效果基于vue2 element实现画面效果代码基于vue2 element 实现画面效果 代码 <template><div><div class"Box"><div style"position: relative;"><el-progress type"circle" :width"30…

pytorch注意力机制

pytorch注意力机制 最近看了一篇大佬的注意力机制的文章然后自己花了一上午的时间把按照大佬的图把大佬提到的注意力机制都复现了一遍&#xff0c;大佬有一些写的复杂的网络我按照自己的理解写了几个简单的版本接下来就放出我写的代码。顺便从大佬手里盗走一些图片&#xff0c…

Vue3使用触摸滑动插件(Swiper)

Vue2使用触摸滑动插件&#xff08;Swiper&#xff09; 参考文档&#xff1a; Swiper官方 Swiper Vue Swiper Demos 本文使用的是最新版本&#xff1a;Swiper9.2.2 安装插件&#xff1a;yarn add swiper 本文基于Swiper插件进行封装&#xff0c;主要实现两种形式的轮播图展示…

电脑自带远程桌面和远程控制软件哪个好?

随着科技的不断发展和普及&#xff0c;越来越多的公司和个人开始关注远程控制软件的使用。我们常常需要在不同的地方工作&#xff0c;但工作需要的文件和软件却只能在一个地方使用&#xff0c;这时候远程控制电脑软件就变得尤为重要咯。但是&#xff0c;许多人分不清楚&#xf…

Windows远程连接工具有哪些

Windows远程连接工具&#xff0c;一般称为远程桌面软件&#xff0c;更准确的叫远程访问软件或远程控制软件&#xff0c;可以让你从一台电脑远程控制另一台电脑。远程桌面软件允许您控制连接的计算机&#xff0c;就好像它就在您面前一样。 远程桌面工具可用于技术支持、远程工作…

单TYPE-C口 可支持快充又可传输USB2.0数据方案

虽然现在有不少厂商也采用了Type-C接口&#xff0c;但是只作为一个充电接口&#xff0c;对于跨时代的type-c接口来说&#xff0c;多少有点大材小用&#xff0c; 那么有没有办法&#xff0c;让一个type-c接口既可以充电&#xff0c;又可以接OTG&#xff1f;比如不充电的时候可以…

Python一行命令搭建HTTP服务器并外网访问 - 内网穿透

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

第二章:HTML CSS 网页开发基础(二)

CSS概述 CSS全称&#xff1a;Cascading Style Sheet&#xff0c;可以对文字进行重叠&#xff0c;定位。主要实现页面美化。 一、CSS规则 CSS样式表中包括了3部分&#xff1a;选择符、属性、属性值 选择符{属性:属性值;} 选择符&#xff1a;也可以称为选择器&#xff0c;所有…

Java实现输入行数打印取缔字符,打印金字塔三角形的两个代码程序

目录 前言 一、实现输入行数&#xff0c;打印取缔字符 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 二、打印金字塔三角形 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图​​​​​​​ 前言 1.因多重原因&#xff0c;本博文有…

【BlazePose】《BlazePose: On-device Real-time Body Pose tracking》

arXiv-2020 文章目录1 Background and Motivation2 Advantages / Contributions3 Method4 Experiments5 Conclusion&#xff08;own&#xff09;1 Background and Motivation 人体关键点存在的难点&#xff1a;a wide variety of poses, numerous degrees of freedom, and occ…

JavaWeb—Maven

目录 1.什么是Maven 2.Maven的作用 3.Maven概述 3.1Maven介绍 3.2 Maven模型 3.3 Maven仓库 1.什么是Maven Maven是Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 官网&#xff1a;Maven – Welcome to Apache Mavenhttps://maven.apache.o…

vscode 终端集成bash

windows 版本的 vs code 终端默认是没有集成bash的&#xff0c;虽然也能在vscode 终端可以提交git&#xff0c;但是没有高亮&#xff0c;没有提示&#xff0c;很不方便&#xff0c;这时候就需要我们将bash集成到vs code的终端&#xff0c;就可以愉快的使用git的分支高亮&#x…

阿里云蔡英华:云智一体,让产业全面迈向智能

4月11日&#xff0c;在2023阿里云峰会上&#xff0c;阿里云智能首席商业官蔡英华表示&#xff0c;算力的飞速发展使数字化成为确定&#xff0c;使智能化成为可能。阿里云将以云计算为基石&#xff0c;以AI为引擎&#xff0c;参与到从数字化迈向智能化的划时代变革中。 基于服务…

资深PM赞不绝口的【9种项目管理图】

好用的项目管理工具可以帮助项目经理掌握项目进度&#xff0c;更好的拆分任务&#xff0c;节约时间。 今天给大家安排上&#xff0c;助力大家在项目交付路上更顺畅&#xff0c;早日以高质量交付结果&#xff0c;找到百万年薪工作。 ​项目管理甘特图扫描Q群二维码下载Q群5330…

MySQL--表的使用--0409

目录 1.表的基本操作 1.1 创建表 2. 查看表结构 3.修改表 3.1 新增一列 3.2 修改列属性 3.3 修改名字 3.3.1 修改表名字 3.3.2 修改表内列名字 3.4删除 3.4.1 删除列 3.4.2 删除表 1.表的基本操作 查看自己目前在哪个数据库里面 mysql> select database(); 1.1 创…