TCP和UDP协议(深信服X计划)

简介: TCP和UDP协议(深信服X计划)

文章目录


一、TCP协议概述

二、TCP三次握手和四次挥手

三、UDP协议概述

四、TCP和UDP对比及应用场景


一、TCP协议概述


TCP (Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP) 是同一层内另一个重要的传输协议。


TCP报文结构


73b74a179e9c40148c5f37650bcb414a.png


①源端口:标识发送方的应用进程。

②目的端口:标识接收方的应用进程。

③序号:保证数据传输的有序性。

④确认号:对收到的数据进行确认。

⑤Flag字段(8位):ACK-确认号标志,置1表示确认号有效,表示收到对端的特定数据;RST-复位标志,置1表示拒绝错误和非法的数据包,复位错误的连接;SYN-同步序号标志,置1表示同步序号,用来建立连接;FIN-结束标志,置1表示连接将被断开,用于拆除连接。

⑥Option字段(可选项):MSS最大报文段长度,通过置位,协商能承载的TCP数据的大小。


TCP序列号及确认号:


be94d4eb3d92402f88746ab419c96c7c.png


TCP端口号:


9d1adba3f7d543c9a68ec825f15aaeb2.png


源端口随机分配,目标端口使用知名端口(Well-known port) ;

应用客户端使用的源端口号一般为系统中未使用的且大于1023;

目的端口号为服务端开启的服务所侦听的端口,如HTTP缺省使用80。


TCP端口号、序列号及确认号:


3f02c6e15d644e4ebd6c70c480d26c8b.png


二、TCP三次握手和四次挥手


传输机制-TCP三次握手:


83688b0fcf904830ad07276cd6ad036b.png


传输机制-TCP四次挥手:


34b3e3c0fdac42f6920b6b220b3c3134.png


面向字节流:


1be40954e1144e09ada2d77b823a9b17.png


流量控制-滑动窗口机制:窗口大小决定了在收到确认前可以发送的字节数。


8b5fefd59ab44fbf82b558bacbe26242.png204edd094a204817a0bc2135dddb6c11.png



可靠传输-停止等待协议:


d32328f9844d4134b36ec3fba3ac7ad2.png3cbbc59cc9fd4b1f8d5db4afd6cb887d.png



拥塞控制:


6b403b5e5db1408fa2d561d713c1bf0b (1).png


RST标志位:用于复位因某种原因导致的错误连接,也用来拒绝非法数据和请求。如果接收到RST位,通常发生了某些错误。其可能被接收方或者中间设备置为。


RST置为的原因:①服务器端口没有打开。②服务器响应太慢,用户终止连接。③网络攻击等。


三、UDP协议概述


UDP是User Datagram Protocol的简称,中文 名是用户数据报协议,是OSI (Open System Interconnection,开放式系统互联)参考 模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。


UDP报文结构:


48afc4285e514e5994778d457ffac043.png


UDP协议特点:

①UDP是无连接的,在传输数据之前,不需要进行复杂的三次握手来建立连接。

②在传输数据时,没有协议间通信流量(确认信号),也不需要浪费不必要的处理时间(接收确认信号再发一下)。

③传输结束后,也不用再用四次握手握手来结束连接。


四、TCP和UDP对比及应用场景


e15d4717836e47dba3d7483a66f88b02.png


TCP适用场景:

①当网络硬件失效或者负担太重时,数据包可能就会产生丢失、重复、延时、乱序的现象。这些都会导致我们的通信不正常的时候。如果让应用程序来担负差错控制的工作,无疑将给程序员带来许多复杂的工作,于是,我们使用独立的通信协议来保证通信的可靠性是非常必要的。

②TCP一般用于文件传输(FTP HTTP对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP对数据准确性要求高,非紧急应用), 远程登录(TELNET SSH对数据准确性有一定要求,有连接的概念)等。


UDP适用场景:

①在高效可靠的网络环境中(不需要考虑网络不好导致的丢包、乱序、延时、重复等问题),因为UDP是无连接的服务,不用消耗不必要的网络资源(TCP中 的协议间通信)和处理时间(预期确认需要的时间),从而效率要高的多。

②在轻权通信中,当需要传输的数据量很小(可以装在一个IP数据包内)时。如果我们使用TCP协议,那么,先建立连接,一共需要发送3个IP数据包,然后数据传输,1个IP数据包,产生一个确认信号的IP包,然后关闭连接,需要传输5个IP数据包。使用TCP协议IP包的利用率为1/10。而使用UDP,只需要发送一一个IP数据包。哪怕丢包(服务不成功),也可重新申请服务(重传)。UDP很适合这种客户机向服务器传送简单服务请求的环境。此类应用层协议包括TFTP,SNMP,DNS,DHCP等。

③在对实时性要求很强的通信中:在诸如实时视频直播等对实时性要求很高的环境中,从而允许一定量的丢包的情况下(直播比赛,前面丢失的包,重传出来已经意义不大了),UDP更适合。(可以根据具 体需要通过应用层协议提供可靠性,不用像TCP那么严格。)



相关文章
|
7天前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
|
22天前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
60 4
|
22天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
51 3
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
83 3
|
1月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
39 4
|
1月前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
|
3月前
|
存储 网络协议 算法
UDP 协议和 TCP 协议
本文介绍了UDP和TCP协议的基本结构与特性。UDP协议具有简单的报文结构,包括报头和载荷,报头由源端口、目的端口、报文长度和校验和组成。UDP使用CRC校验和来检测传输错误。相比之下,TCP协议提供更可靠的传输服务,其结构复杂,包含序列号、确认序号和标志位等字段。TCP通过确认应答和超时重传来保证数据传输的可靠性,并采用三次握手建立连接,四次挥手断开连接,确保通信的稳定性和完整性。
104 1
UDP 协议和 TCP 协议
|
1月前
|
网络协议 算法 网络性能优化
|
2月前
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
68 1
TCP和UDP区别?
|
2月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
66 10