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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络 -> 正文阅读

[网络协议]计算机网络

计算机网络

计算机网络的层次结构

层次结构设计的基本原则

当计算机A和计算机B进行通信时

计算机网络需要解决的四个问题

  • 保证数据通路顺畅
  • 识别目的计算机
  • 查询目的计算机状态
  • 数据是否错误

分层实现不同的功能

  • 基本原则:

    • 各层之间是相互独立的

    • 每一层要有足够的灵活性(用来应对未来的变化

    • 各层之间完全解耦(各层的变化不会相互影响

OSI七层模型

在这里插入图片描述

OSI并没有成为广为使用的标准模型

  • OSI专家缺乏实际经验
  • OSI标准制定周期过长
  • OSI设计不合理

TCP/IP在全球范围成功运行

TCP/IP四层模型

在这里插入图片描述

计算机之间的传输

在这里插入图片描述

四层模型使用的协议:

在这里插入图片描述

中间窄,两端大的沙漏形状

现代互联网的网络拓扑

边缘部分

用户可以接触到的部分

e.g. 家庭: 终端机器(手机、电脑 )-> 路由器 -> 网关 -> 地区ISP

在这里插入图片描述
e.g. 企业:在这里插入图片描述

核心部分

地区的主干ISP通过国际路由器进行互通

在这里插入图片描述

树状结构

在这里插入图片描述

计算机网络的性能指标

速率Mbps = bit/s

为什么电信拉100M光纤,测试峰值速度只有12M每秒?

网络常用单位为Mbps

100M光纤指的是100M/s = 100Mbps = 100Mbits/s = (100/8)MB/s = 12.5MB/s

时延

  • 发送时延

在这里插入图片描述

  • 传播时延

在这里插入图片描述

  • 排队时延

    数据包在网络设备中等待被处理的时间

  • 处理时延

    数据包到达设备或目的机器被处理所需要的时间

总时延 = 发送时延 + 传播时延 + 排队时延 + 处理时延

往返时间RTT(Route-Trip Time)

数据报文在端到端通信中的来回一次的时间

通常使用ping命令查看RTT

IP物理地址离得越远RTT越长

物理层

在OSI七层模型属于最底层,在TCP/IP四层模型中属于网络接口层

作用

  • 连接不同的物理设备

    • 介质
      • 双绞线
      • 同轴电缆
      • 光纤
      • 红外线、无线、激光
  • 传输比特流

    比特流:高低电平交替传输信息

信道

  • 往一个方向传送信息的媒体

  • 一条通信电路包含一个接收信道和一个发送信道

在这里插入图片描述

  • 发送和接收会不会冲突? 冲突了怎么办

    • 单工通信信道

      只能一个方向通信,没有反方向反馈的信道

      e.g. 电视、无线电收音机等

    • 半双工通信信道

      双方都可以发送和接收信息

      不能同时发送也不能同时接收

    • 全双工通信信道

      双方都可以同时发送和接收信息

信道的分用-复用技术

在这里插入图片描述

多个计算机连接复用器和分用器,共享同一条信道,提高信道的利用效率。

但可能导致信道的拥塞

  • 分类
    • 频分复用(按频率不同进行分用复用
    • 时分复用
    • 波分复用
    • 码分复用

数据链路层

在OSI七层模型属于物理层的上一层,在TCP/IP四层模型中也属于网络接口层

封装成帧

  • “帧”是数据链路层数据的基本单位

    (比特位是物理层的基本单位

  • 发送端在网络层的一段数据前后添加特定标记形成“帧”

  • 接收端根据前后特定标记识别出“帧”

过程:

网络层把IP数据报传输到数据链路层

数据链路层收到数据后把它看做数据帧

在数据帧的前后(帧首部SOH、帧尾部EOT添加特定的控制字符(特定比特流)

在这里插入图片描述

  • 数据流恰好也有这些比特流怎么办
    • 透明传输

透明传输

透明:“一种实际存在的实物又看起来不存在一样”

? 即“控制字符在帧数据中,但是要当做不存在的去处理”

  • 那么数据流恰好有这些怎么办?

    在EOT前添加一个转义字符(‘\’),当接收端接收到EOT并判断EOT前有一个转义字符时,那么接收端就不会把它判断成数据报的尾部。

    • 如果数据中也出现了转义字符咋办?

      在转义字符前再加一个转义字符,把转义字符转义一下(…?)

      比如要输出一个反斜杠“\“时,就要在前面再加一个转义字符表示这不是转义字符,即”\\”。如果要输出两个反斜杠,就要在前面加两个。

差错检测

作用:因为物理层只管传输比特流,无法控制是否出错。所以数据链路层负责起“差错检测”的工作。

奇偶校验码

在比特流的尾部添加一位比特位来检测比特流是否有出错

比特流中所有位数相加,如果是奇数那么校验码是1;如果是偶数则为0

在这里插入图片描述

  • 局限性:

    如果是奇数位丢失(比如丢失了1个或3个“1”)是可以检测出的

    但如果是偶数个1丢失,是检测不出来的。

循环冗余校验码CRC

根据传输或保存的数据而产生固定位数校验码的方法

检测数据传输或保存后可能出现的错误

也是生成的数字计算出来并且附加到数据后面

  • 模二除法

    二进制下的除法,不借位,实际是异或操作

  • 步骤

    • 选定一个用于校验的多项式G(x),并在数据尾部添加r个0,r为最高阶

    • 将添加r个0后的数据,使用模二除法除以多项式的位串

    • 得到的余数填充在原数据r个0的位置得到可校验的位串

    例子:使用CRC计算101001的可校验位串。

    1. 选定多项式G(x)

在这里插入图片描述
2. 将添加r个0后的数据,使用模二除法除以多项式的位串

在这里插入图片描述
3. 将得到的余数填充在原数据r个0的位置得到可校验的位串
在这里插入图片描述

  • 接收端接收的数据除以G(x)的位串,根据余数判断出错

在这里插入图片描述

CRC的错误检测能力与位串的阶数r有关

如果r=1,CRC退化成奇偶校验码

数据链路层只进行数据的检测,不进行纠正。

最大传输单元MTU

MTU(Maximum Transmission Unit)

数据链路层的数据帧也不是无限大的

在这里插入图片描述

数据帧过大或过小都会影响传输的效率

  • 以太网MTU一般为1500字节

总时延 = 发送时延 + 排队时延 + 传播时延 + 处理时延

路径MTU

路径MTU由链路中MTU的最小值决定

在这里插入图片描述

以太网协议详解

在这里插入图片描述

路由器怎么知道A的数据要发给谁?

MAC地址

  • 物理地址、硬件地址

  • 每个设备都拥有唯一的MAC地址(身份证号码)

  • 48位,使用十六进制表示

    xx-xx-xx-xx-xx-xx

  • 查看计算机的MAC地址:ipconfig /all

以太网协议

  • 以太网(Ethernet)是一种广泛的局域网技术

  • 应用于数据链路层的协议

  • 完成相邻设备的数据帧

在这里插入图片描述

单位都是字节

在这里插入图片描述

MAC地址表

将MAC地址映射到具体的硬件接口上

在这里插入图片描述

回到一开始的问题:路由器怎么知道A的数据要发给谁?

在这里插入图片描述

  • A通过网卡发出数据帧
  • 数据帧到达路由器,路由器取出前6字节
  • 路由器匹配MAC地址表,找到对应的网络接口
  • 路由器往该网络接口发送数据帧

如果MAC地址表中C的接口是未知的怎么办?

  • E检查MAC地址表,发现没有C的信息
  • E广播A的数据包到除A以外的端口
  • E将收到来自B、C的回应,并记录地址
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 12:01:41  更:2021-12-09 12:03:47 
 
开发: 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年10日历 -2024/10/5 6:49:13-

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