网络编程

2021-03-02 18:07:36 浏览数 (1)

网络编程

构建TCP 服务

创建 TCP 服务器

TCP全名为传输控制协议,在OSI模型(由七层组成,分别为物理层、数据链结层、网络层、 传输层、会话层、表示层、应用层)中属于传输层协议。

3次握手创建会话

服务 器端和客户端分别提供一个套接字,这两个套接字共同形成一个连接

服务器端与客户端则通过 套接字实现两者之间连接的操作

TCP 服务的事件

服务器事件,listening,connection,close,error

连接事件,data,end,connect,drain,error,close,timeout

TCP针对网络中的小数据包有一定的优化策略:Nagle算法

要求缓冲区的数据达到一定数量或者一定时间后才将其发出

构建UDP服务

UDP

在 UDP 中,一个套接字可以与多个 UDP 服务通信

UDP 又称用户数据包协议,与 TCP 一样同属于网络传输层

无须连接,资源消耗低,处理快速且灵活

若想让UDP套接字接收网络消息,只要调用dgram.bind(port, [address])方法对网卡和端口 进行绑定即可

UDP 是一个EventEmitter的实例,而非Stream 的实例,具有自定义事件,message,listening,close,error

构建HTTP服务

HTTP

HTTP的全称是超文本传输协议

HTTP构建在TCP之上,属于应用层协议

HTTP报文

第一部分内容为经典的 TCP的3次握手过程

第二部分是在完成握手之后,客户端向服务器端发送请求报文

第三部分是服务器端完成处理后,向客户端发送响应内容,包括响应头和响应体

最后部分是结束会话的信息

HTTP客户端事件,response,socket,connect,upgrade,protocols,continue

构建 WebSocket 服务

WebSocket

WebSocket客户端基于事件的编程模型与Node中自定义事件相差无几

WebSocket实现了客户端与服务器端之间的长连接

客户端与服务器端只建立一个TCP连接,可以使用更少的连接。

WebSocket服务器端可以推送数据到客户端

有更轻量级的协议头,减少数据传送量

WebSocket握手

upgrade

切换协议

WebSocket数据传输

为了安全考虑,客户端需要对发送的数据帧进行掩码处理

网络服务与安全

SSL作为一种安全协议,它在传输层提供对网络连接加密的功能

Node在网络安全模块

crypto

· 主要用于加 密解密,SHA1、MD5等加密算法都在其中有体现,

tls

· TLS/SSL是一个公钥/私钥的结构,它是一个非对称的结构

· 公钥用来加密要传输的数据,私钥用来解密接收到的数据

· 为了防止中间人攻击,TLS/SSL引入了数字证书来进行认证

· 创建服务器端

• 创建一个安全的TCP服务

• 测试证书是否正常

· TLS客户端

• 启动客户端的过程中,用到了为客户端生成的私钥、证书、CA证书

https

· HTTPS服务就是工作在TLS/SSL上的HTTP

· 1. 准备证书

· 2. 创建HTTPS服务

· 3. HTTPS客户端

0 人点赞