TCP/IP 协议与 UDP 协议的区别 TCP/IP 协议是面向连接的协议,在收发数据前,必须和对方建立可靠的连接。TCP 连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂。三个“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机 A 才向主机 B 正式发送数据。 TCP 的三次握手过程如下: 1. 主机 A 通过向主机 B 发送一个含有同步序列号的标志位的数据段,向主机 B 请求建立连接,通过这个数据段,主机 A 告诉主机 B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。 2. 主机 B 收到主机 A 的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机 A,也告诉主机 A 两件事:我已经收到你的请求了;你要用哪个序列号作为起始数据段来回应我。 3. 主机 A 收到这个数据段后,再发送一个确认应答,确认已收到主机 B 的数据段:我已收到回复,我现在要开始传输实际数据了。 这样三次握手就完成了,主机 A 和主机 B 就可以传输数据了。 TCP 的特点是使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础。 ACK 是 TCP 报头的控制位之一,对数据进行确认。确认由目的端发出,用它来告诉发送端这个序列号之前的数据段都收到了。 SYN 是同步序列号,TCP 建立连接时将这个位置 1。 FIN 是发送端完成发送任务位,当 TCP 完成数据传输需要断开时,提出断开连接的一方将这位置 1。 TCP 的包头结构包括源端口、目标端口、序列号、回应序号、TCP 头长度、reserved、控制代码、窗口大小、偏移量、校验和、选项等。这样我们得出了 TCP 包头的最小长度,为 20 字节。 UDP 是一个非连接的协议,传输数据之前源端和终端不建立连接。当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP 传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 UDP 的特点包括: 1. 非连接的协议,传输数据之前不建立连接。 2. 传输数据速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制。 3. UDP 信息包的标题很短,只有 8 个字节,相对于 TCP 的 20 个字节信息包的额外开销很小。 4. 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。 5. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表。 6. UDP 是面向报文的。发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付给 IP 层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
- 粉丝: 9
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电子元件行业知名厂商官网(TI/NXP/ST/Infineon/ADI/Microchip/Qualcomm/Diodes/Panasonic/TDK/TE/Vishay/Molex等)数据样例
- Cytoscape-3-10-0-windows-64bit.exe
- 基于STM32设计的宠物投喂器项目源代码(高分项目).zip
- 机器学习音频训练文件-24年抖音金曲
- 工业以太网无线通信解决方案
- multisim 仿真ADS8322仿真
- Profinet转EtherCAT主站网关
- Python图片处理:svg标签转png
- k8s各个yaml配置参考.zip
- DB15-Adapter-BOM - 副本.xls