网络层

网络层的功能

  • 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

  • 路由选择与分组转发

  • 异构网络互联
  • 拥塞控制
  • 差错检测(仅对IP数据报首部)

TCP/IP协议栈

image-20250102195857807

  • IP数据报 = 首部(固定部分+可变部分) + 数据部分
  • 重要的固定部分
  • 首部长度:4B为单位。由于首部长度一般为20B(不够时有填充部分),所以值常为5
  • 总长度:1B为单位。值=首部长+数据长;若数据报进行了分片,则值=首部总长+分片数据总长
  • 协议:TCP为6,UDP为17
  • 首部检验和
  • 源地址、目的地址
  • 标识:一个数据报只有一个标识,它所有分片的标识相同,使得可以正确组装IP数据报
  • 标志:MF=还有分片,DF=不能分片
  • 片偏移以8B为单位。
  • 重要的可变部分
  • 填充部分:全0
1. IP数据包分片
  • 最大传送单元MTU:==链路层中MAC帧的数据部分==长度,即IP数据报长度(首部+数据部分),以太网中MTU=1500B
  • 当IP数据报支持分片(DF=0),且数据报长度>1500B时,则可以分片
  • 片偏移计算:假设此时MTU=1420B(题目没说就默认IP数据报首部为20B)
  • 若此时有一个数据报,总长度=3820B>MTU,问如何分片,并计算片偏移?
    1. 数据报3820B = 首部20B+数据,所以数据部分为3800B
    2. 分片a 1420B = 首部20B+数据1400B,(MF,DF)=(1,0)。由于从0B开始分片,所以片偏移=0
    3. 分片b 1420B = 首部20B+数据1400B,(MF,DF)=(1,0)。由于从1400B开始分片,所以片偏移=1400/8=175
    4. 分片c 1020B = 首部20B+数据1000B,(MF,DF)=(0,0)。由于从2800B开始分片,所以片偏移=2800/8=350
2. IP地址(基于ipv4协议)
  • 发展阶段:分类IP(有分类编址)->划分子网(加入子网号)->构成超网(无分类编址)

  • IP分类

image-20250103122849380

  • 本网的特殊IP地址:0代表全0,1代表全1

    • (网络号,主机号) = (0,0),本网的地址,即默认网关
    • (网络号,主机号) = (0,特定值),本网的特定主机地址(路由器转发匹配不通过时会进行匹配)
    • (网络号,主机号) = (1,1),本网的广播地址
  • 特定网络的特殊IP地址:0代表全0,1代表全1

    • (网络号,主机号) = (特定值,0),特定网络的地址
    • (网络号,主机号) = (特定值,1),特定网络的广播地址
  • 本机的特殊IP地址:0代表全0,1代表全1

    • (网络号,主机号) = (127,非0非1),本机环回地址
  • 局域网内的本地IP地址

  • A类:10开头
  • B类:172开头
  • C类:192开头
  • 由于本地IP地址在广域网中会重复,所以普通路由器一律不转发这类IP地址
  • 本地IP地址访问广域网需要路由器使用NAT技术,它至少有一个外部IP地址用于转换。
  • NAT技术:略

  • 划分子网与子网掩码:略

  • 无分类编址CIDR与构造超网

  • 取消分类和子网号,而是使用网络前缀:X.X.X.X/N
  • 将多个子网聚合为大的子网,叫做:构造超网或路由聚合
    • 方法:缩小网络前缀,直到刚好包含这几个子网
4. ARP协议和RARP协议
  • ARP:每台机器使用一个ARP高速缓存,建立IP地址->MAC地址的映射。
  • 若主机A向主机B发送一个IP数据报,而此时A的ARP cache没有关于B的内容
    1. A广播发送一个带有(B主机IP,A主机IP,A主机MAC)的ARP请求,但只有B会接收请求,使得B将A的映射加入ARP cache中
    2. B单播发送一个带有(B主机IP,B主机MAC)的ARP响应,使得A将B的映射加入ARP cache中
    3. 此时==A和B均拥有==对方的ARP映射
  • RARP:建立MAC地址->IP地址的映射,已经被DHCP协议所包含,此处略。
5.DHCP协议
  • 见应用层-DHCP协议
6. ICMP协议和IGMP协议
  • ICMP:略
  • 单播、多播、广播:略
  • IGMP:略

路由选择与分组转发

1. 分组转发
  • 目的:根据路由表创建转发表,通过转发表得到目标IP地址;然后结合ARP cache得到目标MAC地址,最终放入数据报中。

  • 转发表:匹配时使用,其内容为(目标的IP地址,下一跳路由器的IP地址)

  • 基于终点的转发
  • 直接交付:如果源与目的主机在一个网络下,那么就和路由器没关系,源主机直接转发给目的主机即可。

    • 查找方式:目的主机IP & 本网络子网掩码 == 本网络的网络号
    • 匹配交付:

    • 网络号时期(分类IP):遍历路由表的每一项,查找:目的主机IP & 网络A的子网掩码 == 网络A的网络号

    • 网络前缀时期(CIDR):按上一种匹配方式可能会匹配到多个结果,这时需要基于最长前缀匹配,因为前缀越长则网络范围越小;同时可以使用二叉线索树来优化查找。

    • 主机路由
    • 默认路由
    • 当匹配到下一跳IP后,还需要使用ARP cache转换成MAC地址,才能开始转发
