| |
|
开发:
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和UDP,先了解他们概念 TCPTCP(Transmission Control Protocol) 提供可靠面向连接的字节流传输协议。总结两个特点:可靠,面向连接性 面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。所谓可靠传输,是TCP协议中规定了: ①如何处理丢失或重复等差错情况。 ②如何初始化一个数据流传输 ③如何协商结束数据流传输 ④流量控制和拥塞控制机制。 ?对于可靠传输,判断丢包,重复靠的是TCP的段编号以及确认号。TCP在发送数据的时候,为每个字节编号,接收端收到数据之后,经过校验无误,发回确认号,确认号为接收端等待接受的写一个字节的序号。并且它会缓存到达的乱序数据,统一排序之后传递给上层。这样就解决了丢包,重复和乱序的问题。 协商开始和结束数据传输:当协商开始数据传输的时候要发送SYN信号,请求同步,并且告知将要发送的数据序号是多少,经过三次握手两端都知道对方已经建立连接并且知道对方将要从那个序号开始发送;结束的时候一方发送FIN结束信号,另一方收到之后发送ACK确认信号,于是两端都知道连接被释放,数据传输就停止了。 ?流量控制和拥塞控制:TCP采用滑动窗口的方式进行流量控制,用拥塞窗口的速率调整算法(慢启动算法)来进行拥塞控制。 说了这些,怎么证明呢?我们下面使用wireshark抓包 上面红色框说明,TCP会发送sequence number 和syn信号 下面我们说一下TCP三次握手过程 第一次握手过程 客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图 服务器发回确认包,?标志位为?SYN,ACK.?将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1,如下图 ? 第三次握手的数据包 客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1 此外,我们可以看到,TCP头部我们看到,TCP header包含20个字节。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 10:24:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |