你的位置:首页 > Java教程

[Java教程]Java 网络编程


网络现在是一个非常普遍的概念。

以下是维基百科上的解释:

网络一词有多种意义,可解作:

  • 网络流也简称为网络(network)。一般用于管道系统、交通系统、通讯系统建模。
    • 有时特指计算机网络。
      • 或特指其中的互联网。
        • 或指互联网中的万维网。

java网络编程关系的是以IP地址为基础的编程。

 

IP,TCP,UDP

IP是Internet Protocol的缩写,也就是网络间互联的协议。

IP的设计相较于其他的类似协议有一些优点。

首先,IP最初是用于开发军事网络的,所以必须保证协议的健壮。

所以IP之间可以包含多个路由。这样一旦某个路由被毁掉,它们间还可以保持通讯。

为了保证IP间传递的顺序是有序,以及数据的可靠性,于是在IP上层有了TCP协议。

Transmission Control Protocol 传输控制协议,TCP是一套精确的保证传输有效性,和正确性的协议。

当然这些都是需要代价的,因此,如果数据的顺序不是很重要,单个包的丢失也不要紧,那么可以使用UDP协议。

User Datagram Protocol的简称, 中文名是用户数据报协议。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

TCP & UDP比较:

确切的理解应该是TCP/IP 协议 & UDP/IP协议 的区别:

小结TCP与UDP的区别:
1.基于连接与无连接;TCP连接需要三次握手,断开需要4次握手。
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;TCP是流模式传递,而UDP是包模式。
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

IP地址和域名

IP协议同时支持这2中地址方式:192.0.1.2 或者www.abc.com.cn, 后一种是域名的方式。

域名 是的发明是应为人类对数字的记忆和区分不如文字来的方便。

端口

每台计算机,往往是服务器,可以运行很多服务。这个时候我们需要区分这些业务,当IP地址是一样的,于是就

有了端口这个东西。

端口是抽象的概念,理论上最多可以有65535个端口。

1-1023是计算机保留给已知的一些功能的,比如默认的web连接端口是80.

Internet:

Internet是世界上最大的基于IP协议的网络,互联网。

互联网并不等同万维网(WWW),万维网只是一个基于超文本相互链接而成的全球性系统,且是互联网所能提供的服务其中之一。互联网带有范围广泛的信息资源和服务,例如相互关系的超文本文件,还有万维网的应用,支持电子邮件的基础设施,点对点网络,文件共享,以及IP电话服务。

内部网络和外部网络

当我去电信安装宽带的时候,电信会给我的路由器分配一个地址:216.254.86.72

这个地址就是我在跟外部其他设备通讯的地址。

但是我本生家里有很多设备,几台电脑,手机,以及机顶盒等等。这些都通过路由器来连接网络。

这样路由器作为DNS给每个设备分配一个地址192.168.0.3等。 这些地址是不固定的。

从我的电脑和百度连接的时候,百度看到的地址是路由器转换后的地址216.254.86.72。

但是从百度返回的数据,怎么就回到了192.168.0.3这台设备呢,这个是路由器解决的,java编程的时候,不需要关心。

防火墙

为了组织某些有害的数据到我们的设备。有一个东西可以更具域名和端口来挡住这些东西,这就是防火墙。

Java和防火墙关系不大。

代理服务器:

代理服务器可以理解为中间人。外部服务器只能看到代理服务器在向他发送请求,而不知道内部的情况。

Internet标准:

现在定义internet的标准是2大组织:

IETF 和W3C。

IETF:TCP/IP MIME SMTP

W3C:HTTP HTML