计算机网络和因特网

各种工

  • 单工:单信道,单向传输

  • 半双工:单信道,异时双向传输

  • 双工:双信道,同时双向传输

网络交换方式

  • 电路交换

  • 分组交换

排队时延:在队列中,当分组在链路上等待传输时经受的时延。

协议

概念

定义两个或多个通信实体间交换的报文格式和次序,以及报文发送和/或接收一条报文或其他事件所采取的动作。

分层

原因:简单、容易学习、便于讨论。模块化的设计便于讨论,也简化了维护和升级,具体表现在某层次的服务对系统的其他层次透明,且某个层次改变后,只需改变与其相邻层次的接口。

层名 数据名

物理层

比特流

链路层

网络层

数据报

传输层

报文段

应用层

报文

常用协议及其端口

协议 端口

FTP

21

SMTP

25

DNS

53

HTTP

80

应用层

RTT

一个短分组从客户到服务器再返回客户的时间。包括分组传播时延、分组在中间路由器和交换机上的排队时延及分组处理时延。

HTTP 条件 GET

作用

解决缓存陈旧

过程

  1. 代理缓存器代替浏览器,向 Web 服务器请求某对象,Web 服务器向代理缓存器返回包含该对象的响应报文,其中包含Last-Modified

  2. 缓存器将该对象转发给浏览器,并在本地存储该对象和最后修改日期

  3. 一定日期后,另一用户请求同对象,因为服务器上的该对象可能已修改而缓存仍陈旧,因此对服务器发起条件 GET(包含 If-Modified-Since,值等于 Last-Modified)

  4. 如果没有修改,服务器发回304状态码,缓存器直接将缓存发回浏览器;若已修改,则再次缓存

SMTP 与 HTTP 比较

相同

  1. 都用于从一台主机向另一主机传送文件

  2. 进行文件传送时,持续的 HTTP 和 SMTP 都使用持续连接

不同

  1. HTTP 主要是拉协议,SMTP 基本上是推协议

  2. SMTP 的报文使用 7 比特 ASCII 码格式,HTTP 没有该限制

  3. 处理超文本文档时,HTTP 把每个对象封装到自身的响应报文中,SMTP 把所有报文对象封装到一个报文中

HTTP 工作流程

DNS 工作流程

HTTP、DNS、IP 综合工作

传输层

复用与分解

在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层。这称为多路复用。

将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。

UDP、TCP 的复用及分解

UDP

复用:源主机运输层创建运输层报文段,其中包括应用数据、源端口号、目的端口号和其他两个值,然后将其传递到网络层,网络层将其封装入 IP 数据报,尽力而为地交付给目的主机

分解:目的主机根据报文段中的目的端口号将其交付到相应套接字的进程,套接字由二元组(目的 IP 地址,目的端口号)标识,因此即使两个报文段的源 IP 地址和源端口号不同,也会交付给同一套接字

TCP

复用:同 UDP

分解:目的主机根据报文段中的目的端口号将其交付到相应套接字的进程,套接字由四元组(源 IP 地址,源端口号,目的 IP 地址,目的端口号)标识,因此两个报文段的源 IP 地址和源端口号不同,就会交付给不同套接字

TCP 首部字段

  1. 源端口号和目的端口号

  2. 序号

  3. 确认号

  4. 首部长度、标志、接收窗口

  5. 因特网检验和、紧急数据指针

  6. 选项

TCP 三次握手、四次挥手

TCP 的流量控制、拥塞控制

  • 流量控制:首部定义了窗口大小,接收方明确通过首部窗口字段发送接收窗口大小,从而限制发送方发送窗口的最大值,而发送方保证发送窗口大小不超过对方发送的接收窗口的大小

  • 拥塞控制:第一、使用拥塞窗口cwnd控制发送窗口大小,发送窗口上限值=MIN(rwnd,cwnd);第二、分组超时则认为拥塞,反之收到确认则认为网络未拥塞;第三、拥塞则少发(cwnd减小),未拥塞则多发(cwnd增大);第四、网络未知的情况下,cwnd从最小开始,收到确认后cwnd逐渐增大;第五、为提高效率,开始增加速度快,到了一定阶段后增速变慢

网络层

转发表的使用

IP

首部

  • 版本

  • 首部长度

  • 服务类型

  • 数据报长度

  • 标识、标志、片偏移

  • 寿命

  • 协议

  • 首部检验和

  • 源和目的 IP 地址

  • 选项

标准大小为20字节。

分类

类别 网络号位数 主机号位数 网络个数 主机个数 地址范围

A 类

8

24

27-2

224-2

1.0.0.0——126.255.255.255

B 类

16

16

214

216-2

128.0.0.0——191.255.255.255

C 类

32

8

221

28-2

192.0.0.0——223.255.255.255

D 类

224.0.0.0——239.255.255.255

特殊 IP

名称 地址 说明

广播地址

主机号全1

网络地址

主机号全0

内网地址(私有地址)

10.0.0.0——10.255.255.255,172.16.0.0——172.31.255.255,192.168.0.0——192.168.255.255

内部网络使用的地址,不能用于公网

链路本地地址

169.254.0.0——169.254.255.255

无 IP 地址时操作系统临时分配的 IP 地址

本地环回地址

127.0.0.0——127.255.255.255

本地链路广播地址

255.255.255.255

分片

原因

IP 数据报需封装在链路层帧中以从一个路由器传输到下一个路由器,而链路层协议的 MTU 限制了其大小。因此只能通过分片封装在不同的链路层帧中,使其小于链路层协议的 MTU。

实现
  1. 将 IP 数据报中的数据分片成两个或更多个较小的 IP 数据报,用单独的链路层帧将其封装, 再向数据链路上发送这些帧

  2. 当一台目的主机从相同源收到一系列数据报时,根据数据报首部中的标识号是否相同,判断哪些数据报是一个大数据报的片。又根据标志是否为0,来确定是否对原始数据报已接收完毕。最后根据偏移字段来重新按序组装片为原始数据报

IP 地址计算

ICMP

作用

用于主机和路由器间彼此沟通网络层的消息。最典型用途是差错报告,除此之外还有:

  • 目标地址不可达

  • 网络拥塞

  • TTL 到期

  • IP 分组检验和失败

  • …​

ping

ping 发送一个 ICMP 类型8编码0的报文到指定主机。看到回显请求后,目的主机发回一个类型0编码0的 ICMP 回显回答。用于确认是否能与目的主机连通。

链路状态路由选择算法、距离向量路由选择算法

链路状态路由选择算法

这是一种全局式路由选择算法

距离向量路由选择算法

比较

相同

都采用互补的方法来解决路由选择计算问题。

区别
  • LS 算法:每个结点与所有其他结点交谈,提供其直接相连链路的费用

  • DV 算法:每个结点与直接相连邻居交谈,提供自己到其他所有结点的最低费用估计

RIP

RIP 使用距离向量路由算法,用 UDP 传输(端口 520),以固定时间间隔(30s)交换路由信息。RIP 将距离定义为跳数,每经过一个路由器跳数加1,最大值为15(16则表示不可到达)。使用毒性逆转(向某条路由对应的出接口通告该路由为无穷大路由)等方法缓解环路影响。

RIP 1.0、RIP 2.0 的比较

RIP 1.0 通过广播通告路由信息,不支持验证和 CIDR。

RIP 2.0 通过组播通告路由信息,支持验证和 CIDR。

OSPF

链路层

ARP