了不起的Node.js--之五 TCP连接
TCP连接
传输控制协议(TCP)是一个面向连接的协议,它保证了两台计算机之间数据传输的可靠性和顺序。
TCP是一种传输层协议,它可以让你将数据从一台计算机完整有序地传输到另一台计算机。
Node.js这个框架的出发点就是为了网络应用开发所设计的。如今,网络应用都是用TCP/IP协议进行通信的。
Node Http服务器是构建于Node TCP服务器之上的。从编程角度来说,也就是Node中得http.Server继承自net.Server(net是TCP模块)。
TCP有哪些特性
TCP的首要特性就是它是面向连接的,面向连接的通信和保证顺序的传递。
还有面向字节、可靠性、流控制、拥堵控制、Telnet等特性。
Telnet详解
Telnet是一个早期的网络协议,旨在提供双向的虚拟终端。在SSH出现前,它作为一种控制远程计算机的方式被广泛使用,如远程服务器管理。它是TCP协议上层的协议。
$ telnet
绝大部分Telnet使用的是23端口。
下面我们一起看一个telnet的例子:下载
# web-server.js var http=require('http'); var serv=http.createServer(function (req, res){ res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<marquee>Smashing Node!</marquee>'); }); serv.listen(3000);
使用telnet来建立一个连接
$ telnet localhost 3000
服务器端的'<marquee>Smashing Node!</marquee>'信息并未到客户端这里。原因在于,要往TCP连接中写数据,必须首先创建一个HTTP请求,这就是套接字(socket)。
在终端输入GET/HTTP/1.1然后按两下回车键。
我们来总结一下:
1.成功建立了一个TCP连接。
2.创建了一个HTTP请求。
3.接收到了一个HTTP响应。
4.测试了一些TCP的特性。到达的数据和在Node.js中写得一样:先写了Content-Type响应头,然后是响应体,最后所有的信息都按序到达。