avatar

目录
计算机网络基础

计算机网络基础

第一章 计算机网络和因特网

1.协议的三要素:

  • 语法
  • 语义
  • 同步

2.网络结构

  • 网络边缘
  • 接入网络、物理介质
  • 网络核心

3.端系统模型

  • 客户/服务器模型
  • 端对端模型
    • bt下载 迅雷
    • 区块链

4.接入网络

4.1带宽

1.带宽表示单位时间内(一般以”秒”为单位)传输数据容量的大小,表示吞吐数据的能力。所以我们一般也将”带宽”成为”数据传输率”

2.单位

(1)以字节为单位:Bps,KBps,MBps等

(2)以比特为单位:bps,Kbps,Mbps等

换算:

1B/s = 8b/s(bps)

1KB/s = 8Kb/s

1MB/s = 8Mb/s

平时用bps比较多。

4.2 数字用户线路(DSL)

1.用已有的电话线路

(1)DSL承载的数据进入Internet

(2)DSL承载的语音进入电话交换网

2.速率

(1)上行速率<2.5Mbp

(2)下行速率<24 Mbp

3.ADSL:非对称数字用户线路

主要是下载,对上传的需求不高。

4.3 电缆接入网络

1.使用有线电视网接入Internet

2.HFC:混合光纤同轴电缆

4.4 光纤到户

1.把光纤直接拉到家里

2.ONT:光纤网络端接器(家庭端)

OLT:光纤网络端接器(电信公司端)

4.5 接入网络

  • 家庭网络(家庭路由器)
  • 企业接入网络(LAN)
  • WI-FI无线接入网络
  • 广域无线接入网络(3G、4G、5G)

4.6 物理介质

1.物理链路:传播位(bit)信号

2.分类:

  • 导引型媒体
    • 双绞线
    • 同轴电缆
    • 光纤线缆:
      • 单模光纤
      • 多模光纤
  • 非导引型媒体(无限电磁波)
    • 地面微波
    • 局域无限通道(WI-FI)
    • 广域无限通道(cellular,也就是3G、4G)
    • 卫星通信

5.网络核心

5.1 基本原理

1.电路交换

2.分组交换

5.2 电路交换

1.网络资源(如带宽)被分片,称为多路复用

2.分片方式

  • 频分 FDM
  • 时分 TDM

5.3 分组交换

1.统计复用

2.特点

  • 资源竞争
  • 拥塞
  • 存储转发:分组每次转发1站

3.分类

  • 数据报网络
  • 虚电路网络

5.4 ISP的结构组成

1.互联网服务提供商:ISP

  1. (1)第一层ISP

(2)第二层ISP

(3)本地ISP

6.分组交换网络中的延迟、丢失和吞吐量

####6.1 分组延迟的四种类型

1.处理时延

检查错误位

选择输出链路

2.排队时延

等待时间

拥塞程度

3.传输时延

