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

[网络协议]计算机网络

概述

因特网三要素: 设备、协议、服务

  • 设备: 主机端系统、链路、交换设备(路由器、交换机)
  • 协议: 报文的格式和次序、发送/接收报文以及其它事件所采取的动作

网络边缘

  • CS结构 : 服务器总是开机且有固定周知的IP地址、客户机动态IP地址
  • P2P结构: 对等点地位相同(轮流当CS)、资源利用充分

网络性能指标

  • 往返时间(RTT): 发送到接收时间(容易测量)
  • 时延
    • 传播时延Propagation = 距离 / 光速
    • 传输时延Transmission= (大小/带宽) * 跳数
    • 排队时延Queue = 与对长相关(5-100 Transmission)
    • 处理时延process = 分组检查、查看去向
    • Latency= Propagation + Transmission + (Processing) + Queuing
    • 理解: 带宽=路的宽度、路的起点有管制、每秒只能上与带宽大小数量相等的车,先上去的车会在终点等所有车到齐才出发
  • 带宽时延积: L a t e n c y × b a n d w i d t h Latency\times bandwidth Latency×bandwidth、链路上的最大比特数,也称以比特为单位的链路长度
  • 传输速率 : n Mbps、nM bits 每秒
  • 吞吐量: bit/sec、通常接入网是瓶颈链路

接入网:

  • 定义: 端系统连接到其边缘路由器的物理链路
  • 数字用户线(DSL)(电话线)
    • ADSL(下载速度比上传速度快)
    • 频分信道(高频快、下载高频上传中频电话低频)
  • 混合光纤同轴电缆(HFC): 共享
  • 同轴电缆(有线电视线)
    • 共享广播媒体: 当多个用户下载同一文件可只传一次、空闲时刻让出宽带
  • 光纤入户
  • 局域网(LAN):
    • 功能: 连接端系统到边缘路由器
    • 以太网: 公司家庭常用的局域网、Wi-Fi通过连上以太网再接入因特网
    • 3G可以看做大范围Wi-Fi
  • 无线接入

核心网

  • 分组交换:
    • 特征: 资源利用率高、不可靠(每一跳都有可能丢包)
    • 分组: 把数据切分为多个分组、分组传输、每个分组使用完全的链路带宽
    • 存储转发机制: 需要收齐整个分组后才能开始发送
      • Q段链路需要时间 = Q × L ÷ R Q\times L\div R Q×L÷R
      • 1个分组在经过一个路由器中继需要2单位时间
      • N分组经过M-1个路由器中继需要M+N-1单位时间(可以流水线、传与收并行)
    • 丢包: 每个输出电路有一个输出缓存,若目的地忙需等待、缓存满了就丢包
    • 适合突发流量
  • 电路交换:
    • 每次交换预留实体电路、需要连接时间
    • 通过频分FDM、时分TDM、码分复用电路增加物理电路数
    • 静默期存在资源浪费、保证服务质量

因特网与ISP(因特网提供商)

  • 硬件: 由多台分组交换机构成
  • 架构:
    • 主干: 层次化结构 第一层(世界)ISP->区域ISP->接入用户
    • 接入点(POP): 允许远程用户连接到Internet的基础设施
    • 对等(peer): 同等级ISP之间共享路由器、彼此通信不用钱、避免向高层ISP支付费用
    • 多宿: 一个用户同时使用多ISP服务、确保可靠性
    • IXP: 专门设置的大机房,提供ISP厂家们的数据交换
    • 内容提供商(如:google): 有自己遍布全球的路由器支持用户使用自家产品、(优点一)绕过高层ISP避免付费、但还是要与高层ISP相连确保用户能用各种方式接入、(优点二)多样化服务用户的方法

其他

  • 因特网的设计原则: 最简单与自治、尽量递送、无状态路由选择 、分散控制
  • 报文(应用) 报文段(传输) 数据报/分组(网络) 帧(链路)
  • 传输层 端系统到端系统(进程)之间
    网络层 主机到主机(服务器)之间
    链路层 相邻节点到相邻节点(主机/路由器)之间

应用层

