目录
一些基本概念
局域网/广域网
比如下面的例子,两根网线把三台主机连起来就是一个局域网
但这是最简单的情况,一般都会使用一些转发设备,比如交换机和路由器
而广域网其实就是大一点的局域网
全世界最大的广域网叫做“因特网”
交换机和路由器
交换机有很多网口,很多主机将网线插到一个交换机上,这些主机就组成一个局域网
并且这些主机间可以互相访问
而路由器上有两类端口:LAN口和WAN口
其中插在LAN口上的设备在一个局域网里,而WAN口是连接另一个局域网
总结:
交换机组成局域网,路由器连接局域网。如下:
IP地址和端口号
IP地址:描述了网络上的一个主机位置
端口号:描述了一个主机上的某个应用程序
IP地址本质是一个32位的整数,而端口号是一个16位的无符号整数
协议
协议本质上就是约定,约定了发送方和接收方的格式
网络通信的本质传输的是光信号和电信号
通过光信号的频率和电信号的电频来表示 0 和 1
而协议就是约定这些0和1是什么意思
但是网络通信的过程很复杂,只通过一个协议很难描述所有细节,
所以这里最好的办法就是将协议拆成多个小的,更简单的协议
网络分层
OSI七层模型
这只是一种理想的模型,但是太麻烦了
TCP/IP五层模型
所以现在用的协议都是简化过的
物理层:针对网络通信中的硬件设备,保证网路设备和主机之间都是相互匹配的
数据链路层:负责两个相邻设备之间的通信
但什么叫相邻,比如这里主机1和主机2不是相邻的,但是路由器和任一台主机都是相邻的
网络层:负责点到点之间的通信,就是到任意节点之间的通信,不用相邻
也就是负责在两个不相邻的点之间规划一条合适的路线
传输层:负责端到端之间的通信,只关注结果,也就是数据到没到,不关心数据走哪条路
应用层:和应用程序密切相关,需要考虑这个应用程序的用途
这里举个例子:
快递车站在物理层,提供传输的基础
快递小哥,在数据链路层,负责把货带到集散中心
快递公司在网络层,负责规划路线
商家在传输层,只考虑这个东西能否到我的手里
顾客则站在应用层,只关心快递的内部和它的用途
一台主机实现了从物理层到应用层(五层都实现了)
一台路由器实现了从物理层到网络层(实现了三层)
一台交换机实现了从物理层到数据链路层 (实现了两层)
封装与分用
比如,这样一个例子:我使用QQ发送了一个消息,输入了一个hello并按下发送
应用层:
根据用户输入,把数据根据应用层协议,构造一个应用层数据报文,下面是一个假设的内容
之后应用层协议会调用操作系统提供的API,把应用层的数据交给传输层
传输层:
根据传输层协议,基于当前的传输层协议,来构造一个传输层的协议报文,如下:
TCP报头中包含了“源端口”和“目的端口”,就像存储着发件人和收件人的电话一样
网络层:
根据网络层协议(如IP协议),再进行封装,如下:
再IP报头中也有“源IP”和“目的IP”,就像发件人的地址和收件人的地址
数据链路层:
根据数据链路层协议,构造一个数据链路层的数据包
典型的数据链路层的协议叫做“以太网”,这个构造的数据包就叫做以太网数据帧
帧头和帧尾中的最重要信息是接下来要传给的设备的地址是什么
物理层:
根据以太网数据帧(一组0和1),把它变成高低电平,通过 网线 传输出去
或者变成高频/低频的电磁波,通过 光纤/无线的方式传播出去
上面的过程就叫做封装,过了物理层后,就前往了下一个设备
下一个设备可能是路由器,交换机或者其他设备
接受方的物理层:
接受方感受到了一组高低电平,然后就把电平翻译成一段数据
这段数据就是“以太网数据帧”,然后把这个数据传给数据链路层
之后的每层会一层一层地把对应的头部解析,最终就获取到了发送方的数据
这个过程就叫作分用。
对于交换机和路由器的内部,也进行了封装和分用,只是层数减少
交换机:
路由器:
本篇只是梳理了最简单的网络知识,还需要继续深入学习ヽ( ̄ω ̄( ̄ω ̄〃)ゝ