目录
-
- 网络原理
-
- 用户态和内核态
-
- 状态转换
- 网络拓扑结构
- 网络标准分层协议
-
- 物理层
-
- 集线器
- 冲突域
- 数据链路层
-
- 交换机
- 单播和广播
- MAC地址
- 网络层
-
- 路由器
- IP地址
-
- 常见的IP地址
- 长期目标和短期目标
- 传输层
-
- 端口
- 传输层协议五元组
- 应用层
- TCP/IP总结五层网络模型
- 包装和解包数据
- ISP 网络服务提供商
网络原理
用户态和内核态
操作系统将对进程在内存空间上的分配分为用户态和内核态。内核态的执行权限高于用户态。
-
不同主机上的过程和过程之间的通信主要是为了传输用户的数据。
主机1上的过程A首先通过用户状态 -> 复制内核态的数据,然后将这些数据交给网卡实现数字信号 -> 物理信号的转换,由光纤等物理传输介质传输物理信号,到达主机2网卡,然后由主机2网卡实现物理信号 -> 数字信号的转换将数据向上移交给核心状态,最后,数据返回到用户状态。
-
当数据到达时,会产生中断信号CPU中断目前正在执行的任务,执行提前准备好的代码(中断处理程序),将数据从网卡复制到核心内存区。
状态转换
由于用户状态的权限不足以完成某些任务,需要切换到内核状态。 三种方法:
- :用户态进程主动要求切换到内核态。用户进程通过系统调用申请使用操作系统提供的服务程序完成工作。
- :当外设完成用户请求的操作时,会向前移动CPU发出相应的中断信号,使CPU暂停下一个即将执行的指令,转而执行相应的中断信号处理程序。CPU中断前执行的指令是用户状态下的程序,这个过程自然会从用户状态切换到核心状态。如果硬盘读写操作完成后,系统将切换到硬盘读写中断处理程序进行后续操作。
- :CPU在执行用户状态程序时,会发生一些事先未知的异常,如缺页异常。此时,它将触发过程的切换,从当前的操作过程切换到处理此异常的相关核心程序,从用户状态切换到核心状态。
网络拓扑结构
以太网采用集线器连接,网络逻辑拓扑结构以总线型为主,星型为辅。
网络标准分层协议
OSI 七层网络协议。TCP/IP 五层网络协议。前者比后者有更多的表多。
物理层
集线器在物理层工作,主要解决物理网络介质中数据传输的问题。
集线器
集线器主要负责:1. 复制数据 2.放大信号。
冲突域
由于多个主机共享一个信道,一次只能传输有限的信号,当过多的主机想要占用信道传输信号时,超出信道的容量范围就会导致冲突。冲突主机之间形成冲突域。
数据链路层需要解决物理层集线器组网自然引起的冲突域问题。
数据链路层常用的冲突避免算法:冲突发生后,静静地等待时间再次发送。
虽然冲突避免算法可以避免冲突发送,确保同一冲突域的主机能够传输数据,但如果主机太多,信号传输效率就会降低。 ==> 1. 冲突域的主机不应该太多 2. 尽量减少冲突域的发生。
数据链路层
交换机在数据链路层工作,主要解决局域网问题LAN内主机与主机的通信问题。
交换机
物理层的集线器是傻瓜,只复制数据和放大信号 ,不能分析数据(不知道数据是什么样子的),也不负责数据的方向和目标地址。数据链路层的交换器可以根据数据指定的目标地址分析数据链路层协议,只发送给目标主机。
集线器形成的局域网自然存在冲突域问题,交换机形成的局域网可分为冲突域和同一冲突域的不同主机。 常见的局域网构建结构:交换机 集线器
单播和广播
单播的目标地址是主机。
广播的目标地址是特殊地址。广播地址:FF-FF-FF-FF-FF-FF。
在广播领域,主机发送的数据将被广播领域的所有其他主机接收。发送的目标地址是一个特殊的广播地址,不指定发送到哪个主机。
MAC地址
数据链路层的地址是指MAC地址(物理地址)。
MAC地址写在网卡制作时,不会发生重复冲突。
MAC地址长度为48位(6字节),通常表示12位4位16进制数。
网络层
路由器在网络层工作,主要解决跨局域网问题LAN主机与主机之间的通信问题。
路由器
路由器横跨多个局域网LAN之间,对于每个局域网来说,它似乎属于当前的局域网内部。
路由(route)也就是说,负责道路搜索工作,遵循网络层的协议,在多条交付数据的多条路线中找到最合适的一条,从当前数据LAN一台主机传送到另一台主机LAN在另一台主机上。
IP地址
网络层的地址是指IP地址。IP地址属于软件地址。
IP地址随时变化,而不是写死固定。同一网络内部IP地址不应重复。
IP地址长度为32位(4字节),通常表示为4个8位二进制数。
常见的IP地址
本机:127.0.0.1 (对应域名localhost)
长期目标和短期目标
:整个路由器传输数据的起点和终点。(固定不变)
:在不久的将来,路由器将数据传输到目的地。也就是下一步要走的路。(动态计算)
不同的数据通过路由器LAN路由器可以分析网络协议,了解长期目标,并根据当前传输进度动态计算短期目标。
传输层
主要解决过程与过程之间的通信问题。
端口
端口号范围:0~65535,两个字节的无符号数。
一个端口号识别一个过程。一个过程可以与多个端口(过程)通信。
传输层协议五元组
应用层
主要处理业务逻辑。对应内存空间的用户状态。
TCP/IP总结五层网络模型
包装和解包数据
发送方的过程将数据从应用层中提取往下逐层进行(添加首部),传递到物理层将数字信号转为物理信号后,在物理传输介质中进行传播到接收方主机,由接收方从物理层开始向上进行(去除首部),并根据具体的控制信息进行处理,选择每层使用的协议。
首部信息主要包括:(控制信息)源地址、目标地址、分用信息等。
传输层:源端口、目标端口、…
网络层:源IP地址、目标IP地址、…
数据链路层:源MAC地址、目标MAC地址、…
通过封装+解包实现的数据传输,对于每层来说都好像是单独通信交流的,传输数据时不同的层次之间感受不到彼此的存在。
且各层可以根据各层自己添加的控制信息进行一些必要的操作。