文章目录
前言
网络的发展是从独立模式开始的,计算机之间由相互独立到协同工作,就有了网络互连。网络互连根据规模不同可以划分为局域网和广域网。网络互连的目的是进行网络通信,也即是网络数据传输。如何进行网络传输数据,这就需要了解什么是 IP 地址,什么是端口,什么是协议等一系列基础概念。
1. 网络的划分
根据网络互连的规模,网络可以划分为局域网和广域网。
1.1 局域网
局域网(Local Area Network,简称 LAN),又称内网,是一种局部组建的一种私有网络,校园网就是一种局域网。局域网和局域网之间在没有连接的情况下,是无法通信的。组建局域网的方式:基于网络直连,基于集线器组建,基于交换机组建,基于交换机和路由器组建。
1.2 广域网
广域网(Wide Area Network,简称 WAN),通过路由器将多个局域网连接起来,在物理上形成范围很大的网络,就形成了广域网。广域网内部的局域网都属于其子网。如果是全球性的广域网则称为互联网,也称公网,外网。
ps : 广域网和局域网的概念是相对的概念。
2. IP 地址
2.1 概念
网络通信中,需要判断哪台是主机,这样才能将数据传输到主机中,这时就需要一个地址,也就是 IP 地址。
IP 地址是指互联网协议地址,主要用于标识网络主机等网络设备的网络地址,也就是定位主机的网络地址。
每台主机的IP 地址是唯一的。
2.2 格式
IP 地址是一个32位的二进制数,通常被分为4个8位二进制数(也就是4个字节)。
举例:01000100.00000100.00000101.00000110
通常用“点分十进制”的方式表示如:127.0.0.1。
2.3 组成
IP 地址分为两个部分,网络号和主机号。
网络号:标识网段,保证相互连接的两个网段具有不同的标识。 主机号:标识主机,保证同一网段内,主机具有相同的网络号,但是必须有不同的主机号。
过去IP 地址通过网络号和主机号划分为五类:
需要注意的是一些特殊的 IP 地址:
主机地址全为0,就成为网络号,代表了这个局域网;
主机地址全为1,就成为了广播地址;
127.0.0.1 用于本机环回测试,主要用于本机到本机的网络通信,常见的开发方式都是本机到本机的网络通信。
3. 端口号
3.1 概念
网络通信中,IP 地址用于定位主机的网络地址,但是一台主机上会有多个进程,所以就需要使用端口来定位主机中的进程。就好像找人是,不仅要知道这个人家的地址(IP 地址),还需要知道这个人的姓名(端口号)。
3.2 格式
端口号是范围为0-65535范围的数字。要注意的是,两个不同的进程不能绑定同一个端口号,但是一个进程可以绑定多个端口号。
知名端口号:
22端口号:SSH 协议的默认端口号
21端口号:FTP 协议的默认端口号
23端口号:Telnet 协议的默认端口号
80端口号:HTTP 协议的默认端口号
443端口号:HTTPS 协议的默认端口号
8080端口号:Tomcat 服务器的默认端口号
3360端口号:MySql 服务器的默认端口号
自定义的服务器一般使用 1024-65535 范围内的端口号。
4. 协议
4.1 概念
协议就是网络协议的简称,网络协议是网络通信经过的所有网络设备都必须共同遵从的一组约定,规则。协议最终体现为在网络上传输的数据包的格式。
协议的三要素:
1.语法:即数据与控制信息的格式或结构;
2.语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
3.时序:即事件实现顺序的详细说明。
4.2 作用
一种约定,约束。因为计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息。不同的计算机之间传递各种不同的信息,就需要约定好双方的数据格式。
4.3 常见的协议
应用层协议:DNS协议、HTTP/ HTTPS协议、SSH协议、FTP协议
传输层协议:TCP协议、UDP协议
网络层协议:ARP协议、IP协议
5. 五元组
在TCP/IP 协议中,用五元组来标识一个网络通信。
1.源IP:标识源主机
2.源端口号:标识源主机中本次通信发送数据的进程
3.目的IP:标识目的主机
4.目的端口号:标识目的主机中本次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双方约定的数据格式
例如:192.168.1.1 10000 TCP 121.14.88.76 80
就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。
可以在cmd中,输入netstat -ano 查看网络数据传输中的五元组信息。
6. 协议分层
协议分层就是在网络通信中,对不同的层次定义不同的协议。就是根据互联网所需要的服务和功能,在体系结构上分成若干个层次,协议的服务和功能与哪一层的服务和功能相对应,该协议就属于哪一层。每层协议层通过在该层中执行某些动作或使用直接下层的服务来提供服务。
协议分层就好像送快递的过程中对交通工具我们可以约定一种交通工具,对快递员可以约定哪一个快递员送指定的区域。这样就是把送快递分层了。
分层的最大好处就是类似于面向接口编程,定义好两层间的接口规范,双方都要遵循这个规范对接。一方只需要使用接口,另一方只需要开放接口。这样更方便扩展和维护。
7. OSI七层模型
OSI:Open System Interconnection,开放系统互连
从图中可以看出,七层模型从上到下依次是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
但是 OSI 七层模型既复杂又不实用,所以实际组建网络中通常是使用TCP/IP 五层(或四层)模型来实现。
8. TCP/IP 五层(或四层)模型
TCP/IP 是一组协议的代名词,包括了许多协议。TCP/IP 协议采用了五层或四层的层次结构,每一层都调用它的下一层来完成自己的需求。
应用层:负责应用程序之间的沟通,如 SMTP 协议,FTP 协议,Tenlnet 协议等。
传输层:负责两台主机之间的数据传输,如传输控制协议 TCP。
网络层:负责地址管理和路由选择,在众多路线中规划出合适的线路传输数据。路由器工作在网络层。
数据链路层:负责设备之间的数据帧的传送和识别。也就是将一整条线路划分成多个小线路,相邻节点之间进行“一跳一跳”的传输数据。交换机工作在数据链路层。
物理层:负责光 / 电信号的传递方式。集线器工作在物理层。
9. 数据的封装和分用过程
不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。数据的封装和分用就是一个对数据包加密和解密的过程。
9.1 数据的封装
数据从应用层传输到物理层的过程就称为封装过程,它会自己添加首部或尾部。
9.2 数据的分用
数据从物理层传输到应用层的过程就是数据分用过程,它会去掉头部或尾部。