IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络原理概述笔记(TCP/IP五层网络协议) -> 正文阅读

[网络协议]网络原理概述笔记(TCP/IP五层网络协议)

网络原理

用户态与内核态

操作系统将对进程在内存空间上的分配分为用户态和内核态。内核态的执行权限高于用户态。

  • 不同主机上的进程与进程之间的通信主要是想传输用户态的数据。

    主机1上的进程A要先经过【用户态 -> 内核态】的数据复制,内核态再将此数据交由网卡实现【数字信号 -> 物理信号】的转换,由光纤等物理传输介质负责传输物理信号,到达主机2的网卡,再由主机2的网卡实现【物理信号 -> 数字信号】的转换,将数据向上交给内核态,最终由内核态将数据返回给用户态。

    在这里插入图片描述

  • 当数据到达时,会产生一个中断信号,让CPU中断当前正在执行的任务,而去执行一段提前准备好的代码(中断处理程序),将数据从网卡复制到内核态的内存区中。
    在这里插入图片描述

状态转换

由于用户态的权限不够,不足以完成某些任务时,需切换至内核态。以下是 【用户态 -> 内核态】 的三种方式:

  1. 系统调用:用户态进程主动要求切换到内核态。用户进程通过系统调用申请使用操作系统提供的服务程序完成工作。
  2. CPU中断:当外设完成用户请求的操作后,会向CPU发出相应的中断信号,使CPU暂停执行下一条即将要执行的指令,转而去执行中断信号相应的中断处理程序。若CPU中断前执行的指令是用户态下的程序,则这个过程自然就发生了由用户态到内核态的切换。如硬盘读写的操作完成后,系统会切换到硬盘读写的中断处理程序中执行后续操作。
  3. 异常: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地址、…


通过封装+解包实现的数据传输,对于每层来说都好像是单独通信交流的,传输数据时不同的层次之间感受不到彼此的存在。

且各层可以根据各层自己添加的控制信息进行一些必要的操作。

ISP 网络服务提供商

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 16:57:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 21:04:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计