计算机网络和因特网
各种工
-
单工:单信道,单向传输
-
半双工:单信道,异时双向传输
-
双工:双信道,同时双向传输
网络交换方式
-
电路交换
-
分组交换
排队时延:在队列中,当分组在链路上等待传输时经受的时延。
协议
概念
定义两个或多个通信实体间交换的报文格式和次序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
分层
原因:简单、容易学习、便于讨论。模块化的设计便于讨论,也简化了维护和升级,具体表现在某层次的服务对系统的其他层次透明,且某个层次改变后,只需改变与其相邻层次的接口。
层名 | 数据名 |
---|---|
物理层 |
比特流 |
链路层 |
帧 |
网络层 |
数据报 |
传输层 |
报文段 |
应用层 |
报文 |
常用协议及其端口
协议 | 端口 |
---|---|
FTP |
21 |
SMTP |
25 |
DNS |
53 |
HTTP |
80 |
应用层
RTT
一个短分组从客户到服务器再返回客户的时间。包括分组传播时延、分组在中间路由器和交换机上的排队时延及分组处理时延。
HTTP 条件 GET
作用
解决缓存陈旧
过程
-
代理缓存器代替浏览器,向 Web 服务器请求某对象,Web 服务器向代理缓存器返回包含该对象的响应报文,其中包含Last-Modified
-
缓存器将该对象转发给浏览器,并在本地存储该对象和最后修改日期
-
一定日期后,另一用户请求同对象,因为服务器上的该对象可能已修改而缓存仍陈旧,因此对服务器发起条件 GET(包含 If-Modified-Since,值等于 Last-Modified)
-
如果没有修改,服务器发回304状态码,缓存器直接将缓存发回浏览器;若已修改,则再次缓存
SMTP 与 HTTP 比较
相同
-
都用于从一台主机向另一主机传送文件
-
进行文件传送时,持续的 HTTP 和 SMTP 都使用持续连接
不同
-
HTTP 主要是拉协议,SMTP 基本上是推协议
-
SMTP 的报文使用 7 比特 ASCII 码格式,HTTP 没有该限制
-
处理超文本文档时,HTTP 把每个对象封装到自身的响应报文中,SMTP 把所有报文对象封装到一个报文中
HTTP 工作流程
DNS 工作流程
HTTP、DNS、IP 综合工作
传输层
复用与分解
在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层。这称为多路复用。
将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
UDP、TCP 的复用及分解
UDP
复用:源主机运输层创建运输层报文段,其中包括应用数据、源端口号、目的端口号和其他两个值,然后将其传递到网络层,网络层将其封装入 IP 数据报,尽力而为地交付给目的主机
分解:目的主机根据报文段中的目的端口号将其交付到相应套接字的进程,套接字由二元组(目的 IP 地址,目的端口号)标识,因此即使两个报文段的源 IP 地址和源端口号不同,也会交付给同一套接字
TCP
复用:同 UDP
分解:目的主机根据报文段中的目的端口号将其交付到相应套接字的进程,套接字由四元组(源 IP 地址,源端口号,目的 IP 地址,目的端口号)标识,因此两个报文段的源 IP 地址和源端口号不同,就会交付给不同套接字
TCP 首部字段
-
源端口号和目的端口号
-
序号
-
确认号
-
首部长度、标志、接收窗口
-
因特网检验和、紧急数据指针
-
选项
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。
实现
-
将 IP 数据报中的数据分片成两个或更多个较小的 IP 数据报,用单独的链路层帧将其封装, 再向数据链路上发送这些帧
-
当一台目的主机从相同源收到一系列数据报时,根据数据报首部中的标识号是否相同,判断哪些数据报是一个大数据报的片。又根据标志是否为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。