<计算机网络>笔记1: TCP/IP五层协议

<计算机网络>笔记1: TCP/IP五层协议

文章目录

ref

1. 概述

名词

  1. 因特网: 世界上最大的互联网络(用户数以亿计,设备数以百万计)
  2. ARPANET: 阿帕网, 1969年美国防部创建的第一个分组交换网
  3. 1983: TCP/IP协议成为ARPANET的标准协议, 所有用TCP/IP的计算机可以互联, 1983称为因特网诞生时间
  4. internet: 互联网, 通用名词, 泛指多个计算机网络连成网络
  5. Internet: 因特网, 专用名词, 全球最大,开放的, 众多网络互连成的特定计算机网络, 采用TCP/IP协议族作为通信规则, 前身是美国ARPANET
  6. 三级结构: 主干网, 地区网, 校园网(企业网)
  7. ISP: Internet Service Provider因特网服务提供商(电信联通移动), 可从因特网管理机构申请到IP, 拥有通信线路和路由器等联网设备外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  8. IXP: Internet eXchange Point 因特网交换点, 允许两个网络直接相连交换分组, 不用通过第三个网络转发分组(上图)
  9. WWW: World Wide Web万维网, 20世纪90年代欧洲原子核阻止CERN开发
  10. 因特网协会Internet Society ISOC, 1992年因特网不再归美国政府管辖而成立, 对因特网进行全面管理和在世界范围内促进发展和使用
  11. IAB: 因特网体系结构委员会, ISOC下技术组织, 下设2工程部
    1. IETF Internet Engineering Task Force因特网工程部, 有许多工作组WG组成的论坛(具体工作组有IESG(因特网工程指导小组)管理). 划分若干领域, 每个领域集中研究某一特定短期中期问题(如针对协议开发和标准化)
    2. IRTF Internet Research Task Force因特网研究部, 由许多研究组RG组成的论坛(具体工作由IRSG因特网研究指导小组管理)
  12. 制定因特网正式标准经历四个阶段[RFC 2026]
    1. 因特网草案Internet Draft - 还不是RFC文档
    2. 建议标准Proposed Standard - 这个阶段开始成为RFC文档
    3. 草案标准Draft Standard
    4. 因特网标准Internet Standard

因特网组成

  1. 边缘部分: 所有连接在因特网上的主机组成, 用户直接使用(传音视频)信息处理
  2. 核心部分: 大量网络和链接网络的路由器组成, 为边缘部分提供服务(提供连通性,分组交换)
    在这里插入图片描述
  • 边缘端系统的通信方式

    1. 客户-服务器方式C/S: 最常用传统(邮件,查找),客户=服务请求方,服务器-服务提供方, 都要使用网络核心部分提供的服务
      1. 在这里插入图片描述
    2. 对等连接方式P2P: 主机通信不区分服务请求, 平等通信, 都可下载对方共享文档, 可支持大量对等用户(上百万)同时工作
      1. 在这里插入图片描述
  • 核心部分

    1. 路由器: 实现分组交换(存储转发技术)的关键构件, 转发收到的分组(网络核心部分最重要功能)
    2. 在这里插入图片描述
  • 网络分类

    • 按作用范围: 广域网WAN,城域网MAN,局域网LAN,个人区域网PAN
    • 按使用者: 公用网, 专用网,
    • 接入网AN(本地接入网)

性能指标

  • 速率: bps

  • 带宽: 原指信号具有频带宽度(包含不同频率成分站的频率范围), 计网中指通信线路传送数据的能力, 单位时间点到点的最高数据率, b/s

  • 吞吐量: 单位时间通过某网络数据量, 如100Mb/s以太网典型吞吐量70Mb/s

  • 时延: 数据从一端-另一端所需时间, 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延 总时延=发送时延+传播时延+处理时延+排队时延 总时延=发送时延+传播时延+处理时延+排队时延

    • 发送时延: (传输时延)主机/路由器发送数据帧需要时间 发送时延 = 数据帧长度 传输速率 b / s 发送时延=\frac{数据帧长度}{传输速率b/s}{} 发送时延=传输速率b/s数据帧长度
    • 传播时延: 电磁波在信道中传播一定距离花费时间 传播时延 = 信道长度 m 传播速度 m / s 传播时延=\frac{信道长度m}{传播速度m/s} 传播时延=传播速度m/s信道长度m
    • 处理时延: 路由器接收分组时花时间, 如分析首部,提取数据,校验,路由
    • 排队时延: 分组网络传输时经过许多路由器, 取决于通信量
    • 时延带宽积: 传播时延x带宽, 又称以比特位单位的链路长度
    • 往返时间RTT: 发送方发送数据开始到接收方收到来自接收方的确认, 总经历的时间
    • 利用率: 信道利用率:某信道?%的时间利用过, 网络利用率:全网络信道利用率加权平均, 利用率高则时延大
  • 非性能指标: 费用, 质量, 标准化, 可靠性, 可扩展性, 维护性

  • OSI模型: 开放系统互连基本参考模型, 全面但复杂且不适用

TCP/IP模型: 实际普及全球的协议

  • 在这里插入图片描述
  • 应用层 applicetion layer: 通过应用进程间交互完成特定网络应用
    • 如HTTP, SMTP,FTP等协议
  • 传输层 transport layer: 为两个主机间进程的通信提供通用的数据传输服务, 可复用(多个应用层进程可同时使用下面传输层服务),分用(传输层将收到的信息分别交付上面应用进程)
    • TCP 传输控制协议 Transmission Control Protocol, 提供面向连接的,可靠的数据传输服务,单位是报文段
    • UDP 提供无连接的,尽最大努力的数据传输服务(不保证可靠), 单位是用户数据报
  • 网络层 (ip层) network layer: 为分组交换网不同主机提供通信服务, 发送时将传输层报文段分组(IP数据报)
  • 数据链路层 data link layer: 将网络层的IP数据报组装成帧, 在两个相邻节点链路传送帧, 包括数据&必要信息(同步,地址,差错控制等)
    • 控制信息: 使接收端知道一个帧从哪个bit开始到哪个bit结束; 可以检查差错, 纠正差错
  • 物理层 physical layer: 确定电压, 线束等
  • 在这里插入图片描述
  • PDU Protocol Data Unit 对等层次之间传送的数据单位
  • SDU Service Data Unit: 层与层之间交换的数据单位, 可以多个SDU合成一个PDU, 也可一个SDU划分几个PDU
  • 服务原语: 上层使用下层提供的服务必须通过与下层交换一些命令
  • TCP/IP协议族 在这里插入图片描述

2. 物理层

  • 考虑如何在连接各种计算机的传输媒体上传输数据比特流, 确定机械特性,电气特性,功能特性,过程特性

  • 奈奎斯特准则: 任何信道中, 码元传输速率有限, 超过上限将出现严重码间串扰问题, 接收端对码元判断不可能

  • 香农公式: C = W l o g 2 ( 1 + S / N ) ( b / s ) C=W log_2(1+S/N) (b/s) C=Wlog2(1+S/N)(b/s) 信道带宽/信道的信噪比越大, 信息极限传输速率越高

  • 复用: 复用器,分用器

    • 频分复用: 所有用户同时占不同带宽资源
    • 时分复用: 划分一段等长的时分复用帧, 每个用户周期性出现
    • 统计时分复用: 改进提高利用率
    • 波分复用: 光的频分复用, ->密集波分复用
    • 码分复用: 不同码型
  • 宽带:

    • 有线宽带
      • ADSL 非对称数字用户技术, 用数字技术对现有模拟电话用户线改造, 使能承载数字业务
    • 无线宽带

