当前位置: 首页 > article >正文

12.29~12.31[net][review]need to recite[part 2]

网络层

IP

首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的

路由器

路由选择协议属于网络层控制层面内容

l 路由器 主要工作: 转发分组。

l 路由 信息协议 RIP (Routing Information Protocol ) 一种 分布式的、基于距离向量的 路由选择协议

l 多播数据报和一般的 IP 数据报的 区别:
u 目的地址: 使用 D IP 地址。
u 协议字段 = 2 表明使用网际组管理协议 IGMP

 l对多播数据报不产生 ICMP 差错报文。在 PING 命令后面键入多播地址,将永远不会收到响应。

 局域网

802.3局域网简称为“以太网”。

lIEEE 802.3:第一IEEE 的以太网标准

从总线以太网到星形以太网

IEEE 802.1Q 虚拟局域网 VLAN 的定义:虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN

标准以太网帧插入 4 字节的 VLAN 标记后变成了 802.1Q 帧(或带标记的以太网帧)

MAC

注意如果连接在局域网上的主机或路由器安装有多个适配器,这样的主机或路由器就有多个“地址”。更准确些说,这种 48 位“地址”应当是某个接口的标识符。

l IEEE 注册 管理机构 RA 负责向厂家 分配 3 字节 ( 24 ) ,称为 组织唯一 标识符 OUI (Organizationally Unique Identifier)
l 厂家自行 指派 3 字节 ( 24 ) ,称为 扩展 标识符 ( extended identifier)
l 必须 保证生产出的适配器 没有重复地址

地址被固化在适配器的 ROM 中。

无线局域网

