Socket 框架调研文档
TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。即客户端和服务器之间在交换数据之前
会先建立一个 TCP 连接,才能相互传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等
功能,保证数据能从一端传到另一端。
TCP 的优点 :可靠,稳定 ,TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数
据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
TCP 的缺点 :慢,效率低,占用系统资源高,易被攻击 ,TCP 在传递数据之前,要先建连接,这会消耗时
间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备
上维护所有的传输连接,事实上,每个连接都会占用系统的 CPU、内存等硬件资源。由于 TCP 存在确认机
制和三次握手机制,这些是导致 TCP 容易被人利用,实现 DOS、DDOS、CC 等攻击。
TCP 应用场景 :当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于
一些要求可靠的应用,比如 HTTP、HTTPS、FTP 等传输文件的协议,POP、SMTP 等邮件传输的协议。在日常
生活中,常见使用 TCP 协议的应用比如:浏览器使用 HTTP,Outlook 使用 POP、SMTP,QQ 文件传输等。
1.传统 TCP 连接的建立步骤:
客户端向服务器端发送连接请求后,就被动地等待服务器的响应。典型的 TCP 客户端要经过下面三步操作:
1. 创建一个 Socket 实例:构造函数向指定的远程主机和端口建立一个 TCP 连接;
2. 通过套接字的 I/O 流与服务端通信;
3. 使用 Socket 类的 close 方法关闭连接。
服务端的工作是建立一个通信终端,并被动地等待客户端的连接。典型的 TCP 服务端执行如下操作:
1. 创建 ServerSocket 对象,绑定并监听端口
2. 通过 accept 监听客户端的请求
3. 建立连接后,通过输出输入流进行读写操作
4. 关闭相关资源