网络通信概述
本人所有文章,只属学习整理及个人理解!有误还望谅解并指出,谢谢!持续更新中…
软件结构
- C/S结构:全称 Client / Server 结构,是指客户端和服务端结构。常见程序有QQ、迅雷等软件
- B/S结构:全称 Browser / Server结构,是指浏览器和服务器结构。常见浏览器有谷歌,火狐,IE。
网络通信协议
- 网络通信协议:网络中的计算机在进行连接和通信是需要遵守一定的规则,这些连接和通信规则被称为网络协议。
- TCP / IP 协议: 传输控制协议 / 因特网互联协议,是最基础、最广泛的协议。他定义了计算机如何连入因特网,以及数据如何在他们之间传输的标准。他的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
协议分类
- UDP:用户数据报协议,又称面向无连接协议。也就是说发送方和接受方不需要建立连接,特点:耗资小,通信效率高,数据被限制在64kb以内。 由于无连接所有不能保证数据的完整性。
- TCP:传输控制协议,面向连接的通信协议。在建立连接的时候需要三次握手:
第一次:客户端向服务端发出连接请求,等待服务器确认。
第二次:服务器端向客户端回送一个响应,通知客户端收到了连接请求。
第三次:客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。
完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面相连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件,浏览网页等。
网络编程的三要素
协议
- 计算机网络通信必须遵守的规则
IP地址
- ip地址:指互联网协议地址,俗称IP。IP地址用来给一个网络中的计算机设备做唯一的编号。
- IP分类:
- IPv4:是一个32位的二进制数,通常被分为4个字节,其中每个字节都是在0~255之间的十进制整数,最多可以表示42亿个。
- IPv6:这个是采用128为地址长度,每16个字节一组,分成8组十六进制数。(目前好像还没有正式使用)
端口号
网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?
- 端口号:由两个字节组成,取值范围在0~65535之间
- 1024之前的端口号我们不能使用,已经被系统分配给已知的网络软件了,网络软件的端口号不能重复
我们使用IP地址加端口号,就可以保证数据准确无误的发送到对方计算机的指定软件上了
常用端口号:
- 80:网络端口
- 3306:mysql数据库端口号
- 1521:oracle数据库端口号
- 8080:Tomcat默认端口号