Web & Http(超文本传输协议)

  • 端口80
  • 非持续连接和持续连接
    • Web页面: 一个基本HTML文件+引用对象 (共n+1个对象)(每个对应一个URL)
    • 非持续连接: 每个请求/响应以单独的TCP连接发送
    • 持续连接: 所有请求/响应以相同的TCP连接发送
    • 响应时间: (假设有一个基本HTML文件+两个引用对象)
      • 非持续连接: 3 × ( 2 R T T + 传 输 时 间 ) 3\times (2RTT + 传输时间) 3×(2RTT+)
      • 不带流水线的持久连接: ( 2 R T T + 传 输 时 间 ) + 2 × ( R T T + 传 输 时 间 ) (2RTT + 传输时间)+2\times(RTT + 传输时间) (2RTT+)+2×(RTT+)
      • 带流水线的持久连接: ( 2 R T T + 传 输 时 间 ) + R T T + 2 × 传 输 时 间 (2RTT + 传输时间)+RTT+2\times 传输时间 (2RTT+)+RTT+2×
      • ( 2 R T T + 传 输 时 间 ) (2RTT + 传输时间) (2RTT+) 是必须的,因为在获得基本HTML文件后才知道其他对象
  • 报文
    • 请求报文: request, response,
    • request: GET, POST, HEAD, PUT, DELETE
  • cookie
    • HTTP是无状态协议
    • cookie存在用户端浏览器(换个浏览器就不认得了)、Web后台
    • cookie信息在HTTP报文中
  • Web缓存
    • cache有则返回对象、没有从原始的服务器请求该对象
    • 请求率/更新率>>1的文档可缓存
    • 通常Web缓存服务器与客户机在同一个LAN中、因为接入网是瓶颈
  • 其他: 使用TCP、CS架构

FTP

  • 端口21(控制)20(数据)
  • 带外传输 (HTTP带内)
    • 控制连接: Client 得访问授权(浏览目录)
    • 数据连接: 第二个TCP连接以传送文件 (传递结束后关闭数据连接)
  • CS架构、维护状态

Email

  • 端口 25(SMTP)
  • SMTP
    • 直接传递:发送邮件服务器用持久连接TCP(端口25)把email报文从传递接收邮件服务器
    • 报文的主体部分是7比特ASCII码格式 (可以直接阅读)
    • MIME扩展: 非ASCII、其他形式文件
  • 邮件访问协议
    • POP3: 无状态
    • IMAP: 有状态(层次目录)、允许只获取邮件报文首部
    • HTTP: 客户邮件报文通过HTTP发送给邮件服务器、邮件服务器之间仍使用SMTP协议

DNS

  • 功能: 主机名到 IP 地址的翻译、负载分配
  • 层次与查询
    • 根DNS、顶级域DNS(.cn,.com)、权威DNS、本地DNS服务器(代理)
    • 迭代查询: 本地问根、本地问顶级、本地问权威…
    • 递归查询: 客户问本地、本地问根、根问顶级…
    • 实际: 客户问本地、本地问根、本地问顶级、本地问权威
  • 报文与数据
    • 通常缓存有顶级域DNS服务器
    • 储存资源记录(RR)
      • Type=A: 别名/真名到IP
      • Type=NS: 域名到权威DNS服务器
      • Type=CNAME: 别名到真名
      • Type=MX: 别名/真名到邮件服务器名

P2P

  • 文件分发时间
    • CS分发时间: $max{\frac{NF}{\mu_s}, \frac{F}{d_1},…, \frac{F}{d_n}} $
    • P2P分发时间: $max{\frac{NF}{\mu_s}, \frac{F}{d_1},…, \frac{F}{d_n}, \frac{NF}{\mu_s+Nd}} $
  • Torrent
    • 参与一个特定文件分发的所有对等方的集合称为一个洪流
    • 最稀缺优先,大致均衡每个块在洪流中的副本数量
    • 对换算法,+1个随机选择的试探对等方、较好的处理了搭免费车的问题
  • 集中式目录
    • 对内容的定位是集中式、文件传输是分散式的
  • 查询洪泛
    • 有限范围的洪泛, TTL、可避免网上都在传查询报文
    • 发送Ping、转发 Ping、响应 Pong
    • 层次覆盖: 超级对等方负责跟踪所有组员的内容
    • 中继节点: AB都位于NAT后面时、先都接到中继节点、再互接

内容分发网

  • DASH (经HTTP的动态适应性流)
    • server 视频切分为块、每个块有多个版本、告示文件为每个版本提供一个URL及其编码
    • client 测量接收带宽、选择一个块的一个版本 (视频、声音可以不同帧率)
  • 分布式站点CDN
    • 在遍布全球的分布式站点CDN存储视频的副本
    • 向server查告示牌、得到附近CDN (根据拥塞状况选用CDN)、向CDN请求视频

