目录
一、软件架构:
BS:Browser/Server,指浏览器,服务器结构,常见的有IE,谷歌,火狐。
CS:client/Server客户端和服务器结构,常见的有QQ,美团app,360安全卫士等软件。
二、计算机网络:
分布不同地理区域的计算机与专门外部设备用通信线路连成一个规模大,功能强的网络系统,众多计算机可以相互传递信息,共享硬件,软件,数据信息等资源。
三、网络编程的目的:
直接或间接通过网络协议与其他计算机实现数据交换,进行通讯
四、网络传输的三要素:
1.使用IP地址(准确得网络上一台或多台主机)
2.使用端口号(定位主机上特定的应用)
3.网络通信协议规范(可靠,高效的进行数据传输)
1.IP地址
分类方式一:
1.IPV4:
是一个32位的二进制数,通常分为4个字节,表示成a,b,c,d,以”点“分十进制表示,例如,192.168.65.100,其中a,b,c,d都是0~255之间的十进制整数。
一个字节上面有2^8,2的8次方,即256种情况。
2.IPV6:
128位长度,16个字节,写成8个无符号的整数,每个整数用四个十六进制表示,用”冒号“(:)分开。
分类方式二:
公网地址(www)
私有地址(192.168开头)
了解:域名也是需要经过Dns翻译成IP地址的,
www.bilbil.com,每当我i们访问时,都会去访问我们的DNS服务器,映射出对应的IP地址,最终获取到资源。.
五、网络通信协议:
概念:
计算机网络可以使多台计算机实现连接,位于统一网络中的计算机要遵守一点的规则。例如:数据传输格式,传输速率,传输步骤,出错控制做统一的规定,通信双方同事遵守才能完成数据交换。
由于网络协议太多,因此有了分层思想:
有关网络编程的java类:
InetAddress getByName(String host)
InetAddress getLocalHost()
常用方法:getHostName,getHostAddress
TCP和UDP协议的区别:
1.TCP协议:
- TCP协议进行通信的两个应用进程:客户端,服务器。
- 使用TCP协议,必须先建立TCP连接形成字节流传输数据通道
- 传输前,采用”三次握手“方式,点对点通信,TCP是可靠的。
- TCP协议使用”重发机制“,当一个通信实体发送一个消息给另外一个通信实体后,需要收到另外一个通信实体确认信息,如果没有收到另外一个通信实体确认信息,则会再次重复刚才发送的消息。
- 连接中可进行大量数据传输
- 传输完毕,释放已经建立的连接,效率低。
2.UDP协议:
UDP有两个应用进程:发送端,接收端
将数据,源,目的,封装成数据包(传输的基本单位),不需要建立连接
不管对方是否准备好,接收方收到也不确认,不能保证数据的完整性,故是不可靠的
每个数据包的大小限制在64k内
发送数据结束时,无需释放资源,开销小,通信效率高
适用场景:音频,视频和普通数据传输,例如:视频会议。
3.TCP的三次握手,四次挥手
三次握手:
用户客户端和服务器建立连接时:
四次挥手:
用于关闭客户端和服务端时。
六、Socket类
- 网络上具有唯一标识的IP地址和端口号组合在一起构成唯一能识别的标识符(socket)将socket看成一个类,里面有IP和端口两个属性。
- 利用套接字(socket)开发网络应用程序已被广泛使用。网络通信实际上就是Socket通信。
- 通信两端都要有socket,是两台机器之间通信的断电。
- socket允许把网络连接当初是一个流,数据在两个socket间通过IO传输。
- 一般主动发起通信的引用程序属于客户端,等待通信请求的为服务端。
socket分类(在java中):
- 流套接字(stream socket):使用TCP提供可依赖的字节流服务
- ServerSocket :实现TCP服务器的socket,服务器socket 等待请求通过网络传输
- Socket:实现客户端套接字。套接字是两台机器通信的端点。
- 数据报套接字(datagram socket):使用UDP提供“尽力而为”数据报服务
- Datagramsocket:表示此类用来接收和发送UDP数据报套接字。
socket通信模型如下:
socket通信具体代码可参考:(了解)。