网络层
网络层的功能
-
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
-
路由选择与分组转发
- 异构网络互联
- 拥塞控制
- 差错检测(仅对IP数据报首部)
TCP/IP协议栈

- 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,问如何分片,并计算片偏移?
- 数据报3820B = 首部20B+数据,所以数据部分为3800B
- 分片a 1420B = 首部20B+数据1400B,(MF,DF)=(1,0)。由于从0B开始分片,所以片偏移=0
- 分片b 1420B = 首部20B+数据1400B,(MF,DF)=(1,0)。由于从1400B开始分片,所以片偏移=1400/8=175
- 分片c 1020B = 首部20B+数据1000B,(MF,DF)=(0,0)。由于从2800B开始分片,所以片偏移=2800/8=350
2. IP地址(基于ipv4协议)
-
发展阶段:分类IP(有分类编址)->划分子网(加入子网号)->构成超网(无分类编址)
-
IP分类

-
本网的特殊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的内容
- A广播发送一个带有(B主机IP,A主机IP,A主机MAC)的ARP请求,但只有B会接收请求,使得B将A的映射加入ARP cache中
- B单播发送一个带有(B主机IP,B主机MAC)的ARP响应,使得A将B的映射加入ARP cache中
- 此时==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响应报文