栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

TCP UDP 特性与区别(上篇)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TCP UDP 特性与区别(上篇)

要了解TCP和UDP,先了解他们概念

TCP

TCP(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个字节。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/720887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号