网络编程之TCP与UDP

版权声明 :

本文为博主原创文章,如需转载,请注明出处(https://blog.csdn.net/F1004145107/article/details/87946437)

TCP

  • 优点 : 可靠,不丢包.因为在传输数据之前会先进行三次握手建立连接,并且在传输数据时有确认、窗口、重传、拥塞控制机制,所以TCP的传输很稳定,并且不会丢包,不会重复,能按照顺序来传输

  • 缺点 : 耗时,性能低.

    • TCP在传输之前先建立连接,并且TCP所拥有的机制导致了其在进行数据传输时会消耗大量的时间,还要对连接进行维护

      • 因为TC有三次握手和确认等机制,所以容易受到DOS,DDOS,CC等攻击

UDP

  • 优点 : 速度快,不易被攻击.UDP是一个无状态的传输协议,而且没有TCP的三次握手和确认等机制,所以速度非常快,而正是因为没有那些机制所以可以被利用的攻击点较少

  • 缺点 : 不可靠,容易丢包.因为缺少TCP的连接机制,所以在传输数据时会受到网络的影响,容易丢包

TCP和UDP怎么选择

  • 如果你需要稳定的数据传输,如HTTP,FTP等协议用来做文件上传,消息通知等,那么就选择TCP

  • 如果你需要的是快速的传递数据而不太考虑网络原因的话就选择UDP,如视频播放,视频直播,视频会议等

TCP于UDP的对比总结

TCP的三次握手与四次挥手

  • 三次握手

    • 第一次 : A发送一个syn包(建立连接)到B请求建立连接

    • 第二次 : B收到syn包知道A想要建立连接,此时返回一个ack包(确认连接)表示可以连接

    • 第三次 : A收到B发来的ack包后会再给B发送一个ack包表示已收到可以连接的信息,并建立连接

      借用一张网上的图

      图上的Seq是一个随机数字

  • 四次挥手

    • 第一次 : A发送Fin包(取消连接)以及ack包(确认)请求取消连接

    • 第二次 : B发送ack包表示可以取消连接

    • 第三次 : B发送Fin包以及ack包请求取消连接

    • 第四次 : A发送ack包确认取消连接,连接中断

      再次借用一张网上的图

    • TCP的标记状态

      • syn : 建立连接

      • fin : 关闭连接

      • ack : 响应,确认

      • psh : 有数据进行传输

      • rst : 连接重置

原创文章 42 获赞 51 访问量 1万+

猜你喜欢

转载自blog.csdn.net/F1004145107/article/details/87946437