TCP协议与UDP协议的区别

前言

        本文概述传输层两个协议TCP协议和UDP协议以及他们之间的区别

一、概念

        计算机网络采取分层模型,将计算机网络从底层的传输到高层的设计分为OSI七层模型,分别是应用层,表示层,会话层,传输层,网络层,链路层,物理层;也被称为TCP/IP四层模型,分别是应用层,传输层,网络层,网络接口层(数据链路层,物理层)。

        这次我们重点放在了传输层的两个协议上面, 也就是TCP协议和UDP协议。

        TCP协议是面向连接、可靠的传输层协议,是点对点传输,TCP面向字节流,TCP具备“可靠性传输”、“流量控制”、“拥塞控制”等功能。

        UDP协议是一个非连接协议,不保证数据的可靠性。

二、TCP协议

 1.TCP协议的三次握手:建立连接

          第一次握手:客户端主动向服务器发起建立连接的请求(同步数据包)。数据包的TCP首部内容:同步SYN=1,确认ACK=0,其中seq=x为所传送数据的第一个字节的序号。

        第二次握手: 服务器收到客户端发送的第一个数据包后,根据SYN=1与ACK=0,判断出为主动建立连接的数据包。若服务器同意连接,则服务器发送一个数据包进行回应。 数据包的TCP首部内容:同步SYN=1,确认ACK=1,序号seq=y,确认号ack=x+1,其中seq=y是服务器传输数据的第一个字节的序号,ACK=1就是确认的意思。

        第三次握手:客户端收到服务器的确认之后,再给服务器发送一个数据包。 数据包的TCP首部内容:同步SYN=0,确认ACK=1,序号seq=x+1,确认号ack=y+1。

三次握手的作用是客户端和服务器建立通畅的连接,以便后续数据的传递,并且也是避免重复连接,并且可以得到一个可靠的初始序列号seq,用于可靠性传输。

2.TCP协议的四次挥手:释放连接

        第一次挥手:首先客户端向服务器发送连接释放的请求报文(数据包),并停止发送数据。 在连接释放报文(数据包)的TCP首部中:终止FIN=1,确认ACK = 0,其中FIN=1就意味着客户端要主动释放服务器的TCP连接。

        第二次挥手: 服务器收到连接释放的报文之后,给客户端发送确认报文。从客户端到服务器这个方向上的连接就释放了

你可能感兴趣的:(udp,tcp/ip,网络)