网络原理——初识网络
目录
1.写在前面
2.网络发展
3.网络划分
3.1 局域网
3.2 广域网
4.网络通信基础
4.1 IP 地址
4.2 端口号
4.3 协议
4.3 五元组
5.协议层次的划分
5.1 OSI 七层模型
5.2 TCP/IP 五层协议★★★
5.3 为什么要有分层?
5.4 网络设备所在分层
1.写在前面
本期开始将进行网络的学习,网络原理代码较少,但是干货多,无法进行一 一讲述。在这里,将主要介绍网络的基础知识,如IP地址、端口号、协议、协议分层等,在此基础上,会深入介绍 HTTP/HTTPS 协议,UDP协议,TCP协议和 IP 协议以及其它一些小知识点。更多知识还是需要结合教材《计算机网络》,或者其它教材也可以。本期将主要介绍网络基础的知识。
2.网络发展
在最开始的时候,计算机和计算机之间的相互独立的。每台计算机各自持有客户数据,下一台想要处理业务,需要等待上一台处理完业务才可以进行,这期间发生类似于多线程中的阻塞等待。
随着时代发展,人们越来越需要计算机之间可以相互通信,共享软件和数据等,也就是让多台计算机协同完成业务,于是就有了网络互连。
网络互连是把多台计算机连接在一起,完成数据共享。数据共享的本质就是网络数据传输,也就是计算机之间可以通过网络来传输数据,称为网络通信。
根据网络互连的规模,可以把它们划分为个人网、局域网、城域网和广域网,这里主要介绍局域网和广域网。
3.网络划分
3.1 局域网
局域网,Local Area Network,简称 LAN
local 标识了局域网是本地组件的一种私有网络,是局部的,比如家里的 WiFi 就是一个小规模的局域网。在局域网内的主机之间可以进行网络通信,称为内网;局域网和局域网之间在无连接情况下不能通信。
局域网的组建方式有:基于网络直连、基于集线器组建、基于交换机组建、基于交换机和路由器组建等。
(1)基于网络直连

(2)基于集线器直连

(3)基于交换机组建

(4)基于交换机和路由器组建

3.2 广域网
广域网,Wide Area Network,简称 WAN
广域网通过路由器,把很多个局域网连接在一起,广域网内部的局域网都属于它的子网。

4.网络通信基础
网络互连的目的是进行网络通信。要理解网络通信,就要先知道它们是如何传输数据的。
4.1 IP 地址
IP 地址用来定位主机的网络地址,这就好比我们的居住的小区地址,朋友想要来家里玩,就得知道这个小区地址才能来。
在计算机中,IP 地址是一个32位的二进制数,但为了方便阅读,通常把它分割位4个“8位二进制数”,并采用“点十分进制”的方式来表示。如11000000.1010 1000.0100 0010.0110 0011,转化位点十分进制表示就是:192.168.66.99。
4.2 端口号
IP 地址用来标识主机的网络地址,端口号是用来标识主机中的进程。也就说,端口号是用来标识每一个正在运行的应用程序。这就好比朋友来找我们玩,还需要知道家里的门牌号才能真正找到我们。
端口号是范围是 0~65535,每个进程会分配一个端口号。
4.3 协议
世界上有很多种语言,当我们出国旅游时,大多数情况下肯定是要说外语的。在通信中也是这样,需要规定一种通信方式,才能相互交流,这就是协议。
4.3 五元组
在通信过程中,并不简单是两个主机之间的通信,这个过程会经过很多的路由器和交换机转发,通信过程是错综复杂的,怎么才能保证把信息传输给对方呢?
比如我们买快递时,收到的包裹上面有我们的居住地址和电话号码,也有商家的地址的电话号码,快递员就会根据这个地址层层配送,最后到达我们手里。
通信也是这样,在这里会用五元组来标识一个网络通信:
- 源 IP:标识源主机
- 源端口号:标识源主机中某次通信发送数据的进程
- 目的 IP:标识目的主机
- 目的端口:标识目的主机某次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
5.协议层次的划分
5.1 OSI 七层模型

OSI 的七层模型理论很完整,概念也清楚,但是它比较复杂,并没有真正的在实际中被使用。使用最广的是 TCP/IP 五层协议(有的地方会说成四层协议)。
5.2 TCP/IP 五层协议★★★
TCP/IP 协议从上至下分为:应用层、传输层、网络层、数据链路层和物理层
应用层:为两个终端设备上的应用程序的信息交换提供服务,定义信息交换的格式,并把它交给下一层传输层来传输。常见的协议有超文本传输协议(HTTP)、文件传输协议(FTP)、域名管理系统(DNS)等。
传输层:负责两台主机中进程之间的通信提供数据传输服务。常见的协议有用户数据包协议(UDP)和传输控制协议(TCP)。UDP 是面向无连接、不可靠、面向数据报的传输服务,TCP是面向连接、可靠、面向字节流的传输服务,这在后面会详细介绍。
网络层:负责地址管理和路由选择,为不同的主机提供通信服务。常见的协议有网际协议(IP)、地址解析协议(ARP)、网络地址转换协议(NAT)等。
数据链路层:将网络层交下来的IP数据包封装成帧,在相邻节点上间的链路上传送帧,每一帧都包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
物理层:实现相邻节点之间比特流的透明传输。
网络是错综复杂的,但是通过分层后,每一层只需要专注于本层的工作,可以高效地处理数据传输。
数据的发送自上而下是一个封装(这里的封装并不是Java面向对象中的封装,而是指下层会在上层的基础上添加一些必要信息的意思)的过程,自下而上是分用过程。
5.3 为什么要有分层?
(1)各层之间相互独立:每一层只需要关注自己本层的工作,上层调用下层提供的服务,并未上层提供服务,不再需要过多关注其它层的工作。
(2)大问题化成小问题:如果没有分层结构,遇到一个问题时任意发生冲突,很难得到解决,但是经过分层以后,把一个大问题分层好几个步骤,循序渐进,可以保证工作内容的有序进行。
(3)提高性能:由于各层只需要复杂本层的工作,不需要过多关注其它事情,并且每层的工作内容都是分开的,可以提高处理数据的性能。
5.4 网络设备所在分层
(1)路由器:实现网络层到物理层,相当于工作在网络层
(2)交换机:实现数据链路层到物理层,相当于工作在数据链路层
(3)集线器:工作在物理层
关于网络的基础就介绍这么多,这些都是纯文字的理解,肯定是难以消化的,主要是理解这些概念并记住这些名词即可。下期就开始介绍应用层的一个重要的协议 —— HTTP 协议。
欲知后事如何,且听下回分解!
