首页 > 技术文章 > java 基础

lclichao 2019-03-25 13:37 原文

简述 tcp 和 udp的区别?

 

  • TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。

  • TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。

  • Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

  • UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

  • 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。

  • TCP对系统资源要求较多,UDP对系统资源要求较少

tcp 为什么要三次握手,两次不行吗?为什么?

为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。

如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认。

 

 OSI 的七层模型都有哪些? please do not tell stupid people anything

  1. 应用层:网络服务与最终用户的一个接口。

  2. 表示层:数据的表示、安全、压缩。

  3. 会话层:建立、管理、终止会话。

  4. 传输层:定义传输数据的协议端口号,以及流控和差错校验。

  5. 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。

  6. 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。

  7. 物理层:建立、维护、断开物理连接。

推荐阅读