TCP和UDP数据报文详解(区别及三次握手四次挥手详解)

news2024/9/23 12:39:53

总结TCP和UDP详解在后文

相同点:

1.都是传输层协议

2.都是全双工通信

区别:

TCPUDP
面向连接无连接
一对一一对一,一对多,多对多,多对一(单播,多播,广播)
可靠不保证可靠交付
面向字节流面向报文
拥塞控制、流量控制网络拥堵也不影响UDP发送速率
无边界有边界
头部开销大头部开销小
文件传输,邮件发送音视频电话,直播

单工模式:只支持数据在一个方向上传输;

半双工模式:允许数据在两个方向上传输,但是某一时刻只允许数据在一个方向上传输;

全双工的模式:同时在两个方向上传输,是两个单工通信的结合,要求发送设备和接收设备同时具有独立的接收和发送能力。

无边界:多大的消息都能传输

有边界:一个完整的包直接发送,包的大小有边界,所以传输的消息长度有限制

OSI七层模型和TCP/IP四层模型

通信时需要用到网络模型来进行数据封装。一层一层封装和拆包。

OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

分层太多,增加了网络工作的复杂性。 简化为4 层TCP/IP 模型。

TCP和UDP属于传输层的协议

传输层位于网络层之上,为不同主机运行的进程提供通信,也就是端口对端口,我们称其为:“端对端通信”。

网络层的协议为不同主机提供协议,我们称其为:点对点通信。

UDP协议

应用:实时音视频、直播等

1.无连接

2.不保证可靠

3.面向报文,一次传送一个完整报文

UDP报文

 UDP头部开销比较小

UDP报文头部

伪首部:仅仅用来计算检验和,不占内存空间

长度:首部和数据的总长度

TCP协议

应用:文件传输,数据传输。(邮件)

1.可靠

2.有序

3.具有检测功能(可靠的表现)

4.面向字节流

TCP数据报文结构:

1.序号Seq(Sequence Number):32位,标识从数据包的序号。
2.确认号Ack(Acknowledge Number):32位,客户端和服务器端都可以发送,Ack = Seq + 1。确认收到了刚才发送过来的数据包。
3.标志位:每个标志位占用1bit,共6个标志位,分别为 URG、ACK、PSH、RST、SYN、FIN。

  • URG:紧急指针(urgent pointer)有效。尽快发送,不进入缓冲区。优先级高。
  • ACK:确认号Ack有效。当我们需要使用确认号的时候ACK标志位也要设置。
  • PSH:高优先级。尽快发送缓冲区的数据。尽快推送。
  • RST:重置连接。释放TCP连接再重新建立。
  • SYN:建立一个新连接。此时会随机分配Seq序列号初始值。
  • FIN:断开一个连接。(数据发送完毕)

窗口 :由于接收方的数据缓存空间有限,需要告知发送方自己剩余的可用缓冲区大小。窗口大小通常用滑动窗口流量控制

TCP三次握手

A 为客户端,B 为服务器端。

  • 首先 B 处于 LISTEN(监听)状态,等待A的连接请求。
  • A 向 B 发送连接请求报文,SYN=1(建立连接标志),ACK=0(非确认包),seq= x(A的随机初始序号)。第一次握手
  • B 收到连接请求报文,若同意建立连接,则B向 A 发送连接确认报文,SYN=1(建立连接标志),ACK=1(确认包,确认收到刚才发过来的报文),确认号ack= x+1,seq= y(B的随机初始序号)。第二次握手
  • A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。第三次握手
  • B 收到 A 的确认后,连接建立。

建立连接后,序号发一包就加1。ACK都为1。

TCP四次挥手

  • A 发送释放连接报文,FIN=1。第一次挥手
  • B 收到之后发出确认ACK=1,此时 TCP 属于半关闭状态-CLOSE-WAIT 状态,B 能向 A 发送数据但是A 不能向 B 发送数据。第二次挥手
  • 当 B 不再需要连接时,发送连接释放报文,FIN=1。第三次挥手
  • A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。第四次挥手
  • B 收到 A 的确认后释放连接。

