新闻动态大文件传输

传输层协议的TCP与UDP对比(二)

2019-07-11

TCP协议

TCP(Transmission Control Protocol,传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。

一、TCP协议报头

TCP指传输控制协议,其报头格式如下:

7-11-1-1

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( 1 MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体 1 的TCP层。

TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

TCP协议中的六个标志分别是,URG、ACK、PSH、RST、SYN、FIN。

URG:(Urgent Pointer field significant)紧急指针。用到的时候值为1,用来处理避免TCP数据流中断。

ACK:(Acknowledgment fieldsignificant)置1时表示确认号(AcknowledgmentNumber)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

PSH:(Push Function),PUSH标志的数据,置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。

RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。

SYN:(Synchronize sequence numbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。即,SYN和ACK来区分Connection Request和Connection Accepted。

FIN:(No more data from sender)用来释放连接,表明发送方已经没有数据发送了。

滑动窗口:控制报文流量,用来告诉对方目前接收端缓冲器大小。当为0时标识缓冲器已满,需要停止发包,单位为byte。

二、TCP协议连接方式

TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。握手完成后,两台主机开始传输数据了。

7-11-1-2

简单的说就是:

第一次握手是客户端向服务端发送一个建立连接的请求;

第二次握手是服务端向客服端回复建立连接的请求的确认;

第三次握手是客服端对服务端确认连接的确认。

为什么建立连接需要经过三次“握手”?

如果只有一次握手,客户端不能确定与服务器的单向连接,更加不能确定服务器与客户端的单向连接; 如果只有两次握手,客户端确定与服务器的单向连接,但是服务器不能确定与客户端的单向连接; 只有三次握手,客户端与服务器才能相互确认双向连接,实现双工数据传输。

断开TCP连接需要经历“四次挥手”:

第一次挥手:客户端发送一个FIN,用来关闭客户端到Server的数据传送,客户端进入FIN_WAIT_1状态。

第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器进入CLOSE_WAIT状态。

第三次挥手:服务器发送一个FIN,用来关闭Server到客户端的数据传送,服务器进入LAST_ACK状态

第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务器,确认序号为收到序号+1,服务器进入CLOSED状态,完成四次挥手。

7-11-1-3

简单的说就是:

第一次握手:主机A告诉主机B,我没有数据要发送了,请求关闭。

第二次握手:主机B回复主机A,你的请求我收到了,但是我还没准备好,你等我消息。

第三次握手:主机B向主机A请求关闭连接(注意,第二次握手是主机B 同意 主机A的关闭连接的请求)。

第四次握手:主机A向主机B发送确认断开连接请求,B收到后就关闭连接请求,A等待2MSL(两个最大段生命周期,2 Maximum Segment Lifetime)后依然没有收到回复,则证明B已经正常断开,A也关闭连接。

三、TCP协议特点

1、面向连接

面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。

2. 仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

3.面向字节流

TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

4.可靠性

对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传

5. 提供拥塞控制

当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

6. TCP提供全双工通信

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)。

上一篇:TCP协议的确认重传机制

下一篇:传输层协议的TCP与UDP对比(一)

热搜关键词

udp传输大数据|服务器数据迁移|高速文件传输解决方案|FTP传输|aspera替代方案|ftp传输替代方案|跨境传输|传输系统|传输数据|远程传输|数据迁移|大文件传输解决方案|大数据传输|跨国文件传输|远程大文件传输|高速传输|加速传输|文件共享传输|文件数据|文件共享|传输大文件|数据传输软件|TLS|媒体行业|传输文件|跨境数据传输|文件传输|远距离传输|影视传输|文件传输系统|数据同步|同步传输|小文件传输|安全文件传输|发送大文件|共享文件|mft|sftp|ftps|aes|数据管理|文件直传|快速文件传输|电子邮件文件传输|传输解决方案|超大文件传输|文件传输软件|文件同步|文件同步软件|大数据传输|文件传输工具|文件传输协议|安全文件同步|高速文件传输|高速传输软件|传输软件|SD-WAN|极速传输|远程办公|外贸行业|文件管理|云计算|云存储|安全传输|网络|高速缓存|SOCKS5|断点续传|aspera|高速传输协议|传输加密|高可用|跨国传输|文件同步传输|高速数据传输|企业级文件传输软件|大文件传输软件|tcp传输|传输协议|AD域|LDAP|数据传输|镭速传输|镭速云传|文件传输|大文件传输|文件管理平台|镭速软件|镭速|镭速云|文件传输解决方案|跨境文件传输|点对点传输|数据交换|企业网盘私有化部署|UDP文件传输工具|文件分享|企业大文件传输|海量文件传输|内网文件传输工具|私有化部署
企业大文件传输系统

最新资讯

关注云语科技

wechat qrcode

微信扫一扫,获取最新资讯