一、网络通信基础
1. 局域网 VS 广域网
局域网,即 Local Area Network,简称LAN。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
局域网组建网络的常见方式如下:
- 基于网线直连
- 基于交换机组建
- 基于交换机和路由器组建
广域网 通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。局域网和局域网之间没有明确的界限,可以认为比较大的局域网就是一个广域网。
2. ip地址 VS 端口号
IP地址 用于定位主机的网络地址。IP地址是一个32位的二进制数,通常用 点分十进制 的方式来表示,如:255.255.0.1。
- 环回ip:127.0.0.1,表示自己的主机
端口号 在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。端口号用于定位主机中的进程,是两个字节的无符号整数。
IP地址 和 端口号 的关系就像是:运送快递时,收货地址(IP地址)和 收货人(端口号)
3. 协议
协议本质上就是一种 " 约定 " ,即数据的传输格式,发送方按照一定格式传送,接收方按照对应格式解析。
类似于发电报的密码本,就是遵守了一种约定
协议分层: 将一个复杂的协议,拆分成多个更小,更简单的协议,每一个协议负责一部分工作。
- 每层协议不需要理解其它层协议的细节(更好的做到了 封装)
- 把对应层协议替换成其他协议,达到了 解耦合 的效果。
二、OSI七层模型
实际上,一般用到的都是OSI的简化模型 – TCP/IP分层模型
- 物理层
网络中的硬件设备(网线、网卡…),针对这些物理设备进行的约定(端口尺寸匹配…)就是物理层的协议。 - 数据链路层
完成两个相邻设备之间的通信(一根网线相连的两个设备) - 网络层
负责点到点之间的通信(任意节点,不一定是相邻节点,更多的是不相邻的节点)
- 传输层
负责端到端之间的通信(起点 和 终点),只关注数据到没到,不关注中途的传送过程。 - 应用层
和应用程序相关的,传输的数据的用途是什么,不同的应用程序对应不同的用途。
五层协议的关系:(例如 网购)
卖家: 站在传输层的角度,考虑东西能不能到客户手上
快递公司: 站在网络层的角度,规划一个最优的路线
快递员: 站在数据链路层,运输快递
运输的交通工具/公路: 站在物理层,提供传输的基础
用户: 站在用户层的角度,考虑东西的用途
三、网络数据的传输
A —> B(A 向 B 发送了一条消息 " hello "),相当于将快递打包(封装)
来到物理层时,数据才真正被传输,经过中间的设备(路由器、交换机、以及其他设备)的传输,最终数据来到B,B再将数据解析
B 收到消息并解析的过程则相反,相当于拆快递(分用)
中间的传输过程