Javaday22网络编程
计算机网络
所谓计算机网络,就是把分布在不同区域的计算机与专门的外部设备用通信线路相互连接成
一个规模大,而且功能强的网络系统,从而使得计算机之间可以相互传递信息,共享数据、
软件等资源
所谓网络编程,指的就是在同一个网络中不同机器之间的通信
IP地址
IP地址指的是互联网地址(Internet Protocol Address ) ,是联网设备与互联网之间的唯一标
识,在同一个网段中,IP地址是唯一的
A类:保留给*结构,1.0.0.1 ~ 126.255.255.254
B类:分配给中型企业,128.0.0.1 ~ 191.255.255.254
C类:分配给任何需要的个人,192.0.0.1 ~ 223.255.255.254
D类:用于组播,224.0.0.1 ~ 239.255.255.254
E类:用于实验,240.0.0.1 ~ 255.255.255.254
端口
数据的发送和接收都需要通过端口出入计算机,端口号用于唯一标识通信实体上进行网络通
讯的程序,同一台机器上不能两个程序占用同一个端口
端口号的取值范围:0~65535
端口分类:
公认端口:0~1023
注册端口:1025~49151
动态或私有端口:1024~65535
常用端口:
mysql:3306
oracle:1521
tomcat:8080
通信协议
需要通信的设备之间需要实现相同的通信协议
网络分层(七层协议):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
通信协议分类:
传输层协议:TCP和UDP
网络层IP协议:IPV4和IPV6,互联网协议
应用层协议:HTTP
客户端和服务器
客户端:可以让用户直接交互,用来访问服务器端
服务器端:给用户提供数据的存储,数据的中转,数据的运算
1.客户端服务器端都是指的是应用(app),而非主机,即 客户端!=主机 服务器端!=主机
2.一台主机上可以同时运行多个应用
3.一台主机上可以同时存储客户端和服务器端,也可以分属于不同的主机
4.应用就是一个进程,所以客户端和服务器端都是独立的进程
1.外网:IP是唯一性,不能重复。范围:0.0.0.0~255.255.255.255
2.内网:通过路由器或者交换器设备,来重新设置IP地址。
3.IP: ip地址是确定一台机器的唯一标识符
4.NETMASK(子网掩码):与ip连用,用于确定网络段位 192.168.1.x 范围:1-254
255.255.255.0
1.路由器
路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中
的地址然后决定如何传送的专用智能性的网络设备。
2.交换机
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。
3Modem
调制解调器(英文名Modem),俗称“猫”,是一种计算机硬件.它能把计算机的数字信号翻译
成可沿普通电话线传送的脉冲信号,而这些脉冲信号又可被线路另一端的另一个调制解调器接
收,并译成计算机可懂的语言。
4.虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔
离环境中的完整计算机系统。
InetAddress类
Java提供了InetAddress类来代表ip地址,是对ip地址的抽取和封装,有两个子类:
Inet4Address,Inet6Address,分别表示IPv4和IPv6
URLEncoder类和URLDecoder类
URLEncoder类和URLDecoder类用于完成普通字符串和application/x-www-form
urlencoded MIME字符串之间的转换
概念
TCP,Transmission Control Protocol,传输控制协议,基于字节流的传输层通信协议
特点:
a.安全的
b.面向连接的
c.效率低
d.传输数据大小限制,一旦连接建立,双方可以按统一的格式传输大的数据
TCP的三次握手
a.客户端向服务端发送一个请求
b.服务端收到请求后,回客户端一个响应
c.客户端向收到服务端的响应后,回服务端一个确认信息
UDP编程
User Datagram Protocol的简称,用户数据包协议,提供面向事务的简单不可靠信息传送服
务
特点:
a.不安全
b.无连接
c.效率高
d.UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内
RPC
RPC, 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议,该协议允许
运行于一台计算机的程序程调用另一台计算机的上的程序。
RPC本质上是一种 Inter-process communication(IPC)——进程间通信的形式。
1.客户端client发起服务调用请求。
2.client stub 可以理解成一个代理,会将调用方法、参数按照一定格式进行封装,通过服务
提供的地址,发起网络请求。
3.消息通过网络传输到服务端。
4.server stub接受来自socket的消息
5.server stub将消息进行解包、告诉服务端调用的哪个服务,参数是什么
6.结果返回给server stub。
7.sever stub把结果进行打包交给socket
8.socket通过网络传输消息
9.client slub 从socket拿到消息。
10.client stub解包消息将结果返回给client。
一个RPC框架就是把步骤2到9都封装起来