Internet协议原理
文章目录
- 考试说明
- Chapter 0: 本书介绍
- Chapter 1: Introduction And Overview 【第1章:引言与概述】
- Chapter 2: Overview Of Underlying Network Technologies 【第2章:底层网络技术的回顾】
- Chapter 3: Internetworking Concept And Architectural Model 【第3章:网际互连的概念和结构模型】
- Chapter 4: Protocol Layering 【第10章:协议的分层】
- Chapter 5: Internet Addressing 【第4章:分类的因特网地址】
- 1.IP的特点
- 2.分类IP地址
- 3.特殊IP地址
- 4.私有IP地址
- 5.子网划分
- (1)定长子网划分
- (2)变长子网划分 (不定长子网划分)
- 6.无分类编址 CIDR:斜杠记法
- (1)概念
- (2)定义
- (3)应用
- 7.IPv6
- (1)概念
- (2)表示方法
- (3)Link-Local Addresses
- (4)IPv6的邻居发现协议 (NDP)
- Chapter 6: Mapping Internet Addresses To Physical Addresses (ARP) 【第5章:因特网地址到物理地址的映射 ARP】
- 1.ARP协议的工作过程
- (1)同一网络内的两主机通信
- (2)不同网络内的两主机通信
- Chapter 7: Internet Protocol: Connectionless Datagram Delivery (IPv4, IPv6) 【第6章:网际协议:无连接数据报交付 (IPV4) 】
- 1.IP数据报的首部格式
- 2.MTU
- (1)概念
- (2)PMTU
- 3.IP分片
- Chapter 8: Internet Protocol: Forwarding IP Datagrams 【第7章:网际协议:转发IP数据报】
- 1.IP转发(IP forwarding)
- 2.IP转发算法(IP Forwarding Algorithm):
- 3.路由
- (1)路由表
- (2)转发表
- (3)默认路由
- (4)特定主机路由(Host-Specific Routes)
- Chapter 9 Internet Protocol: Error And Control Messages (ICMP) 【第8章:网际协议:差错与控制报文 ICMP】
- 1.概念
- 2.ICMP差错报文(5种)
- 3.ICMP查询报文(4种)
- 4.ICMP的两级封装
- 5.ICMP报文类型
- 6.ICMP的应用
- Chapter 10:User Datagram Protocol (UDP) 【第11章:用户数据报协议 (UDP)】
- 1.概念
- 2.UDP用户数据报的首部格式
- Chapter 11: Reliable Stream Transport Service (TCP) 【第12章:可靠的流运输服务(TCP)】
- 1.停等协议、滑动窗口
- 2.TCP报文段的格式
- (1)TCP报文的首部字段格式
- (2)六个标志位 Code bits
- (3)其他选项
- (4)伪首部 (Pseudo Header,伪头)
- ①定义
- ②伪首部的目的
- ③IPv4/IPv6的伪首部的组成:源IP、目标IP、报文长度
- ④伪首部的优缺点
- (5)带内通信(In-Band)、带外通信(Out-of-Band)
- (6)MSS、MTU
- 3.累计确认机制、延迟ACK
- 4.超时重传机制
- 5.退避算法 (Backoff Algorithm)
- 6.TCP拥塞控制
- (1)概念
- (2)慢启动、拥塞避免
- ①加法增加
- ②乘法减少
- ③慢开始、拥塞避免
- <1>慢启动:超时
- <2>拥塞避免:两种算法
- 1)TCP Tahoe算法
- 2)TCP Reno算法
- 3)TCP Las Vegas算法
- (3)快重传、快恢复
- (4)ECN (Explicit Congestion Notification,显式拥塞通知)
- ①定义
- ②ECN 的工作原理
- ③ECN的优势
- 7.路由器的排队策略 (Queuing Policy)
- (1)尾部丢包(Tail-Drop)策略
- (2)主动队列管理 (AQM)
- 8.TCP的连接建立 (三次握手)
- 9.TCP连接断开 (四次挥手)
- 10.TCP状态转换图
- 11.TCP常用端口号
- Chapter 12: Routing Architecture: Cores, Peers, And Algorithms【第13章:路由选择:核心网络、对等网络与算法】
- 0.AS分类:三种路由协议的对比
- 1.核心路由器 (Core Routers)
- 2.自动路由传播 & 转发信息库(FIB,forwarding information base)
- 3.距离-向量算法 (Distance Vector Routing)
- 4.链路状态路由 / 最短路径优先
- 5.BGP协议
- Chapter 13: Routing Among Autonomous Systems (BGP)【第14章:外部网关协议BGP:自治系统之间的路由、对等网络间的路由选择】
- 1.自治系统
- 2.BGP协议
- Chapter 14: Routing Within An Autonomous System (RIP, RIPng, OSPF, IS-IS) 【第15章:内部网关协议:RIP和OSPF (自治系统内的路由选择) 】
- 1.RIP协议:仅限小型互联网环境
- (1)RIP的最大有效跳数是15,最小跳数是1
- (2)RIP协议存在的问题:路由回路
- ①慢收敛问题 (Slow Convergence Problem)
- (3)慢收敛问题的解决方法
- (4)RIP v1 和 v2
- (5)The Hello Protocol
- 2.OSPF:可适用于大型互联网环境
- (1)概念
- (2)通信
- ①OSPF运行在IP层
- ②OSPF使用组播地址进行通信
- Chapter 15: Internet Multicasting 【第16章:因特网多播】
- 1.多播(组播)的概念
- 2.组播地址:IPv4和IPv6组播地址格式
- 3.IPv4组播
- (1)IPv4组播的特点
- 4.IPv6组播
- (1)IPv6组播地址空间
- (2)IPv6的组管理协议:MLD
- ①IPv6组播组成员、MLDv2
- 5.IGMP协议 (IPv4的组管理协议)
- (1)概念
- (2)特点
- (3)原理
- (4)IGMP报文
- Chapter 16: Label Switching, Flows, And MPLS
- 1.MPLS封装格式与标签
- 2.标签分发
- Chapter 17: Packet Classification
- Chapter 18 Mobility And Mobile IP 【第18章:移动IP】
- 1.概念
- 2.移动IP作用
- 3.移动IP的5个缺点
- 4.习题练习
- Chapter 19: Network Virtualization: VPNs, NATs, And Overlays【第19章:专用网络互连(NAT和VPN)】
- 1.虚拟专用网(VPN,Virtual Private Network)
- Chapter 20: Client-Server Model Of Interaction
- Chapter 21: The Socket API
- Chapter 22: Bootstrap And Autoconfiguration (DHCP, NDP, IPv6-ND)
- Chapter 23:The Domain Name System (DNS)
- Chapter 24: Electronic Mail (SMTP, POP, IMAP, MIME)
- Chapter 25: World Wide Web (HTTP)
- Chapter 26: Voice And Video Over IP (RTP, RSVP, QoS)
- Chapter 27 Network Management (SNMP)
- Chapter 28: Software Defined Networking (SDN, OpenFlow)
- Chapter 29 Internet Security And Firewall Design (IPsec, SSL)
- Chapter 30 Connected Embedded Systems (The Internet of Things) 【物联网】
考试说明
五道大题:
①第一大题客观题,4小问,共50分
②后面四道大题均为计算题
Chapter 0: 本书介绍
①英文原著:《Internetworking with TCP/IP》 by Douglas E. Comer (Volume 1) 2014
②中文译版:《用TCP/IP进行网际互连》第五版 林瑶、张娟和王海翻译 2007
③我的计算机网络专栏:https://blog.csdn.net/edward1027/category_11786323.html
Chapter 1: Introduction And Overview 【第1章:引言与概述】
1.WAN→MAN→LAN→PAN(个域网)
2.物理地址 = 硬件地址 = MAC地址
Chapter 2: Overview Of Underlying Network Technologies 【第2章:底层网络技术的回顾】
Chapter 3: Internetworking Concept And Architectural Model 【第3章:网际互连的概念和结构模型】
Chapter 4: Protocol Layering 【第10章:协议的分层】
1.NFS(Network File System) 是由 Sun Microsystems 提出的。它是一个分布式文件系统协议,最早发布于 1984 年,旨在通过网络实现文件共享。
2.Java 是由 Sun Microsystems 公司开发的,最初由 James Gosling 领导的团队在 1990 年代初提出。
Chapter 5: Internet Addressing 【第4章:分类的因特网地址】
1.IP的特点
不保证一定传输到,而是尽最大努力交付(Best-effort)
2.分类IP地址
①A类(1~126):网络号 8位,主机号24位;类别位:0
127为环回地址
②B类(128~191):网络号 16位,主机号16位;类别位:10
③C类(192~223):网络号 24位,主机号8位;类别位:110
④D类(224~239):组播地址,用于一对多通信。类别位:1110
⑤E类(240~255):保留为今后使用;类别位:1111
202、203开头的是亚太。
APNIC:亚太互联网络信息中心(Asia-Pacific Network Information Centre)
3.特殊IP地址
①127.0.0.1:本机,本地环回地址(loopack) ,127开头,后三位非0即可
②10.255.255.255是10.0.0.0网络的广播
4.私有IP地址
内部网用:
1.A类(Class A):
范围:10.0.0.0 到 10.255.255.255
子网掩码:255.0.0.0
可用地址数:16,777,214 个
2.B类(Class B):
范围:172.16.0.0 到 172.31.255.255
子网掩码:255.255.0.0
可用地址数:1,048,574 个
3.C类(Class C):
范围:192.168.0.0 到 192.168.255.255
子网掩码:255.255.255.0
可用地址数:65,534 个
5.子网划分
(1)定长子网划分
多字节整数,按大端形式存放
子网划分:网络号 + 子网号 +主机号
(2)变长子网划分 (不定长子网划分)
见网络层:https://blog.csdn.net/Edward1027/article/details/132634736
6.无分类编址 CIDR:斜杠记法
(1)概念
①CIDR斜线记法:IP地址 / 网络前缀所占比特数 【用斜杠记法,表示掩码有多少位,表示】
②CIDR地址块:网络前缀都相同的连续IP地址。即CIDR本网络的IP地址 / 网络前缀所占比特数
③地址掩码/网络掩码:即CIDR的子网掩码,令网络前缀全为1,主机号全为0
(2)定义
CIDR 表示形式:<网络地址>/<掩码位数>
如子网掩码为255.255.255.248,即/29
点对点时,用前缀长度为30,两台设备的主机号为01和10
(3)应用
CIDR的应用:
①构成超网 (路由聚合/地址聚合)
②最长前缀匹配
7.IPv6
(1)概念
IPv6的地址长度是128位(16B)
(2)表示方法
(1)一般形式:冒号十六进制记法,采用冒号:
分隔的8组4位十六进制数字,每组用4个字符表示
4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
(2)零压缩
(3)冒号压缩
(3)Link-Local Addresses
IPv6 Link-Local Addresses:169.254.0.0/16
IPv6 Link-Local Addresses:1111 1110 10开头
(4)IPv6的邻居发现协议 (NDP)
①IPv6:邻居发现协议(NDP协议,Neighbor Discovery Protocol)。IPv4取消了广播地址,以多播地址替代之。对应于IPv4的ARP协议
②NS发现,NA响应
③关键:构建被恳求结点的多播地址
Chapter 6: Mapping Internet Addresses To Physical Addresses (ARP) 【第5章:因特网地址到物理地址的映射 ARP】
1.ARP协议的工作过程
(1)同一网络内的两主机通信
源物理地址 + 目标物理地址
ARP请求是广播,ARP响应是单播
(2)不同网络内的两主机通信
详见网络层:https://blog.csdn.net/Edward1027/article/details/132634736
Chapter 7: Internet Protocol: Connectionless Datagram Delivery (IPv4, IPv6) 【第6章:网际协议:无连接数据报交付 (IPV4) 】
1.IP数据报的首部格式
①版本字段:表示IP的版本。值为4表示IPv4;值为6表示IPv6
②首部长度:单位是4B,最小值为5。【长度为4位 (0101~1111), (5~15)×4B=首部长度为 20~60B】
③总长度:单位是1B。【长度为16位,IP数据报最大为216B = 65536B】
④生存时间TTL:每经过一个路由器,TTL-1。【Time To Live,注意不是链路费用(路径长度),是减去经过的路由器个数。】
⑤协议字段:表示使用IP的上层协议。TCP是6,UDP是17。
⑥首部校验和:首部任何一个字段发生变化,则首部校验和发生改变。
⑦标识:同一数据报的每个分片标识位相同。数据报长度超过MTU,必须分片【占16位】
⑧标志:占3位,最高位无意义,中间位为DF,最低位为MF
Ⅰ.DF (Don’t Fragment) :DF=1 禁止分片;DF=0 允许分片
Ⅱ.MF (More Fragment):MF = 1 后面还有分片;MF=0 这是最后一片
⑨片偏移:片偏移以8B为偏移单位。除了最后一个分片外,前面每个分片的数据部分大小都是8B的整数倍。它指出较长的数据报分片后,某片在原数据报中的相对位置(占13位)。
一种八片的首饰:一总8偏的首4
详见网络层:https://blog.csdn.net/Edward1027/article/details/132634736
2.MTU
(1)概念
以太网的MTU是1500字节
IP首部至少20B,则IP数据报MSS最大1480B
TCP固定首部20B,则IP数据报MSS最大1460B
(2)PMTU
(1)概念:PMTU(Path Maximum Transmission Unit),源头到目标所经过的所有链路中MTU最小的
(2)目的:避免分片
(3)IPv6找PMTU:ICMP差错报文——Packet Too Big
IPv6中间路由不可分片,必须在源路由器进行分片。
IPv4可在源路由器和中间路由器分片
探测停止的条件:收到 ICMP差错报文——终点不可达
3.IP分片
分片, I N T [ ( M T U − 20 ) / 8 ] ∗ 8 INT[(MTU-20)/8]*8 INT[(MTU−20)/8]∗8
600字节,偏移量是填75!(偏移量的单位是8字节,所以偏移量要记得字节除8)
Chapter 8: Internet Protocol: Forwarding IP Datagrams 【第7章:网际协议:转发IP数据报】
1.IP转发(IP forwarding)
(1)IP转发有两种常见类型:直接转发和间接转发。
①直接转发:路由器或设备收到的数据包的目的地址属于直接连接的网络或子网,路由器不需要进一步转发到其他设备。
②间接转发:路由器收到的数据包的目的地址不在直接连接的网络范围内,必须根据路由表信息将数据包转发给其他路由器或下一跳设备,直到数据包到达目标网络。
(2)IP转发的核心作用是使不同网络之间的主机能够相互通信。通过将数据包从一个网络转发到另一个网络,IP转发实现了网络互联。具体应用场景包括:局域网互联、互联网通信、VPN和隧道技术
2.IP转发算法(IP Forwarding Algorithm):
(1)最长前缀匹配(Longest Prefix Match)
(2)动态路由协议:
①RIP(Routing Information Protocol):基于跳数的路由协议,适用于小规模网络。
②OSPF(Open Shortest Path First):基于链路状态的路由协议,适用于大规模网络。
③BGP(Border Gateway Protocol):用于互联网中自治系统之间的路由协议。
(3)哈希表(Hash Table):哈希表是通过哈希算法对路由表进行优化的一种方式,旨在加速查找过程。通过将目标IP地址映射到哈希表的某个桶,路由器可以更快速地找到匹配的路由。将路由表中的每个条目通过哈希函数映射到哈希表中的桶(bucket)。当数据包到达时,路由器对目标IP地址进行哈希计算,将其映射到相应的桶,然后在桶中查找匹配的路由条目。
(4)Trie树:Trie树(前缀树)是一种树状数据结构,用于存储可变长度的字符串,如IP地址。它被广泛用于最长前缀匹配的实现,特别是对于IP转发。
(5)最短路径优先(Shortest Path First, SPF):主要用于计算路由器之间的最短路径,SPF算法通过构建路由图并计算每个目标的最短路径来生成路由表。数据包的转发过程会选择到目的地址的最短路径。
(6)负载均衡(Load Balancing):负载均衡技术可以用于在多个路径之间分配流量,以优化网络性能和可靠性。IP转发可以基于负载均衡算法来决定如何选择路径
3.路由
(1)路由表
路由表(Routing Table):路由表负责计算路由并决策数据包的路径
(2)转发表
转发表(Forwarding Table):转发表则是用于高效转发数据包的简化版本,直接指导数据包的传输
(3)默认路由
默认路由(Default Route): 0.0.0.0/0
(4)特定主机路由(Host-Specific Routes)
特定主机路由 是指将目标网络的地址范围设置为该主机的具体IP地址,即目的地址是一个单一的IP地址,通常使用/32
子网掩码表示。
Chapter 9 Internet Protocol: Error And Control Messages (ICMP) 【第8章:网际协议:差错与控制报文 ICMP】
1.概念
网际控制报文协议 ICMP (Internet Control Message Protocol),是网络层协议。
ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发送出去。ICMP是IP层协议。
2.ICMP差错报文(5种)
①终点不可达 / 目标端口不可达:无法向上层交付 (当路由器或主机不能交付数据报时就向源点发送终点不可达报文)
②源点抑制:由于网络拥塞而丢弃报文
③时间超过:TTL=0 (TTL=0时,数据报片仍未收集完整。目的主机将之前收集的部分分组也全部丢弃)
④参数问题:首部字段有数值不正确
⑤改变路由(重定向):发现有更好的路由
3.ICMP查询报文(4种)
①回送请求和回答报文
②时间戳请求和回答报文
③地址掩码和回答报文
④路由器询问和通告报文
往返时间(RTT,Round Trip Time)
4.ICMP的两级封装
5.ICMP报文类型
6.ICMP的应用
(1)PING命令:ICMP回送请求和回答报文 (ICMP询问报文),对应cmd中的ping
命令
Ping就是发一个echo请求,看是否有响应
ping www.baidu.com
ping 202.120.80.1
(2)Traceroute:ICMP时间超过差错报文 (ICMP差错报文),对应cmd中的tracert
命令
tracert 202.120.80.1
Chapter 10:User Datagram Protocol (UDP) 【第11章:用户数据报协议 (UDP)】
1.概念
1.QUIC(Quick UDP Internet Connections) 是一种由Google提出的传输层网络协议,旨在改善现有的互联网传输协议(如TCP和TLS)的性能。
2.UDP用户数据报的首部格式
Chapter 11: Reliable Stream Transport Service (TCP) 【第12章:可靠的流运输服务(TCP)】
1.停等协议、滑动窗口
停等协议(stop-and-wait protocol):发一个包,收到ACK回复才发下一个。信道利用率很低
滑动窗口(Sliding window)
连续ARQ:可以连续发多个包。发一组包,收到第一个回复,就可以发下一组包了。
未确认的包:unacknowledged packets
2.TCP报文段的格式
(1)TCP报文的首部字段格式
全双工:双向可同时发
半双工:双向可发,但不能同时
单工:只能单向方向
(2)六个标志位 Code bits
①URG:紧急位有效
②ACK:确认位有效
③PSH:绕过缓冲,直接发送
④RST:复位连接,粗暴拆除连接
⑤SYN:同步位,建立TCP连接
⑥FIN:有序断开TCP连接
紧急数据有高优先级,不受流量控制和拥塞控制。
(3)其他选项
网络层:协议号
传输层:目标端口号
(4)伪首部 (Pseudo Header,伪头)
①定义
(1)伪首部是传输层协议(如 TCP 或 UDP)在计算校验和(Checksum)时引入的一种辅助结构。
(2)它并不是数据包实际传输时的内容,只是在校验和计算过程中临时添加,用于确保数据在传输过程中完整性验证的准确性。
(3)伪首部包括了一些来自 IP 层的数据,如源地址和目标地址。
②伪首部的目的
(1)确保校验和能够覆盖关键信息(如 IP 地址、协议类型等),以防止由于路由转发或其他网络操作导致的错误或篡改。
(2)TCP 和 UDP 是基于 IP 的协议,如果校验和仅覆盖传输层数据(不包含 IP 信息),那么某些潜在错误(如 IP 地址的错误或协议类型的混淆)可能无法被检测到。
③IPv4/IPv6的伪首部的组成:源IP、目标IP、报文长度
伪首部的结构依赖于所使用的 IP 协议类型(IPv4 或 IPv6)。以下是伪首部的字段:
(1)IPv4的伪首部
伪首部在 IPv4 中占 12 字节,格式如下:
(2)IPv6的伪首部
伪首部在 IPv6 中占 40 字节,格式如下:
(3)扩展的TCP 报文段的首部格式
④伪首部的优缺点
1.优点:
增强了校验的可靠性,确保传输层数据与网络层地址的一致性。
有助于检测某些可能导致数据包错误交付的问题。
2.缺点:
增加了校验和计算的复杂性。
因伪首部只在校验和计算时使用,不实际传输,容易被误解为实际数据的一部分。
(5)带内通信(In-Band)、带外通信(Out-of-Band)
(1)带内通信:控制信息和实际数据用同一个通道传输。如正常的TCP传输属于带内通信。
(2)带外通信:控制信息与实际数据通过不同的通道传输
主要用于发送紧急数据或控制信号,例如:
①中断或终止程序(如图中描述)。
②使用 TCP 的 紧急位(Urgent Bit) 和 紧急指针(Urgent Pointer) 来标记带外数据。
带内通信适用于普通情况下的数据和控制信号传输。
带外通信用于需要即时处理的紧急数据或控制信息,避免延迟。
(6)MSS、MTU
1.MSS
(1)MSS的概念:
①最大分段大小,MSS (Maximum Segment Size)是指 TCP 段中数据字段的最大长度。
数据字段加上 TCP 首部后,构成整个 TCP 报文段。
②以太网的MSS是1500-20-20=1460B
(2)MSS的计算:
M
S
S
=
M
T
U
−
I
P
头部长度
−
T
C
P
头部长度
MSS=MTU−IP 头部长度-TCP 头部长度
MSS=MTU−IP头部长度−TCP头部长度
2.MTU
MTU(Maximum Transmission Unit):最大传输单元。是链路层的每帧所能携带的最大数据量。通常 Ethernet MTU为1500字节。
MTU 的常见默认值:
①以太网:标准 MTU 是 1500 字节。
②PPPoE(点对点协议 over 以太网):标准 MTU 是 1492 字节。
③IPv6:要求 MTU 不小于 1280 字节。
④FDDI(光纤分布式数据接口):MTU 是 4352 字节。
⑤Loopback 接口:标准 MTU 是 65536 字节。
3.累计确认机制、延迟ACK
1.累计确认机制(Cumulative acknowledgement scheme)
积累式ACK的好处:前面的ACK都没收到,只要最后一个收到就说明前面的都有效。
2.延迟ACK (delayed ACK)
收到多个数据段,才回复一个确认ACK
4.超时重传机制
超时重传机制(Timeout and Retransmission)
1.老TCP算法:
R
T
T
=
(
a
∗
O
l
d
R
T
T
)
+
(
(
1
−
a
)
∗
N
e
w
R
o
u
n
d
T
r
i
p
S
a
m
p
l
e
)
RTT = (a * Old_RTT) + ((1-a) * New_Round_Trip _Sample)
RTT=(a∗OldRTT)+((1−a)∗NewRoundTripSample)
T
i
m
e
o
u
t
=
B
∗
R
T
T
Timeout = B * RTT
Timeout=B∗RTT,一般B取2。即超时时间一般为2RTT。
2.现在TCP算法:
DIFF = SAMPLE – Old_RTT
Smoothed_RTT = Old_RTT + δ * DIFF
DEV = Old_DEV + ρ (|DIFF| - Old_DEV)
Timeout = Smoothed_RTT + η * DEV
5.退避算法 (Backoff Algorithm)
1.分类:
(1)固定退避算法
(2)随机退避算法
(3)二进制指数退避算法
t
=
R
(
0
,
2
k
−
1
)
×
S
l
o
t
T
i
m
e
t=R(0,2^k-1)× Slot Time
t=R(0,2k−1)×SlotTime
k:重传次数,最大为设定值
k
m
a
x
k_{max}
kmax
R(0,2k-1):在范围[0,2k-1]内生成随机数
Slot Time:时隙时间
(4)自适应退避算法
6.TCP拥塞控制
(1)概念
1.拥塞会导致网络整体的吞吐量大幅度下降
2.TCP解决拥塞:用流量控制来解决拥塞控制
3.拥塞窗口(cwnd,congestion window):
每收到一个ACK则加一,即每轮会翻倍。
(2)慢启动、拥塞避免
①加法增加
加法增加(AI),每收到一个ACK,拥塞窗口线性增加一个
②乘法减少
(1)乘法减少(Multiplicative Decrease):检测到丢包,认为是网络拥塞,拥塞窗口减半
(2)TCP检测到丢包的两种情形:
①超时(Timeout)
②多余的三次重复确认ACK
③慢开始、拥塞避免
<1>慢启动:超时
慢开始/慢启动(Slow-start):乘法增大,每轮cwnd乘二,即每个段收到ACK cwnd就加一
触发慢启动的条件:超时,则慢启动
<2>拥塞避免:两种算法
拥塞避免:加法增大(Additive Increase),每一轮所有的段都回来,cwnd才加一
1)TCP Tahoe算法
①TCP Tahoe算法:出现拥塞,则拥塞窗口cwnd一律将为1,开始慢启动
2)TCP Reno算法
区分是超时(Time out)还是快重传(三次冗余ACK),若是后者,则启动快恢复:发生丢包时的cwnd值减半作为新的阈值。
3)TCP Las Vegas算法
最新算法,自行了解
(3)快重传、快恢复
三次冗余ACK (加上正常的,一共有4次ACK),则启动快重传
(4)ECN (Explicit Congestion Notification,显式拥塞通知)
①定义
ECN 是一种通过标记网络拥塞来通知发送方的机制,避免了传统拥塞控制中因丢包导致的性能损失。
ECN 是一种用于通知通信双方网络拥塞状态的机制,在 IP 网络中由路由器标记拥塞,而无需丢弃数据包。它是一种主动拥塞控制方法,与传统的被动方法(如丢包)相比,能够更早地提示网络的拥塞状态,减少丢包带来的性能影响。
②ECN 的工作原理
ECN 使用 IP 和 TCP 报头中的特定位来实现拥塞通知。即修改IP报文和TCP报文的报头。
①IP:最低两位为ECN字段
②TCP:CWR、ECE
③ECN的优势
(1)减少丢包:
传统的拥塞控制通常通过丢弃数据包让发送方感知拥塞,而 ECN 通过标记而不是丢包来通知拥塞,降低了丢包对网络的影响。
(2)提高网络效率:
更早地检测拥塞并调整流量,避免严重拥塞情况发生。
(3)增强传输性能:
特别是在高丢包率或高延迟的网络中,ECN 可以显著提升 TCP 的传输性能。
7.路由器的排队策略 (Queuing Policy)
(1)尾部丢包(Tail-Drop)策略
1.Tail-Drop策略简介
Tail-Drop 是一种简单的队列管理策略:当路由器的输入队列满时,新到达的数据包会直接被丢弃(drop)。它是传统路由器中最常用的丢包策略
2.Tail-Drop对TCP的影响
(1)单一 TCP 连接的情况:
如果队列满导致丢包,且数据包来自同一个 TCP 连接:TCP 会认为网络出现拥塞,进入 慢启动(Slow-Start)阶段。发送方会减少发送速率,直到接收到 ACK 并逐步恢复。
(2)多个 TCP 连接的情况:
如果队列满导致的丢包涉及多个 TCP 连接:所有受影响的 TCP 连接都会同时进入慢启动阶段。
这种现象称为全局同步(Global Synchronization),会导致:所有连接同时降低速率,网络利用率下降。随后这些连接可能同时增加速率,进一步加剧拥塞。
3.缺点:①公平性差 ②可能引发全局同步
(2)主动队列管理 (AQM)
1.RED(Random Early Detection,随机早期检测):
在队列未满之前,基于概率随机丢弃数据包,通知发送方减少发送速率。
减少了全局同步的概率,提高了网络的公平性。
三个参数:
t
m
i
n
、
t
m
a
x
、
p
t_{min}、t_{max}、p
tmin、tmax、p
2.WRED(Weighted RED,加权随机早期检测):
在 RED 的基础上,结合流量的优先级权重进行数据包丢弃,进一步优化性能。
3.CoDel(Controlled Delay):
以延迟为主要优化目标,通过丢弃延迟较高的数据包降低网络延迟。
8.TCP的连接建立 (三次握手)
三次握手(3-way handshake)
1.三次握手的过程
①第一次握手:客户端发送SYN报文 (SYN=1,seq=x),然后进入SYN-SENT状态
②第二次握手:服务器先是处于LISTEN状态,收到SYN报文后,回复SYN + ACK报文(SYN=1,ACK=1,seq=y,ack=x+1),然后进入SYN-RCVD状态
③第三次握手:客户端回复ACK报文(ACK=1,seq=x+1,ack=y+1),然后进入ESTABLISHED状态。服务器收到后,也进入ESTABLISHED状态。
2.为什么要三次握手?两次握手行不行,四次握手行不行?
(1)两次握手:
若没有第三次握手,相当于服务器没有SYN-RCVD状态,直接进入ESTABLISHED状态,会存在问题:
如果没有第三次握手,若客户端发送的SYN报文在网络中延迟,并在客户端的超时时间内未收到服务器的ACK,则客户端会重新发送SYN报文。没有第三次握手进行确认而只有两次握手,服务器就会错误地认为这是一个新的连接请求,回复的ACK也会被客户端抛弃。会占用服务器一个端口,而不发送任何数据,造成资源浪费。
(2)四次握手:
三次就够了,四次是多余的。
三次握手已经足够确保双方通信的可靠性和同步性:
第一次握手:客户端通知服务器“我想建立连接”。
第二次握手:服务器通知客户端“我收到了你的请求,并准备好建立连接”。
第三次握手:客户端通知服务器“我收到了你的确认,现在我们可以通信了”。
3.三次握手的过程图
4.SYN泛洪攻击 (SYN Flood 攻击):
客户端只发送一次握手,不进行第三次握手。
大量客户端发送SYN报文,使得服务器接受后就处于等待ACK的SYN-RCVD状态。此时不回复ACK,就会让服务器一直处于该状态,除非服务器主动断开连接。大量占用服务器,直至崩溃。
9.TCP连接断开 (四次挥手)
有时候第二次和第三次会合二为一,因为恰好被动方也没有数据要发送了,ACK和FIN一起发送。
1.过程:
客户端与服务器刚开始都处于ESTABLISHED状态。
①第一次挥手:客户端发送FIN报文(FIN=1,seq=u),然后进入FIN-WAIT-1状态
②第二次挥手:服务器接受到FIN报文,并回复ACK报文(ACK=1,seq=v,ack=u+1),然后进入CLOSE-WAIT状态
③第三次挥手:服务器发送FIN报文(FIN=1,ACK=1,seq=w,ack=u+1),然后进入LAST-ACK状态
④第四次挥手:客户端发送ACK报文(ACK=1,seq=u+1,ack=w+1),然后进入TIME-WAIT状态,若2MSL内未收到服务器重发的第三次挥手,则CLOSED。服务器若成功收到第四次挥手,则CLOSED。
2.过程图
3.第一次、第二次挥手:关闭客户端的写操作、服务器的读操作。
第三次、第四次挥手:关闭服务器的写操作、客户端的读操作。
10.TCP状态转换图
这是一张 TCP 状态转换图,详细展示了 TCP 连接的建立和关闭过程中的各种状态以及状态之间的转换条件。
图中关键元素
状态节点:圆角矩形表示 TCP 的不同状态,例如 CLOSED、LISTEN、ESTABLISHED 等。
状态转换箭头:
由事件触发的状态转换,例如接收到报文(如 SYN、FIN)或发送报文。
不同的转换由两种箭头区分:
黑实线:表示正常情况下的状态转换。
灰虚线:表示异常或超时情况下的状态转换。
有限状态机:事件/动作 → 状态迁移
11.TCP常用端口号
ftp-data:20端口号
ftp:21端口号
ssh (Secure Shell):22端口
telnet:23端口
smtp:25端口
DNS:53端口
www/http:80端口 (安全套接字协议,SSL,Secure Sockets Layer)
pop3:110端口
snmp:161端口
https:443端口 (传输层安全协议,TLS,Transport Layer Security)
Chapter 12: Routing Architecture: Cores, Peers, And Algorithms【第13章:路由选择:核心网络、对等网络与算法】
0.AS分类:三种路由协议的对比
路由算法:
①RIP:距离向量算法
②OSPF:链路状态算法
1.核心路由器 (Core Routers)
1.核心路由器 (Core & Noncore Routers):
优点:对非核心的路由器进行改动,不会影响整个网络。
缺点:可能会存在不一致性
核心路由器不应该采用默认路由进行路由,因为可能存在路由回路,造成效率低下。
本来应该是R1直接到Rn,但如果设置了默认路由,可能就是R1到R2到R3…到Rn。
2.自动路由传播 & 转发信息库(FIB,forwarding information base)
3.距离-向量算法 (Distance Vector Routing)
Distance Vector Routing,also called Bellman-Ford routing.
左图的路由器,通过右图的邻居路由器J,引发路由表项的更新:(三种情况)
①J有更好的路径:同步改过来,并且距离+1
②J有,但我没有的信息:同步添加过来,并且距离+1
③J的路径变远了,且我到该网络的下一跳恰好就是J:同步距离并+1
三种情况:
RIP协议:
特点:慢收敛 (slow convergence)
4.链路状态路由 / 最短路径优先
Link-State Routing /Shortest Path First(SPF)
链路状态协议的思想:把自己知道的所有链路状态信息,向全网进行传播,即泛洪
5.BGP协议
第十三章详细讲解,往下翻
Chapter 13: Routing Among Autonomous Systems (BGP)【第14章:外部网关协议BGP:自治系统之间的路由、对等网络间的路由选择】
1.自治系统
1.自治系统编号(ASN, Autonomous System Number) 的一个范围,属于 私有或内部使用的自治系统编号。64512~65536是内部专用的。
2.BGP协议
1.概念
边界网关协议 BGP (Border Gateway Protocol):是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。
2.BGP协议的端口号:TCP 179
3.图解
Conceptual illustration of BGP
4.BGP的分类
①iBGP:同一个AS内部的边界路由器之间,采用的协议是iBGP
②eBGP:不同AS之间的边界路由器之间,用的协议是eBGP
5.五种BGP报文
(1)Open:两个BGP Speaker之间建立会话(Session),是BGP会话的第一个报文,交换初始协议信息。仅用于建立会话,完成后不会再次发送。
(2)Update:在会话建立后,持续用于通告更新:
①新的可达性目标的路由信息
②撤销已经失效的路由信息。
是 BGP 协议的主要负载,用于维护和传播网络的路由表。
(3)Notification:报错
(4)Keep Alive:①保活
②用作确认:收到对方的Open后,要用Keep Alive进行回应,告诉对方自己的自治系统号(ASN)
(5)Refresh:全部更新库。不常用
BGP协议的建立过程:我给你发Open,你给我Keep Alive加Open,我给你Keep Alive。建立TCP连接的三次握手。端口号是179
6.BGP报文的首部格式 (BGP Message Header)
Chapter 14: Routing Within An Autonomous System (RIP, RIPng, OSPF, IS-IS) 【第15章:内部网关协议:RIP和OSPF (自治系统内的路由选择) 】
1.RIP协议:仅限小型互联网环境
(1)RIP的最大有效跳数是15,最小跳数是1
①n个路由器,线性互联,共有n+1个网络。
②有效的最大跳数是15,因此RIP最多有15个网络,则中间最多经过14个路由器 (直连的路由器跳数是1)。
③跳数是16代表不可达,无穷大
④RIP的周期(两两邻居交换路由表):30秒
⑤RIP协议用跳数来衡量,是不准确的。
(2)RIP协议存在的问题:路由回路
①路由回路
②不稳定性
③慢收敛
三点其实都是路由回路问题
①慢收敛问题 (Slow Convergence Problem)
(3)慢收敛问题的解决方法
①水平分割(Split horizon):R2经过R1到达net1,就不要告诉R1到达net1的路径了,容易让R1误判R2还有新的路径
②抑制,让子弹飞一会儿 (Hold down):坏消息先保持一会儿,不要乱传播
③逆向躲害 (Polson reverse):也可归类到水平分割里。上游不能往下游走。
④触发式更新(Triggered updates):一收到就马上发出去,不要等一个周期再发
⑤广播(Boardcast)
(4)RIP v1 和 v2
RIP v1:不支持 CIDR,用于IPv4
RIP v2:支持 CIDR,用于IPv4
RIPng:用于IPv6 (ng指next generation)
(5)The Hello Protocol
Hello协议,要求时钟同步。开销太大,已被废弃
2.OSPF:可适用于大型互联网环境
(1)概念
OSPF(Open Shortest Path First,开放最短路径优先)
开放式的,免费使用:Open SPF Protocol (OSPF)
(2)通信
①OSPF运行在IP层
OSPF 直接运行在 IP 层,不使用传输层协议(如 TCP 或 UDP),不使用传输层端口号,因此它没有专门的传输层端口号。
OSPF 的 IP 协议号是 89,通信时使用组播地址 224.0.0.5 和 224.0.0.6。
②OSPF使用组播地址进行通信
OSPF 使用组播地址进行路由器间的通信,减少广播的网络负载:
①224.0.0.5:全体 OSPF 路由器(for all routers,All OSPF Routers)。
②224.0.0.6:全体指定路由器(for all nodes,All Designated Routers, DR)。
Chapter 15: Internet Multicasting 【第16章:因特网多播】
1.多播(组播)的概念
2.组播地址:IPv4和IPv6组播地址格式
IPv4:以1110 开头,组号28位
IPv6:以1111 1111开头,组号120位
以太网多播地址:01.00.5E.00.00.00
3.IPv4组播
(1)IPv4组播的特点
(1)IP组播使用D类地址格式。D类地址的前四位是1110,D类地址范围: 224.0.0.0~239.255.255.255
(2)组播使用UDP。组播数据报和IP数据报一样不提供可靠交付,尽最大努力交付(Best-effort);速度快;(应用于视频会议、直播、电视节目)
(3)组播分类:因特网范围内组播、局域网内硬件组播
(4)组播数据报,不会有ICMP报文。即不会有差错报文,也ping不通。
[No ICMP messages for multicast datagrams. Ping sent to multicast address never answered]
(5)组播地址,只能作为目标地址。 [Multicast address can only be destination]
(6)多播的限制:
①TTL/hop-limit field control
②Administrative scoping
4.IPv6组播
(1)IPv6组播地址空间
IPv6组播地址前8个字节全为1,IPv6地址使用第二个八位字节来指定范围
(2)IPv6的组管理协议:MLD
①IPv6组播组成员、MLDv2
IPv6 定义了多播侦听器发现协议 (Multicast Listener Discovery Protocol,MLD)。
当前版本为 2,该协议简称为 MLDv2。
MLDv2 仅仅是将 IGMP 转换为使用 IPv6 语义。
主机使用 MLDv2 向本地网络上的多播路由器通告其所属的组。
路由器使用 MLDv2 定期轮询主机,以确定主机是否仍是组的成员。
给定网络上的一组多播路由器相互协作,选择一个查询器路由器定期发送查询。
5.IGMP协议 (IPv4的组管理协议)
(1)概念
因特网组管理协议 IGMP (Internet Group Management Protocol):参加或退出组播组时
IPv4的组管理协议:IGMP
IPv6的组管理协议:MLD
(2)特点
(1)目前IGMP协议的版本是3,兼容1、2版本
(2)协议号:
1 ICMP
2 IGMP
(3)IGMP采用了几种方法来最小化其对网络的影响:
①所有主机/路由器通信都使用IP组播,而不是广播
②轮询时,发送关于所有组的单个查询 [When polling, single query sent about all groups]
③选择单个轮询路由器来轮询成员 [Single polling router is chosen to poll membership]
④主机在不同的时间响应查询 [Hosts respond to queries at different times]
⑤多个组成员关系的报告可以在单个数据包中发送 [Reports for multiple group memberships can be sent in a single packet]
(3)原理
IGMP的工作原理
(4)IGMP报文
1.IGMP成员查询消息格式 [IGMP Membership Query Message Format]
2.IGMP成员报告消息格式 [IGMP Membership Report Message Format]
Chapter 16: Label Switching, Flows, And MPLS
1.MPLS封装格式与标签
依据是s:1为底,0为顶
2.标签分发
Chapter 17: Packet Classification
Chapter 18 Mobility And Mobile IP 【第18章:移动IP】
详见网络层:https://blog.csdn.net/Edward1027/article/details/132634736
1.概念
1.归属代理 (本地代理):
①归属代理 (HA,Home Agent)
②移动节点的初始网络
③永久地址、本地地址、主地址
2.外部代理:移动节点漫游到的网络
(1)概念:转交地址、辅地址,用来表示移动结点的当前位置
(2)优缺点:
①优点:通用性
②缺点:要加模块,且无法区分是本地IP还是移动IP
3.过程:
①移动结点漫游到外地网络时,仍使用固定的本地IP地址进行通信。但为了能接收和发送,需要通过注册过程通知归属代理(本地代理)自己现在所处的IP地址,即转交地址。由本地代理记录主地址与辅地址的映射。
②通信对端并不知道该IP发送了移动,仍然将数据发送到主地址。由本地代理接收,采用隧道技术发送到辅地址。
③当移动IP需要再次移动时,向本地代理注销现在的主辅地址绑定。
4.注册:
建立隧道
2.移动IP作用
使移动结点能以固定的网络IP地址,实现跨越不同网段的漫游功能
3.移动IP的5个缺点
4.习题练习
例题1:课后题1
分析:
移动IP通过注册过程,将自己的转交地址通知本地代理。然后本地代理将主地址和辅助地址的映射进行绑定。
答案:C
例题2:课后题2
分析:
答案:A
例题3:课后题4
分析:
移动IP,收发都是先经过本地代理。本地代理通过隧道发给转交地址。
答案:B
Chapter 19: Network Virtualization: VPNs, NATs, And Overlays【第19章:专用网络互连(NAT和VPN)】
1.虚拟专用网(VPN,Virtual Private Network)
1.VPN的特点
①专用的(private)
②虚拟的(virtual)
2.实现VPN的基本技术
①隧道传输(tunneling)
②加密技术(encryption):身份认证、数据加密
3.常见的VPN加密协议:
①PPTP(点对点隧道协议)
②L2TP/IPsec(第二层隧道协议)
③OpenVPN
④IKEv2/IPsec(Internet Key Exchange v2)
⑤WireGuard
4.VPN的应用场景
①访问公司内部网络:远程员工可以通过VPN连接到公司内网,访问公司内部资源。
②提高在线匿名性:用户可以通过VPN隐藏真实IP地址,避免广告商或其他机构追踪上网行为。
③绕过审查与地理封锁:用户可以使用VPN访问受地域限制的内容,或者绕过某些国家的网络审查。
④保护公用Wi-Fi的安全性:在公共Wi-Fi环境中,使用VPN可以加密数据,防止数据被黑客窃取。
Chapter 20: Client-Server Model Of Interaction
Chapter 21: The Socket API
Chapter 22: Bootstrap And Autoconfiguration (DHCP, NDP, IPv6-ND)
Chapter 23:The Domain Name System (DNS)
Chapter 24: Electronic Mail (SMTP, POP, IMAP, MIME)
Chapter 25: World Wide Web (HTTP)
Chapter 26: Voice And Video Over IP (RTP, RSVP, QoS)
Chapter 27 Network Management (SNMP)
Chapter 28: Software Defined Networking (SDN, OpenFlow)
Chapter 29 Internet Security And Firewall Design (IPsec, SSL)