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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 日志(2022.3.14---TCP和UDP的区别TCP三次握手四次挥手) -> 正文阅读

[网络协议]日志(2022.3.14---TCP和UDP的区别TCP三次握手四次挥手)

今天主要学习了TCP和UDP的相关内容(本篇我觉得挺重要,日后要多拿出来看)。

首先TCP和UDP都在传输层,目的都是为了在程序之间传递数据。

TCP是面向连接的,可靠的,而UDP是无连接的,不可靠的(即不需要建立连接,发送端也不知道数据是否正确传送到接收端)。

TCP仅支持一对一,用于查看邮件,网页等,UDP支持一对多,多对多,如视频,电话。

TCP传输慢,头部有20个字节,有确认号,表示是否确认收到消息;还有头长度,头的长度;预留位,控制位,控制每个状态;UDP,传输很快,头部只有8个字节,包含了两个十六位的端口号(源端口和目标端口);整个数据报文的长度;整个数据报文的检验和(用于发现头部信息和数据中的错误)。

TCP是如何建立连接的?

TCP建立连接进行了三次传输,即三次握手;过程如下:客户端会先发一SYN包数据请求连接,询问是否能建立连接,如果服务端同意连接,就会回复一个SYN+ACK包;客户端收到之后,会再发送一个ACK包给服务端,表示收到服务端的确认包。此时连接全部完成。

为什么要三次握手?

因为网络信道是不可靠的,如果是二次握手就完成的话,当客户端第一次发送SYN包时,可能会因为网络原因导致延迟,此时客户端会再次发送一个包给服务端,服务端同意连接后,会回复SYN+ACK包给客户端,等第一个SYN包到达服务端的时候,服务端会认为客户端又发送了一次连接请求,此时服务端会再次回复一个SYN+ACK包,从而等待客户端发送数据,此时会造成服务端的资源浪费。 其本质就是为了解决网络信道不可靠的问题。为了在不可靠的信道上建立可靠的连接。

TCP在如何传输数据?即如何解决丢包,顺序的问题?

TCP为每个连接都建立了一个缓冲区,建立连接的第一个字节序列号为0,后面依次增加1,在发送数据的时候,会在缓冲区取一部分数据组成发送报文,在tcp协议头上会附带序列号和长度。

? ? ? ? 之后接收端接收到数据之后,会回复确认报文:ACK=序列号+长度,即下次起始的序列号。这边可以解决丢包顺序的问题。

? ? ? ? 这部分感觉网上大部分都说的不是很清晰,所以打算明天把计算机网络书拿出来在好好研究一番。

TCP在连接之后如果关闭连接?

? ? ? ? 要进行四次传递,其实就是通常所说的四次挥手。

????????客户端主动向服务端关闭连接,客户端向服务端发送一个FIN包,表示关闭连接,自己禁止终止等待状态;此时服务端收到FIN包,发送一个ACK包,表示自己进入了关闭等待状态,客户端进入终止等待2状态;此时服务端还可以发送数据,当发送完数据之后,服务端向客户端发送一个FIN包,自己进入最后确认状态 ;客户端收到之后会回复一个ACK包,并进入超时等待状态,经过超时时间后关闭连接(超时时间是为了保证对方已经收到了ACK包,倘若立即关闭,当ACK包丢失了,此时服务端会一直在最后确认状态,有了这个之后,如果ACK包丢失,超时时间到了之后,则服务端会重新发送一个FIN包,客户端响应之后会重发ACK包,并刷新响应时间),服务端收到后,立即关闭。?

也是为了保证在不可靠的网络链路中,进行可靠的连接断开。

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

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