C#

面向对象(二十六)-Socket TCP和UDP的区别

2017-12-10  本文已影响114人  元宇宙协会

重点

一、UDP:(用户数据报协议)

 1》将数据及源和目的封装在数据包中,不需要建立连接
 2》每个数据包得大小限制在64KB之内
 3》因为无需连接,因此是不可靠协议
 4》不需要建立连接,速度快
 5》需要的系统资源较少,结构较简单

二、TCP(传输控制协议)

 1》需要建立连接,形成传输数据的通道
 2》在连接中进行大数据传输(数据大小不受限制)
 3》通过三次握手完成连接,是可靠协议,安全送达,一旦失败,会由发送方重新发送
 4》必须建立连接,效率会稍低
 5》需要的系统资源较多,结构较为复杂。

三、 TCP 连接时三次握手、断开时四次挥手

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP三次握手过程

TCP建立连接要进行3次握手,而断开连接要进行4次

1-当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
2-主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
3-由B 端再提出反方向的关闭请求,将FIN置1
4-主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.
由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础名词解释ACK TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段都收到了.比如,确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性.SYN 同步序列号,TCP建立连接时将这个位置1FIN 发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1。

文章来源:
作者:silence_k
链接:http://www.jianshu.com/p/b2602ffeb68b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上一篇 下一篇

猜你喜欢

热点阅读