计网笔记:第四部分-网络层
Chap.19.逻辑寻址
逻辑层通信的实现基础。TCP/IP实现了这个全球寻址方案。IP地址分为IPV4和IPV6两种,后者是前者的升级版本,目前前者在主要使用。
IPV4地址有$2^{32}$个,因为它的长度是32位,也就是四个字节。下面主要讨论的是IPV4。
IPV4地址
- 32位长
- 唯一且通用
- 地址空间是$2^{32}$
- 标记法有二进制标记法,和十进制点分标记法(常用每位范围从0-255)
分类寻址
这种方法将地址空间分为ABCDE这5类。ip地址开头4位就能确定地址的类。
前4位 | 第一个字节 |
---|---|
0000 | 0-127 |
1000 | 128-191 |
1100 | 192-223 |
1110 | 224-239 |
1111 | 240-255 |
Chap.23.UDP、TCP和SCTP
这三个是传输层的协议。UDP较为简单,其次是复杂的TCP协议。最后的SCTP仅了解。
进程到进程的传递
传输层负责的是进程到进程的传递。
客户/服务器模式
在web2最常用的就是C/S模式。为了传输时的标识,需要确定本地/远程的主机和进程。
寻址:传输层需要端口号来标识进程ID,服务器和客户端都是如此。不过前者规定比较严格,后者可以随机选择一个。这一般是由IANA统一管理的。
套接字地址:将IP和端口号结合起来就得到了套接字地址(socket address)。传输层协议需要客户套接字地址和服务器套接字地址。这四条信息是IP头部和传输层协议头部的组成部分。IP头包含IP地址,UDP/TCP头包含端口号。
复用/分离
寻址机制可以通过传输层进行复用和分离。也就是,同时刻选择一个待发送的分组进行发送(复用),同时刻选择一个待接受的进程分发分组。
无连接/面向连接服务
前者对应UDP,分组从一方发送给另一方,不需要建立/释放连接,分组无编号。它们没有确认过程,可能被延迟、丢失、无序到达
- 例题:最大窗口64kB,报文的段平均往返时间是20ms,则最大吞吐量是?
$64\times1024\times8(bit)\div(20\times10^3)s=26.21Mbit/s$
- 例题:TCP的MSS是128B,报文的序号长度是8位,报文段在网络的生存时间是30s,计算TCP链接能达到的最大速率。
30s内不能有重复序号,因此30s最多有$2^8=256$个段。因此结果是$1024bits\times256segments\div30s=8738bit/s$
Chap.24.拥塞控制
它和服务质量是正相关的。
拥塞控制
思想是,利用窗口控制拥塞。窗口有两个,接受/发送窗口
策略有如下几个:
- 慢启动:先以一个MSS(Maximum Segment Size)慢速启动,如果重传之前收到一个确认,则指数(1,2,4,8,…)增加发送速度,直到收到的确认消息数和发送速率不匹配为止.
- 加性增加:和上面类似,不过增长速率是线性增长(1,2,3,…)。同时,如果计时器超时(严重拥塞),则作出强烈反应:设置阈值为当前拥塞状态的一半、设置cwnd为1个段的大小、进入慢启动阶段。如果接受到三个连续的ACK,则说明轻度拥塞,一个段可能丢失,其他段可能到达。这时,称为快速重传/快速恢复:设置阈值为拥塞窗口的一半、设置阈值为cwnd一半、进入拥塞避免状态。
一般,拥塞控制综合这两种启动方式。开始时慢启动,之后达到一个阈值后开始加性增加,并按照丢包严重程度来重新确定阈值。阈值的确定是取下一次计算得的发送速率和接受到对面ACK时得到的对方缓存空间的最小值。
4.SCTP-流控传输协议(Stream Control Transmission Protocol)
它允许每个端口有多个IP地址。协议构成方面,了解即可。