socket

  • 进程通信
    • (同主机)进程间通信、(不同主机)交换报文
    • socket: 进程和端到端传输协议(UDP/TCP)之间的“门”
    • Socket= IP地址 + 端口号
  • TCP socket
    • server: 创建welcome socket、当client访问时创建新socket (可以同时接收多个client请求)
    • 数据流 stream: 流入、流出一个进程的字符序列 (输入流:键盘)
  • UDP socket
    • 数据报datagrams (TCP:字节流)

传输层

基本概念

  • 比喻

    • A家12个小孩给B家12个小孩写信统一派CD送到邮局

      12小孩(进程)、AB(主机)、CD(传输层)、邮政系统(网络层)

  • 复用与分解

    • 多路复用: 多个socket产生多个报文段、他们共享一个网络层服务
    • 多路分解: 将网络层数据报打开,读取报文段分发给指定socket
    • UDP二元组: (目的IP,目的端口号) (但还是要写源端口、让别人能回信)
    • TCP四元组: (源IP,源端口号,目的IP,目的端口号)

UDP

  • 无连接、无拥塞控制、尽力而为、8字节报头、UDP(快)
  • UDP校验和
    • 所有16位数相加 A+B+C = Total
    • 如果17位有进位 sum = Total + 1
    • 反转 check = ! sum
    • 接收到的信息 A’+B’+C’+sum’ = 全一(反卷积),则认为无误
    • 两位错误无法检查

可靠数据传输

  • rdt
    • FSM 箭头上面是事件、下面是行动、^代表空
    • rdt1.0: 信道完全可靠、不需要流量控制、各一个状态单元
    • rdt2.0: 不丢失但可能比特翻转、差错检测(校验和)、ACK+NAK+重传
    • rdt2.1: 添加两个序号(重发不混淆)、收错序号也发ACK
    • rdt2.2: 为ACK添加序号、拿掉NAK
    • rdt3.0: 定时器、支持丢包、送出后开启定时接收后关闭,超时则中断、接收错的ACK不重发否则信道都是冗余信息、传播时间>传输时间,RTT只能传一个数据报,吞吐量低
  • GBN:
    • 一个定时器、累计确认、同时有n个分组在信道中传输、丢弃失序分组、
    • 开始时开启定时器、收到有效ACK时重启定时器、超时时全部重传
    • 接收方丢弃所有乱序到达的数据并返还ACK (如1已ACK2丢失34收到、回复ACK1*2)
    • 最多同时发送n(窗口长度)个数据,超过拒收
  • SR(选择性重传)
    • n个定时器、发送窗口与GBN相同(收到最小序号ACK窗口才能右移、才能发新的数据)、缓存
    • 序号数 = 2倍窗口大小

