TCP和UDP协议详解

 *     计算机与计算机 通讯三要素:
 *     
 *     1.IP地址
 *     2.端口号
 *     3.通讯协议
 * 
 *     IP地址:IP地址的本质 是由  32个 二进制位 组成的
 *         为了方便人类记录,把一个 ip地址分成了 4段,每一段8个二进制数据 
 *         192.168.17.100
 *         
 *         IP地址  = 网络号  + 主机号
 * 
 *     IP的类别:
 *     A类地址:     一个网络号+三个主机号          *
 *     B类地址:    两个网络号+两个主机号        事业单位,学校
 *     C类地址:     三个网络号+一个主机号        
 *     
 * 
 *     端口号:端口号的范围 (0-65535),从0到1023 ,他们紧密绑定(binging)于
 *             一些系统服务 ,1024-65535 它们松散地绑定于一些服务
 * 
 *     
 *     常用的端口:
 *     80: HTTP
 *     21: FTP
 *     2425: feiQ
 * 
 *     通讯协议:
 *         UDP  协议(是User Datagram Protocol的简称, 中文名是用户数据报协议)
 *         TCP  协议(Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的                                    运输层(Transport layer)通信协议)
 *     UDP协议:
 *         将数据及其数据源和目的封装为数据包,不需要建立连接,不需要三次握手四次挥手
 *         每个数据包大小限制在 64KB中(适合于一次传输少量数据)
 *         因为无连接,所以不可靠,数据包会丢失,不可靠协议
 *         效率高(具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多)
 *         
 *     比如:警察的对讲机,网络游戏,feiQ通讯
 *   
 *     TCP协议:
 *         面向连接,需要三次握手四次挥手,字节流传输,有特定的数据传输通道(IO流)
 *         在连接中传输大量数据
 *         通过三次握手机制 建立连接 ,属于一种可靠协议
 *         效率低
 * 
 *     比如:打电话,文件传输

TCP和UDP协议详解

UDP传送数据 

TCP和UDP协议详解

UDP数据丢失

TCP和UDP协议详解
Socket socket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄(引用)。 每个插座就是一个应用程序。 细节 不同的通信规则需要定义不同的插座。

UDP:DatagramSocket  、 DatagramPacket

TCP:ServerSocket 、Socket

TCP传送数据

TCP和UDP协议详解

TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。

TCP和UDP协议详解

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。

TCP和UDP协议详解

TCP其他特点:

TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。

在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法),该算法主要包括三个主要部分:1,加性增、乘性减;2,慢启动;3,对超时事件做出反应