2012年4月1日星期日

2012.04.01 网络基础知识

2012.04.01 网络基础知识



《微博是这样炼成的:从聊天室到Twitter的技术实现》

第一章 JavaKe起步:聊天室的实现

1.1 网络基础知识

我总是用QQ作为网络通信技术的代言人,它对我们都是再熟悉不过的即时通信工具。

当在QQ消息框中输入一段文字按下发送键后,这段文字就会出现在另一台电脑上你朋友的QQ中——我们就这里开始,分析这个过程这是如何实现的。

开始之前,你至少应该知道,每台机器都有一个IP地址,以便另外一台机器可以在网络上找到它,IP地址在网络中标识了一台机器。但是,当A机器与B机器通信时,其实是这两台机器上的程序在通信。A机器上的QQ_A如想与B机器的上QQ_B通信时,它还必须知道这个QQ_B在B机器的哪个“端口”上等待;就像你到别人家做客,只知道在第几幢是不行的,还得知道是几号——在计算机中,用“端口号”这个数字标识机器上需要通信的某一个程序。

每一台机器都有从0~65535个端口号,其中的每一个数字,可供一个程序通信用。通常情况下0~~1024的端口要尽量避免使用——我们称它为“知名端口”。例如打开网页时,连接的是服务器上的80端口,因为它是默认的,所以在浏览器地址栏不需要输入这个端口号。

要测试服务器上是否开放了某个端口,首先通过ping netjava.cn这个主机查看网络是否通畅。注意,ping命令使用ICMP报文工作在TCP层,ping只能证明网络是否通畅,即数据可否传送到指定主机,并不能证明主机上是否开放某个端口。

C:\Documents and Settings\Administrator>ping netjava.cnPinging netjava.cn [98.126.26.180] with 32 bytes of data:Reply from 98.126.26.180: bytes=32 time=179ms TTL=47Reply from 98.126.26.180: bytes=32 time=179ms TTL=47Reply from 98.126.26.180: bytes=32 time=179ms TTL=47Reply from 98.126.26.180: bytes=32 time=179ms TTL=47Ping statistics for 98.126.26.180:    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:    Minimum = 179ms, Maximum = 179ms, Average = 179ms

 

执行ping命令行,如果网络通畅,就可以使用telnet命令连接对方的端口,如果能连

接上,则证明对方的端口是打开的



TAG: