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的区别 适用场合 三次握手和四次挥手

1.TCP和UDP的区别

???????1.1 共同点

? ? ? ? ? ? ? ? 同为传输层协议

? ? ? ? 1.2 不同点

? ? ? ? ? ? ? ? TCP:面向连接的,可靠传输,面向字节流传输

? ? ? ? ? ? ? ? UDP:面向无连接的,不可靠传输,面向报文传输

? ? ? ? 1.3 适用场景

? ? ? ? ? ? ? ? TCP适用场合:文件传输

? ? ? ? ? ? ? ? ? ? ? ? 1.传输质量要求较高

? ? ? ? ? ? ? ? ? ? ? ? 2.大尺寸数据

? ? ? ? ? ? ? ? ? ? ? ? 3.一般用于邮件发送等应用中

? ? ? ? ? ? ? ? UDP适用场合:实时应用

? ? ? ? ? ? ? ? ? ? ? ? 1.对实时性要求较高

? ? ? ? ? ? ? ? ? ? ? ? 2.小尺寸的数据

? ? ? ? ? ? ? ? ? ? ? ? 3.一般用于视频聊天、直播等

2.三次握手

? ? ? ? 2.1 几个重要字段

????????? ?????????SYN:同步位? ? ? ? ACK:确认位? ? ? ? FIN:终止位

? ? ? ? ? ?????????seq:序列号? ? ? ? ?ack:确认号

? ? ????2.2 简述三次握手过程

????????第一次握手:建立连接时,客户端将标志位SYN置为1,随机产生一个值seq = x,并将该数据包发送给服务器,客户端进入SYN-SENT状态,等待服务器确认。(服务器可以确认:客户端的发送能力正常、服务器的接收能力正常。)

?

? ? ? ? 第二次握手:服务器收到数据包后由标志位SYN = 1得到客户端请求连接,服务器将标志位SYN和ACK都置为1,ack = x+1,产生一个随机值seq = y,并将该数据包发送给客户端以确认连接请求,服务器进入SYN-RCVD状态。(客户端可以确认:服务端的接收、发送能力及客户端的接收、发送能力正常,但此时服务器不能确认客户端的接收能力是否正常。)

? ? ? ? 第三次握手:客户端收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack = y+1,并将该数据包送个服务器,服务器再检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,服务器和客户端进入ESTAB-LISHED状态。(服务器可以确认:客户端的发送、接收能力正常,服务器自己的接收、发送能力正常,然后服务器和客户端之间就可以传输数据了。)

? ? ? ? 2.3 简述四次挥手过程

? ? ? ? 第一次挥手: 客户端发送一个FIN,用来关闭客户端到服务器的数据传输,客户端进入FIN_WAIT_1状态,其首部:FIN = 1, seq = u。(客户端发起关闭连接的请求)

? ? ? ? 第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认号为ack = u+1,序列号seq = w,此时服务器进入CLOSE_WAIT状态。

? ? ? ? 第三次挥手:服务器发送一个FIN,用来关闭服务器到客户端的数据传送,服务器进入LACK_ACK状态。

? ? ? ? 第四次挥手:服务器收到FIN后,进入到TIME_WAIT状态,接着发送一个ACK给服务器,确认号为seq = u+1,ack = w+1,在经过2MSL(最长报文端寿命)后,服务器进入CLISED状态,本次TCP连接结束,完成第四次挥手。

为什么建立连接握手三次,关闭连接时需要是四次呢?

? ? ? ? 因为握手的时候没有数据传输,服务器发送SYN+ACK的包是合并在一起发送的,减少了一次包的发送;而在挥手(关闭连接)的时候,还存在数据的传输,ACK和FIN报文不能同时发送,只能先确认ACK,然后再发送FIN包,所以四次挥手必须是四次数据包的交互。

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

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