0%

计算机网络

基本概念

  • 计算机网络协议:语法,语义,时序
    • 语法:描述实体间信息交换格式
    • 语义:控制信息的具体含义
    • 时序:交换信息的顺序以及速度配合
  • 功能:硬件,软件,信息
  • 分类:覆盖范围,拓扑结构,交换方式,用户属性
    • 树形,星形拓扑:易于管理,中心节点是网络的关键,线路较多成本较高
    • 环形,总线拓扑:成本效率不高,排错,增删,不便于管理
    • 网状拓扑:节点间通信多路径选择,结构复杂成本高

      计算机网络结构

      网络边缘

      接入网络方式

  • 电话拨号
  • 数字线ADSL,使用电话的物理线路,但不同信道传输
  • 混合光纤同轴电缆HFC
  • 局域网
  • 移动接入网络(移动设备)

网络核心

  • 网络核心是交换节点和传输介质的集合,实现网络边缘中主机数据的中继与转发。
  • 网络核心(通信子网)不对数据进行处理,不提供网络服务。这些功能由网络边缘(资源子网)提供

数据交换技术

电路交换

  • 主机间建立专用的通信线路,通信结束后通道拆除
  • 实时性高,时延与时延抖动小
  • 突发性数据传输(网页浏览)中,信道利用率低,传输速率单一

电报交换

  • 无需建立连接
  • 只有报文被转发(传输数据)时才会占用信道,不会独占信道
  • 以存储-转发形式传送。交换节点需要缓冲储存,报文需要排队,增加时延

分组交换

  • 拆分报文为若干分组,在进存储转发
  • 存储设备容量要求低,速率效率高
  • 更加公平,第一个报文为全部传完,可以先开始下一个报文
  • 延迟时间,误码率

网络性能

带宽(频带宽度)

  • 单位赫兹,频率极差
  • 带宽越大,速率越大,故带宽有时候用来代替速率描述网络性能

时延

  • 数据从一节点到另一节点所需时间
  • 延迟分类:
    • 处理时延
    • 排队时延
    • 传输时延,数据传输到线路上所需时间
    • 传播时延,数据在线路上的传播时间

时延带宽积

链路上可以容纳的数据位数

丢包率

  • 网络可靠性,反映拥塞程度
  • 丢包率 = 丢失分组数/发送分组数

吞吐率

度量数据传送能力

计算机网络分层体系结构

各层次封装各自的头部信息后传递下一层次处理

  • OSI参考模型(七层)
  • TCP/IP参考模型
  • 五层模型:应用层(报文),传输层(段),网络层(数据报),链路层(帧,若干比特组织的数据处理单元),物理层(比特流)

网络应用

网络应用体系结构

  • 三种类型
    • 客户端/用户(C/S)结构,两端角色固定,且用户之间不通信
    • P2P(Peer To Peer)结构 客户端与服务端的结合体,客户端与服务端的地位只是在一次通信过程中不变
    • 混合结构 中心服务器+对等客户端直接通信
  • 网络应用基本原理
    • 本质都是CS结构
    • 服务器端被动等待请求,客户端主动发起通信请求服务
    • 应用进程遵循应用层协议

域名系统DNS

