TCP&UDP基础

TCP

TCP/IP是一种网络通信协议,而socket则是TCP/IP网络最为通用的API,即一种应用程序接口,称为套接字。TCP是面向链接的协议,在进行数据收发前必须链接,且在收发时必须保持该链接。在TCP层,有个FLAGS字段,这个字段有如下几个标识:SYN, FIN, ACK, PSH, RST, URG。其中SYN(synchronous)表示要求创建链接,ACK(acknowledgement)表示应答,FIN(finish)表示要求关闭链接,PSH(push)表示有数据传输,RST(reset)表示链接重置,URG(urgent)表示紧急。程序员

1. TCP的三次握手链接:安全

第一次握手:客户端发送SYN包(SYN = 1)到服务器,随机生成Sequence number = X,并进入SYN_SEND状态,等待服务器确认;服务器

第二次握手:服务器收到SYN包,必须确认客户的SYN(SYN = 1),同时本身也发送一个ACK包(ACK = X+1),即SYN+ACK包,同时随机生成一个Sequence number = Y,此时服务器进入SYN_RECV状态;网络

第三次握手:客户端收到服务器的SYN + ACK包,向服务器发送确认包ACK(ACK = Y+1),同时随机生成一个Sequence number = Z,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。socket

其中握手过程当中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。spa

2. TCP的四次挥手断开链接blog

第一次挥手:主动方发送FIN + ACK包到被动方,随机生成Sequence number = X,并进入FIN_WAIT_1状态,等待被动方确认;接口

第二次挥手:被动方接收到主动方的FIN + ACK包后,并返回ACK(ACK = X + 1)包,并随机生成Sequence number = Z发送给主动方,并进入CLOSE_WAIT状态,此时主动方接收到信息后随即进入FIN_WAIT_2状态;ci

第三次挥手:被动方发送FIN+ACK(ack = X + 1)包给主动方,并随机生成Sequence number = Y,并进入LAST_ACK状态;资源

第四次挥手:主动方接收到被动方的FIN+ACK包之后,向被动方发送ACK(ack = Y+1)包,随即自身进入TIME_WAIT状态,被动方接收到ACK包后进入CLOSED状态,紧接着主动方等待2MSL后也进入CLOSED状态,至此链接断开。

 

 

UDP

UDP(User Datagram Protocol)用户数据报协议,它在OSI模型的传输层,OSI模型的传输层有UDP协议,TCP协议和刚开发出来的一种新的协议SCTP。若是网络中两个主机上的应用程序要相互通讯,其一要知道彼此主机的IP,其二要知道主机中运行程序可监听的端口。由于同一主机上的程序使用网络是经过端口号来区分的。所以为了使用UDP,咱们须要一对套接字地址:客户端套接字地址和服务器套接字地址。

UDP提供无链接服务。客户端向服务端发送数据时没必要先创建链接。客户端建立一个套接字并向服务器发送一个数据报,而后客户端能够当即用这个套接字向另一个服务器发送其它数据。不能确保UDP数据报最终到达目的地。UDP对接收的数据报不发生确认,发送端不知道数据是否被正确接收,也不会重发数据。UDP传输数据较TCP快,占用系统资源少。

TCP和UDP的区别

1. TCP是面向连接的,虽说网络的不安全不稳定特性决定了多少次握手都不能保证链接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了链接的可靠性。而UDP不是面向链接的,UDP传送数据前并不与对方创建链接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,固然也不用重发,因此说UDP是无链接的、不可靠的一种数据传输协议。

2. 也正因为1所说的特色,使得UDP的开销更小数据传输速率更高,由于没必要进行收发数据的确认,因此UDP的实时性更好。知道了TCP和UDP的区别,就不难理解为什么采用TCP传输协议的MSN比采用UDP的QQ传输文件慢了,但并不能说QQ的通讯是不安全的,由于程序员能够手动对UDP的数据收发进行验证,好比发送方对每一个数据包进行编号而后由接收方进行验证啊什么的,即便是这样,UDP由于在底层协议的封装上没有采用相似TCP的“三次握手”而实现了TCP所没法达到的传输效率。

3. 人们一般用电话连线来讲明TCP协议,而UDP协议,则经常用邮递来作比喻。

 

TCP

UDP

是否链接

面向链接

面向非链接

传输可靠性

可靠

不可靠

应用场合

传输大量数据

少许数据

速度

相关文章
相关标签/搜索