• TCP和UDP协议的区别 ------- TCP/IP协议如何实现可靠性传输


    1.TCP和UDP的区别:

    1.是否面向连接?

    • TCP通过三次握手,建立连接。
    • UDP是不用建立连接。

    2.是否可靠?

    • TCP传输的是可靠并有序的数据
    • UDP只是尽最大努力交付,不一定可靠

    3.UDP具有较好的实时性  适用场景:短消息,多客户端,对信息可靠性要求不高,对效率要求高。

    4.每一条TCP是点对点的,UDP支持更广泛 一对一,多对一,多对多。

    5.TCP对资源要求较高,UDP对资源要求较少。

    6.TCP面向数据流,  UDP面向数据报。

    2.TCP/IP 实现可靠传输的方式:

    1. 序列号,ACK信号:发送方给每个要发送的数据包都标有一个序列号。接受方在接收到数据包后,给发送送发送一个ACK信号包含了,要求的下一个数据包的序列号。
    2. 超时重发:当发送方在规定时间内没有接收到接收方的ACK时,将会重发送该数据包,并下一次等待重发的时间成指数增长。当重发一定次数后,若还没有收到ACK,就会强制的断开连接。
    3. TCP的连接管理:三次握手,四次挥手。
    4. 以段为单位发送数据包:在通信双方建立连接的同时,协商数据包的单位即(最大的消息长度(MSS))。
    5. 滑动窗口:包括前端已发送未收到ACK的数据包,和后端待发送的数据包。接收端收到ACK后,窗口向前滑动,直到有数据未确认时停止。
    6. 流量控制:TCP数据报首部字段来控制滑动窗口的大小。
    7. 拥塞控制:发送端通过拥塞窗口主动控制数据流量。 慢启动:防止通信双方一开始就发送大量的数据包,拥塞窗口一开始的大小为:1MSS,每收到一个ACK拥塞窗口就扩大两倍,发送数据包时选择拥塞窗口和滑动窗口的较小值。拥塞避免算法:相比慢启动,拥塞窗口的增长速度更慢。快速重传:当在规定时间限度内没有收到ACK,那么很可能就是网络出现问题。此时将拥塞窗口减小为一,重新慢开始。
  • 相关阅读:
    iOS 统计项目代码行数
    iOS Xcode 8 快捷键 (注释 失效 处理)
    iOS NSSet 学习 “无序数组” & 去重 案例
    iOS 学习@autoreleasepool{}
    iOS 学习如何声明私有变量和私有方法
    iOS 系统认知 debug distribution release 和 #ifdef DEBUG
    iOS copy 和 mutableCopy 学习
    iOS 关于 Missing iOS Distribution signing identity for.... 等 打包 校验 出现的事故 处理经验
    iOS NSCoding 的学习 和 使用
    TeamViewer被发现用于(检测为)商业用途解决方案(绝对有效)
  • 原文地址:https://www.cnblogs.com/xbfchder/p/11442196.html
Copyright © 2020-2023  润新知