用IP地址唯一的标识通信双方,但IP不方便记忆使用。使用域名,再由系统解析为IP地址

  • 顶级域名命名方法:
    1 国家域名nTLD; [cn中国 …]
    2 通用顶级域名gTLD(组织); [com企业 net网络组织 org非营利性组织 edu教育机构 gov政府 …]
    3 基础结构域名
    三级域名一般代表企业内部的主机名,使用时由叶节点级级往上
    层次树状结构
  • 目前存在13个DNS根域名服务器,a.root-server.net为一台根域名服务器域名
  • 大部分根域服务器由多台独立物理服务器构成的服务器集群,而有的是由分布在不同位置的多台镜像服务器
  • 域名服务器
    • 建立分布式数据库储存域名,根据用户请求将域名映射为IP地址
    • 服务器分类:根域名,顶级域名,权威域名,本地域名服务器
  • 域名解析
    • 递归查询,服务器代替主机进行查询
    • 迭代查询。服务器返回下一服务器,由主机自行查询

      万维网应用

  • web服务器,发送超文本,再由浏览器解析
  • 浏览器,网页超链接,包含URL(统一资源定位符),URL包含服务器域名。
  • TCP连接(保证传输可靠性)
  • 超文本传输协议HTTP(由HTML编写)
    • 非持久连接 首次建立TCP连接,请求HTML页面,连接断开。解析页面后,需要再向服务器获取若干资源对象。
      • 串行连接:每次只向服务器请求一个对象,且每次都要重新建立TCP连接。
      • 并行连接:一次向服务器同时发送若干请求,建立若干连接
        要求对方服务器允许建立三条连接
    • 持久连接
      • 非流水方式持久连接 建立TCP,请求html,再依次请求资源,直到所有资源请求完毕再释放连接
      • 流水方式持久连接 获取html后,同时发出三个TCP连接。对服务器压力较大
    • HTTP报文 请求报文 & 响应报文
      • 典型的请求方法:GET, HEAD, POST, OPTION, PUT等。
        HTTP报文
        请求报文和响应报文
        (状态码的短语是对状态码的简单描述)
状态码
1×× 信息提示,需进一步交互
2×× 成功
3×× 重定向,资源已转移
4×× 客户端错误
5×× 服务端器错误
  • Cookie 小型文本文件,弥补了http无状态性的不足,有利于对用户进行跟踪或进行针对性服务
  • 首次访问,服务器给用户编号并设置ID,将带编号的Cookie发送回给用户
  • 用户浏览器保存该Cookie文件,并在下一次访问时一并发送给服务端
    Cookie工作原理

Internet电子邮件

  • 电子邮件系统包括邮件服务器,简单邮件传输协议(SMTP),用户代理,邮件读取协议等。
  • SMTP是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器的传输,默认端口为25。使用传输层TCP协议进行可靠信息传输
  • 应用层交互阶段:握手阶段,邮件传输阶段,关闭阶段

    SMTP协议示例
    C: telent SMTP.163.com 25 //以telenet方式连接163邮件服务器
    S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后为欢迎信息
    C: HELO SMTP.163.com //HELO发出握手请求。除此之外,HELO主要用来查询服务器支持的扩充功能
    S: 250-mail
    S: 250-AUTH LOGIN PLAIN
    S: 250 8BITMIME //最后一个响应数字应答码之后跟的是一个空格,而不是’-‘
    C: AUTH LOGIN //请求认证
    S: 334 dxNlcm5hbWU6 //服务器的响应——经过base64编码了的“Username”=
    C: Y29zdGFAYW1heGl0Lm5ldA== //发送经过BASE64编码了的用户名
    S: 334 UGFzc3dvcmQ6 //经过BASE64编码了的”Password:”=
    C: MTk4MjIxNA== //客户端发送的经过BASE64编码了的密码
    S: 235 auth successfully //认证成功
    // 进入邮件传输阶段
    C: MAIL FROM: bripengandre@163.com //发送者邮箱
    S: 250 bripengandre@163.com … Sender ok //“…”代表省略了一些可读信息
    C: RCPT TO: bripengandre@smail.hust.edu.cn //接收者邮箱
    S: 250 bripengandre@163.com … Recipient ok
    C: DATA //请求发送数据
    S: 354 Enter mail, end with “.” on a line by itself
    C: Enjoy Protocol Studing // 邮件内容
    C: .
    S: 250 Message sent
    C: QUIT //退出连接
    S: 221 Bye // closing connection

  • 电子邮件格式:首部,空白行,主体。To, Subject, Cc, From, Date, Reply-To等关键字。

  • MIME 多用途互联网邮件扩展。将非AScII转换为ASCII,再利用SMTP进行传输。邮件首部增加MIME,说明主体原本数据类型及编码标准
  • 邮件读取协议
    • 邮局协议 POP3(将邮件下载到本地操作,不会同步,下载后无需联网后)。默认端口号110
    • 互联网邮件访问协议 IMAP(直接操作邮件服务器)
    • HTTP(通过服务器网址访问)