2. 路由选择
  • 目的:确定最优路由,从而构建路由表

  • 自治系统AS:一个AS中的所有路由器必须连通

  • ==路由选择协议==概述

  • 不分层次(不基于AS)

  • 静态路由算法:手动维护路由表

  • 动态路由算法

    • 全局:OSPF
    • 局部:RIP
  • 分层次的协议(基于AS)

  • 内部网关协议(AS内):IGP

  • 外部网关协议(AS间):EGP

3. OSPF与RIP概述
  • OSPF:略

  • RIP:基于距离向量,最大优点是简单

  • 在路由表中添加“距离”项目,维护从自己到其他每一个目的网络的最短距离
  • RIP报文内容:(目的网络地址,距离,下一跳地址)
  • 每30s,路由器向相邻路由器发送RIP报文,其他路由器把RIP报文的距离+1,然后直接覆盖进路由表中
    • 如果RIP报文的距离比路由表中的长,则不覆盖
  • 若180s后还没有收到相邻路由器X的RIP,则把指向X的RIP报文中的距离,设为16(不可达)
4. IGP与EGP概述
  • IGP:略
  • EGP:略

网络层设备

  • 路由器

传输层

传输层的功能

  • 进程与进程的通信
  • 复用与分用
  • 复用:应用层的多个应用,都可以通过传输层的多个端口,再传输到一个网络层中。
  • 分用:一个网络层发送数据后,通过传输层的多个端口,传输到不同应用中。
  • 差错检测(对TCP/UDP报文部分,即对IP数据报的数据部分)

端口

  • 端口号
  • 服务端:熟知端口号(0~1023);登记端口号
  • 客户端

  • 熟知端口号记忆

  • TELNET:23

  • DNS:53

  • FTP:21 TFTP:69
  • SMTP:25 POP3:110
  • HTTP:80 HTTPS:443

  • DHCP(服务端):67 DHCP(客户端):68

  • SNMP:161 SNMP(trap):162

两大协议

1. TCP协议
  • 特点:可靠,面向连接,全双工通信,面向字节流

  • 连接管理

  • 三报文握手(建立连接)

  • 四报文握手(关闭连接)

  • 可靠传输

  • 累积确认、捎带确认与选择确认

  • 超时重传RTT、RTTs、RTTd、RTO

  • 流量控制

  • 拥塞控制

  • 发送窗口swnd = Min(接收窗口,拥塞窗口cwnd)

  • 慢开始(cwnd<=ssthresh):每一个传输轮次后,cwnd+=cwnd。

  • 拥塞避免(cwnd>=ssthresh):每一个传输轮次后,cwnd+=1。

  • 慢/快重传指明了超时的时间点

    • ”慢重传“(超时计时器超时):超时计时器超时后,才开始重传。
    • 快重传(3-ACK):一旦收到连续的3个重复确认,则一定有丢失,立即重传。
  • 慢/快恢复指明了超时之后,怎么去设置ssthresh和cwnd

    • ”慢恢复“(超时计时器超时):ssthresh/=2,cwnd=1。

    • 快恢复(3-ACK):ssthresh/=2,cwnd=ssthresh。

  • 过程1:初始->慢开始->拥塞避免==(超时)=>“慢重传”+”慢恢复“==>慢开始(因为此时cnwd<ssthresh)

  • 过程2:慢开始->拥塞避免==(3-ACK)=>快重传+快恢复==>拥塞避免(因为此时cnwd=ssthresh)
2. UDP协议
  • 特点:不可靠,无连接,时延小,适用于小文件
  • 可靠传输

应用层

网络应用模型

1. C/S
2. P2P

应用程序

1. DNS(域名解析系统)
  • 域名:根域名、顶级域名、一级域名...
  • DNS服务器:根域名、顶级域名、权限域名、本地域名服务器
  • 域名解析的两种方式:
  • 递归查询(靠别人)
  • 迭代查询(靠自己)
2. FTP(文件传输协议)
  • FTP过程
  • FTP客户端<=>FTP服务器端
  • 控制进程:端口21,会话时一直保持
  • 数据传输进程:默认端口20,传输数据时才开启。
    • 主动模式时,端口使用TCP 20端口
    • 被动模式时,端口由C和S端自行协商,使用熟知端口号(即端口号>1024)
  • FTP传输模式:文本模式、二进制传输模式

  • 两种协议:FTP协议、TFTP协议(简单文件传输协议)

  • 都基于C/S、使用TCP
3. Email
  • Email = 信封 + 内容(首部+主体)
  • Email过程
  • 发送:用户代理客户端A(STMP客户)=>邮件服务器A(STMP服务器)
  • 传输:邮件服务器A(STMP客户)=>邮件服务器B(STMP服务器)
  • 接收:邮件服务器B(POP3服务器)=>用户代理客户端B(POP3客户)
  • 四种协议:STMP协议(发,简单邮件传送协议)、POP3协议(收,邮局协议)、IMAP协议(收,网际报文存取协议)、MIME协议(编码,通用因特网邮件扩充协议)
  • 都基于C/S、使用TCP
  • STMP端口:25
  • POP3端口:110
4. WWW
  • URL
  • WWW过程:
  • 浏览器<=>WWW服务器端
  • 一种协议:HTTP协议(超文本传输协议)
  • 基于C/S、使用TCP==但是,HTTP协议无需建立连接==
  • HTTP端口:80
  • HTTP请求报文、HTTP响应报文
5. DHCP(动态主机配置协议)
6. SNMP(简单网络管理协议)