IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP与UDP的区别 -> 正文阅读

[网络协议]TCP与UDP的区别

一、概述

在计算机的时代里,我们都觉得很神奇,为什么另一端的信息可以实时的发送到我们这一端,我们常说地球村,地球那么大,为什么说它是个村呢?原因很简单,因为互联网,互联网把我们大家联系在一起。
说到互联网,我们大家都不陌生,那互联网到底是什么呢?互联网通俗的;来说就是网络的网络。我们通过网络联系在一起,通过网络实现各种信息、媒体传递。“没有规矩,不成方圆!”那这么多的网络想要联系起来,没有一套“规矩”也是不行的,所以,在互联网的世界里,它也要遵循一种网络协议,也就是所说的TCP/IP协议。

二、网络分层模型

为了简化网络各层的操作,提供标准接口便于实现和维护。我们采用网络分层,分层后的网络,每一层都是独立的,各不关心。同时可以使用最合适的技术来实现,我们只需要保证提供的功能以及暴露的接口规则有没有改变;我们在处理网络问题的时候也比较方便,容易操作。
IOS组织定义了一个计算机互联的标准分层模型。
在这里插入图片描述
互联网实际使用的是TCP/IP模型是OSI七层网络模型的简化版:
在这里插入图片描述

三、TCP & UDP

在网络模型中,我们一般关心的是应用层和传输层,而我们要讨论的TCP与UDP就在传输层。接下来我们详细讨论两个协议的优缺点:

一、TCP

一、结构格式

  • TCP(Transmission Control Protocol)协议:传输控制协议,提供面向连接、可靠的数据服务,TCP主要提供完整性服务。
  • 每一条TCP连接只能有两个端点(服务器、客户端),所以每一条TCP来连接都是点对点的。
  • TCP面向的是字节流。
  • TCP具备“可靠性传输”、“流量控制”、“拥塞控制”等功能。

TCP报文段包括TCP首部和TCP数据部分:
TCP协议首部格式:
TCP首部包括20字节的固定首部 + 长度可变的其他选项
在这里插入图片描述
如图所示:
源端口和目的端口(4个字节)
该部分表示的是发送方端口和接收方端口。

序号(4个字节
序号字段表示的是本报文段所发送的数据的第一个字节的序号,代表每次数据发送的位置。每发送一次数据,就累加一次该数据字节数的大小。
确认号(4个字节)
期望收到对方的下一个报文数据的第一个字节的序号。
数据偏移(4个字节)
数据部分距离报文首部的偏移量。报文部分最大60个字节,也就是说数据偏移量最大为40字节。
控制位(8位)
用于传输过程中,传递控制标志位。
窗口
窗口值作为接收方让发送方设置其发送窗口的依据,单位是字节。(因为接收方的数据缓存空间有限)

二、建立连接与释放连接

TCP既然是面向连接的,那它就有连接的过程:
三次握手:

  • 第一次握手:客户算先向服务器发送一个同步数据包,数据包的TCP首部内容需要包括:同步SYN=1,确认ACK=0。客户端由close变为syn-sent状态。
  • 第二次握手:服务器收到客户端发送的一个数据包后,若同意连接,则返回同步SYN=1,确认ACK=1。服务器由listen变为syn-rcvd状态。
  • 第三次握手:客户端收到服务器的确认后,再给服务器发送一个数据包,TCP首部包括:同步SYN=0,确认ACK=1。客户端最后变为estab-lished。

四次挥手:
第一次挥手:客户端向服务器发送释放连接的请求报文,并停止发送数据,TCP首部包括:终止FIN=1,确认ACK=0。
第二次挥手:服务器收到客户端的释放连接之后,给客户端发送确认报文,但此时服务器端的报文数据还没有发送完,继续发送,TCP首部包括:FIN=0,ACK=1。
第三次挥手:服务器已经将数据全部发送完毕,其应用程序就向客户端发送报文,TCP首部包括:ACK=1,FIN=1.
第四次挥手:客户端收到服务器的连接释放报文后,向服务器发送确认报文,TCP首部包括:确认ACK=1,终止FIN=0。

三、重传机制

**重传超时:**重传超时是指当发送方发送了数据后,在规定的时间内没有得到应答,发送端就进行超时重传。
超时重传: 超时重传是TCP协议重传机制的一种,再重发超时的时间间隔内,没有等到确认应答,发送端就可以认为丢包,需要重传。有两种情况:一是发送时的丢包,二是响应时的丢包。
快速重传当接收到三次同样的ACK时,就会触发重发机制。但是这样存在一个弊端:在重传的时候,不知道是重传之前的一个还是重传所有的。
ASCK方法为了解决快速重传出现的问题,有了SACK方法,这种方式就是在TCP首部字段里加一个SACK。他是可以将缓存的地图发送给发送方,这样发送方就可以知道那些数据收到了哪些没收到,只重传丢失的数据。

四、窗口

TCP协议通过滑动窗口的机制解决了流量控制和乱序重排的问题。
窗口滑动:
客户端向服务器发送请求数据报文。
服务器收到请求报文后,发送确认报文和x字节的数据,窗口减少为窗口大小-x,指针向右移动x个。
客户端收到x字节后,窗口右移。
服务器再次发送窗口大小-x字节数据,窗口耗尽,服务器无法继续发送数据。
客户端收到数据后,窗口右移。
服务器收到确认报文后,指针后移,窗口增大到初始大小。
拥塞控制有四个算法:慢开始、拥塞避免,快重传、快恢复。
慢开始
在不知道网络的情况下,当达到一个门限值前,我们执行的是慢开始,令cwnd=1,发送方只能发送一个,之后就指数增长。
拥塞避免
当达到门限值时,按照加数增长。如果出现了超时,则将门限值(ssthresh)= cwnd/2,然后开始执行快开始。
快重传
在接受方,当收到三个相同的ACK时,就立即重传对方尚未收到的报文段。
快恢复
当超时恢复后,不执行慢开始,而执行快恢复(线性增大)。

五、可靠性传输

TCP通过校验和、序列号、确认应答、超时重发、高速重发、连接管理、流量控制、窗口控制、拥塞控制ARQ协议来保证可靠性传输。

二、UDP

UDP(User Datagram Protocol)协议:用户数据包协议,提供无连接、尽最大努力的数据传输服务(不保证数据传输的可靠性),UDP主要提供及时性服务。
UDP协议使用的场景:

  • 包总量较少的通信
  • 视频、音频等多媒体通信
  • 限定于LAN等特定网络中的应用通信
  • 广播通信

UDP协议的首部格式:
UDP首部没有序列字段,因为UDP协议只需要传输一个数据包,不需要序号。
首部字段有8个字节,由4个字段组成:源端口、目的端口、长度和校验和。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:27:49  更:2022-09-24 21:29:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:32:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码