FTP文件传输协议

互联网中实现两主机间文件传输的 应用层 协议。利用传输层TCP协议。
CS模式。但不同于其他服务,需要采用两种连接。控制连接(21端口)传输控制命令,数据连接(20端口)传输文件内容
适用于传输较大文件。使控制命令更好更快传输

P2P应用

  • 充分聚集端系统的计算能力及网络传输带宽,对服务器依赖很小
  • 可以请求对等的端系统进行数据获取。同时也可以请求服务器,各获取一部分数据在组合

Socket接口模型

网络应用进程通信通过API接口请求的底层协议的服务。根据实际使用传输层的TCP或UDP传输。
创建相应提供的接口调用不同的传输协议

  • 数据报类型Sock_dgram对应UDP服务
    • 客户端通过临时端口直接向服务器发送数据。服务器通过绑定固定端口号,无需建立连接,直接监听等待客户端数据
  • 流式套接字Sock_stream对应TCP服务
    • 服务端通过绑定固定的端口号,监听请求。客户端无需绑定端口,通过socket()临时获取端口号
    • 建立TCP连接,开始数据交互
    • 交互结束,客户端关闭接口;服务端关闭连接,最后在关闭端口
  • 原始套接字Sock_raw直接调用网络层的服务,直接构建IP包访问。不再依赖传输层的服务

传输层

传输层基本服务

核心任务是为应用进程之间提供端到端的逻辑通信服务。
网络层实现的是主机到主机的传输服务。传输层端点指的是主机中运行的应用进程。
传输层功能:传输层协议提供逻辑通信服务,只需在端系统中实现。中间的节点如路由器交换机无需实现传输层功能,提高效率
主要功能:

  • 传输层寻址
    • 通过 端口号 找到对应应用程序。在全网范围内利用 IP+端口号 唯一的标示一个通信端点(应用程序)
    • 传输层端口号为16位二进制。分为三类:
    1. 熟知端口号:1~1023。如http:80
    2. 登记端口:1024~49151。为无熟知端口号的程序使用,需要在IANA登记以防重复
    3. 客户端口号/短暂端口号:49152~65535。用于临时申请分配按使用。不固定。
  • 应用层报文的分段和寻址
  • 报文的差错检测
  • 进程间端到端的可靠数据传输控制(是否收到)
  • 面向应用层的复用和分解
  • 端到端的流量控制
  • 拥塞控制
  • 无连接服务UDP:数据交互之前无需对端进行任何信息交换(握手),直接构造传输层报文段并向接收端发送
  • 面向连接的服务TCP:传输前双方交换控制信息,建立逻辑连接,在传输数据,最后拆除连接

传输层的复用与分解

支持众多进程使用通过同一协议进行传输

  • 多路复用:从每个应用中获取是数据进行封装发送
  • 多路分解:从数据中通过端口号分各个应用

无连接的多路复用与多路分解

  • UDP套接字:<目的IP, 目的端口号>
  • 端口号是UDP实现多路复用的重要依据

面向连接的多路复用与多路分解

  • TCP套接字标示一条TCP连接:<源IP, 源端口,目的IP, 目的端口号>
  • 一段TCP报文到达主机时,根据此将报文分解到相应套接字(同一连接)

停-等协议与滑动窗口协议

实现可靠传输的措施:

  1. 差错检测:利用差错编码实现数据包检测
  2. 确认:向发送方反馈接受状态
  3. 重传
  4. 序号:确保数据按序提交
  5. 计时器:解决数据丢失问题

停等协议

每发送一个报文后就停下等待接收方确认

  • 发送经过差错编码与编号的报文段
  • 确认接收则发送ACK,否则丢弃报文发送NCK
  • 根据反馈状态选择重发或者继续