R = 链路带宽(管子直径

L = 分组长度

发送分组比特流的时间 = L/R

4.传播时延

d = 物理链路的长度

s = 介质的信号传播速度(管子直径造成的水流速度

传播时延 = d/s

6.2 总的节点时延

d(nodal)= d(proc)+ d(queue)+ d(trans)+ d(prop)

6.3 排队时延的进一步解释

R = 链路带宽

L = 分组长度

a = 平局分组到达率

流量强度 traffic intensity = La/R

  • La/R ~ 0

    ​ 平均排队时延极小接近于0

  • La/R -> 1

    ​ 排队时延大幅增大

  • La/R > 1

    ​ 排队时延趋于无穷大

6.4 概念

1.分组丢失->丢包率

2.吞吐量:单位时间内整个网络传输数据的速率或分组数(bps)

  • 瞬时吞吐量

  • 平均吞吐量

    min{Rs,Rc}

7.协议层及其服务模型

7.1 ISO/OSI七层参考模型

| 层号 | 层的名称 | | —- | ———- | | 7 | 应用层 | | 6 | 表示层 | | 5 | 会话层 | | 4 | 传输层 | | 3 | 网络层 | | 2 | 数据链路层 | | 1 | 物理层 |

7.2 TCP/IP参考模型

| TCP/IP参考模型1 | TCP/IP参考模型2 | | ————— | ————— | | 应用层 | 应用层 | | 传输层 | 传输层 | | 网络层 | 网络层 | | 网络接口层 | 数据链路层 | | | 物理层 |

7.3 协议分层与数据

1.各层发方从上层到下层,收方 从下层到上层传递数据。

2.发方添加头部信息创建新的数据单元,收方去掉头部。

3.传递新的数据单元到上层/下层

4.各层传送不同的协议数据单元PDU

8. 网络安全概述

8.1 攻击威胁下的网络

1.网络安全问题产生的原因

  • 网络的开放性
  • 软硬件/协议设计者的局限
  • 时代和技术的发展

2.攻击方式

  • 被动攻击
  • 主动攻击

8.2 网络安全的重要属性

1.机密性

2.真实性

3.完整性

4.可用性

5.不可否认性

第二章 应用层

1.网络应用程序体系结构

1.1 客户机/服务器体系结构

  • 服务器
    • 总是打开的
    • 具有固定的、众所周知的IP地址
  • 客户机
    • 可以拥有动态IP地址
    • 客户机相互之间不直接通信

1.2 P2P体系结构

  • 没有总是打开的服务器
  • 任意一对主机直接相互通信
  • 对等方间歇连接并且可以改变IP地址
  • 优缺点
    • 优点:自扩展性
    • 缺点:难以管理

1.3 客户机/服务器和P2P混合的体系结构

举例:

  • Napster
  • 即时讯息(QQ、Wechat)

2.进程通信

2.1 通信方式

(1)同一主机上的两个进程通过内部进程通信机制进行通信

(2)不同主机上的进程通过交换报文相互通信

2.2 命名

(1)客户进程:发起通信的进程

(2)服务器进程:等待联系的进程

注意:具有P2P体系结构的应用程序既有客户进程又有服务器进程。

2.3 进程与计算机网络的接口-套接字

(1)套接字又叫做应用程序编程接口API

(2)应用层的进程相关的工作由开发者控制,而套接字以下的工作是由操作系统来完成的。

2.4 进程寻址

(1)主机有唯一的32位IP地址

(2)主机上的进程标识包括IP地址和端口号(因为一台主机上有很多个进程

(3)常用应用程序的端口号

  • Web服务:80
  • 邮件服务:25

2.5 应用层协议

(1)组成

  • 报文类型
  • 报文类型的语法
  • 字段的语义
  • 进程何时、如何发送报文及对报文进行响应

(2)分类

  • 公共领域协议
  • 专用协议

2.6 应用需要的服务

1.数据丢失率

2.带宽和吞吐量

3.安全

4.定时

2.7 因特网传输协议提供的服务

1.TCP服务

  • 面向连接的服务(发送方和接收方都已经准备好了才开始通信
  • 可靠的传输服务
  • 流量控制
  • 拥塞控制
  • 没有提供时延保证和最小带宽保证

2.UDP服务

  • 无连接的服务(发送方在开始通信前不去询问接收方是否已经准备好
  • 不可靠数据传输

2.8 安全TCP

1.SSL(Sucurity Socket Layer)

  • 提供加密的TCP连接
  • 保证数据完整性
  • 端点认证
  • SSL提供套接字API

3.HTTP概况

3.1 概述

(1)HTTP:超文本传输协议

(2)Web的应用层协议

(3)C/S模式

3.2 Web和HTTP

(1)网页由许多对象组成

(2)对象就是文件

(3)多数网页由单个基本HTML文件和若干个所引用的对象构成

(4)URL:协议+主机名+路径名

(5)HTTP是无状态协议

  • HTTP服务器不维护客户先前的状态信息
  • 维护状态的协议非常复杂

4.非持久连接和持久连接

4.1 非持久HTTP连接

(1)每个TCP连接上只传送一个对象,下载多个对象需要建立多个TCP连接

(2)HTTP/1.0使用非持久HTTP连接

4.2 持久HTTP连接

(1)一个TCP连接上可以传送多个对象

(2)HTTP/1.1默认使用持久HTTP连接

(3)分类

  • 不带流水线的持久HTTP连接
    • 客户先前响应消息收到,才发出新的消息请求
    • 每个引用对象经历一个RTT
  • 带流水线的持久HTTP连接
    • HTTP/1.1默认使用
    • 客户遇到1一个引用对象就发送请求对象
    • 所有引用对象只经历一个RTT

4.3 响应时间模型

(1)定义往返时间RTT

  • 一个小分组从客户主机到服务器再到客户主机所花费的时间
  • 一个RTT用于建立TCP连接
  • 一个RTT用于HTTP请求/响应消息的交互
  • HTML文件传输时间:total = 2RTT + transmit time

5.HTTP报文格式

5.1 请求报文

(1)都是ASCII文本

(2)

请求行

头部行

回车换行(指示结束)

(3)

请求行 :方法 sp URI sp 版本 cr lf

首部行: 首部字段名 sp 值 cr lf

​ 首部字段名 sp 值 cr lf

​ 首部字段名 sp 值 cr lf

空行:cr lf

实体主体

(4)请求方法类型

  • HTTP/1.0
    • GET
    • POST
    • HEAD
  • HTTP/1.1
    • GET,POST,HEAD
    • PUT
    • DELETE

(5)上载表单(各字段)输入值

  • POST方法
    • 网页时常包含表单输入
    • 输入值在请求报文的实体主体中被上载到服务器
  • URL方法
    • 使用GET方法
    • 表单(各字段)输入值被上载,以URL请求行的字段

5.2 响应报文

(1)同样是ASCII码

(2)

状态行

首部行

回车换行

数据

(3)HTTP响应的状态码

  • 200 OK
  • 301 Moved Permanenly
  • 400 Bad Request
  • 404 Not Found
  • 500 Internal Server Error

6.用户与服务器交互:Cookies

6.1 目的

提高用户和服务器的交互性

6.2 跟踪用户

(1)李四的栗子

cookies(李四)

(2)cookies的4个重要方面

  • Cookie头部行在HTTP响应消息中
  • Cookie头部行在HTTP请求消息中
  • Cookie文件保存在用户主机中并被用户浏览器管理
  • Cookie也保存在Web站点的后端数据库

(3)好处

  • 身份认证
  • 虚拟购物车
  • 推荐广告
  • 用户会话状态

(4)Cookies和隐私

  • cookies允许网站更加了解你
  • 你可以提供名字和E-mail给网站
  • 广告公司通过网站获得信息
  • cookie不适合游动用户

7. Web缓存(代理服务器)

7.1原理

(1)流程

Web缓存器

(2)缓存器既是服务器又是客户机

7.2 好处

  • 减少客户机请求的响应时间
  • 减少内部网络与接入链路上的通信量
  • 能从整体上大大降低因特网上的Web流量

7.3 缓存器举例

  • 增加接入链路的带宽(成本高昂
  • 安装缓存服务器

7.4 条件GET方法

  • 目的:证实缓存器中的对象是否为最新
  • 验证
    • 缓存器:在请求报文中包含对象最后修改时间
    • 服务器:如果对象是最新的,则响应报文中不包含对象
  • 图示

条件Get方法

8. 文件传输协议 FTP

(1)client/server模式

(2)

控制连接端口号是21

数据连接端口号是20

(3)流程

(4)带外(HTTP是带内)

(5)无状态(HTTP是有状态)

(6)常见命令

(7)常见应答

(8)数据连接建立模式

  • 主动模式(服务器去找客户端)
  • 被动模式(客户端去找服务器)

(9)数据传输的模式

  • ASCII模式
  • 二进制模式

9. SMTP协议

用于电子邮件

####9.1 三个主要组成部分

  • 用户代理
  • 邮件协议
  • 邮件服务器

9.2 用户代理

  • 允许用户阅读、回复、转发、保存、编辑邮件消息
  • 发送/接收邮件消息到/从服务器
  • 运行邮件协议

9.3 邮件服务器

  • 邮箱存放用户接收的邮件消息
  • 外出报文队列
  • 运行邮件协议

9.4 邮件协议

  • 邮件发送协议SMTP
    • 服务器端口号:25
    • 直接传送:发送服务器直接到接收服务器
    • 握手->传输邮件消息->结束
    • 命令和应答都是ASCII码
    • 邮件消息必须是7-bit ASCII
  • 邮件接收协议
  • 与HTTP的比较
    • HTTP是拉协议,SMTP是推协议
    • 都有ASCII命令/应答交互,状态码

10.邮件报文格式和MIME

10.1 邮件消息的格式

  • 信头-头部行
    • TO
    • FROM
    • Subject
  • 空行
  • 信体

10.2 多媒体扩展MIME

(1)多用途因特网邮件扩展

(2)还可以发音频、文件等

(3)通过添加额外的头部行来实现

  • mine版本
  • 同来编码数据的方法
  • 类型名,子类型名,参数声明

10.3 示例:使用SMTP发送带头部的电子邮件

11.邮件访问协议

  • POP协议
  • IMAP
  • HTTP

11.1POP3协议

  • 授权
    • 客户端命令
      • user username
      • pass password
    • 服务器响应
      • +OK
      • -ERR
  • 事务处理
    • 客户端命令
      • list
      • retr
      • dele
      • quit
  • 更新POP3

11.2 POP3和IMAP

POP3:

  • POP3的会话是无状态的
  • “Download and keep”

IMAP:

  • 保存所有邮件消息在一个位置:服务器
  • 允许用户在服务器的各文件夹中管理邮件消息
  • IMAP维护用户会话的状态信息

12.DNS体系介绍

DNS:域名系统

IP地址:数字

主机名:用于人记忆方便

要在IP地址与主机名之间进行转换

12.1 DNS服务器的功能

  • 主机名到IP地址的转换
  • 主机别名
  • 邮件服务器别名
  • 负载分配

12.2 DNS特点

  • 分布式数据库
  • 应用层协议

12.3 体系结构

  • 根域名服务器
  • 顶级域名服务器
    • com, org,net,edu
    • uk,fr,jp,cn
  • 权威域名服务器
  • 本地DNS服务器(严格来说不属于体系结构中的)

13.DNS工作机理

  • 递归查询
    • 根域名服务器负担较重

递归查询

  • 迭代查询

迭代查询

13.1 DNS缓存和权威DNS记录更新

  • 一旦名字服务器获得DNS映射,它将缓存该映射到局部内存
  • TTL后才丢弃
  • 缓存的条目可能已经过期

13.2 DNS记录

DNS:存储资源记录(RR,Resource Records)的分布式数据库

RR格式:(name,value,type,TTL)

  • Type = A
    • name = 主机名
    • value = IP地址
  • Type = CNAME
    • name = 主机别名
    • value = 真实的规范主机名
  • Type = NS(name server)
    • name = 域名
    • value = 该域权威名字服务器的主机名
  • Type = MX(mail exchange)
    • name = 邮件服务器的主机别名
    • value = 邮件服务器的真实规范主机名

13.3 DNS协议,消息

  • DNS协议的报文格式(发送协议和接收协议格式一样)
  • 格式

DNS协议

13.4 在DNS数据库中插入记录

  • NS
  • A(网站)

13.5 DNS安全问题

  • DDos
  • DNS amplification attacks
  • 个人用户安全问题

14. P2P应用(了解即可)

14.1 分类

  • 纯P2P架构
  • 集中式目录架构

14.2 P2P技术

  • 查询洪泛
  • KaZaA
  • P2P文件分发-BitTorrent
    • 追踪器tracker
    • 请求文件块
    • 发送文件块:tit-for-tat(一报还一报)
  • DHT:一个分布式的P2P数据库
    • 键值对
    • 一个对等方利用key来查询DHT,返回匹配的value
    • 对等方还可以插入(key,value)对
    • 如何分配键值对给对等方?
      • 把每个key转化成一个整数
      • 把每个对等方分配一个整数标识符
      • 把键值对分配给离key最近的那个对等方
        • 标识符由n比特构成
        • 需要每个key也在同样的范围内
        • key = hash(”Led Zeppelin IV”)
        • 直接后继
    • 查询复杂度是O(n)
  • 带捷径的环形DHT
    • 查询复杂度是O(log N)

15. TCP和UDP套接字编程

  • socket API
    • TCP编程
    • UDP编程

第三章 运输层

1. 传输层服务

在两个不同的主机上运行的应用程序之间提供逻辑通信

####1.1传输层协议运行在端系统

  • 发送方:将应用程序报文分成数据段传递给网络层
  • 接收方:将数据段重新组装成报文传递给应用层

1.2 Internet传输层协议

  • TCP
  • UDP

1.3 传输层和网络层

  • 网络层:两个主机之间的逻辑通信
  • 传输层:两个进程之间的逻辑通信

2. 多路复用和多路分解

(1)多路复用与多路分解

(2)

  • 在接收主机多路分解
  • 在发送主机多路复用

2.1 无连接多路分解

  • 用端口号创建套接字
    • UDP 套接字由两个因素指定:目的IP地址, 目的端口号
  • 当主机收到UDP数据段
    • 检查数据段中的目的端口号
    • 用端口号指示UDP数据段属于哪个套接字
  • 具有不同的源IP地址且/或源端口号,但具有相同的目的IP地址和目的端口号的IP数据报指向同样的套接字

2.2 面向连接的多路分解

(1)TCP套接字由4部分指定

  • 源IP地址
  • 源端口号
  • 目的IP地址
  • 目的端口号

接收主机使用所有四个值将数据段定位到合适的套接字

(2)非持久HTTP将对每个请求有一个不同的套接字

3. 无连接传输:UDP

3.1 特点

  • 无修饰
  • 不加渲染
  • 尽最大努力
  • 无连接(没有握手)

3.2 优点

  • 无连接:发送数据之前不需要建立连接

  • 尽最大努力:不保证可靠交付,也不使用拥塞控制(很符合多媒体通信的要求)

  • 支持一对一、一对多、多对一、多对多的交互通信

  • 首部开销小,只有8个字节

  • 面向报文

    • 发送发UDP对应用程序交下来的报文,在添加首部后就向下交付IP层
    • UDP对应用层发下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
    • 应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文
    • 接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。

    UDP

3.3 用户数据报UDP的格式

(1)用户数据报

  • 数据字段
  • 首部字段

(2)首部字段

源端口 目的端口 长度 检验和

(2bit)(2bit)(2bit)(2bit)

3.4 校验和

(1)在计算校验和时,临时把伪首部和UDP用户数据报连接在一起。伪首部仅仅是为了计算校验和。

![屏幕快照 2019-06-18 下午3.26.03](/Users/chenxiaoyu/Desktop/计网复习/PPT里的图片/屏幕快照 2019-06-18 下午3.26.03.png)

(2)差错检测流程图

差错检验

(3)算法

  • 发送方
    • 将数据段看成16bit的整数序列,校验和:数据段内容相加(1的补码和),发送者将校验值放入UDP的校验和域
  • 接收方
    • 计算接收到数据段的校验和,检查计算的校验和是否等于校验和域中的值
    • 但是可能是错误的

(4)例子![屏幕快照 2019-06-18 下午3.28.36](/Users/chenxiaoyu/Desktop/计网复习/PPT里的图片/屏幕快照 2019-06-18 下午3.28.36.png)

求和->回卷->变反->得到校验和

通过校验和来检测差错

4. 可靠数据传输原理

  • 首部字段Rdt1.0
    • 在完美可靠的信道上
    • 发送方、接收方分离的FSMs
  • Rdt2.0
    • 具有bit错误的信道
      • ACKs
      • NAKs
    • 新机制
      • 差错检测
      • 接收方反馈
    • 停-等协议
    • 致命缺陷——发送方并不知道接收方发生了什么
      • 发送方给每个分组加一个序号
      • 在ACK/NAK混淆时发送方重发当前分组
      • 接收方丢弃重复的分组(并不向上传递)
  • Rdt2.1
    • 加入序列号
    • 状态加倍
  • Rdt2.2
    • 不要NAK
    • 发送方收到重复ACK将导致和NAK一样的处理
  • Rdt3.0
    • 具有出错和丢失
    • 加入定时器
    • 能工作但是性能很差(因为停等协议)
  • 流水线技术
    • 发送方允许发送多个”在路上的”,还没有确认的报文
    • 序号数目的范围必须增加
    • 在发送方/接收方必须有缓冲区
    • 增加了利用率
    • 两个通用模式
      • go-Back-N
      • 选择重传

5. 面向连接传输:TCP

6. 拥塞控制原理

7. TCP拥塞控制

第四章 网络层

4.1 引言

1.网络层提供的功能

  • 发送方主机传输报文段到接收方主机
  • 发送方主机封装报文段为数据报
  • 接收方主机递交报文段给传输层
  • 在每个主机、路由器上都需要运行网络层协议
  • 路由器会检查通过它的所有IP数据报的头部字段,然后根据目的IP地址对数据报进行转发

2.主要功能

  • 转发:将分组从路由器的输入端口转移到正确的路由器输出端口
  • 路由:确定分组从发送方传输到接收方(目的主机)所经过的路径(或路由)

路由是全局概念,转发是局部的。

3.连接建立

4.网络层的服务模型

(1)网络层可能提供的服务

  • 确保交付:确保分组到达目的地。
  • 具有时延上界的确保交付:主机到主机的时延。
  • 有序分组交付:按发送顺序到达。
  • 确保最小带宽:当发送主机以低于特定比特率的速率发送比特,分组不会丢失,在一定时延到达。
  • 确保最大时延抖动:发送方发送两个连续分组的时间间隔与接收到的间隔相同。

(2)因特网的网络层提供的服务

  • 单一服务,即尽力而为服务(best-effort service) 。
  • 分组间的定时不能被保证;
  • 分组的接收顺序与发送顺序不一定相同;
  • 传送的分组不能保证最终交付,即网络可能未向目的地交付分组。

4.2 虚电路和数据报网络

1.概述

  • 数据报——无连接服务
  • 虚电路——连接服务

只提供两种服务之一,不会同时提供。

  • 传输层:面向连接服务在网络边缘的端系统中实现
  • 网络层:面向连接服务在端系统及网络核心的路由器中实现

2.虚电路

  • 源主机-目的主机路径的行为类似于电话网络的行为
  • 一条虚电路包括:
    • 一条从发送方到接收方的路径
    • VC号,沿路径的每条链路都有一个VC号
    • 沿路径的每个路由器上都有转发表条目
  • 虚电路的信令协议
    • 建立
    • 维护
    • 拆除

4. 数据报网络(现在用)

(1)特点

  • 在网络层无呼叫的过程
  • 路由器:不需要维护端到端连接的状态
  • 没有网络等级的”连接”的概念
  • 使用目的主机的地址进行分组转发

(2)数据报转发表

数据报转发表

(3)最长前缀匹配

对于给定的目的地址,使用最长地址前缀匹配来完成输出端口的查找。

(4)路由器查表方法

用目的地址前缀与转发表的前缀匹配

  • 存在匹配:向对应链路转发
  • 不存在匹配:选择”其他”项对应的链路转发
  • 存在多个匹配:”最长前缀匹配规则”

(5)特点

  • 虚电路:
    • 网络功能复杂
    • 端系统设备简单
    • e.g.ATM
  • 数据报:
    • 网络层服务模型简单
    • 端系统功能复杂
    • 提供的服务保证最少
    • e.g.因特网

4.3 路由器的工作原理

1.路由器的核心功能

  • 运行路由算法/协议
  • 将分组从路由器的输入链路传送到正确的输出链路

2.路由器的体系结构

  • 输入端口
    • 线性端接模块
    • 数据链路处理模块
    • 查找与转发模块
  • 输出端口
  • 交换结构
  • 选路处理器

4.4 IP协议(重点)

4.5 路由算法(重点难点)

4.6 因特网中的路由协议

文章作者: Cosmos_F
文章链接: http://fengxinyue.cn/post/9ab2931e.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 学习心得
打赏
  • 微信
    微信
  • 支付寶
    支付寶