3. 数据链路层

在这里插入图片描述

  • 数据链路: 传送数据的物理线路 + 必要的通信协议控制数据传输(软件+硬件, 如网络适配器)

点对点信道

  • 链路层通信步骤在这里插入图片描述

3.1. 基本问题

- 封装成帧
	- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8aaad229876946aebe21cbaeeb01634a.png)
	- 帧定界符: 帧开始符SOH 0x01, 帧结束符EOT 0x04, 只有SOH没有EOT则丢弃
- 透明传输
	- 文本传输不会出现定界符, 但图像传输可能会错误, 所以发送端在控制字符前插转义字符, 接收端删除转义字符
- 差错检测: 数据划分为帧, 每帧+冗余码, 接收方逐帧差错检验.. 实现无比特差错, 但不是可靠传输, 可能还有丢失重复失序等
	- 误码率BER: 一段时间内传输错误占比特总数比率, 提高信噪比可以减小
	- 循环冗余校验CRC: 事先商定除数P, 发送端二进制模2运算得余数R, 接收端模2整帧得余数为0. 余数=0无差错则accept, ≠0有擦除哦则丢弃
	- 帧检验序列FCS, 为了检错而添加的冗余码

3.3.2 点对点协议PPP Point-to-Point Protocol

-  PPP协议应满足的需求
	1. 简单: 仅CRC无其纠错序号流控
	2. 封装成帧: 使用帧界定符
	3. 透明性: 解决数据中的界定符冲突(如转义)
	4. 多种网络协议: 同一条物理链路同时支持多种网络层协议(IP,IPX
	5. 多种类型链路: 在多种类型链路运行(串行,并行,同步,异步,低速,高速,电,光,交换,非交换, 如PPPoE
	6. 差错检测: 检测帧立即丢弃差错
	7. 检测连接状态: 自动检测链路是否正常工作状态
	8. 最大传送单元: 对每种类型点对点链路设置最大传送单元MTU, 过长丢弃返回差错
	9. 网络层地址协商: 确保通信双方知道对方ip
	10. 数据压缩协商:  提供方法协商使用压缩
- 组成: 三个部分
	1. 一个将IP数据报封装到串行链路的方法
	2. 一个用来建立,配置和测试数据链路连接的链路控制协议LCP
	3. 一套网络控制协议NCP
- PPP协议帧格式
	- 各字段意义
		- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/02b8b9fe387c4721a8e8c13f84bb7a7e.png)
		- F: 界定符, 表示帧开始/结束
		- A,C, 可能保留无信息
		- 协议字段, 0x0021:信息字段为IP数据报,0xC021:LCP数据,0x8021:网络层控制数据
	- 字节填充,异步传输使用转义字符0x7D
		1. 信息字段每个0x7E -> 0x7D,0x5E
		2. 每个0x7D -> 0x7D,0x5D
		3. 出现ASCII控制字符(<0x20), 前面+0x7D并改, 如0x03 -> 0x7D,0x23
	- 零比特填充,同步传输时使用
		- 硬件检测,发送端有5个连续1立即填0,接收端还原
- PPP协议工作状态
	- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/17e1f0c5d0724b049ba8137e4c4b21f7.png)