CLOSE-WAIT 状态:让B端发送还未传送完毕的数据,传送完毕之后,服务器会发送 FIN 连接释放报文。

TIME-WAIT 状态:避免出现最后一包ACK丢失。假设第四次挥手的包丢失,那么B会一直发过来FIN包请求close,此时要求A不能关闭,否则B就发不过来了。A收到FIN包之后也会一直重发ACK包去确认。

MSL:任何报文段在被丢弃前在网络中被允许存在的最长时间。

python的socket编程请见这篇文章:

TCP网络编程-python_朝一爱学习的博客-CSDN博客

TCP的拥塞控制和流量控制会另外写一篇文章

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

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

相关文章

java变量与方法

方法 构造方法 定义:构造方法是一个特殊的成员方法,名字必须与类相同,在创建对象时由编译器自动调用,并且在生命周期内只调用一次 演示: 特性: 1.构造方法名字必须与类名相同(如果不同&#…

Ajax XML

文章目录 AJAX XML 实例AJAX XML 实例实例解析 loadXMLDoc() 函数AJAX 服务器页面 AJAX XML 实例 AJAX 可用来与 XML 文件进行交互式通信。 AJAX XML 实例 下面的例子将演示网页如何使用 AJAX 来读取来自 XML 文件的信息&#xff1a; 代码部分 <!DOCTYPE html> <h…

Oracle—数据恢复

文档结构 1、恢复原理1.1、recyclebin&#xff08;回收站&#xff09;相关操作 2、恢复场景2.1、定义删除2.2、记录删除2.2.1、undo恢复2.2.2、redo恢复2.2.3、dbms_logmnr 场景&#xff1a;在 Oracle数据库使用过程中&#xff0c;误删对象或误删记录的情况时有发生&#xff1b…

07- 算法解读 Faster_R-CNN (目标检测)

要点&#xff1a; Faster_R-CNN RPN Fast R-CNN GitHub地址&#xff1a;vision/torchvision/models/detection at main pytorch/vision GitHub 三 Faster_R-CNN Faster R-CNN 是作者 Ross Girshick 继 Fast R-CNN 后的又一力作。同样使用 VGG16 作为网络的 backbone &am…

Windows 10 安装安卓子系统 WSA(Magisk/KernelSU)使用 WSA 工具箱安装 APK

from https://blog.zhjh.top/archives/XokySA7Rc1pkVvnxAEP5E 前提是系统为 Windows 10 22H2 10.0.19045.2311 或更高版本&#xff0c;尽量新。 步骤 使用 WSAPatch 和 MagiskOnWSALocal 安装 WSA 在 Microsoft Store 中安装 Ubuntu LTS&#xff08;或你喜欢的发行版&#xf…

Linux的进程

目录 一、进程占用的内存资源 二、进程的系统环境 三、进程一直在切换 四、父进程和子进程 五、进程状态 六、查看进程 1.ps -ef 列出所有进程 2.ps -lax 列出所有进程 3.ps aux列出所有进程 4.树形列出所有进程 七、作业&#xff08;用来查看管理进程&#xff09; …

windows环境安装运行kafka

一、配置java环境变量 1、下载安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2、添加系统变量&#xff1a;JAVA_HOMED:\Program Files (x86)\Java\jdk1.8.0_144 二、安装zooKeeper 1、 下载安装包 http://zookeeper.apache.…

【Java笔试强训 34】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;收件人列…

eks实践案例

Eks&#xff1a; ami-0c23197c88296c1b5 eks集群&#xff1a; 拉面 - 知乎 https://blog.csdn.net/saynaihe/category_12204222.html 什么是 Amazon EKS&#xff1f; - Amazon EKS kubectl 使用指南 https://zhuanlan.zhihu.com/p/364994610 k8s HPA自动伸缩 手把手教你 K8…

centOS7忘记登录密码该如何重新修改登录密码

文章目录 前言一、重新修改登录密码1.1、第一步1.2、第二步1.3、第三步1.4、第四步1.5、第五步1.6、第六步1.7、第七步1.8、第八步 前言 忘记密码并不可怕&#xff0c;只要学会方法&#xff0c;密码随时都可以找回。 一、重新修改登录密码 1.1、第一步 当打开centOS7之后忘记…

flutter系列之:做一个修改组件属性的动画

文章目录 简介flutter中的动画widgetAnimatedContainers使用举例总结 简介 什么是动画呢&#xff1f;动画实际上就是不同的图片连续起来形成的。flutter为我们提供了一个AnimationController来对动画进行详尽的控制&#xff0c;不过直接是用AnimationController是比较复杂的&a…

Colab使用教程(自己胡乱弄了半天,发现不行,还是得学一下)

文章目录 在google云盘中创建笔记本&#xff0c;并红设置笔记本的运行环境常见设置挂载云硬盘更改工作目录移动训练数据防止断链设置方法一、控制台设置方法二、安装Colab Alive 训练结果保存到硬盘中相关链接 在google云盘中创建笔记本&#xff0c;并红 云盘链接&#xff0c;…

K公司项目文件管理系统的分析与设计_kaic

摘 要 2020年的新冠疫情促进了线上办公市场的发展&#xff0c;加快了企业进入全面数字化时代的脚步。办公自动化是当今的大趋势&#xff0c;越来越多的企业采用电子文档的形式存储内外部资料。K公司是一家致力于为政府和企业提供数据安全服务的小型B2B企业&#xff0c;公司承…

Nessus 10.5 Auto Install for macOS Ventura(自动化安装 Nessus 试用版)

发布 Nessus 试用版自动化安装程序&#xff0c;支持 macOS Ventura、RHEL 9 和 Ubuntu 22.04 请访问原文链接&#xff1a;https://sysin.org/blog/nessus-auto-install-for-macos/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.o…

STM32输入捕获之快速构建频率计

简介&#xff1a;配置好STM32 CUBE IDE后只需要额外7行代码就可以构建一个频率计&#xff0c;目前只计算测频&#xff0c;占空比测量需要加入下降沿捕获标记&#xff08;暂时没做&#xff09;。 一、原理 频率&#xff1a;单位时间内完成周期性变化的次数&#xff0c;f 1/T。…

如何裁剪图片大小尺寸?

如何裁剪图片大小尺寸&#xff1f;平时我们在工作或者学习的时候&#xff0c;会经常需要将图片上传到不同的网站或者平台上&#xff0c;然而上传的时候经常会受到尺寸的限制&#xff0c;有时候尺寸太大就需要变小&#xff0c;为了确保上传成功&#xff0c;我们需要将图片进行裁…

Vue Router 最新版惊现使用 BUG

就在刚刚&#xff0c;当我在 写 Vue3 的项目的时候&#xff0c;使用到了 Vue Router 4 的最新版本&#xff08;4.1.6&#xff09;&#xff0c;然而在使用过程中&#xff0c;发现了一个使用问题&#xff0c;起初我还以为&#xff0c;是我这边的代码逻辑有问题&#xff0c;然而在…

九联UNT402A_当贝纯净桌面-卡刷固件包-内有教程

九联UNT402A_当贝纯净桌面-卡刷固件包-内有教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&#xff0c;运行速度提…

【Java笔试强训 33】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;剪花布条…

虹科新闻 | HKATTO推出FastFrame™ 第四代智能以太网适配器系列

ATTO Technology, Inc. 是 35 多年来为数据密集型计算环境提供网络、存储连接和基础设施解决方案的全球领导者&#xff0c;今天宣布推出其新的FastFrame™ 第四代以太网产品系列智能网卡。 第四代FastFrame SmartNICs 产品线具有四种独特的型号&#xff0c;产品线涵盖 10/25/40…