3 网络层
网络层服务
- 面向连接虚电路(Virtual circuit)
- 无连接的数据报(Datagram)
虚电路的缺点:路由器失效,导致经过的虚电路终止
IP
IPv4分组
王道P139
- 首部长度固定(20B)
- IP头部 20Byte
- 每个分片的 数据长度 必须为 8 的倍数 按照最大帧长进行分片,512-8-20=484字节,最接近这一数字且为8的倍数的数值为480. 所以数据长度480。每一段前面都要加上IP头部,480+20=500
- Offset=数据长度/8 所以是480/8=60
- MF表示这段后面是否有其他分段
第二段,TCP头部+数据总共920, 之前已经发了480,还剩440. 加上IP头部460
IP地址
- 主机号全为0表示网络本身 如202.98.174.0 (C类)
- 主机号全为1表示广播地址 如202.98.174.255
- 127.x.x.x 表示任意主机本身(回环地址):
- 0.0.0.0表示本网络上的本主机:
0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。服务器不指定在哪个网卡上监听时,也使用0.0.0.0,这个时候监听本机中所有IP的端口。 - 255.255.255.255表示整个TCP/IP网络的广播地址
NAT
私有IP地址 允许被LAN重复使用,连接外网的时候,用NAT路由器转换为公有IP地址
A类: 10.0.0.0 10.255.255.255 B类: 172.16.0.0 172.31.255.255 C类:192.168.0.0 192.268.255.255
普通路由器仅工作在网络层,NAT路由器需要查看和转发传输层的端口号
子网划分
每个子网的可用IP地址数 \(2^n-2\)
- n是主机号长度=32-子网号长度-网络号长度
- 全0和全1保留
Example
A network on the Internet has a subnet mask of 255.255.240.0. What is the maximum number of address can be used for a single host? 240 前4位为1, 所以子网掩码20位,剩下12位 \(2^{12}-1=4094\)
Example
A router has two IP interfaces, one IP address is 192.168.11.25/24, and the other IP address is __ (assume use same subnet mask). A 192.168.13.0 B 192.168.11.26 C 192.168.13.255 D 192.168.13.26 路由器的两个接口的IP应该属于不同子网,而IP地址不可能全0或全1,故选D
CIDR
消除A,B,C类地址。根据需要的地址数,决定主机号的位数。
128.14.32.5/20 代表网络前缀20位,主机号12位, 2048-2个地址
Example
Q.A router has the following (CIDR) entries in its routing table:
| Address/mask | Next hop |
|---|---|
| 135.46.56.0/22 | 211.90.0.1 |
| 135.46.60.0/22 | 159.48.0.1 |
| 192.53.40.0/23 | 192.188.0.1 |
| default | 220.20.0.1 |
For each of the following IP addresses, what does the router do if a packet with that address arrives?
Write correct IP address of next hop:
| No. | IP | Next hop |
|---|---|---|
| (a) | 135.46.63.10 | 159 |
| (b) | 135.46.57.14 | 211 |
| (c) | 135.46.52.2 | 220 |
| (d) | 192.53.40.7 | 192 |
| (e) | 192.53.56.7 | 220 |
Example

王道P147 注意是按顺序分配的,在前一个的结束IP之后,找到2的次方作为起始地址. 然后确认子网掩码长度,结束地址
Example
What is the valid host range for subnet 172.16.10.16, mask 255.255.255.240? 最后4位是网络号
ARP
IPV6
彻底解决IP地址不足的问题
Which is not a legal IPV6 address? - 8300::1382:4567:89AB:CDEF
- 1382:4567:89AB:CDEF
- ::211.31.20.46
- 2A43:0000:0000:0000:0123:4567:89AB:CDEF
IP分片

IP层数据=TCP数据900+TCP头部20=920
A->R1 IP层数据长度最大值 MTU=1024-14-20=990 (记得减去IP头部) 所以IP层不需要分片 总长度=920+20=940
R1->R2 MTU=512-8-20=484. 但是要向下到8的倍数, 所以packet 1 数据长度480,总长度480+20=500. packet2数据长度920-480=440, 总长度460 片偏移480/8=60
R2->B MTU=512-12-20=480,后面同理
