计算机网络
计网虐我千百遍,我待计网如初恋,已经不记得是几次重学计网了。这次看的视频教程动画甚是精美,章节末的总结精炼实用,遂截图下来,并补充下细节,以后忘了不用再去找视频刷,翻翻笔记就好了。
概述
因特网组成
3 种交换方式对比
计算机网络的分类
计算机网络的性能指标
网络体系结构划分
服务与协议
- 下层协议对上层是透明的,上层实体不关心下层提供服务的具体实现。
物理层
传输媒体
- 严格来说传输媒体不属于计算机网络体系结构的任何一层,或者说在物理层之下。
传输方式
编码与调制
信道的极限容量
媒体接入控制 MAC
- 媒体接入控制(Medium Access Control):协调多个发送和接收站点对一个共享传输媒体的占用问题。
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/碰撞检测):CSMA/CD 协议曾经用于早起的总线式(共享信道)的 802.3 以太网,点对点链路和链路层交换机的交换式局域网在有线领域已经完全取代了共享式局域网。现代的以太网多基于交换机和全双工连接,不会有碰撞,也没必要使用 CSMA/CD 协议。
最小帧长:争用期 × 信道带宽,为了让距离最远的两台主机之间都能检测碰撞(CSMA/CD),以 10 Mbps 的以太网为例,最小帧长 = 争用期 51.2 μs × 10 Mb/s = 512 bit = 64 KByte。
最大帧长:为了防止长时间占用信道还有接收方缓冲区溢出等问题,帧也不能太长,并且太长容易发生误码,接受后由于校验所造成延迟也更长。
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoid,载波监听多路访问/碰撞避免):802.11 无线局域网采用的媒体接入控制协议是 CSMA/CA(载波监听多点接入/避免碰撞),802.11局域网在使用 CSMA/CA 的同时,还使用停止-等待协议保证可靠传输。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧。
MAC 地址、IP 地址 和 ARP 协议
- MAC 地址:是对网络上各个接口的唯一标识,网卡出厂即分配好,全球唯一,常用于目的地址和源地址的标识,由于这类地址是用于媒体接入控制(Medium Access Control),所以被称为 MAC 地址。但并不是所有 MAC 层(即数据链路层)的协议都要用到该地址,例如使用点对点信道的数据链路层协议 PPP 就不需要 MAC 地址的标识。MAC 地址一般被固化在网卡的EEPROM中,因此也被称为物理地址。
- IP 地址
- ARP 协议:地址解析协议(网络层)
集线器和交换机
集线器:
交换机:
对比:
交换机自学习
以太网交换机生成树协议 STP
虚拟局域网
- 局域网:在一个广播域中的所有网络设备构成一个局域网,即两台主机只通过二层(物理层和数据链路层)就可达就说明这两台主机在一个局域网内。使用交换机或集线器连接的主机构成一个局域网。
- 使用交换机或集线器会扩大广播域,但可能会带来广播风暴或者安全问题,可以用路由器隔离广播域但是成本较高。可以利用 VLAN 技术将一个局域网中的设备划分成不同的逻辑组,同一个 VLAN 之间可以相互广播通信,不同 VLAN 之间不能通过直接通信。
- VLAN 的实现:VLAN 是在交换机上实现的,需要交换机实现以下两大功能,能够处理带有 VLAN 标记的帧,即 IEEE 802.1Q 帧,二是交换机的各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同。
网络层
网络层概述
网络层服务
- IP 协议提供的是不可靠服务,并不确保传输的分组不丢失。IP 路由器对收到的 IP 分组进行差错检测,发现错误会丢弃该分组并向源主机发送 ICMP 差错报文(类型为参数错误)。
- 虚电路服务与数据报服务比较
IP编址
- 分类编址:
- 划分子网:从原来 ABC 类地址中的主机号借用一定位数的比特来作为子网号,子网掩码左起全 1 的位数 = 网络号位数 + 子网号位数。格式:网络号 + 子网号 + 主机号。
- 无分类编址 CIDR格式:前缀号 + 主机号/n。
- 路由聚合,构造超网
- 定长子网掩码划分和变长子网掩码划分
路由转发过程
- 源主机判断目的主机IP地址是否在同一个网络(子网)中:源主机ip地址和子网掩码相与得到源主机所在网络号,与目的ip地址和源主机子网掩码相与得到的结果比较,如果相同则说明在同一网络,不同则说明不在同一个网络,同一子网中,网络号相同,掩码相同,
- 如果不在同一个网络?则将 IP 数据报发送给默认网关,默认网关IP是用户操作系统配置好的或者自动分配的,再结合ARP协议查询到默认网关的MAC地址,通过链路层将 IP 数据报 发送给默认网关,通常是路由器的一个端口。
- 路由器接收到IP 数据报后检查是否出错,若出错则直接丢弃IP数据报并报告源主机
- 将目的地址与路由条目中的地址掩码相与,然后xxxxx把结果和此条目对应的目的网络号相比较,如果相等或者是目的网络的一个子网 ,则此路由条目就是匹配的路由条目
- 路由器不会转发全网络广播IP数据报(目的IP地址受限广播地址255.255.255.255),即路由器是隔离广播域的。但是可以通过配置转发直接广播地址跨网段广播。
- 对目的地址是私有地址的 IP数据报一律不转发。
- 中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域。
- 网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域。
- 路由器工作在网络层,即隔离冲突域,也隔离广播域。
静态路由
动态路由
路由信息协议 RIP
开放最短路径优先协议 OSPF
OSPF 工作过程
为了减少 AS 系统内部的泛洪,可以把 AS 再划分为多个区域,这样泛洪的范围就局限于一个每一个区域,而不是整个 AS。
边界网关协议 BGP
三种路由选择协议的封装
IPv4 首部格式
IPv4 分片:因为链路层的最大载荷可能有限制(例如以太网为 1500 字节),所以要对较长的 IP 数据报进行分片,负责 IP 分片的那台主机、路由器通过硬件、或软硬件结合、或纯粹软件方式来分片,处理分片会花费很多 CPU 资源,要尽可能避免 IP 分片。
1
2IP = IP Header + TCP = 20 + 1480 = 1500 Byte
TCP = TCP Header + TCP Payload = 20 + 1460 = 1480 Byte这个 TCP Payload = 1460 Byte 对应的就是 TCP 最大传输单元,我们称之为 Maximum Segment Size 即 MSS,即 MSS = MTU - IP Header - TCP Header = 1500 - 20 -20 = 1460。
TCP 在三次握手的第一个 SYN 消息中有一个选项 option 4,就是为了协商通信双方的 MSS,会选择较小的一方作为这个 TCP 连接的 MSS,这样双向通信都可以避免因为 IP 包太大引起的分片。参考:TCP/IP 协议栈中,为什么选择 IP 层负责分片?以及车小胖谈网络:IP层分片
网际控制报文 ICMP
VPN 和 NAT
运输层
运输层概述
端口号
UDP 和 TCP 的对比
TCP 流量控制
TCP 拥塞控制
- 慢开始和拥塞避免(1988 TCP Tahoe 版本)
- 快重传和快恢复(1990 年 TCP Reno 版本)
- TCP 超时重传时间选择
TCP 可靠传输实现
- 重传机制:采用的是累计确认,发送接收双滑动窗口传输, 选择重传还是回退N帧根据不同实现不同(TCP 扩展首部的「选项」字段里加一个 SACK 方 的东西的选择确认)
TCP 建立连接
TCP 断开连接
- 等待 2 倍 MSL 时间的作用:可以确保TCP 服务进程可以收到最后一个 TCP 确认报文段而正确进入关闭状态,释放相关资源 ,并且使连接持续时间所产生的所有报文段都从网络中消失,这样下一个TCP 连接中不会出现旧连接中的报文段。
TCP 首部格式
应用层
- C/S 架构和 P2P
DHCP
DNS
FTP
SMTP
HTTP
参考
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!