3.3.3. 使用广播信道的链路层

  • 总线防冲突
    • 规定1帧最短64byte(512b
    • 帧最小间隔9.6us
  • CSMA/CD协议, 不能全双工通信
    • 准备发送:检测信道
    • 检测信道: 直到空闲切96bit 时间(帧间最小间隔)发送
    • 便发送边监听
      • 成功回1
      • 失败则停止发送,发人为干扰信号, 指数退避算法, >16次失败停发上报
      • 发完一帧保留以便重传

3.4. 使用广播信道的以太网: 一对多, 复杂, 专用共享信道协议

3.4.1. 集线器的星型拓扑

  • 集线器
    1. 使用集线器以太网也是总线网, 使用CSMA/CD协议, 同时仅允许一个站发数据
    2. n个接口, RJ-45插头
    3. 工作于物理层, 仅转发, 无碰撞检测
    4. 芯片自适应串音回波抵消

3.4.2. 以太网信道利用率

  • 达30%就处于重载情况

3.4.3. 以太网mac层

  • MAC层硬件地址

    • 物理地址/MAC地址, 每台计算机中固化在适配器的ROM的地址
    • 6字节MAC地址
      • 高24位: OUI 组织唯一标识符, IEEE注册管理机构RA分配
      • EUI: 扩展的唯一标识符
      • 地址字段第一字节最低为I/G位 (Individual/Group) =0:单站地址, =1组地址(用于组播
      • 地址字段1字节最低第2位: G/L位 =0全球管理(保证不重复), =1本地管理
  • 适配器过滤功能: 检查MAC帧地址, 本站手下,否则丢弃

    • 单播, 收到帧MAC地址同本站硬件地址
    • 广播, 发给局域网所有站点
    • 多播(组播: 发给局域网部分站点
    • 混杂方式(悄悄接收, 窃听, 用于监控分析
  • MAC帧格式

    • 在这里插入图片描述
    1. 位同步 8byte(硬件插入
    2. 目的地址 6byte:
    3. 源地址 6byte:
    4. 长度/类型字段 2byte:
    5. 数据字段 46byte-1500byte (64-18=46, 长度<46byte会+填充字段
    6. 帧检验序列FCS 4byte
  • 鉴定为无效MAC帧: 简单丢弃不重传

    1. 帧长度非整数个字节
    2. 帧检验序列FCS测出错误
    3. MAC客户数据字段长不再46-1500之间

3.5. 扩展以太网

3.5.1. 网桥

- ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/472218ac056140279871176561218a1a.png)
  • 好处
    1. 过滤通信量, 增大吞吐量, 使各个以太网段成为隔离开的碰撞域, 不同网段通信不会相互干扰
    2. 扩大物理范围
    3. 提高可靠性
    4. 可互联不同物理层, 不同MAC子层, 不同速率,
    5. 可使用PPP协议, 构建点对点链路
  • 缺点
    1. 接受的帧存储和查找转发表, 执行CSMA/CD算法, 增加时延
    2. MAC子层无流量控制功能, 负荷重可能溢出丢帧
    3. 适合用户少(<几百),通信量不大的以太网, 否则传播过多引起广播风暴

3.5.2. 透明网桥

  • 基于标准: IEEE 802.1D, 以太网站点不知道帧经过几个网桥; 即插即用无需配置转发表即可工作(自学习)
  • 自学习,转发步骤
    1. 网桥收到一帧后先自学习, 查找转发表中与收到帧的源地址有无匹配项目, 无则新增有则更新
    2. 转发帧: 查找有无目的地址, 无则通过所有其他接口转发, 有则按表转发
  • 生成树苏纳法: 互联在一起的网桥彼此通信后, 能找出原网络拓扑的子集, 该子集中联通网络不存在回路, 任何两个站仅有一条路径

3.5.3. 源路由网桥:

  • 发送帧时将详细路由信息放在帧首
  • 发现帧: 源站以广播方式想目的站发送, 在整个扩展的以太网沿所有可能的路由传送, 记录经过的路由, 到达时沿各自路由返回源站, 源站选择最佳路由. 之后该源站发送帧首部必须携带确定路由信息
    • 帮助源站确定整个网络可通过帧最大长度
  • 和透明网桥区别
    • 源路由网桥对主机非透明, 主机必须知道网桥标识和连到哪个网段, 可以利用最佳路由, 平均分配通信
    • 透明网桥使用生成树, 不保证最佳, 无法均衡负载

3.5.4. 多接口网桥

  • 交换式集线器(二层交换机), 有十多个接口, 每个接口直接与单个主机/另外集线器相连, 工作于全双工, 每个主机无碰撞传输, 即插即用
  • 优点: N个用户, 共享以太网平均带宽 1/N, 交换机1; 容易扩充; 不同速率可组合; 可用存储转发/直通; 方便地实现虚拟局域网(VLAN)
    • VLAN: 局域网网段构成的与物理位置无关的逻辑组, 每个VLAN帧有明确的标识符, 指明属于哪个VLAN, 是局域网给用户提供的一种服务, 最大帧长1522=1500+18+4)
      • 在这里插入图片描述

3.4. 高速以太网

  • 100Mb/s

  • 100BASE-T: 快速以太网, 双绞线传送100Mb/s基带信号的星型拓扑以太网, IEEE 802.3的CSMA/CD协议
  • 吉比特以太网: 1Gb/s
    • 允许1Gb/s全双工,半双工工作
    • 使用IEEE 802.3协议规定帧格式
    • 半双工下用CSMA/CD协议(全双工不用
    • 兼容10BASE-T, 100BASE-T
  • 10吉比特

3.5. 宽带

  • PPPoE(PPP oer Ethernet) 结合链路层协议, 解决鉴别用户身份问题

4. 网络层

4.1. 网际协议IP

  • IP协议配套: 地址解析协议ARP, 网际控制报文协议ICMP, 网际组管理协议IGMP
    • 在这里插入图片描述

4.1.1. 虚拟互联网络

  • 网络互连需要的中间设备
    1. 转发器: 物理层
    2. 网桥/桥接器: 链路层
    3. 路由器: 网络层
    4. 网关: 网络层以上, 连接两个不兼容系统
  • IP层标准化协议, 使用各方看起来像用统一的网络, 互联网可以由多种异构网络组成

4.1.2. 分类的IP地址

  • IP地址 ::= {<网络号>,<主机号>}, 指明主机和接到的网络
    • 在这里插入图片描述
      近年已广泛使用无分类IP进行路由, ABC类地址已成为历史

ip指派范围

特殊ip

  • ip地址特点
    1. 每个ip两部分, 分等级, IP管理机构只分配网络号,主机号自行分配; 路由器仅由网络号转发分组,更快
    2. IP标志一个主机&一条链路, 接到两个网络由两个ip(多归属主机) 每个路由器至少2ip
    3. 用转发器/网桥连接的若干局域网是一个网络, 只有一个网络号
    4. 因特网同等对待每个ip
    5. 无编号网络: 路由器直接相连

4.1.3. ip地址&硬件地址

在这里插入图片描述

4.1.4. 地址解析协议ARP

在这里插入图片描述

  • 已知IP,找出硬件地址
  • 每个主机有ARP高速缓存, 有本局域网主机&路由器IP->硬件地址的映射表, 动态更新
    • A->B, 擦护照是否有IP地址, 有则查硬件地址,写MAC帧发送, 查不到则运行ARP
    • ARP: 广播ARP请求分组; 所有主机ARP进程收到; 一致则接收存储, 响应
    • 高速缓存10~20min生存时间
  • ARP只解决同一局域网映射问题, 跨局域网由路由器解析解决
  • 主机用户不知道地址解析过长

4.1.5. IP数据报

在这里插入图片描述

  • 首部(固定部分20byte
    1. 版本: 4b, 通信双方IP版本须一致, 目前广泛使用IPv4
    2. 首部长度: 4b, 单位32位字, 最小值5(20B), 最大值15(60B), 首部长度非4整数倍时要用填充字段填充. 即IP数据报数据部分永远在4字节整数倍开始
    3. 区分服务: 8b, (服务类型) 一般不用?
    4. 总长度: 16b, 首部+数据, 数据包最大长65535, IP层下每种链路协议规定最大传送单元MTU, 超过分片;
    5. 标识: 16b, 每产生1数据报+1, 用于标记数据分片重组
    6. 标志: 3b, 低位,中位有意义
      1. 低位: MF=1 后面还有分片, MF=0 已是最后一个
      2. 中位: DF=1 不能分片, DF=0允许分片
    7. 片偏移: 13b, 较长分组在分片后, 某片在原分组的相对位置
    8. 生存时间: 8b, TTL 防止无法交付的数据报无限循环, 之后改成了跳数限制, 路由器转发前-1, =0丢弃, =1仅在局域网传送
    9. 协议: 8b, 携带数据使用什么协议
      1. ICMP:1, IGMP:2, IP:4, TCP:6, EGP:8, IGP:9, UDP:17, IPv6:41, ESP:50, OSPF:89
    10. 首部检验和: 16b, 只检验首部(不包括数据), 发送:所有16位字求和,写入反码; 接收:所有16位字求和取反码=0
    11. 源地址: 32b
    12. 目的地址: 32b
  • 首部(可变部分, 1-40B, 增加路由器开销, 少用

4.1.6. IP转发分组

在这里插入图片描述

  • 路由表的每条路由记录(目的网络地址, 下一跳地址)
    • IP数据包最终一定可找到目的主机所在目的网络的路由器(可能多次间接交付
    • 只有到最后一个路由器, 才是图直接交付
  • 特定主机路由: 允许特例: 对特定目的主机指明一个路由, 方便控制网络,测试网络
  • 默认路由: 减少路由表占空间和搜索时间

4.2. 划分子网&构造超网

4.2.1. 划分子网

  • IP地址设计不合理: IP空间利用率有时很低; 每个物理网络分配网络号使路由表过大; 两级IP地址不够灵活;
  • 1985年起IP增加子网号字段, IP地址 ::= {<网络号>, <子网号>, <主机号>} (增加灵活性,减少主机总数
    1. 拥有许多物理网络的单位, 可将其划分若干子网, 对外表现为1网络
    2. 从主机号借若干位为子网号subnet-id
    3. IP数据包根据网络号扎到路由器, 按子网号找到子网, 交付
  • 子网掩码: IP本身无法解析子网划分
    • 所有网络必须使用子网掩码, 路由表也有此栏, 不划分子网用默认子网掩码
      • 在这里插入图片描述

4.2.2. 无分类编址CIDR(超网

  • 无分类域间路由选择
    1. 消除ABC和子网概念, 更有效分配IPV4. IP地址 ::= {<网络前缀>, <主机号>} IP后+/(网络前缀位数)
    2. 网络前缀相同的连续IP组成CIDR地址块 (可从任意地址的到max min地址
  • 最长前缀匹配
  • 二叉树检索

4.3. 网际控制报文协议ICMP

  • 网际控制报文协议ICMP (Internet Control Message Protocol) 位于IP层, 数据报地数据
    • 为了有效转发IP, 提高交付成功机会
      • 在这里插入图片描述

4.3.1. ICMP分类

  1. ICMP差错报告报文
  2. ICMP询问报文
    在这里插入图片描述
  • “信息请求&回答报文”, “地址掩码请求&回答报文”, "路由器请求&通告报文"不再使用

  • 差错报告报文

    1. 终点不可达: 路由器/主机不能交付数据报则向源点发送终点不可达报文
    2. 源点抑制: 路由器/主机由于拥塞丢弃数据报, 发送报文使源点知晓要放慢
    3. 时间超过: 路由器收到生存时间>0, 丢弃且向源点发超时报文; 终点再预先规定时间不能收到全部数据报片, 将已收到都丢弃, 向源点发送超时报文
    4. 参数问题: 路由器/目标主机收到数据报首部有的字段值错误, 丢弃并向源点发送
    5. 改变路由(重定向): 发给主机使其知道下次发给另外路由器
  • ICMP差错报告报文

    • 收到要差错报告的IP数据报首部+数据字段前8字节(得到端口号&序号)+差错报告报文前8字节在这里插入图片描述
  • ICMP差错报告报文, 有四不发

    1. ICMP差错报告报文的ICMP不发
    2. 首个分片数据报片所有后续数据报片不发
    3. 多播地址数据报不发
    4. 特殊地址不发
  • 常用ICMP

    1. 回送请求&回答: 主机/路由器向特定主机询问, 收到后给源主机/路由器发ICMP回送回答报文, 用于测试是否可达和获取状态
    2. 时间戳请求&回答: 请某主机/路由器回答当前日期&时间, 32b, 1900/1/1->当前, 用于时钟同步,测量时间

4.3.2. ICMP应用

  1. ping: 使用ICMP回送请求,回送回答报文, 不通过TCP/UDP
  2. traceroute(unix)/tracert(win): 获取到目标主机路由信息

4.4. 路由选择协议

4.4.1.基本概念

1. 理想的路由算法: 
	1.  算法正确和完整: 沿各路由表指引的路由, 分组一定能到目的网络&主机
	2. 算法计算简单: 通信开销小
	3. 自适应性: 适应通信量&网络拓扑变化, 可均衡负载, 改变路由
	4. 稳定性: 通信量&拓扑稳定时, 收敛于可接受的解
	5. 公平: 对所有用户平等
	6. 最佳: 能找到最好路由, 时延最小, 吞吐量最大
2. 分层次路由选择协议
	1. 内部网关协议IGP: 自治系统内部使用路由选择协议, 与其他系统无关, 如RIP, OSPF协议
	2. 外部网关协议EGP: 源主机&目的主机在不同自治系统, 到边界时需要和传递, 如BGP-4
	3. 

4.4.2. 内部网关协议RIP

  • RIP (Routing Information Protocol) 路由信息协议, 内部网关协议IGP中最先广泛使用, 分布式的基于距离向量的路由选择协议, 使得每个路由器到每个目的网络路由最短; 使用UDP传送
  • 距离: 跳数, 经过几跳到达终点
    • 允许一条路径最多15个路由器, ==16不可达, 故RIP只适用于小型互联网
  • 特点
    1. 仅和相邻路由器交换信息
    2. 交换本路由器的路由表
    3. 固定时间间隔交换路由表, 通过距离向量算法找出最短距离
    4. 实现简单,开销小
    5. 限制了网络规模,最大距离15,坏消息传播慢
  • 距离向量算法: 对每个相邻路由器的RIP报文
    1. 对地址X的相邻路由器的RIP报文, 修改报文的所有项目(到目的网络N,距离d,下一跳路由器X), 下一跳字段地址改X, 所有距离+1
    2. 对修改后的RIP报文所有项目的操作
      if 原路由表无目的网络N
          添加项目到路由表
      else
          if 下一跳路由器地址X
              收到的项目替换原路由表项目
          else
              if 收到项目距离d<路由表距离
                  更新
      
    3. RIP报文格式: 首部+路由, 最大长度4+20x25=504
      1. 在这里插入图片描述
      2. 首部: 4B, 命令字段指出报文意义, 1:请求路由信息, 2:请求路由信息响应/未被请求发出的路由更新报文, 必为0为了对齐
      3. 路由: 若干路由信息组成, 每个20B, 一个RIP最多25个路由
        1. 地址族标识符: 标志所用的地址协议, 2:IP地址
        2. 路由标记: 填入自治系统号ASN, 区分系统外路由
  • 缺点: 网络故障时, 要长时间才能将信息传送到所有路由器

4.4.3 内部网关协议OSPF

  • OSPF: 开发最短路径优先, 使用分布式的链路状态协议
    1. 向本系统所有路由器发信息(泛洪法,路由器通过所有端口向所有相邻路由器发信息, 每个相邻路由器再发往其他路由器, 除了刚才的, 最终所有路由器得到副本)
    2. 发送的信息:与本路由器相邻的所有路由器链路状态(本路由器和水相邻,度量(费用,距离,时延,带宽))
    3. 链路状态变化时向所有路由器泛红发送(RIP定期发送)
  • 特点
    • 所有路由器都能建立链路状态数据库(全网拓扑结构图), 每个路由器都知道全网多少路由器, 哪些相连
    • 可以快速更新, 更新收敛快
    1. 允许管理员给每条路有指派不同代价: 对不同类型业务可计算出不同路由
    2. 负载均衡: 同一目的网络多条相同代价的路径, 可将通信量分配
    3. 鉴别能力, 保证仅通信可信赖路由器
    4. 支持可变长度子网划分, 无分类编址CIDR
    5. 每个链路带32位序号, 越大越新
  • 区域: 为扩大规模, 一个自治系统划分多个更小范围, 每个区域一个32位标识符
    • 在这里插入图片描述
    • 限制泛洪法范围
    • 层次结构的区域划分:
    • 主干区域: 上层区域, 0.0.0.0,
    • 区域边界路由器: 概括其他区域来的信息
    • 主干区域: 在主干区域内的路由器
    • 自治系统边界路由器: 主干区域内和其他自治系统交换路由信息
  • 帧组成
    • 在这里插入图片描述
    • OSPF直接用IP数据报传送
    1. 版本: 2
    2. 类型: 五种类型分组
    3. 分组长度: OSPF首部在内的分组长度, 字节为单位
    4. 路由器标识符: 标志发送该分组路由器接口的IP
    5. 区域标识符: 分组属于的区域
    6. 检验和: 检测分组的差错
    7. 鉴别类型: 0:不用 1:口令
    8. 鉴别: 鉴别类型0则填0, 1则填8B口令
  • 五种分组类型, 问候+四种同步分组
    1. 问候分组 Hello: 发现和维持邻站的可达性, 每10s交换一次
    2. 数据库描述分组 Database Description: 向邻站给出链路状态数据库的所有链路状态项目的摘要信息
    3. 链路状态请求 Link State Request: 相对方请求发送某些链路状态项目详细信息
    4. 链路状态更新 Link State Update: 泛洪法对全网更新链路状态
    5. 链路状态确认 Link State Acknowledgement: 确认链路更新分组
    • 完全邻接: 两个同步的路由器
      • 在这里插入图片描述
  • 可靠的泛洪法
    • 在这里插入图片描述

4.4.4. 外部网关协议BGP

  • 考虑安全等原因, BGP要找到比较好的路由, 而不是最佳路由; 使用路径向量路由选择协议
    • 配置BGP时每个自治系统管理员选择至少1路由器位BGP发言人(常为BGP边界路由器)
    • BGP发言人与其他AS的BGP繁衍人交换路由信息, 先建立TCP连接(port:179), 交换BGP报文来建立会话, 利用会话交换路由信息(新增撤销差错)
    • 邻站/对等站: 使用TCP连接交换路由信息的俩BGP发言人
    • 在这里插入图片描述
    • BGP发言人构造的自治系统连通图, 树状结构无回路
    • BGP支持无分类域间路由选择CIDR
  • 四种报文:
    1. OPEN 打开: 与相邻BGP建立关系, 初始化通信
    2. UPDATE 更新: 通告某一路由信息, 列出要撤销的多条路由
    3. KEEPALIVE 保活: 周期性证实邻站连通性, 19B, 30s
    4. NOTIFICATION 通知: 发送检测到的差错
  • 帧格式: 通用首部19B, 标记16B+长度2B+类型1B
    • 在这里插入图片描述
    • OPEN报文
      1. 版本 1B, 4
      2. 本自治系统号 2B, 使用全球唯一的16位自治系统号
      3. 保持时间 2B, 以秒计算的保持为邻站关系的时间
      4. BGP标识符 4B, 路由器IP
      5. 可选参数长度 1B
      6. 可选参数
    • UPDATE
      1. 不可行路由长度 2B, 指明下一个字段长
      2. 所有要撤销的路由
      3. 路径属性总长度 2B, 下一个字段长度
      4. 路径属性 定义该报文中增加的路径属性
      5. 网络层可达性信息NLRI
    • KEEPALIVE: 只有通用部首
    • NOTIFICATION:
      1. 差错代码 1B
      2. 差错子代码 1B
      3. 差错数据 诊断信息

4.4.5. 路由器构成

在这里插入图片描述

  • 路由选择部分: 控制部分, 核心是选择处理机, 根据选定路由选择协议构造路由表, 定期交换维护路由表
  • 分组转发部分:
    • 交换结构
    • 输入端口
    • 输出端口

4.5. IP多播

  • IP多播
    1. 只在本局域网硬件多播
    2. 因特网范围多播
  • 多播数据报目的地址写入多播组标识符(D类地址), 不产生ICMP(ping无回应)
    • 224.0.0.0 基地址(保留)
    • 224.0.0.1 本子网所有参加多播的主机&路由器
    • 224.0.0.2 本子网所有参加多播的路由器
    • 224.0.0.3 未指派
    • 224.0.0.4 DVMRP路由器
    • 223.0.1.0-238.255.255.255 全球范围可用多播地址
    • 239.0.0.0-239.255.255.255 限制在一个组织的范围

4.5.1. 局域网硬件多播

硬件地址1字节最低位-1为多播地址, 01-00-5E-00-00-00 - 01-00-5E-7F-7F-FF
收到多播数据报的书籍要在IP层利用软件过滤, 过滤不是本主机要接收的数据报

4.5.2. 网际组管理IGMP&多播路由选择协议

  • 网际组管理协议IGMP: 让连接在本地局域网的多播路由器知道本局域网上是否有主机(进程)参加/退出某多播组
    • 网际协议IP的一部分
    1. 1阶段: 某主机加入新多播组, 向多播组的多播地址发送IGMP报文; 多播路由器接收后, 用多播路由选择协议将组成员关系转发给其他多播路由器
    2. 2阶段: 组成员关系是动态的, 多播路由器周期性探询本地主机是否还是组成员: 一个主机响应则组活跃, 几次都不响应则都离开
  • 多播路由选择协议: 多播路由器要和因特网其他多播路由器协同工作
    • 找出源主机为根节点的多播转发树
      1. 泛洪&剪除, 反向路径广播RPB 在这里插入图片描述
      2. 隧道技术 IP-in-IP 在这里插入图片描述
      3. 基于核心的发现技术
    • 非标准, 建议使用的多播路由选择协议
      1. 距离向量多播路由选择协议DVMRP
      2. 基于核心的转发树CBT
      3. 开放最短通道优先的多播扩展MOSPF
      4. 协议无关多播-稀疏方式PIM-SM
      5. 协议无关多播-密集方式PIM-DM

4.6. 虚拟专用网VPN & 网络地址转换NAT

4.6.1. 虚拟专用网VPN

  • 节省IP, 所有数据加密
  • 专用地址: 只能用于一个机构内部通信, 所有路由器对目的地址为专用地址的数据报一律不转发
    1. 10.0.0.0 - 10.255.255.255 (10.0.0.0/8 24位块)
    2. 172.16.0.0 - 172.31.255.255 (172.16.0.0/12 20位块)
    3. 192.168.0.0 - 192.168.255.255 (192.168.0.0/16 16位块)

虚拟专用网VPN Virtual Private Network
在这里插入图片描述

4.6.2. 网络地址转换NAT

  • NAT Network Address Translation 专用网内部已分配到本地IP的主机, 又希望非加密连因特网, 连接至少有一个IP的NAT路由器, 有n个全球ip则最多同时n主机接入因特网,不够轮流
    在这里插入图片描述
  • 通信必须专用网内主机发起, 反向不行, 故专用网内主机不能当服务器
  • NAPT: 使用端口号的NAT, 多个主机共用1ip

5. 传输层

5.1.1. 传输层

  • 传输层: 向上面的应用层提供通信服务
    2. 提供应用间的逻辑通信
    3. 对收到报文差错检测(网络层仅检查首部)
    4. 屏蔽了下方网络核心的细节
  • 复用: 应用所有进程都可通过传输层再到IP层
  • 分用: 传输层从IP层收到数据交付指明的应用

在这里插入图片描述

  1. 用户数据报协议UDP User Datagram Protocol: 传输前无需连接, 收到不用确认, 不提供可靠交付, 高效
  2. 传输控制协议TCP Transmission Control Protocol: 面向连接的服务, 必须先建立连接, 结束后释放连接, 不提供广播多播, 提供可靠的面向连接的传输, 开销大首部多占用处理, 有确认,流控,计时和连接管理

在这里插入图片描述

5.1.2. 端口

  • 传送的报文交到目标主机某个合适的目的端口, 余下工作TCP完成
  1. 服务端用的端口号
    1. 熟知端口号/系统端口号 0~1023, 指派给TCP/IP最重要的应用
      1. 在这里插入图片描述
    2. 登记端口号, 1024~49151, 按IANA规定手续登记防重复
  2. 客户端使用端口号(短暂端口号), 49152~65535, 客户端进程同意必须部分时动态选择

5.2. 用户数据报协议UDP

  • 特点
    1. 无连接, 开销时延小
    2. 尽最大努力交付, 无需维持复杂的连接状态
    3. 面向报文, 一次交付完整的报文, 报文边界不合不拆
    4. 无拥塞机制, 拥塞降低速率
    5. 支持1v1, 1vn, nvn
    6. 首部开销小 8B, (TCP20B
  • 首部格式
    • 在这里插入图片描述
    • 首部字段 8B
      1. 源端口, 需要回信使用, 不需要=0
      2. 目的端口, 终点交付使用; 接收方发现端口不正确丢弃, ICMP发端口不可达
      3. 长度, 用户数据报长度, min=8(仅首部)
      4. 检验和, 检测传输中是否有差错, 有错丢弃; 首部和数据一起检验, 非偶数填0
    • 伪首部: 计算检验和时数据报前+12B伪首部(临时), 不向上向下传递

5.3. 传输控制协议TCP

  • 特点
    1. 面向连接的传输层协议, 传前建立传后释放
    2. 仅1v1
    3. 可靠交付, 无差错,不丢失,不重复,按序到达
    4. 全双工通信, 双方有收发缓存
    5. 面向字节流, TCP将应用交下的数据看成连串无结构字节流, 不保证接收方收的数据块与发送方发的数据块大小对应(发10个块收4个块
      6. 在这里插入图片描述
      7. 根据对方窗口值和网络拥塞成都决定

5.3.1. TCP连接

  • 套接字socket / 插口: TCP连接的端点, 每条TCP连接唯一被通信两端两个socket确定

    • socket = (IP地址: 端口号) 如(192.3.4.5: 80)
  • socket概念混淆

    • 允许app访问联网协议的应用编程接口API, 简称socket
    • socketAPI使用的函数名
    • 调用socket函数的端点 (创建一个数据报socket
    • 调用socket函数时返回值是socket描述符, 简称socket
    • 操作系统内核连网协议Berkeley实现, 称socket实现

5.3.2. 可靠传输工作原理

  • 停止等待协议
    • 在这里插入图片描述
    • 超时重传: 每发送完1分组, 保留副本, 设超时计时器, 分组和确认分组编号, 超过一段时间未收到确认则重新发送, 重传时间>平均往返时间
    • 确认丢失,确认迟到
      • 在这里插入图片描述
  • 连续ARQ协议
    • 为提高信道利用率,采用流水线传输, 可连续发多个无需等待
      • 在这里插入图片描述
      • 发送方每收到一个确认将发送窗口滑动1分组; 接收方对按序到达最后一个分组确认

5.3.3. TCP报文首部

在这里插入图片描述

  • 首部
    1. 源端口: 2B
    2. 目的端口: 2B
    3. 序号: 4B, 溢出归0; 每个字节按顺序编号,(字段值301,数据100字节,则下一个序号400
    4. 确认号: 4B, 期望收到对方下一个报文段首个数据字节序号 (A发501 200, B确认报文段701
    5. 数据偏移: 4b, 数据起始处距离报文段起始处多远(即首部长度. 最长40B
    6. 保留: 6b, 0
    7. 紧急URG: 1b, =1时高优先级数据, 插到最前面
    8. 确认ACK: 1b, =1确认有效, =0确认号无效
    9. 推送PSH: 1b, 应用希望键入命令立即收到对方响应, 接收方尽快交付而不是等填满
    10. 复位RST: 1b TCP连接有严重差错, 必须释放连接重新建立; 拒绝非法报文段/拒绝打开
    11. 同步SYN: 1b 连接建立时同步序号, SYN=1,ACK=0时 此为连接请求报文段,若同意建立连接, 响应报文段中使SYN=1,ACK=1, SYN=1标识是连接请求/连接接受报文
    12. 终止FIN: 1b: 释放连接
    13. 窗口: 2B, 发送本段报文一方的接收窗口
    14. 检验和: 2B, 加伪首部求和
    15. 紧急指针: 2B, URG=1时有意义,指出紧急数据字节数, 窗口0也可发紧急数据
    16. 选项: 可变长, 最长40B
      1. 最大报文段长度MSS: 每个TCO报文段中数据字段最大长度
      2. 窗口扩大选项 3B
      3. 时间戳选项 10B
      4. 选择确认

5.4. TCP可靠传输

5.4.1. 字节为单位的滑动窗口

在这里插入图片描述

  1. A发送窗口根据B接收窗口设置, 但不一定等大; A可能根据拥塞情况减小窗口
  2. 不按序到达, 通常临时存放在接收窗口, 到达后再按序交付
  3. 接收方必须有累积确认, 减小传输开销

5.4.2. 超时重传时间选择

  • 自适应算法: 报文段往返时间RTT 新RTTs = (1-α) x (旧RTTs) + α x (新RTT样本)
  • 超时重传时间RTO=RTTs + 4 x RTTd(RTT偏差加权平均)
    • 每重传一次, 超时重传时间RTO增大些

5.5. 流量控制

  • 流量控制: 让发送速率别太快, 接收方来得及接收
  • 持续计时器: 防止双方等待死锁, 一方接到另一方零窗口, 持续计时器, 到期发零窗口探测报文段
  • 控制发送时机
    • MSS 最大报文段长度: 应用给到TCP缓存, 满此长度发送
    • 发送方的应用指明发送报文 (PUSH操作
    • 发送方计时器到就发
    • Nagle算法: 若发送要逐个字节给到发送缓存, 发送方把第一个数据字节先发送, 后面字节缓存, 收到确认后再把所有数据组装成报文段发送, 继续对后续缓存
    • 糊涂窗口综合征: 接收方缓存满但ap只娶一个字节: 让接收方等一段时间/接收缓存有一半空闲时间

5.6. TCP拥塞控制

  • 拥塞控制: 防止过多数据注入网络, 都不过载, 设计所有主机和路由器
    在这里插入图片描述

  • 拥塞控制方法

    1. 慢开始&拥塞避免: 发送方维持拥塞窗口, 使发送窗口=拥塞窗口, 只要未出现拥塞. 无拥塞增大,拥塞则减小
    2. 慢开始: 由小到大逐渐增大发送窗口,试探拥塞情况
    3. 拥塞避免: 拥塞窗口线性规律缓慢增长
      4. 在这里插入图片描述
    4. 快重传: 接收方每收到失序报文段就立即发出重复确认
    5. 快恢复
      发送方窗口上限值 = Min [rwnd(接收方窗口), 拥塞窗口(cwnd)]
  • 随机早期检测RED: 防止路由器尾部丢弃出现和恢复时, 许多TCP同一时间慢开始, 同一时间恢复使通信量大很多; 拥塞早期征兆时开始丢弃; THmax=2THmin

    1. 平均队列长度<最小门限THmin, 新到分组放入队列排队
    2. 平均队列长度>最大门限THmax, 新到分组丢弃
    3. THmin<平均队列长度<THmax, 按概率p丢弃

在这里插入图片描述

5.7.TCP运输连接管理

  • 运输连接三阶段: 连接建立,数据传送,连接释放
  • 目的
    1. 每一方知道对方存在
    2. 双方协商参数(最大窗口值,是否使用窗口扩大选项,时间戳,服务质量等)
    3. 对运输实体资源(缓存,连接表项目)分配
  • client: 主动发起连接建立的应用
  • server: 被动等待连接建立的app

5.7.1. TCP连接建立: 三次握手

在这里插入图片描述
TCB传输控制模块: client创建后发请求, server创建后进入LISTEN状态

  • A第二次确认: 防止已失效的连接突然又传到B

5.7.2. TCP连接释放: 四次挥手

在这里插入图片描述

  • A最后等待: 防止ack丢失,B重传
  • 保活计时器: 主机故障服务器收不到, 每收到重新设置, 每收到就探测, 无响应则关闭

TCP有限状态机

在这里插入图片描述

  • 粗实线: client变化
  • 粗虚线: server变化
  • 细线: 异常

6. 应用层

6.1. DNS域名系统

  • Domain Name System DNS域名系统: 联机分布式数据库系统, 客户-服务器方式

    • 应用需要解析主机名为IP时, 调用解析程序, 成为DNS的一个客户, 将待解析域名放在DNS请求报文, 成为DNS的一个客户, 将待解析域名放在DNS请求报文, 以UDP方式发给本地域名服务器; 域名服务器查找后返回
  • 域名结构

    • 三级域名.二级域名.顶级域名
    • 标号有英文+数字组成, 每个标号<63字符, 不区分大小写字母; 多个标号组成完整域名<255字符
  • 顶级域名分类

    1. 国家顶级域名nTLD: cn, us, uk
    2. 通用顶级域名gTLD: com, net, org, int, edu, gov, mil…
    3. 基础结构域名(反向域名), 只有一个arpa, 用于反向域名解析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 域名服务器

    • 根域名服务器: 最高层次最重要的域名服务器, 知道所有顶级域名服务器域名和ip, DNS客户向某个根域名服务器查询, 路由器能找到最近的根域名服务器
    • 顶级域名服务器TLD: 管理该顶级域名服务器注册的所有二级域名
    • 权限域名服务器: 负责一个区的域名服务器
    • 本地域名服务器: 主机发出DNS查询请求时, 请求报文发给本地域名服务器
  • 高速缓存: 存放最近查询过的域名和记录, 减轻负荷, 在本地域名服务器/主机内

  • 域名解析过程

    1. 主机向域名服务器采用递归查询: 主机查询本地域名服务器不知道的ip, 本地域名服务器以DNS客户身份向其他根域名服务器发出查询请求报文
    2. 本地域名服务器向根域名服务器查询用迭代查询: 根域名服务器收到查询请求, 给出ip/告知下一步向谁查询,让本地域名服务器继续查询
    3. 在这里插入图片描述

6.2. 文件传送协议

6.2.1. FTP文件传送协议 File Transfer Protocol

  • FTP File Transfer Protocol: 提供交互式访问, 允许客户知名文件类型&格式,允许具有存储权限

    • FTP提供文件传送的基本服务, 使用TCP, 客户-服务器模式
    • 服务器进程: 主进程(接受新请求) + 从属进程(处理单个请求)
    • 主进程工作步骤:
      1. 打开熟知端口21, 使客户端能连接
      2. 等待客户进程发出连接请求
      3. 启动从属进程处理客户进程的请求(处理完就终止,可能还有子进程)
      4. 回到等待状态, 继续接受其他客户进程请求
    • 传输文件时建立并行TCP连接
      1. 控制连接 p21: 会话期间保持打开, 传送请求, 带外传送
      2. 数据连接 p20: 实际传输文件
  • 网络文件系统NFS: 允许应用打开远地文件, 在特定位置上读写, 而不需要复制整个文件

6.2.3. 简单文件传送协议TFTP Trivial File Transfer Protocol

  • 使用客户-服务器方式, 使用UDP, 熟知端口号69
  • 优点:
    1. 可用于UDP环境, 需要程序/文件同时向多机器下载时使用
    2. TFTP代码占内存小, 小型计算机可用
  • 特点
    1. 每次传送数据报文有512B数据, 最后一次可不足
    2. 数据报文按序编号, 1开始
    3. 支持ASCII码/二进制传送
    4. 可对文件读写
    5. 简单首部
  • 发送一个文件块等待确认, 等不到重发, 接收方收不到也重发确认

6.3. 远程终端协议TELNET

  • 终端仿真协议: 将用户击键传到远地主机, 输出返回用户屏幕, 模式类似FTP

6.4. 万维网WWW

  • 超文本: 指向其他文档的链接的文本, 有多个信息源链接成, 数量不受限
  • 超媒体系统: 超文本的扩充, 包含图形,图像,声音,动画等

6.4.1. 统一资源定位符URL

  • URL: 从因特网得到资源位置和访问这些资源的方法
    • <协议>://<主机>:<端口>/<路径>
      • 协议: 用什么协议获取文档, 常用http, https, ftp
      • 主机, 万维网文档在哪个主机
  • 基于HTTP的URL: http://<主机>:<端口>/<路径>
    • 默认80, 指向某个主页

6.4.2. 超文本传输协议HTTP

在这里插入图片描述

  • 每个万维网网点有服务器进程,监听端口80,发现是否有浏览器, 有TCP链接后响应返回页面, 最后释放

  • HTTP客户 - 服务器每次交互由ASCII码串构成的请求和类似通用因特网邮件扩充(MIME-like)响应组成

  • 无连接, 无状态: 利于服务器支持大量并发HTTP请求

  • HTTP/1.0: 每个文档有两倍RTT开销, 每次建立新连接, 负担重

  • HTTP/1.1: 持续链接, 一段时间保持连接

    • 非流水线方式: 客户收到前一个响应才发出下一个请求
    • 流水线方式: 客户收到HTTP响应报文前能接着发送新的请求报文, 服务器可连续发送
  • 代理服务器: 万维网高速缓存, 把最近一些请求-响应缓存在本地, 新请求到达时如有则返回暂存响应, 不用打扰服务器

  • HTTP报文结构

    • 在这里插入图片描述
    • 请求报文: 客户->服务器发请求报文
      1. 开始行: 区分请求/响应
        方法意义
        OPTION请求一些选项的信息
        GET请求读取由URL标志的信息
        HEAD请求读取URL标志的信息的首部
        POST给服务器添加信息
        PUT指明的URL下存储一个文档
        DELETE删除指明的URL所标志的资源
        TRACE环回测试的请求报文
        CONNECT用于代理服务器
      2. 首部行: 说明浏览器,服务器,报文主体信息
      3. 实体主题: 请求无,响应也可能无
    • 响应报文: 服务器到客户的回答
      1. 状态行: HTTP版本,状态码,解释状态码
        1. 1xx:通知信息,请求收到/正在处理
        2. 2xx:成功
        3. 3xx:重定向, 要完成请求有进一步行动
        4. 4xx:客户差错, 请求中有错误的语法/不能完成
        5. 5xx:服务器的差错, 服务器失效无法完成请求
        • 如 202 Accepted 400 Bad Request 404 Not Found
  • Cookie: 服务器和客户之间传递的状态信息, 跟踪用户,

    • A浏览网站, 服务器生成唯一识别码, 在服务器后端数据库产生1项目, 在HTTP响应报文数据库添加Setcookie的首部行
    • A收到响应, 浏览器在Cookie文件加一行, 继续浏览该网站时在HTTP请求报文首部行加入
  • HTML超文本标记语言HTML: 浏览器读取文档后按照标签排版显示

  • XML可扩展标记语言XML: 类似HTML, 但为了传输数据

  • XHTML可扩展超文本标记语言, 更严格的HTML版本

  • CSS层叠样式表: 用于格式化结构化内容, 字体颜色编剧高度宽度等

  • 静态文档: 创作完存放在服务器, 浏览过程不会改变

  • 动态文档: 浏览器访问服务器时才应用程序动态创建, 请求到达时运行另一个应用, 输出HTTP文档, 这是不断变化的, 比如股市,天气等

    • CGI(脚本) 通用网关接口: 任何语言通用,可能要访问其他服务器资源
  • 活动万维网文档:

    • 服务器推送: 服务器不断运行动态文档关联的应用定期更新信息
    • 活动文档: 所有工作转移给浏览器, 服务器返回活动文档程序副本
  • Java可创建和与逆行活动文档, "小应用程序"描述活动文档程序

  • AWT: Java运行环境,高级图形接口软件等

  • 信息检索系统

    • 全文检索搜索: 通过搜索软件在各网站搜索信息,以一定规则建立很大的在线数据库供用户查询
    • 分类目录搜索: 不采集网站任何信息, 利用各网站向搜索引擎提交网站信息的关键词和网站描述, 人工审核编辑后如符合登陆条件, 输入数据库
    • 垂直搜索引擎, 针对特定领域人群需求索索
  • 博客&微博&轻博

6.5. 电子邮件

  • 简单邮件传送协议SMTP

  • 通用因特网邮件扩充MIME: 首部中说明了数据类型(文本,声音,图像,视像)

  • 电子邮件系统: 用户代理,邮件服务器,邮件发送协议(SMTP)&邮件读取协议(POP3)

    • 电子邮件主要组成
    1. 用户代理: 用户与电子邮件系统的接口, 是PC的程序(邮件客户端), 功能包括撰写,显示,处理,通信, 使用发邮件的SMTP协议和读邮件的POP3(都基于TCP)
  • 简单邮件传送协议SMTP: 客户-服务器方式, 14命令21应答

    1. 连接建立, 不使用中间邮件服务器, 直接建立TCP
    2. 邮件传送: RCPT命令:弄清接收方系统做好接收邮件的准备
    3. 连接释放:
    • 缺点
      1. 不能传可执行文件/二进制对象
      2. 限于传送7位ASCII码, 非英文文字不能发
      3. SMTP服务器拒绝超一定长度的邮件
      4. 某些实现未完全按照SMTP标准(回车换行,阶段,多余空格,tab)
  • 用户代理从接收方邮件服务器赌气邮件使用的协议

    • 邮局读取协议POP3: 客户-服务器工作, 用户一旦读取,POP服务器删除(可暂存)
    • 网际报文存取协议IMAP: 客户-服务器方式工作, 客户对服务器远地打开, 邮件默认存在服务器
  • 基于万维网的邮件

    • 在这里插入图片描述
  • 通用因特网邮件扩充MIME: 针对SMTP缺点

    • 在这里插入图片描述
    1. 定义了5个新邮件首部字段, 可包含于原邮件首部, 提供了邮件主体的信息
    2. 定义了邮件内容的格式, 对多媒体电子邮件表示方法标准化
    3. 定义了传送编码, 可对任何内容格式转换, 不被改变
      1. 7位ASCII, 每行<1k字符, 不转换
      2. quoted-printable,适用于所传送数据仅有少量非ASCII码
      3. 任意二进制文件用base64编码
    4. 内容类型: 文本,图像,音频,视频,模型,应用,报文,多部份

6.6. 动态主机配置协议DHCP

  • Dynamic Host Configuration Protocol, 即插即用连网, 允许计算机加入新网络和获取IP不用手工参与, 移到新网络就自动获取
  • 协议配置内容: IP,子网掩码,默认路由器IP地址,域名服务器IP地址
  • 客户-服务器模式, 需要IP的主机在启动时向DHCP服务器广播发送发现报文(目标IP255.255.255.255,源IP0.0.0.0), 只有DHCP服务器对此广播报文回答提供报文, 数据库查找配置,找到返回找不到分配
  • 每个网络至少1DHCP中继代理, 配置了DHCP路由器的IP
    • 在这里插入图片描述
  • 分配的IP时临时的(租用期),由DHCP服务器决定, 发出报文给出或客户请求
  • DHCP客户端口68, DHCP服务器端口67
    • 在这里插入图片描述

6.7. 简单网络管理协议SNMP

  • 网络管理(网管): 对硬件,软件,人力的使用,综合,协调, 以便对网络资源监视,测试,配置,分析,评价,控制
    • 在这里插入图片描述
    • 管理站: 网络管理系统的核心
    • 被管设备: 主机,路由器,打印机等, 要运行应用以便和管理站管理程序通信(网络管理代理程序)
  • 网管协议SNMP: 按客户-服务器方式工作, 被管对象监听管理站的SNMP客户程序的请求
    • 网络正常时统计,配置,测试; 网络故障时差错检测和恢复
    • 委托代理: 提供协议转换和过滤操作,对被管对象进行管理
    • 组成
      1. SNMP: 定义了管理站和代理之间交换的分组格式, 交换分组包含各代理的对象(变量)和状态(值), SNMP负责读取和改变数值
      2. 管理信息结构SMI: 定义了明明对象,定义对象类型的通用规则, 把对象和对象的值进行编码的规则
        1. 规定1.被管对象的明明2.存储被管对象的数据类型有哪些3.网络上传送的管理数据应如何编码
      3. 管理信息库MIB: 创建了命名对象, 规定了类型
  • 使用UDP, 开销小, 服务器端port161, 客户端port162
  • SNMP报文: 版本+首部+安全参数+数据部分
    • 读: Get报文检测各被管对象状态
    • 写: Set报文改变各被管对象状态
    • 在这里插入图片描述

6.8. 应用跨网络通信

  • 套接字接口socket, 内核的一部分
    • 在这里插入图片描述
    • 应用要使用网络通信时, 首先发出socket系统调用, 请求创建套接字(请求操作系统把网络通信所需系统资源(空间,CPU时间,带宽)分配给应用), 返回套接字描述符; 之后应用使用该套接字描述符操作; 用完后close回收描述符的所有资源
    • 在这里插入图片描述
  • 通信过程 在这里插入图片描述
    • 连接建立
      • 绑定bind: 将熟知端口号和本地IP填写到已创建套接字/内核自动分配
      • 收听listen: 被动方式随时接受客户服务请求 (UDP不使用)
      • 接受acept: 将远地客户进程发的连接请求提取, 并发方式(新建子进程和新套接字) (UDP不使用)
        • 在这里插入图片描述
      • connect: 客户调用connect和远地建立连接
    • 数据传送
      • 客户和服务器使用send发, recv收
    • 连接释放
      • close释放连接,撤销套接字

ref

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值