l 无线局域网 不能 简单地搬用 CSMA/CD 协议 因为
1. 碰撞检测( CD 要求:一 个站点在发送本站数据的同时,还必须不间断地检测信道,但接收到的信号强度往往会远远小于发送信号的强度,在无线局域网的设备中要实现这种功能就 花费过大
2. 即使能够实现碰撞检测的功能,并且在发送数据时检测到信道是空闲的时候,在接收端仍然有 可能发生碰撞
隐蔽站问题 (hidden station problem) :由于无线信号覆盖范围和穿透能力有限, A C 检测不到彼此的无线信号,都以为 B 是空闲的,因而都向 B 发送数据,结果发生碰撞。
1. 无线 局域网的适配器 无法实现 碰撞检测;
2. 检测 到信道空闲,其实信道 可能并不空闲;
3. 即使能够 在硬件上实现无线局域网的碰撞检测功能,也无法检测出 隐蔽站问题 带来的碰撞

网络设备 

  • 集线器用于在连接多个设备的网络上形成星形拓扑。

TCP

l加权平均往返时间 RTTS 称为平滑的往返时间。

RTTS  =  (1 - a) ´ ( RTTS)  + a ´ ( RTT 样本)       (5-4)

其中,𝟎𝜶<𝟏 0α<1

𝛂𝟎α→0,表示 RTT 值更新较慢。

 𝛂𝟏 α→1,表示 RTT 值更新较快。

RFC 6298 推荐的 a 1/8,即 0.125

l RTO (Retransmission Time-Out) 大于 加权平均 往返时间 RTT S
l RFC 6298 建议 RTO

RTO = RTTS + 4 ´ RTTD  

其中:RTTD RTT 偏差的加权平均值

RFC 6298 建议 RTTD

新的 RTTD = (1 - b ) ´ (RTTD)  b ´ ½RTTS - 新的 RTT 样本½   (5-6)

其中b 个小于 1 的系数,其推荐值是 1/4,即 0.25

l 糊涂窗口 综合症 :每次 仅发送一 个字节或很少几 字节的数据时,有效数据传输效率变得很低的现象。
1. 节点 缓存容量 太小;
2. 链路容量 不足;
3. 处理机 处理速率 太慢;
4. 拥塞本身会进一步加剧拥塞
增加资源能解决拥塞吗?
1. 增大缓存,但未提高输出链路的容量和处理机的速度,排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞;
2. 提高处理机处理的速率会将瓶颈转移到其他地方;

拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞

l真正的发送窗口

真正的发送窗口值 = Min (接收方通知窗口值rwnd,拥塞窗口值cwnd)

拥塞控制算法

慢开始

l 小到大逐渐增大注入到网络中的数据字节, 即:由小到大 逐渐 增大拥塞窗口 数值。

 •拥塞窗口 cwnd

初始值: 2 种设置方法。
1 2 个最大报文段 MSS (旧标准)
2 4 个最大报文段 MSS RFC 5681
慢开始门限 ssthresh
防止拥塞窗口增长过大引起网络拥塞

TCP 连接进行初始化时,将拥塞窗口置为 1(窗口单位不使用字节而使用报文段) 

l 无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞( 重传定时器超时 ):
1. ssthresh = max ( cwnd /2 2)
2. cwnd = 1
3. 执行慢开始算法
当拥塞窗口 cwnd = 16 时,发送方连续收到 3 个对同一个报文段的重复确认 (记 3-ACK )。发送方改为执行 快重传 快恢复 算法。
l rwnd < cwnd 时,是接收方的 接收能力 限制 发送窗口的最大值。
l cwnd < rwnd ,是 网络拥塞 限制 发送窗口的最大值。

 lTCP 拥塞控制影响最大的就是路由器的分组丢弃策略

l 路由器队列 维持两个参数
u 队列长度 最小 门限 TH min
u 队列长度 最大 门限 TH max
l RED 对每一个到达的分组都先计算平均队列长度 L AV
1. 平均队列长度 小于最小 门限 TH min ,则将新到达的分组放入队列进行排队。
2. 平均队列长度 超过最大 门限 TH max 则将新到达的分组丢弃。
3. 平均 队列长度 介于 最小门限 TH min 和最大 门限 TH ax 之间 ,则按照某一 概率 p 将新到达的分组丢弃。

A TCP B 主动发出连接请求报文段,其首部中的同步SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x

注意:TCP规定,SYN 报文段(即SYN = 1的报文段)不能携带数据,但要消耗掉一个序号。

l B TCP 收到连接请求报文段后,如同意, 则发 回确认。
l B 在确认报文段中应使 SYN = 1 ,使 ACK = 1 ,其 确认号 ack = x + 1 ,自己选择的序号 seq = y

应用层

DNS 使用 UDP 通信

DHCP

  1. DHCP 的工作流程

    • 发现阶段(DHCP Discover)
      • 当客户端(如计算机、移动设备等)首次接入网络或其 IP 配置需要更新时,它会以广播的形式发送一个 DHCP Discover 消息。这个消息的目的是寻找网络中的 DHCP 服务器。因为客户端此时还没有 IP 地址,所以使用 0.0.0.0 作为源 IP 地址,广播地址(通常是 255.255.255.255)作为目的 IP 地址。
      • 在这个消息中,客户端还会包含一些其他信息,如自己的 MAC 地址等,以便 DHCP 服务器能够识别客户端。
    • 提供阶段(DHCP Offer)
      • 网络中的 DHCP 服务器接收到 DHCP Discover 消息后,会根据自己的配置和可用的 IP 地址资源,选择一个合适的 IP 地址,并向客户端发送一个 DHCP Offer 消息。这个消息包含了提供给客户端的 IP 地址、子网掩码、默认网关地址、DNS 服务器地址等网络配置信息。
      • 由于客户端是通过广播发送的发现消息,所以可能会有多个 DHCP 服务器收到并响应,每个响应的服务器都会发送一个 DHCP Offer 消息。
    • 请求阶段(DHCP Request)
      • 客户端收到一个或多个 DHCP Offer 消息后,会选择其中一个(通常是第一个收到的),然后向选中的 DHCP 服务器发送一个 DHCP Request 消息。这个消息以广播形式发送,目的是通知所有 DHCP 服务器自己选择了哪个 IP 地址。
      • 在这个消息中,客户端会再次包含自己的 MAC 地址和选中的 IP 地址等信息。
    • 确认阶段(DHCP Ack)
      • 被选中的 DHCP 服务器收到 DHCP Request 消息后,会向客户端发送一个 DHCP Ack 消息,确认将所选的 IP 地址及其他网络配置参数分配给客户端。
      • 客户端收到 DHCP Ack 消息后,就会使用分配到的 IP 地址和其他网络配置参数来配置自己的网络接口,从而可以正常地在网络中进行通信。
    • 续租阶段(Renewal)
      • 客户端获得的 IP 地址是有一定租期的。当租期达到一半时,客户端会自动向为其分配 IP 地址的 DHCP 服务器发送一个 DHCP Request 消息,请求续租。
      • 如果 DHCP 服务器同意续租,会发送一个 DHCP Ack 消息,更新租期;如果不同意续租,可能会发送一个 DHCP Nak 消息,此时客户端需要重新发起 DHCP Discover 流程来获取新的 IP 地址。

邮件

l 重要 标准:
u 简单邮件发送协议: SMTP
u 互联网文本报文格式
u 通用互联网邮件扩充 MIME
u 邮件读取协议: POP3 IMAP

用户代理邮件服务器,以及邮件发送和读取协议 

l 邮件 读取协议 POP IMAP 与邮件传送协议 SMTP 完全不同。
l 发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
l POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。

HTTP

l 万维网使用 Cookie 跟踪在 HTTP 服务器和客户之间传递的 状态 信息

请求一个万维网文档所需的时间

所需的时间 >=

   RTT(三报文握手建立 TCP 连接

+ RTT(请求和接收文档

+ 文档的传输时间

= 2 RTT +文档的传输时间

协议 HTTP/1.0 主要缺点

l 每请求一个文档就要有 两倍 RTT 开销
l 客户和服务器每一次建立新 TCP 连接 都要分配缓存和变量
l 这种 非持续 连接 使服务器 的负担很重。

 协议 HTTP/1.1 使用持续连接

l 持续 连接 persistent connection ):服务器 在发送响应后仍然在一段时间内 保持 这条 连接(不释放), 使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续 HTTP 请求 报文和响应报文
l 只要文档 都在同一个服务器 上,就可以继续使用该 TCP 连接。
l 两种工作 方式:
u 非流水线方式 (without pipelining)

流水线方式 (with pipelining)

协议 HTTP/2

1. 服务器可以并行发回响应(使用同一个 TCP 连接)。
2. 允许客户复用 TCP 连接进行多个请求。
3. 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。

TELNET

  • 定义:NVT 即网络虚拟终端(Network Virtual Terminal)格式,是 TELNET 协议中定义的一种标准数据格式,用于在客户端和服务器之间传输数据,使得不同类型的终端和主机之间能够进行互操作。
  • 格式内容:NVT 定义了一个标准的字符集和控制字符集,以及字符的编码方式和传输规则。它将数据分为数据字符和控制字符,数据字符用于传输实际的文本或二进制数据,控制字符用于实现诸如终端控制、命令传输等功能。

FTP

1. 打开熟知端口(端口号为 21 ),使客户进程能够连接上。
2. 等待客户进程发出连接请求。
3. 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
4. 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

交互式:允许客户指明文件的类型与格式,并允许文件具有存取权限。

TFTP

l 每次 传送的数据报文中有 512 字节的数据,但最后一次可不足 512 字节。
l 数据报文按序编号, 1 开始。
l 支持 ASCII 码或二进制传送。
l 支持文件 传输, 支持交互。

l 开始工作时, TFTP 客户进程发送一个读 请求或 请求报文给 TFTP 服务器进程, UDP 熟知 端口号码 69
l TFTP 服务器 进程选择 一个新的端口和 TFTP 客户进程进行通信。
l 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在 最后 发送一个只含首部而无数据的数据报文。
l 若文件长度不是 512 字节的整数倍,则最后传送数据报文的数据字段一定不满 512 字节 ,作为 文件结束的标志。

DNS

l 根据所 起的作用 ,分为四种类型
1. 域名服务器
2. 顶级域名服务器
3. 权限域名服务器
4. 本地域名服务器

数据格式

伪首部

  • 源 IP 地址:占 4 字节,填写发送方的 IP 地址,用于标识数据的来源。
  • 目的 IP 地址:占 4 字节,填写接收方的 IP 地址,用于标识数据的去向。
  • 保留字段:占 1 字节,未使用,通常设置为 0。
  • 协议字段:占 1 字节,用于标识上层协议,对于 TCP 协议,该字段的值为 6。
  • TCP 长度:占 2 字节,指的是 TCP 报文段的长度,包括首部和数据部分的总长度。

UDP

TCP

UGR,ACK,RSH,RST,SYN,FIN

DN

S 使用 UDP 通信


http://www.kler.cn/a/461104.html

相关文章:

  • 库伦值自动化功耗测试工具
  • 项目:停车场车辆管理系统
  • Ubuntu Server安装谷歌浏览器
  • 微信小程序获取后端数据
  • 物联网开发利器:基于web的强大的可拖拽组态软件
  • 【开源免费】基于SpringBoot+Vue.JS保密信息学科平台(JAVA毕业设计)
  • 电脑主机后置音频插孔无声?还得Realtek高清晰音频管理器调教
  • 【题解】AT_abc386_d AtCoder Beginner Contest 386 D Diagonal Separation
  • 【每日学点鸿蒙知识】List+Swipe滑动冲突、下拉刷新、编译错误定位、监听生命周期、上架应用市场要求
  • 分布饼状图——开发解释——未来之窗行业应用跨平台架构
  • 零售小程序怎么自己搭建?开个小卖铺如何留住客户?
  • mybatisPlus基础
  • 服务器数据恢复—磁盘阵列中多块硬盘离线导致存储中数据无法访问的数据恢复
  • SpringMVC中的拦截器
  • MVC 架构学习笔记
  • CUTLASS:高性能 CUDA 线性代数模板库详解
  • 过圆外一点与圆相切的直线
  • 表单验证不生效
  • 前端Monorepo实践分享
  • GXUOJ-算法-第四次作业(圆排列、连续邮资、n皇后、符号三角形)
  • 「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计
  • Rabbitmq追问2
  • UniApp 组件的深度运用
  • 【时时三省】(C语言基础)动态内存函数calloc
  • 活动安排.
  • nginx-nginx的缓存集成