TCP协议----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 什么是TCP协议
①. 概念:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义
②. 重点是此协议中有两个类Socket 和ServerSocket 其中有一些方法,能够实现在两个不同的终端之间传输数据(客户端-服务端)
2. TCP的特点
①. Java中使用Socket实现TCP程序开发,使用此类可以方便的建立可靠的,双向的,持续的,点对点的通讯连接。
②. 在Socket程序开发中,服务器端使用ServerScoket等待客户端的连接,在Java的网络程序中,每一个客户端都使用Socket对象表示。
③. TCP的三次握手
第一次握手:建立连接时,客户端发送SYN包到服务器,并进入发送状态,等待服务器确认。
第二次握手:服务器收到SYN包,必须确认客户的SYN,同时自己也送一个SYN包,即SYN+ACK包,此时服务器进入 接受状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入已建立状态,完成三次握手。
UDP协议----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 什么是UDP协议
①. 概念: UDP (User Datagram Protocol)用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
②. TCP的所有操作必须建立可靠的连接,这样会浪费很大的性能,为此UDP这种不可靠的连接出现并成为聊天工具的宠儿。
③. UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket完成发送操作,也能够实现在两个终端之间传输数据。
TCP与UDP的区别------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 基于连接与无连接 ;
2. 对系统资源的要求(TCP较多,UDP少) ;
3. UDP程序结构较简单 ;
4. 流模式与数据报模式 ;
5. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。
TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。
与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。
相对于TCP协议,UDP协议的另外一个不同之处在于如何接收突发性的多个数据报。不同于TCP,UDP并不能确保数据的发送和接收顺序。