滑动窗口协议

性能问题:停等机制降低信道利用率。
解决方案:流水线协议/管道协议:允许发送方在未收到确认前不断发送多个(后续)分组。
继续改进:增加分组序号范围;发,收方必须可以缓存多个分组(对未收到确认的数据进行缓存)
两种有代表性的滑动窗口协议:

  • 回退N步协议(Go-Back-N, GBN):接收窗口大小为1,只接收1个按按序到达的分组。出错分组以后的全部丢弃重传
  • 选择重传协议(Selective RePeat, SR):接收窗口>1,缓存正确但失序的分组

用户数据报协议 UDP

UDP数据报结构

  • 源和目的端口号:用于UDP复用分解
  • 长度字段:UDP报文段中的字节数
  • 校验和:接收方检测报文段是否出错
    校验和计算
    1. 对所有参加运算的内容按16位对齐求和
    2. 求和过程中遇到溢出(进位)都会被回卷(进位与和的最低位再加)
    3. 得到的和取反码

传输控制协议 TCP

TCP报文首部结构

  • 源与目的端口号
  • 序号 标示该报文在整个分组中的序号
  • 确认号 反馈某分组发送状态
  • 数据偏移 同序号的报文再拆分后的数据位置
  • URG,标示紧急指针位是否有效
  • ACK 确认位,标示确认号是否有效
  • PSH 通知可以很快对数据进行提交
  • RST 复位,出现错误,需要重置连接
  • SYN 同步请求,协商序号等信息
  • FIN 通知拆除连接
  • 窗口 流量控制,窗口大小可有双方控制
  • 校验和
    // 以上为 TCP的固定首部,20字节
  • 选项
  • 填充 首部大小需为4字节的倍数
    TCP报文结构

TCP连接

TCP传输机制包括差错编码,确认,序号,重传,计时器(实现重传)等
TCP的可靠数据传输基于滑动窗口协议,发送窗口动态变化(流量控制)

连接建立-三次握手
  1. SYN连接请求 syn = 1, seq = x(同步请求,且初始序号为x)【客户端状态为SYN-SENT】
  2. SYNACK确认 syn = 1, ACK = 1, seq = y, ack = x+1(x已收到请求x+1,告知服务端初始序号)【服务端状态SYN-RVD】
  3. ACK确认 ACK = 1, seq = x+1, ack = y+1
    TCP三次握手
    TCP断开-四次挥手
  4. 任意一方发起断开请求 FIN = 1, seq = u
  5. 返回确认 ACK = 1, seq = v, ack = u+1。请求方停止发送数据。另一方继续发送数据。
  6. 发送请求释放连接 FIN = 1, ACK = 1, seq = w, ack = u+1
  7. 接收方返回确认 ACK = 1, seq = u+1, ack = w+1。接收端接收到以后关闭连接,发送端进入TIME-WAIT阶段,一段时间后关闭连接
  • 封装TCP报文段
  • 发出一个报文段后启动一个计时器
  • 校验和发现数据差错
  • 重排序,丢弃重复
  • 流量控制
TCP流量控制
  • TCP利用窗口机制实现流量控制,但不是简单的滑动窗口协议(窗口动态变换)
  • TCP连接建立时双方分配固定大小的缓冲空间,发送数据必须在缓冲区接纳的大小
    • 接收端给发送方发送确认时通知接收窗口大小
    • 发送端发送数据时,保证未确认段应用层数据不超过接收端窗口大小,使对方窗口不会产生溢出
TCP拥塞控制
  • 窗口机制 通过调节窗口大小实现发送速率调节
  • 窗口调节基本策略 AIMD
    • 加性增加 网络未拥堵,逐渐增加
    • 乘性减小 网络拥堵,逐渐减小
  • TCP拥塞控制算法
    • 慢启动
    • 拥塞避免
    • 快速重传
    • 快速恢复

网络层

