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流)
* 在连接中传输大量数据
* 通过三次握手机制 建立连接 ,属于一种可靠协议
* 效率低
*
* 比如:打电话,文件传输
UDP传送数据
UDP数据丢失
Socket socket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄(引用)。 每个插座就是一个应用程序。 细节 不同的通信规则需要定义不同的插座。
UDP:DatagramSocket 、 DatagramPacket
TCP:ServerSocket 、Socket
TCP传送数据
TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。
建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
TCP其他特点:
TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。
在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。
在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法),该算法主要包括三个主要部分:1,加性增、乘性减;2,慢启动;3,对超时事件做出反应