Java网络编程之网络基础


现代的应用程序都离不开网络,网络编程是非常重要的技术。
Java SE提供java.net包,其中包含了网络 编程所需要的最基础一些类和接口。这些类和接口面向两个不同的层次:基于Socket的低层次网络编 程和基于URL的高层次网络编程。
所谓高低层次就是通信协议的高低层次:

  • Socket采用TCP、UDP等协议,这些协议属于低层次的通信协议;
  • URL采用HTTP和HTTPS这些属于高层次的通信协议。

低层次网络编程,因为它面向底层,比较复杂,但是“低层次网络编程”并不等于它功能不强大。恰恰相反,正因为层次低,Socket编程与基于URL的高层次网络编程比较,能够提供更强大的功能和更灵活的控制,但是要更复杂一些。

网络编程需要我们掌握一下基础的网络知识,下面我会简要介绍一些网络基础知识。

一、网络结构

网络结构是网络的构建方式,目前流行的有客户端服务器结构网络和对等结构网络。

(1)客户端服务器结构网络

客户端服务器(Client Server,缩写C/S)结构网络,是一种主从结构网络。服务器一般处于等待状态,如果有客户端请求,服务器响应请求建立连接提供服务。服务器是被动的,有点像在餐厅吃饭时候的服务员。而客户端是主动的,像在餐厅吃饭的顾客。

在生活中很多网络服务都采用这种结构,例如:Web服务、文件传输服务和邮件服务 等。虽然它们存在的目的不一样,但基本结构是一样的。这种网络结构与设备类型无关,服务 器不一定是电脑,也可能是手机等移动设备。

图解:
在这里插入图片描述

(2)客户端服务器结构网络

对等结构网络也叫点对点网络(Peer to Peer,缩写P2P),每个节点之间是对等的。
对等结构网络分布范围比较小。通常在一间办公室或一个家庭内,因此它非常适合于移动设备间的网络通讯,网络链路层是由蓝牙和WiFi实现。
图解:
在这里插入图片描述

二、TCP/IP协议

TCP/IP协议是由IP和TCP两个协议构成的。

  • IP(Internet Protocol)协议:是一种低级的路由协议,它将数据拆分成许多小的数据包中,并通过网络将它们发送到某一特定地址,但无法保证都所有包都抵达目的地,也不能保证包的顺序。
  • TCP传输控制协议(Transmission Control Protocol,TCP):面向连接的可靠数据传输协议,如果有些数据包没有收到会重 发,并对数据包内容准确性检查并保证数据包顺序,所以该协议保证数据包能够安全地按照发送时顺序送达目的地。

三、IP地址

为实现网络中不同计算机之间的通信,每台计算机都必须有一个与众不同的标识,这就是IP地址, TCP/IP使用IP地址来标识源地址和目的地址。最初所有的IP地址都是32位数字构成,由4个8位的二进 制数组成,每8位之间用圆点隔开,如:192.168.1.1,这种类型的地址通过IPv4指定。而现在有一种新 的地址模式称为IPv6,IPv6使用128位数字表示一个地址,分为8个16位块。尽管IPv6比IPv4有很多优 势,但是由于习惯的问题,很多设备还是采用IPv4。不过Java语言同时指出IPv4和IPv6。

在IPv4地址模式中IP地址分为A、B、C、D和E等5类。

  • A类地址用于大型网络,地址范围:1.0.0.1~126.155.255.254。
  • B类地址用于中型网络,地址范围:128.0.0.1~191.255.255.254。
  • C类地址用于小规模网络,192.0.0.1~223.255.255.254。
  • D类地址用于多目的地信息的传输和作为备用。
  • E类地址保留仅作实验和开发用。

另外,有时还会用到一个特殊的IP地址127.0.0.1,127.0.0.1称为回送地址,指本机。主要用于网络软件测试以及本地机进程间通信,使用回送地址发送数据,不进行任何网络传输,只在本机进程间通信。

四、端口

一个IP地址标识这一台计算机,每一台计算机又有很多网络通信程序在运行,提供网络服务或进行通 信,这就需要不同的端口进行通信。如果把IP地址比作电话号码,那么端口就是分机号码,进行网络 通信时不仅要指定IP地址,还要指定端口号。

TCP/IP系统中的端口号是一个16位的数字,它的范围是0~65535。小于1024的端口号保留给预定义的服 务,如HTTP是80,FTP是21,Telnet是23,Email是25等,除非要和那些服务进行通信,否则不应该使 用小于1024的端口。

发布了69 篇原创文章 · 获赞 7 · 访问量 3321

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/104394466