TCP

  • 报文结构:
    • port、序号、确认号、流量控制、checksum(16位)、主文
    • 序号: 告诉接收方我是从哪开始传的
    • 确认号: 告诉发送方下次希望收到的字节起点
    • 举例(其实只有后面数据有效、但TCP其实有双向传输能力)
      • 发送方: 1Seq 42, Ack 72, Data=‘c’ 2Seq 42, Ack x, Data=‘c’
      • 接收方: 1Seq 73, Ack 43, Data=‘c’ 2Seq x , Ack 43, Data=‘c’
  • 重传机制
    • 累积确认、只有一个定时器、会缓存失序数据
    • 重传: 只重传窗口的第一个数据
    • 定时器超时重传
      • 超时时常加倍: 拥塞
    • 快速重传
      • 收到三个冗余ACK马上重传 (共四个ACK)
    • ACK: 1. 收到第一个等一下 2. 收到发现后面已经有数据马上发 3. 收到不连续则发冗余ACK
  • 流量控制
    • 避免因发送方传输太快太多而使接收方的缓存溢出
    • 接收方在回传报文内记录空闲缓存,确保发送方窗口大小 ≤ \leq 接收方空闲缓存
  • 确定RTT
    • E s t i m a t e d R T T = ( 1 ? α ) ? E s t i m a t e d R T T + α ? S a m p l e R T T EstimatedRTT=(1-\alpha)·EstimatedRTT+ \alpha ·SampleRTT EstimatedRTT=(1?α)?EstimatedRTTα?SampleRTT
    • D e v R T T = ( 1 ? β ) ? D e v R T T + β ? ∣ S a m p l e R T T ? E s t i m a t e d R T T ∣ DevRTT = (1-\beta)·DevRTT+\beta·| SampleRTT-EstimatedRTT | DevRTT=(1?β)?DevRTT+β?SampleRTT?EstimatedRTT
    • T i m e o u t I n t e r v a l = E s t i m a t e d R T T + 4 ? D e v R T T TimeoutInterval = EstimatedRTT+4·DevRTT TimeoutInterval=EstimatedRTT4?DevRTT
  • 连接管理
    • 三次握手
      • client(SYN=1,seq=x)->server
      • server(SYNACK=1,seq=x,ack=x+1)->client
      • client(SYN=0,seq=x+1,ack=x+1)->server
      • server(data)->client(分配缓存、避免洪范攻击)
    • 四次挥手
      • client(FIN)->server
      • server(ACK)->client
      • server(FIN)->client(等待后关闭)
      • client(ACK)->server(接收关闭)
  • 拥塞控制
    • 发送方窗口长度 : $window = \min{RcvWin, CongWin} $ (流量控制、拥塞控制)
    • 慢启动
      • 每次CongWin翻倍(每收到一个ACK,CongWin+=1)
      • 直到CongWin>thresh前往拥塞控制
    • 拥塞控制
      • 加性增(每收到w个ACK,CongWin+=1)
      • 乘性减1(Thresh=0.5CongWin, CongWin=1、回到慢启动)
      • 乘性减2(CongWin,Thresh减半、留在拥塞控制)
      • TCP Tahoe: 丢包与(三次)冗余ACK都采取乘性减1
      • TCP Reno : 丢包采取乘性减1、(三次)冗余ACK采取乘性减2
    • TCP是公平的
      • 斜率为一往右上走(加性增),连线原点往回走(乘性减),如此往复
      • R T T 1 = 2 R T T 2 RTT_1=2RTT_2 RTT1?=2RTT2?: R T T 2 RTT_2 RTT2?将享有两倍带宽
    • 明确拥塞通告(ECN): 以路由器的ECN比特表明该路由器正在经历拥塞

网络层

  • 数据平面: 转发功能(每台路由器)
  • 控制平面: 从源主机到目的主机的路由方式(网络范围)
  • 网络层的三大组件:IP协议,选路协议,ICMP协议

路由器

  • 转发
    • 基于目的地转发: 找到目的地与输出端口范围的最佳前缀匹配
    • 经内存交换、总线交换、互联网络交换
    • 线路前部阻塞: 缓冲区前面的在等,后面的已经轮到,但不能插队
    • 输出排队: 多个入口竞争出口

IPv4

  • IP协议
    • IP数据报报头20字节、TCP报头20字节
    • 最大传输单元MTU限制: 当某个路由器MTU不够大、IP数据报切片并在目的地重组
    • length=1500(只有1480有效数据)、offset=185(=这一个报文的开始偏置 1480 ÷ 8 ) 1480\div8) 1480÷8)
  • IPv4编址
    • 一个接口一个IP地址、跟主机/路由器数量没关系
    • 子网
      • 在同一个子网的两个接口通信不用经过路由器
      • 将路由器的每个接口切一刀、仍然相联者为子网
      • 由子网掩码决定
    • CIDR: IPv4分为ABC类太浪费(子网掩码长度为8,16,24)、CIDR可任意配置子网掩码长度
  • DHCP: 动态主机配置协议(属于应用层协议)
    • 功能: 动态获得IP地址、子网掩码、网关、DNS等
    • 步骤:
      • 新到的客户广播discover报文找DHCP服务器(因为这时他不知道服务器IP)
      • DHCP服务器广播给出offer报文(这时候客户还没有IP)
      • 客户机广播选定其一回复request报文(此处广播是同意一个拒绝其他)
      • DHCP服务器广播回复DHCP ack报文
    • 一个子网可以同时有多个DHCP服务器
  • NAT: 网络地址翻译(一个IP内用端口区分多IP)
    • 在NAT内可以任意分配IP地址、但传到外面统一被翻译为NAT的那个IP、传入时相同
    • NAT translation table: 对外端口号 <-> 内部IP
    • 问题
      • 路由器负责翻译不合理
      • 必须先发送一次NAT translation table才有记录(直接响应外面的传入会找不到)
  • IPv6:
    • 没有checksum、没有分片、报头40字节
    • 与IPv4兼容: 进入IPV4隧道前最后一个IPV6路由器封装成IPV4头,出隧道后第一个IPV6路由器封装成IPV6头

