通信的协议还是比较复杂的,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协议可以保证数据的安全,所以应用十分广泛,例如:下载文件、浏览网页等。

转载于:https://www.cnblogs.com/sdrbg/p/11218285.html

3.网络通信协议分类相关推荐

  1. 27 网络通信协议 udp tcp

    四 网络通信协议(互联网协议) 第二天再讲这里,大家第二天再看这里把~~~ 网络通信协议是网络传输的灵魂,非常重要,协议即准则,准则是传输消息的格式要求,那么我们从电脑上发出一个消息,到底是以什么样的 ...

  2. 网络通信协议是什么?

    网络通信基本模式 常见的通信模式有如下2种形式:Client-Server(CS) . Browser/Server(BS) 实现网络编程关键的三要素 IP地址:设备在网络中的地址,是唯一的标识. 端 ...

  3. 基于TCP/UDP的P2P网络通信协议研究与实现

    此章节是理论知识,下个章节会奉献源码 摘    要 对等式网络(peer-to-peer,简称P2P),又称点对点技术,是一种实现网络中不同主机直接通信的技术.在物联网的应用中,大量的设备需要能进行点 ...

  4. 第十六章 网络通信协议探讨

                               第十六章    网络通信协议探讨      LINUX的源代码中属于网络的就有近38万行:我必须先花时间彻底解决网络编程问题,再论其它:所以.其它 ...

  5. java 网络通讯用什么流_Java中打印流,网络通信协议,TCP通信的基础介绍

    1-1.打印流 java.io.PrintStream:打印流 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式. PrintStream特点: 1).只负责数据 ...

  6. 22.1 网络编程:软件结构、网络通信协议、UDP与TCP协议、(网络编程三要素:协议、ip地址、端口号)、查看ip地址、检测网络是否连通、判断ip是否可用

    目录 网络编程 软件结构 网络通信协议 TCP/IP协议 协议分类 UDP TCP 网络编程三要素 协议 IP地址 列:查看本机ip地址 检查网络是否连通.判断ip是否可用 端口号 网络编程 软件结构 ...

  7. Java网络编程,使用Java实现UDP和TCP网络通信协议,以及基于UDP的在线聊天室。

    文章目录 前言 一.网络编程概念 1.网络 2. 网络编程的目的 3.想要达到这个效果需要什么 4.网络分层 二.网络编程Java类 1.IP地址:InetAddress 2.端口 3.TCP连接 3 ...

  8. Java网络编程(网络基础(IP端口号网络通信协议)、TCP编程、UDP编程和URL编程原理以及常用方法的实例)

    网络编程 网络基础概述 计算机网络:   把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等 ...

  9. java 网络通信协议_JAVA-基础-网络通信协议

    通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规则被称为网络通 ...

最新文章

  1. android+模拟器皮肤,自定义android模拟器皮肤和键盘映射
  2. 分享经济:我的,就是你的
  3. Mybatis中typeAliases的使用
  4. 面试中有哪些经典的数据库问题?
  5. 【POJ - 1463】Strategic game (树上最小点覆盖,树形dp)
  6. 数据结构:静态链表实现树的同构
  7. Mysql中的一绡规范约束,摘自《阿里巴巴 Java 开发手册》
  8. 十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示
  9. 12022.ADS7138采集芯片
  10. 简单理解L0、L1与L2范数
  11. 你值得拥有的Mac PS滤镜插件和特效处理软件合集,不要错过!
  12. 计算机基础证和PS证,全国计算机等级PHOTOSHOP一级证书
  13. SpringAnimation弹簧动画简单使用(个人学习记录)
  14. 操作系统引导程序顺序
  15. js 写一个任意类型转浮点小数点保留两位
  16. 日常开发中,你需要掌握的git使用报错解决
  17. 基础//页面布局——三栏布局1
  18. 字节流与字符流应用详解
  19. 哲学家就餐问题python实现
  20. matlab 符号表达式与字符串的互转 及相关替换操作

热门文章

  1. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY10-降维和度量学习
  2. python 添加新元素时如果有重复的不进行添加_清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干...
  3. abb样本-感应电机与发电机手册_防爆电机如何选?
  4. 大头贴计算机教程,美颜相机大头贴在哪里 教你怎么弄动漫大头贴
  5. 怎么升级浏览器_下载的chrome无法访问此网站怎么解决
  6. 大连网络推广浅析网站如何实现加快收录的方法?
  7. 浅析高端网站建设策划方案都包括哪些内容?
  8. 网站SEO优化技巧的“减法运算”
  9. 应对百度算法调整的三大优化技巧
  10. 影响网站快照异常的因素有哪些?