传输层主要保证数据传输的可靠性,网络层负责数据的转发和发送
网络层的主要作用是将网络数据报从源主机发送到目标主机
主要功能:

  • 分组转发:分组从传输接口转移到输出接口
  • 路由选择:决定分组经过的路由或路径

    路由器内部结构

  • 路由选择处理机:路由选择协议 ->路由表(记录下一跳的路由器)
  • 输入端口进来的数据通过 转发表 记录的输出端口
  • 通过路由表记录成转发表

数据报网络

按照目的主机的地址进行路由选择的网络(本质上不可靠,但效率与成本好。互联网依赖此技术建立)

  • 无连接
  • 每个分组作为独立的数据报进行选路传输,路径可能不同
  • 分组可能出现乱序与丢失

虚电路网络

在网络层提供的面向连接的分组交换服务
互联网的数据报方式不可靠,所以需要在此之上建立面向连接的传输层来确保传输可靠性。

  • 建立一条网络层的逻辑连接
  • 不需要为每条虚电路分配独享资源(区别与电路交换,信道利用率较高)
  • 沿虚电路路径按序发送分组
    异步传输模式的网络即采用此网络,成本较高但是传输较可靠

网络互连

异构网络互连

两个网络使用的技术与协议不同

  • 协议转换
  • 构建虚拟互联网络 使用IP协议作为这些网络技术和协议的下层协议,使用IP协议进行传输。在IP层次构建了虚拟网络

    网络设备–路由器

  • 输入输出端口 不同的网络技术有不同的端口
    // 输入端口
    1. 线路接收分组
    2. 物理层处理(处理不同网络技术)
    3. 数据链路层处理(提取其中网络层的IP数据)
    4. 网络层处理分组排队(查表转发输出,通过交换结构进入输出端口)
      // 输出端口
    5. 网络层排队,缓存管理,每次取出一个数据
    6. 数据链路层处理(处理为不同技术)
    7. 物理层处理,发送到线路
  • 交换结构设计
    • 基于内存交换
    • 基于总线交换
    • 基于网络交换(节点开关)
      路由器交换结构
  • 路由处理器
    执行路由器各种指令,包括路由协议运行,路由计算,路由表的更新维护等

网络层拥塞控制

拥塞:持续过载的网络状态,用户对网络资源的需求(链路带宽,存储空间,处理能力)总需求超过固有容量

  • 缓冲区容量有限
  • 带宽有限
  • 结点处理能力有限
  • 发生故障

    流量感知路由

    根据负载状态动态调整,将网络流量引导到不同链路上,均衡负载,从而延缓或避免拥塞发生
    解决网络负载的震荡现象
  • 多路径路由
  • 缓慢转移流量至另一链路

    准入控制

    主要应用于虚电路网络。对新建虚电路进行审核,若该电路会导致拥塞则拒绝建立。
    拥塞状态的量化:基于平均流量与瞬时流量

    流量调节

  1. 感知拥塞
  2. 处理拥塞:将拥塞信息通知到其上游结点
    处理方法:
    • 抑制分组:给拥塞数据报源主机返回一个抑制分组(减少发送)
    • 背压:让抑制分组从拥塞结点到源结点的路径上的每一跳都发挥抑制作用

      负载脱落

      主动丢弃某些数据报
  • 丢弃新分组:如GBN
  • 丢弃老分组:如实时视频流

Internet网络层

IPv4协议

数据报格式

  • IP首部分装了来自传输层的数据
  • IP首部固定部分20字节
  • 版本:IPv4/IPv6
  • 首部长度 固定+可变
  • 区分服务 区分不同服务质量
  • 总长度 IP包总长度
  • 标示 识别IP包。判断分片是否属于同一字段
  • 标志 识别IP包是否被分割。判断是否为最后分片
  • 片偏移 判断分片先后顺序
  • 生存时间 多次转发仍未抵达目的地,生存时间过长丢弃
  • 协议 标示数据部分使用的协议
  • 检验和 差错
  • 源,目的地址 发送与接收 数据的主机的IP地址。分别占4字节