SDN

  • OpenFlow: 基于流表的转发、允许编程路由器

  • 控制平面, 北向接口,SDN控制器,南向接口,数据平面

  • 流表:

    • 匹配+动作转发表
    • Pattern(匹配), Actions(丢弃、转发、修改或将匹配的数据包发送给控制器),Priority,Counters
    • 路由器, 交换机, 防火墙, NAT

路由算法

  • LS(链路状态)
    • 每个节点运行Dijkstra选择路径
    • 一个点: O ( n 2 ) O(n^2) O(n2)的算法、 O ( n E ) O(nE) O(nE)的报文
    • 同步更新可能导致震荡 → \rightarrow 改为异步更新
  • DV(距离向量)
    • $d_x = min{c(x,v) + d_v} $
    • 异步、分布式、自收敛、周期更新的
    • 循环路由(无穷计数问题)
      • A A A B B B: B → C B\rightarrow C BC多远, B B B回答: B → A → C B\rightarrow A\rightarrow C BAC多远、坏消息传的慢
      • 如果 B B B C C C B → A → C B\rightarrow A\rightarrow C BAC B B B回答无穷
      • 三个点以上难解决

层次选路/自治系统

  • 网关路由器: 与其他AS运行inter-AS协议的特殊路由器

  • 内部网关协议 IGP (Interior Gateway Protocols)

    • 又称: intra-AS routing protocol自治系统内部选路协议
    • OSPF开放最短路优先
      • LS法、洪泛到整个自治系统中
      • 层次化(分为一个主干与多个区域)、主干与各个区域各自运行自己的OSPF、他们同属于一个AS
      • IS-IS路由协议类似
    • RIP
    • IGRP
  • inter-AS routing protocol自治系统间选路协议

    • BGP: 边界网关协议

      • DV法
      • AS策略: 决定是否接收通告、是否向外通告(可以选择不通告eBGP,省流量、不会被转发)
      • eBGP:从相邻自治系统(AS)获取子网可达性信息、数据报包含自己以及背后所有AS
      • iBGP:给自治系统(AS)内部的所有路由器传播可达信息
      • eBGP基于TCP, iBGP基于逻辑电路(实际要靠OSPF送达)
    • BGP路由选择

      • 热土豆路由选择: 择域内开销最小的本地网关、不要担心域间开销
      • 最短AS-PATH: 域间开销

其他

  • ICMP: 因特网控制报文协议
    • 控制路由器如何响应与报错的协议
    • traceroute: 客户的应用层连续发送n次TTL=i的UDP报文段、超时时回传当前路由器名,报文主机但可达端口不可达、到达目的主机回传特殊报文
  • SNMP: 网络管理

链路层

基本概念

  • 在相邻节点传递帧
  • 特性: 可靠、流量控制、差错检验、差错纠正、访问控制
  • 链路层协议在适配器(网卡)上实现

差错检测

  • 奇偶校验
    • 偶校验: 在每行前加0/1,使得整行加起来为偶数
    • 一维检测单bit错误、二维纠正单个检测2个
  • 检验和: 把报文段的内容相加 ,并按位取反,接收方求和计算是否为全1 (进位不用加回来?)
  • 循环冗余检测 (CRC)
    • D ? 2 r D\cdot 2^r D?2r 除以 G G G, 余数为 R R R(其中减法用异或替代)
    • 能检测小于r+1比特的错误、无法纠正

