距离上次写东西已经快一个月了。这个月里由于工作和游戏的原因很少给自己充电了。唉!!用不了多久又把学来的东西还回去了。
今天写这个还是由于工作原因写的。公司要写一个socket的程序用于监控个个分店的数据。
Socket 编程,一个跨越语言统一编程方式。不论在windows和linux平台上的编程原理都是相似的。
首先先熟悉一些概念,
在现实生活中要实现信息传递就要靠沟通(通讯)。
通讯有两种方式: 广播通讯,点对点通讯 。
广播通讯
优点:能实现一对多点传递信息,无需知道对方的地址(身份),也无需知道有多少接收点可以接收到信息。
缺点:不能保证每个接受方都能受到信息。 安全性不高,任何接收点都有可能接收到信息,通常需要做较强额外数据加密类加强安全性。
点对点通讯
优点:安全性高。别人无法接收到发到目的接收方信息。可以监控到对方的接收状态
缺点:只能一次一对一的传递信息。
这两种通讯方式都有其的优点和缺点。结合使用才能发挥作用。如可以通过广播来找一群接收点中的一个点,然后用点对点来通讯。
对于电脑网络的通讯来说,网络上的电脑电脑是如何连接在一起而实现点对点通讯的呢?
IP和端口 是网络通讯的ID(就跟手机号码和人们的身份证同理)
那全世界那么多台电脑的IP地址是如何分配的呢?
电脑又怎么会根据IP和端口来知道这些信息应该发到那里去呢?
一堆堆的问题在脑海里浮现。要实现只有IP和端口就知道目标电脑在那里就把信息发到那里的功能必须要一个中央单元来管理这些IP地址的信息。全世界的网络就类似一超级树状的网络。树的根点就是那超级中央电脑(这台根电脑是在美国 root serverr)。一般国家(大洲)都会有一个管理这个国家内ip路由的中央电脑。(这也就是为什么打起战来,美国一关闭那台根电脑我们的网络要连接到美国就无法连接了。只能在本国ip访问)
说到底就是要实现通讯就要靠路由器(中央电脑也是一个超级路由器),路由器是组建一个区域网的节点(小中央路由电脑)它的IP是由它的父节点来管理的,世界上存在无数个小区域网,他们都是靠一个树状的网络联系在一起。节点就是路由器。我们的信息在网络中传输都会被封装在一个一个的封包里。每发送一层路由器都会加上一层路由外壳,直到找到管理目标IP的路由器为止,再往下传输就是解路由壳了。一层一层的往下剥直到目标电脑。
一下面是一些世界的比较高层次的路由服务器。由于IP数字对用户来说比较难记忆,路由器还提供有域名解析。把用户输入的www.XXXX.com在路由器内部解析成ip然后传输。
目前全球共有13台域名根服务器(root
server)。1个为主根服务器,放置在美国;其余12个均为辅根服务器,其中9个放置在美国、欧洲2个(位于英国和瑞典)、亚洲1个(位于日本)。由ICANN管理,互联网名称与数字地址分配机构(The
Internet Corporation for Assigned Names and
Numbers,ICANN)是一个非营利性的国际组织,负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。
A
INTERNI.NET (美国,弗吉尼亚州) 198.41.0.4
B 美国信息科学研究所
(美国,加利弗尼亚) 128.9.0.107
C PSINet公司 (美国,弗吉尼亚州)
192.33.4.12
D 马里兰大学 (美国马里兰州) 128.8.10.90
E 美国航空航天管理局 (美国加利弗尼亚州) 192.203.230.10
F
因特网软件联盟 (美国加利弗尼亚州) 192.5.5.241
G
美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4
H 美国陆军研究所
(美国马里兰州) 128.63.2.53
I Autonomica公司
(瑞典斯德哥尔摩) 192.36.148.17
J VerSign公司
(美国弗吉尼亚州) 192.58.128.30
K RIPE NCC
(英国伦敦) 192.0.14.129
L
IANA (美国弗吉尼亚州) 198.32.64.12
M
WIDE Project (日本东京) 202.12.27.33
任何域名解析都要经过这13台根服务器获得顶级索引,并不是说访问 .com 会经过这些服务器,访问 .cn
就不经过这些服务器。
而每一个顶级域,不管是gTLD(通用顶级域),还是ccTLD(国别顶级域),它们都有自己的域名服务器(即该顶级域的NS记录),比如:
.com
& .net 的域名服务器是:[a-m].gtld-servers.net 共13个
.org 的域名服务器是:tld1.ultradns.net
等6个
.biz 的域名服务器是:[a-h].gtld.biz 共8个
.info 的域名服务器是:tld1.ultradns.net
等6个
.cn 的域名服务器是:ns.cnc.ac.cn 等6个
.jp 的域名服务器是:[a-f].dns.jp 共6个
等......
近年来国内网民数增长很快,CN域名注册量也上升了很多,中国已于2003年和2004年引进了域名根服务器的F镜像服务器和J镜像服务器及顶级域名.COM
.NET的镜像服务器。国内从此有了域名根服务器的镜像服务器(目前这两台域名根服务器的镜像服务器: F镜像服务器在中国电信,J镜像服务器和.COM
.NET镜像服务器在中国网通)。据说镜像服务器的管理是由技术持有方来进行日常的维护和管理。有了域名根服务器的镜像服务器后,国内解析.CN域名和.COM域名就不用到国外的域名根服务器获得顶级索引了,这将从根本上提高国内网络访问速度