一,网络通信基础
1.1 IP地址
描述一个设备在网络上的地址,一般使用4个0~255之间的数字,并且使用三给 . 进行分割,如:127.0.0.0
1.2 端口号
端口号是一个2个字节的整数,用来区分一个主机上的不同应用程序,不同的程序可以绑定不同的端口号,在同一个主机上,一个端口号只能绑定一个应用程序,但一个应用程序可以绑定多个端口号。(端口号:0~65535,1~1023专门给系统使用)
1.3 网络协议
网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组规则。如怎么样建立连接、怎么样互相识别等。
为什么会有协议?计算机的传递形式是光信号和电信号,通过频率和强弱来表示0和1这样的信息,要想传递不同的数据类型,就要约定双方的数据格式,就好比摩斯密码,我把信息传递给你,你也需要按照约定好的方式去翻译。
1.4 五元组
在 TCP/IP 协议中,用五元组来表示一个网络通信:
- 源IP:标识源主机
- 源端口号:标识源主机中该次通信发送数据的进程
- 目的IP:标识目的主机
- 目的端口号:标识目的主机中该次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
1.5 协议分层
类似于敲代码,当代码越写越复杂时,往往将代码拆分成多个部分,这样可以更好理解代码。网络通信也是一样,当遇到复杂的场景时,往往需要大量的协议,如果使用一个协议来解决所有问题,那么协议就会非常庞大,不利于我们去理解和学习。
所以我们可以把大的协议拆分成多个小的协议,让每个小的协议负责一小块事务,这样更加利于理解学习。但是实际上网络通信会更加的复杂,拆分出的协议也就更多,协议一多就不好管理,这时候就需要对协议进行分层。
按照协议的定位/作用分类,并且约定不同层次之间的调用关系:1)上层协议调用下层协议 2)下层协议为上层协议提供支持。整体结构类似于一个公司,老板将一个大的任务分配给各个部门,各个部门主管在分配任务给各个员工。
协议分层的优点:
1)上层协议和下层协议之间进行了封装,双方之间互不干扰。
2)每一层协议都可以根据需求进行替换,更加灵活
1.6 TCP/IP五层模型
OSI 七层模型既复杂又不实用,所以在这里主要介绍TCP/IP五层模型:
- 物理层:描述网络通信的硬件设备,如:光纤,网线等
- 数据链路层:两个相邻节点之间的数据传输情况
- 网络层:负责地址管理和路由选择,也就是路径规划
- 传输层:负责两台主机之间的数据传输,只关注起点和终点
- 应用层:负责如何使用网络通信传递过来的数据
网络设备所在分层:
- 主机:操作系统内核实现了从传输层到物理层的内容
- 路由器:从网络层到物理层
- 交换机:从数据链路层到物理层
- 集线器:物理层
注:并不绝对,随着科技的发展,单个设备涉及的层数也会越来越多
1.7 封装和分用
封装:
分用:就是上述过程的逆推,就类似于快递,装快递是"封装",拆快递是"分用",在分用的过程中还会遇到交换机和路由器,这又会产生封装,如下图:
路由器也是同理,只不过要将数据分用到网络层。