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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> UDP/TCP介绍、TCP的三次握手四次挥手 -> 正文阅读

[网络协议]UDP/TCP介绍、TCP的三次握手四次挥手

关于UDP/TCP的学习在慕课网专栏《网络协议那些事儿》看到两篇文章,写的不错,在此处做个总结整理。

UDP协议

UDP/TCP协议是OSI七层网络模型中第四层传输层用到的协议,根据使用目的的不同,人们需要能分别达到以下两点要求:

  1. 传输简单快捷,但传输不可靠,有可能在传输过程中丢失数据报或者接收方没有正确接收数据(UDP)。
  2. 传输稳定可靠,每一次发送报文必须要求接收方对传输结果作出反馈,所以传输速度相对较慢(TCP)。

根据这两点要求,就有了现在的UDP/TCP协议。

先说说UDP协议,UDP(User Datagram Protocol 缩写)表示用户数据报协议。UDP是一种无连接的协议,发送方只管发送报文,对于是否正确发送和正确接收一无所知。

UDP的数据报格式:
UDP数据报格式
其中Checksum是“校验和”,用于确保发送方发送的数据和接收方接收的数据是一致的。

TCP协议

再说说TCP协议:TCP(Transmission Control Protocol缩写)表示传输控制协议。TCP的协议需要先建立连接之后,再进行通信。

TCP报文段格式:
TCP报文格式
在建立连接时,客户端和服务器通过空数据报进行请求和响应,在空数据报的报头中有标志位Flag,这些标志位是可以为0、1的bit位,根据这些标志位可以表示发送信息的类型,如下图所示:
Flags标志位展示
连接的建立

  1. 客户端发送将报头中的SYN标志位设置为1,表示请求与服务器建立通信。
  2. 服务器成功接收后,响应数据报的报头设置标志位ACK为1,并将SYN设置为1后响应给客户端,表示确认建立客户端到服务端通信,并请求与客户端建立通信。
  3. 客户端接收到服务器返回的报文后,向服务器发送标志位ACK为1的数据报,表示同意建立服务端到客户端通信。

这时整个连接建立完成,也就是我们常说的TCP三次握手,图解如下:
TCP建立连接图解
保持连接

保持连接时数据包的报头标志位ACK设置位1,表示对上次的数据报接收的确认。

终止连接

连接的终止需要用到标志位FIN,过程如下:

  1. 客户端向服务端发送数据报,报头标志位FIN设置为1,表示请求与服务端断开连接。
  2. 服务端接收报文后,响应标志位ACK为1的数据报,表示同意断开客户端到服务端的通信。
  3. 服务端向客户端发送数据报,报头标志位FIN设置为1,表示请求与客户的断开连接。
  4. 客户端接收到报文后,响应标志位ACK为1的数据报,表示同意断开服务端到客户端的通信。

至此,连接中断,这个过程我们称为TCP的4次挥手,图解如下:
TCP的四次挥手

补充:
关于Socket,用我的理解简单的说就是,为了方便使用UDP/TCP,Socket是对UDP/TCP的封装,我们通过调用Socket对外提供的接口,对网络应用进行开发。
Socket区别于http协议,http协议是以TCP协议为基础,是OSI模型的应用层协议,而Socket是对TCP协议的封装。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:46:40  更:2021-10-21 12:47:13 
 
开发: 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年7日历 -2024/7/1 21:21:30-

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