TCP 与 UDP

TCP 与 UDP

想要写一个应用程序,让这个程序可以使用网络通信。这里就需要调用传输层的 api.

传输层提供的协议,主要是两个:(提供了两套不同的 api)

  1. TCP
  2. UDP

二者都是用于在计算机网络中传输数据。

它们之间的主要区别在于:

  1. UDP:无连接,不可靠传输,面向数据报,全双工
  2. TCP:有连接,可靠传输,面向字节流,全双工

有连接/无连接:

相当于打电话、拨号,直到对方接通,才算完成建立连接。TCP进行编程的时候,也存在类似的建立连接的过程。

像发微信、发短信,则不需要建立连接,就能进行通信。UDP进行编程时,则不需要进行连接。

可靠传输/不可靠传输:

可靠传输,不是说 A 给 B 发消息 100% 能到,这个太难了。

而是 A 尽可能的把消息传给 B 。并且在传输失败的时候,A 也能感知到。传输成功了自己也能知到。

可靠传输/不可靠传输不分好坏(有舍才有得),二者各有特点:

  • TCP可靠传输传输效率低
  • UDP不可靠传输效率高

如果听到说:TCP是可靠传输,UDP是不可靠传输,因此 TCP 比 UDP 更安全。 这个说法是错的!!

谈到“网络安全”,指的是,你传输的数据是否容易被黑客获取,以及入侵、破解、加密、反编译……

面向字节流/面向数据报:

TCP 和 文件操作类似,都是“流”式的,传输的单位是字节,称字节流。

UDP 面向的是数据报,读写的基本单位,是一个 UDP 数据报(包含一系列的 数据/属性 )

全双工/半双工

全双工:一个通道,可以双向通信(想象成双向车道)

半双工:一个通道,只能单向通信(想象成水管,只能单向)

你可能感兴趣的:(网络,udp,网络协议,tcp)