• java网络编程(2)——UDP与TCP


      首先,先介绍这两种协议:

      UDP:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,UDP协议全称是用户数据报协议[1] ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。(百度百科)

      特点:无须建立连接、数据包大小限制在64K、不可靠协议、因为无须连接,所以速度快;

      常见应用:聊天、网络视频

      举个例子,例如生活中的email,发邮件,不管对方在不在,发过去就是了;

      TCP:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

      特点:需要建立连接,形成数据通道;

         连接中可以进行大数量传输;

         通过三次握手完成连接,是可靠协议;

         相比udp效率要低;

      常见应用:下载,传输文件

      举个例子,例如我们生活中的打电话,没有双方接通的话是无法进行通讯的,此时接通就相当于通道,通讯就相当于传输数据;

       为什么讲这个呢,这是网络编程的基础知识,而java中到底提供了什么来让我们可以通过这些协议来进行通讯呢?

      那就是socket,我们通常说的java的网络编程其实就是指socket编程:

      socket是为网络服务提供的一种机制,通过IO就可以在两端的socket传输数据!

      那么不同协议遵循的准则不一样,所以对于不同协议也就有不同socket实现类。

      例如,UDP的DatagramSocket;TCP的就是socket和serverSocket,下面我会详细介绍==。

  • 相关阅读:
    serial number
    python getopt
    python readline,seek
    linux scp
    jenkinsapi
    windows kill process
    python time
    python configparse
    解决某些.net不方便解决的问题,解决方法就是 DHTML
    (转)windows XP 系统服务“关闭”详细列表,释放N多内存,128也够用了!
  • 原文地址:https://www.cnblogs.com/sevenlin/p/4649841.html
Copyright © 2020-2023  润新知