IP数据报格式

IPv4编址

IP地址

32位的二进制 点分十进制标记法 8位一组点分标
网络号(同一网络下的主机具有相同的网络号) + 主机号
分类地址:A, B, C, D, E
特殊地址,私有地址
ABC:实际分配给联网的主机,没有重复的唯一地址
D:组播/多播地址。高四位为1110
E:保留使用。高四位为1111
A:前8位为网络号。最高位为0 0~127 主机数量:2^24-2
B:前16位为网络号。高二位为10 主机数量:2^16-2
C:前24位为网络号。高三位为110 主机数量:2^8-2
ABC网络规模不同

子网划分

将一个子网划分为多个子网
大子网具有较短网络前缀。小子具有稍长前缀

  • 超网:子网合并为大网
  • 子网掩码:定义调节一个子网的网络前缀长度,用于划分子网。前部全为1,即为网络前缀,后部全为0
  • IP ^ Mask = Subnet IP地址与子网掩码进行与运算得到子网地址
  • 同一子网中,网络前缀部分相同,后面为主机号不同,最小主机号代表子网地址,最大主机号代表直接广播地址
  • 后8为的前缀部分即为子网号,可作为连续标示
  • 除去子网地址与广播地址,剩余即为可分配的主机数
  • 子网掩码延长r位该子网划分为2^r 个子网
    子网划分
路由聚合

将相同路由的连续子网合并
路由表中的分组转发:查找转发表(与运算匹配),最长前缀优先匹配
IP地址与分组表子网掩码坐与运算,所得是否匹配,再根据最长前缀进行选择

动态主机配置协议

网络地址转换

网络地址转换 NAT协议 –使用私有地址访问互联网
大量地址在互联网上不分配不使用只在内部使用,但保留地址在互联网上无法使用

  • 源IP地址由Nat路由器替换为Nat拥有的合法使用的公共IP地址,同时替换端口号,并将替换关系记录到Nat转换表中
  • 从互联网返回的IP数据报,依据其目的地址与目的端口号检索Nat转换表,获取内部ip与端口
    同时起到隐藏实际IP地址,只公开公共地址的效果

路由算法


链路层

传输层负责应用层的复用分用保证可靠传输,网络层负责将数据从主机传到主机
链路层负责把一个节点可靠的传输到另一个节点,为网络层提供服务

数据链路服务

负责直接相邻节点的传输
链路层数据单元:帧
网络层将数据报封装交给链路层,链路层将数据添加帧头帧尾,构造数据帧

  • 组帧
  • 链路接入:点对点链路,广播链路(一条链路上有多个节点)
  • 可靠交付(用于高出错链路)
  • 差错控制

多路访问控制协议

ALOHA协议

纯ALOHA协议(Pure ALOHA):直接发送 ->信道侦听(反馈确认) ->冲突重发
时隙ALOHA协议(Sloated ALOHA):发送时间分为时隙,时隙开始时发送 ->信道侦听 ->冲突则下一时隙以概率P重发

载波监听多路访问协议CSMA

发送前监听信道是否空闲

  1. 非坚持CSMA:忙则等待随机时间发送后在侦听
  2. 1-坚持CSMA:忙则持续侦听直到信道空闲
  3. P-坚持CSMA:闲则概率P在最近时隙发送(避免同时侦听冲突)

    带冲突检测的载波监听多路访问CSMA/CD

    监听空闲后发送,发送时检测碰撞,碰撞后等待重发

局域网

链路层寻址与ARP

局域网广播通信,使用Mac地址进行标示通信。

MAC地址/硬件地址

每个接口对应一个MAC地址,全球唯一。
路由器接口,网卡接口,交换机接口
长度48位,十六进制, 前24为厂商标示, 厂商分配代码

地址解析协议ARP

根据本网内目的主机或默认网关的IP地址获取其MAC地址
查询/响应方式
所以ARP只为在同一只子网下的主机和路由器解析IP


完结 撒花 ฅ>ω<*ฅ