美文网首页Java学习笔记Java 杂谈
12.2-全栈Java笔记: TCP协议和UDP协议

12.2-全栈Java笔记: TCP协议和UDP协议

作者: 全栈JAVA笔记 | 来源:发表于2017-07-11 10:59 被阅读140次

 区别

在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据。而UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得。

这两种传输方式都是实际的网络编程中进行使用,重要的数据一般使用TCP方式进行数据传输,而大量的非核心数据则都通过UDP方式进行传递,在一些程序中甚至结合使用这两种方式进行数据的传递。

由于TCP需要建立专用的虚拟连接以及确认传输是否正确,所以使用TCP方式的速度稍微慢一些,而且传输时产生的数据量要比UDP稍微大一些。 

总结

 TCP传输数据安全,稳定,效率相对较低。

 UDP传输数据不安全,效率较高。 

TCP协议

TCP(Transfer  Control  Protocol)是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程。

TCP在建立连接时又分三步走:

第一步,是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;

第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。

第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。然后才开始通信的第二步:数据处理。

这就是所说的TCP的三次握手(Three-way Handshake)。根据三次握手的特点,有一种对服务器的攻击叫做Syn Flood洪水攻击。

UDP协议

Socket通信是一种基于TCP协议,建立稳定连接的点对点的通信。这种通信方式实时、快速、安全性高、但是他很占用系统的资源。

在网络传输方式上,还有另一种基于UDP协议的通信方式,称为数据报通信方式。在这种方式中,每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中去寻找他的目的地。 

注意:UDP端口和TCP端口是相互独立的。


「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。

 笔记包含从浅入深的六大部分:

 A-Java入门阶段

 B-数据库从入门到精通

 C-手刃移动前端和Web前端

 D-J2EE从了解到实战

 E-Java高级框架精解

 F-Linux和Hadoop 

相关文章

  • 12.2-全栈Java笔记: TCP协议和UDP协议

    区别 在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的...

  • ☆技术问答集锦(四)

    2 TCP 与 UDP 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;传输层:TCP协...

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

  • python网络编程

    TCP协议和UDP协议的区别 TCP/IP协议是一个协议簇,里面包含了很多个协议,UDP只是其中的一个。 TCP协...

  • TCP和UDP的区别

    TCP和UDP的区别: TCP协议和UDP协议特性区别总结: TCP协议可靠;UDP协议不可靠 TCP协议是面向连...

  • tcp和udp

    TCP和UDP的区别(转) TCP****协议与UDP协议的区别 首先咱们弄清楚, TCP 协议和 UCP ...

  • tcp协议和udp协议的差别

    tcp协议和udp协议的差别 TCP UDP 是否连接 面向连接 面向非连接 传输可...

  • 测试工程师技术面问题汇总

    协议类问题 Q:TCP协议和UDP协议的区别是什么?A:TCP协议和UDP协议都是传输层两个非常重要的协议,它们之...

  • 12.socket编程 - TCP

    socket抽象层位于应用层和传输层之间,是对传输层TCP协议和UDP协议的封装,可以让我们无需关心复杂的TCP协...

  • TCP/IP协议,TCP、UDP区别与联系

    TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了, 一...

网友评论

    本文标题:12.2-全栈Java笔记: TCP协议和UDP协议

    本文链接:https://www.haomeiwen.com/subject/zxwphxtx.html