协议分类笔记

1.3 协议分类

通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。

java.net 包中提供了两种常见的网络协议的支持:

  • UDP:用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

    由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

    但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。UDP的交换过程如下图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特点:数据被限制在64kb以内,超出这个范围就不能发送了。

数据报(Datagram):网络传输的基本单位

  • TCP:传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。

    在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。

    • 三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。
      • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
      • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
      • 第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

相关推荐

  1. 网络协议学习笔记

    2024-03-23 02:16:04       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 02:16:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 02:16:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 02:16:04       82 阅读
  4. Python语言-面向对象

    2024-03-23 02:16:04       91 阅读

热门阅读

  1. 探索Python中的基础算法:梯度提升机(GBM)

    2024-03-23 02:16:04       44 阅读
  2. C++迈向精通,学习笔记:类与对象

    2024-03-23 02:16:04       33 阅读
  3. 深入理解Apache Kafka Topic:架构设计与应用场景

    2024-03-23 02:16:04       45 阅读
  4. ChatGPT助力:写出引人注目的学术论文

    2024-03-23 02:16:04       42 阅读
  5. iSAM2 部分状态更新算法 (II - 源码阅读 - GTSAM)

    2024-03-23 02:16:04       42 阅读
  6. 面向对象编程的初步演示

    2024-03-23 02:16:04       39 阅读
  7. C++ 字符串转数字的几种方法

    2024-03-23 02:16:04       44 阅读
  8. 如何在Docker容器启动时自动运行脚本

    2024-03-23 02:16:04       42 阅读
  9. linux常用命令

    2024-03-23 02:16:04       27 阅读