您的位置:首页 > 理论基础 > 计算机网络

Java网络编程——1.基本网络概念

2017-04-18 00:00 639 查看

1、什么是网络?

网络(network)是几乎可以实时相互发送和接收数据的计算机和其他设备(如打印机,可口可乐机)的集合。网络中的每台机器称为一个节点(node),大多数节点是计算机,具有完备功能的计算机节点也称为主机(host)。

每个网络节点都有地址(address),这是网络节点的唯一标识。

计算机网络是包(packet)交换网络,优点是,多个即将交换的包可以在一条线缆上传输,降低建立网络的成本且多个计算机可以互不干扰地共用同一条线缆。分包还有个好处就是可以检测包在传输中是否遭到破坏。

协议(protocol)定义了计算机如何通信的一组明确的规则(地址格式、数据如何分包等),如超文本传输协议(HTTP)定义了Web浏览器如何与服务器通信。

2、网络的分层

为了对应用程序开发人员和最终用户隐藏网络发送数据的复杂性,网络通信的不同方面被分解为多个层,每一层表示为物理硬件(即线缆和电流)与所传输信息之间的不同抽象层次。



第一种是Iso的OSI模型(7层):这个用在定义计算机网络层次,多用于理论,方便理论研究,可是实践中没有广泛应用。

第二种是TCP/IP协议簇(5层):这个一般用于现今的世界,根据实际情况将ISO的OSI模型改造为5层,这种模型具有现实可行性。

3、IP、TCP和UDP

IP(网际协议)是冷战时期由军方资助开发的,所以包含了大量军方关系的特性。首先,它必须健壮,允许任意两点之间有多个路由,可以绕过被破坏的路由器实现数据包的路由。其次,IP必须开放,与平台无关,计算机必须都能相互通话。

由于两点间存在多个路由,且两点间的最短路径可能由于网络业务流量等因素而改变,构成了某个特定数据流的包可能不会采用相同的路由。为了改进这个机制,将TCP置于IP之上,使连接的两端都能确认接收到IP包,以及保证按其发送的顺序接收。

但是TCP会有很大开销,如果数据的顺序不重要且单个包的的丢失不会安全破坏数据流,也可以用UDP发送数据包,例如视/音频。还可以在UDP数据流中建立纠错码,来解决数据丢失的问题。

IP之上还能运行很多其他协议如ICMP,ping程序就是用的这个协议。但java支持的协议只有TCP和UDP,以及建立在TCP和UDP之上的应用层协议。

4、Internet

互联网(Internet)是世界上最大的基于IP的网络。它是七个大洲多个不同国家的计算机使用IP相互对话的一个无组织的集合。其他IP网络称为internet,如没有连接Internet的高安全性内部网。

Internet上每台计算机都至少有一个标识此计算机的IP地址。IP地址一般写为点分四段的格式,如199.1.32.90,每个数的范围从0~255。

为避免Internet的地址冲突,区域Internet注册结构会为Internet服务提供商分配IPv4地址块。出于IP地址越来越稀缺,大多数网络都使用了网络地址转换(NAT),内网地址很多但实际只有一个外网地址。但IPv6会使NAT变得毫无意义。

出于安全需求,防火墙(路由器或者单独的机器)可以过滤网络地址和端口。如果防火墙会阻止一个网络上的主机与外界直接建立连接,那么代理服务器就起到了中间人的作用,机器可以请求代理服务器来访问被阻止的网络。防火墙一般工作于传输层和网际层,而代理服务器通常工作于应用层。

代理服务器也可用作本地缓存,提高响应时间,但代理服务器只支持HTTP、FTP和SMTP

5、客户/服务器模型

大多数现代网络编程都基于客户/服务器模型,数据存储在服务器或服务器云上,界面逻辑由客户端软件处理,客户端运行在相对便宜的个人计算机上。客户端发起对话,服务器等待客户端与它对话。



6、Internet标准

应用层网络编程和协议的大多标准都是由IETF(国际互联网工程任务组,The Internet Engineering Task Force)和W3C(国际互联网协会,World Wide Web Consortium)这两个组织制定。如超文本传输协议(HTTP1.1)对应RFC2616
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Internet