多路访问

  • 时隙ALOHA:
    • 假设: 每个帧一样长、节点是在时隙开始时同步发送的
    • 算法: 拿到就发、如果碰撞以后每个时隙以概率p
    • 特性: 发碰撞多、需要同步、有闲置
    • 效率(长期、大量节点、每个节点都有许多帧要发送的情况下,成功发送的时隙所占的比例) =1/e=0.37
  • 纯ALOHA: 不同步、 效率=1/2e=0.19
  • CSMA (载波侦听多路访问)
    • 载波侦听: 发送前先侦听、如空闲则发送、否则等待
  • CSMA/CD
    • 碰撞检测: 已经发送且发现别人在发送,提前终止
      • 载波侦听仍有碰撞(因为有传播时延)
      • 无线不好检测碰撞
    • 发生碰撞
      • 阻塞信号: 发生碰撞后发送48bit阻塞信号(确保对方能发现自己)、然后放弃
      • 随机访问: 接着随机等一段时间
      • 指数后退: 第m次碰撞将等待K*512bits,其中K在 1 1 1~ 2 m ? 1 2^m-1 2m?1之间随机选取
    • 效率:
      • $\frac{1}{1+5t_{prop}/t_{trans}} 、 、 t_{prop}$ 传输延迟时间、 t t r a n s t_{trans} ttrans?传一帧时间
      • t p r o p t_{prop} tprop?趋于零(效率趋于一): 一碰撞就立刻终止
      • t t r a n s t_{trans} ttrans?趋于无穷(效率趋于一): 一个节点传很大的数据
  • “taking turns” 协议: 介于信道划分与随机访问之间、轮询令牌等
  • CSMA/CA

ARP

  • MAC地址
    • 32 位的IP 地址、48位的MAC 地址
    • 网卡有唯一MAC地址、由生产商确定
    • IP由所在子网确定(因移动而改变)、MAC不会变
  • ARP 表
    • 功能: IP到MAC映射
    • 每个IP节点有一张ARP表,记录子网内成员信息
    • 过程
      • 同一子网: A通过IP发现B在同一子网、A广播查B、B响应回复MAC地址(无需管理员介入就能完成)
      • 不同子网: A通过IP发现B在不同子网、发送帧MAC=网关,IP=B的、路由器R有两个ARP表、根据IP在出口查表填上MAC=B

以太网

  • 内容
    • IEEE 局域网标准 802.3
    • 具有统治地位的局域网技术
    • 不可靠的无连接服务
    • 以太网的MAC协议(CSMA/CD)
    • 许多 不同的以太网标准(不同的物理层媒介)
  • 以太网帧
    • 以太网帧: 导言(10101010*7+10101011)、目的MAC地址、源MAC地址、CRC (两个MAC地址)
    • 最小帧长度: 发送最小帧所需的时间 >= 链路的最大往返时延
      • 使得CDMA/CD发挥作用的最短帧长: 两倍传输时间 × \times ×带宽
      • 最慢需要2 t p r o p t_{prop} tprop?才能发现碰撞,即你的数据已经到对方那对方才刚发

交换机

  • 特性
    • 没有MAC地址(主机意识不到他的存在)
    • 链路层设备
    • 隔离碰撞域、避免广播风暴
    • 使独享访问(CSMA/CD使仿佛独享链路)
  • 转发表(交换表)
    • MAC地址到端口
    • 路由表: IP地址到端口、ARP表: MAC到IP
    • 过程
      • 自学习: 收到帧、记录其MAC地址并保存在交换表 (没有主动查询只是被动记录与ARP表不同)
      • 转发: 不在表里(其他端口广播转发)、在表中不同端口(单独发往那个端口)
      • 过滤: 在表中同端口(丢弃) -> 隔离碰撞域
      • A通过IP发到C,需要先用ARP查C的MAC、此时A的MAC会被广播但C不会(回传已经知道路径)

局域网

  • 子网=局域网=二层可达(不用经过路由器就能互相访问)、

    网段=碰撞域=一层可达(不用经过交换机就能互相访问)

  • VLAN虚拟局域网

    • 使单个物理交换机=多个虚拟交换机
    • 流量隔离、成员动态调整
    • 通过路由实现两台VLAN交互
    • trunk端口: 连接不同物理交换机

其他

  • MPLS

    • 根据MAC、IP等确定转发端口
    • SDN(网络层)与MPLS功能相同、但前者较新且纯软件弹性好
  • 曼彻斯特编码(物理层): 把连续的1,0改为上升下降沿、时钟频率变两倍

  • 数据网络中心

    • 机架上有n台主机,用TOR通信、TOR间用交换机通信

综合(Web请求过程)

  • 获取IP
    • 发送DHCP discover报文,封装在UDP报文、封装进IP数据报、封装进以太网帧。广播MAC地址(全一)。在DHCP服务器逐层解封装
    • 广播回传DHCP offer报文,内容包含默认网关、DNS服务器的IP地址、IP地址网络掩码
    • 一共广播四次discover, offer, request, ack
  • DNS
    • 知道DNS服务器IP地址,但不知道MAC地址。广播ARP query、收到ARP reply,得到MAC地址存在ARP表中
    • 对DNS服务器发出DNS query,服务器回传域名的IP地址
  • HTTP
    • 与服务器建立TCP socket、三次握手TCP SYN segment、TCP SYNACK、ACK
    • HTTP request通过TCP传送,收到HTTP reply(流水线…)

