Skip to content

3 网络层

网络层服务

  • 面向连接虚电路(Virtual circuit)
  • 无连接的数据报(Datagram) 虚电路的缺点:路由器失效,导致经过的虚电路终止

IP

IPv4分组

王道P139

  • 首部长度固定(20B)
  1. IP头部 20Byte
  2. 每个分片的 数据长度 必须为 8 的倍数 按照最大帧长进行分片,512-8-20=484字节,最接近这一数字且为8的倍数的数值为480. 所以数据长度480。每一段前面都要加上IP头部,480+20=500
  3. Offset=数据长度/8 所以是480/8=60
  4. 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,后面同理

Comments