无线网/移动网

概述

  • 性能
    • SNR: signal-to-noise ratio信噪比
    • BER: bit-error-rate 误码率
    • 物理层模式 (编码和调制)
  • 问题
    • 隐藏终端 A<->B, B<->C,,但AC互不可见,会在B打架
    • 暴露终端 A<->B, B<->C,C<->D,C给D发B给A发两者不打架,但以为打架
  • 码分多路访问(CDMA)
    • 每个用户有自己的编码
    • 假设有两个用户: $数据_1\cdot编码_1+数据_2\cdot编码_2=发送数据 、 、 接收数据_1=<数据,编码_1>$ (其中<>代表内积)
    • R = x A + y B + z C R=xA+yB+zC R=xA+yB+zC、有$<A,R>=x<A,A>+y<A,B>+z<A,C> 、 因 此 、因此 x = <A,R>/<A,A>$

Wifi

  • IEEE 802.11 无线局域网
    • 接入点(AP): 无线主机与基站通信(关联)
    • 基本服务集(BSS)
  • 扫描
    • 被动扫描 AP发送信标帧
    • 主动扫描 主机广播探测请求帧
  • CSMA/CA
    • 隐藏终端问题、接收到的信号微弱 -> 不用CSMA/CD
    • 步骤
      • 如果侦听到信道空闲了DIFS 时间,则开始发送数据帧
      • 如果侦听到信道忙,则开始一计时器=(CW-1)
      • 计时器
        • 如果信道空闲,则计时器递减,否则冻结
        • 如果未收到ACK则倍增CW
        • 收到ACK, CW= C W m i n CW_{min} CWmin?
      • 接收方在SIFS时间后回传ACK
    • RTS/CTS机制
      • 预约: 避免了长数据帧的碰撞
      • 请求发送(RTS)、允许发送(CTS)
  • 802.11 帧格式
    • 四个地址: 接收AP的MAC、发送AP的MAC、AP所连接的路由器接口的MAC、用于ad hoc模式
    • ad hoc 点对点

蜂窝网

  • 需要无线因特网接入、但又无法访问WiFi热区时,扩展蜂窝网使支持无线网接入
  • 移动交换中心MSC、GSM全球移动通信系统

移动性

  • 名词解释
    • 归属网络: 移动节点的永久居所 (<-> 被访网络)
    • 归属代理: 当移动节点处于外部时,代表移动节点行动 (<-> 外部代理)
    • 永久地址 (<-> 转交地址)
  • 间接选路
    • 注册: 外部代理知道了移动节点、归属代理知道了外部代理
    • 步骤: 移动节点->归属网络->(截获分组,重新封装转发)->外部代理->移动节点
    • 三角选路: 收发双方在相同外部代理,低效(绕一圈通过归属网络通信)
    • 在网络之间移动IP不变(使外部网络变为透明的)
  • 直接选路
    • 通信者询问归属网络以获取外部地址
      • 克服了三角选路问题、移动时IP会改变
    • 锚外部代理: 首次被访网络中的外部代理
      • 数据总是先被路由到锚外部代理
  • 移动 IP
    • RFC 3344协议
    • 间接选路: 归属代理会发送包中包 (以改变IP)
    • 代理通告: 代理广播ICMP报文通告它的服务
    • 例子: 外部代理广播、移动节点响应、外部代理注册、归属代理响应、外部节点响应
  • 蜂窝网
    • GSM漫游
      • 如: 北京人传讯给天京人
      • 呼叫送到归属网络 -> 归属 MSC咨询HLR得到移动节点被访网络MSC -> 归属MSC建立到被访网络MSC的新呼叫 -> 被访网络MSC -> 基站 -> 移动节点
    • GSM MSC内切换
      • 新基站信号更强、负载均衡 (GSM不在乎原因)
      • 旧基站发起、新基站响应
    • GSM MSC间切换
      • 锚 MSC: 在呼叫中访问的首个MSC
      • 新MSC添加到MSC链的末端
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:49:22  更:2022-03-03 16:50:33 
 
开发: 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年11日历 -2024/11/26 8:50:31-

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