计算机网络
计算机网络学科知识(网络分层/协议/接入网)
计算机网络
计算机网络和因特网
接入网
指将端系统物理连接到其边缘路由器(edge router)的网络。
边缘路由器是端系统到任何其他 远程端系统的路径上的第一台路由器。
接入方式:
- 数字用户线(Digital Subscriber Line,DSL)
使用现有的电话线(双绞铜线),频分复用(上行、下行、双向电话通道) - 电缆接入(cable Internet access)
利用有线电视基础设施,应用光纤和同轴电缆(被称为Hybrid Fiber Coax,HFC,混合光纤同轴系统) - 光纤到户(Fiber To The Home,FTTH)
本地中心局到每户设置一根光纤
先共享,近距离再分隔
- 主动光纤网络(Active Optical Network,AON) 本质上是交换因特网
- 被动光纤网络(Passive Optical Network,PON)
- 以太网
- WiFi
- 蜂窝网络
物理媒体(physical medium)
- 导引型媒体
电波沿着固体媒体前行,如光缆、双绞铜线或同轴电缆 - 非导引型媒体
电波在空气或外层空间中传播,如无线局域网、数字卫星频道中
- 双绞铜线
- 同轴电缆
- 光纤
- 陆地无线电信道
- 卫星无线电信道
核心
通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。
分组交换
端系统彼此交换报文(message)
在源和目的地之间,每个分组都通过通信链路和分组交换机(packet switch )传送。(交换机主要有两类:路由器(router)和链路层交换机(link-layer switch)。)
- 存储转发传输机制
交换机在接收到整个分组后,才开始转发该分组的第一个比特。
交换机具有一个输出缓存(output buffer,也成为输出队列(output queue))来存储要转发的分组。 - 排队时延和分组丢失
分组要发送的链路可能已经在传输了,此时该分组要在输出缓存中等待,称为排队时延(queuing delay)。
输出缓存是有限的,当持续有组进入缓存,导致缓存被充满时,后续分组或已排队分组之一会被丢弃,称为分组丢失(丢包)(packet loss)。 - 转发表和路由协议选择
每台路由器具有一个转发表(forwarding table),用于将目的地址(或一部分)映射成为输出链路。
路由选择协议(routing protocol)用于自动设置这些转发表,让路径更合理。
时延
- 节点处理时延
- 排队时延
- 传输时延
组数据经过路由器的时间 - 传播时延
组经过链路的时间
以上时延加起来是节点总时延
丢包
端到端时延
吞吐量
电路交换
在端系统通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。
传统电话网络是电路交换的例子,双方打电话时,网络必须在发送方和接收方之间建立连接(电路),预留缓存和速率,保证通话低延迟,不会断开。
- 电路交换网络中的复用
链路中的电路是通过频分复用或时分复用来实现的。 - 分组交换和电路交换对比
分组交换对资源的利用率较高,实现更简单、有效,成本更低
分组交换不能保证延迟
协议分层
因特网
因特网的协议栈由5个层次组成:物理层、链路层、网络层、运输层和应用层
应用层
应用层协议原理
应用程序体系结构
- 客户-服务器体系结构(client-server architecture)
- 对等体系结构(P2P)
进程通信
多个端上的系统通过进程(process)交换报文(message)来通信。
在一对进程之间通信会话的场景中,可以将发起通信的进程标识为客户(client),在会话开始时等待联系的进程标识为服务器(server)。
进程通过套接字(socket)(也成为应用程序和网络之间的 API)发送和接收网络报文。
使用 IP 和 端口号 来寻址。
常见端口
| 端口号 | 协议 | 服务名称 | 功能描述 | 分类 |
|---|---|---|---|---|
| 21 | TCP | FTP | 文件传输协议(控制端口) | 知名端口 |
| 22 | TCP | SSH | 安全远程登录和文件传输 | 知名端口 |
| 23 | TCP | Telnet | 不加密的远程终端协议 | 知名端口 |
| 25 | TCP | SMTP | 简单邮件传输协议 | 知名端口 |
| 53 | TCP/UDP | DNS | 域名解析服务 | 知名端口 |
| 80 | TCP | HTTP | 超文本传输协议(网页服务) | 知名端口 |
| 110 | TCP | POP3 | 邮件接收协议 | 知名端口 |
| 123 | UDP | NTP | 网络时间同步协议 | 知名端口 |
| 143 | TCP | IMAP | 邮件访问协议 | 知名端口 |
| 443 | TCP | HTTPS | 加密的HTTP协议 | 知名端口 |
| 445 | TCP | SMB | Windows文件共享协议(高危) | 注册端口 |
| 465 | TCP | SMTPS | 加密的SMTP协议 | 注册端口 |
| 587 | TCP | SMTP | 邮件提交端口(替代25) | 注册端口 |
| 636 | TCP | LDAPS | 加密的LDAP协议 | 注册端口 |
| 873 | TCP | rsync | 远程文件同步服务 | 注册端口 |
| 1080 | TCP | SOCKS | 代理服务器通信端口 | 注册端口 |
| 1433 | TCP | MSSQL | Microsoft SQL数据库服务(高危) | 注册端口 |
| 1521 | TCP | Oracle | Oracle数据库默认端口 | 注册端口 |
| 3306 | TCP | MySQL | MySQL数据库服务 | 注册端口 |
| 3389 | TCP | RDP | 远程桌面协议(高危) | 注册端口 |
| 5432 | TCP | PostgreSQL | PostgreSQL数据库服务 | 注册端口 |
| 6379 | TCP | Redis | 内存数据库服务 | 注册端口 |
| 8080 | TCP | HTTP-Alt | 替代HTTP端口(Tomcat/JBoss等) | 注册端口 |
| 9200 | TCP | Elasticsearch | 分布式搜索服务 | 注册端口 |
| 27017 | TCP | MongoDB | NoSQL数据库默认端口 | 注册端口 |
(注:高危端口标注基于网络安全风险,协议类型参考多源)
HTTP
HTTP(HyperText Transfer Protocol,超文本传输协议)
特性:
- HTTP 使用 TCP 作为支撑协议
- HTTP 不保存关于客户的任何信息,是一个无状态协议(stateless protocol)
HTTPS
HTTPS(HyperText Transfer Protocol Secure,安全超文本传输协议)
加密技术
HTTPS采用混合加密机制,结合对称加密与非对称加密的优势:
- 对称加密(如AES、ChaCha20):通信双方使用同一密钥加密数据,效率高,适合大数据量传输
- 非对称加密(如RSA、ECC):用于安全交换对称密钥。服务器公钥加密的预主密钥(Pre-Master Secret)只能由服务器私钥解密,确保密钥传输安全
数字证书与身份验证
服务器需向**证书颁发机构(CA)**申请数字证书,证书包含服务器公钥、域名、有效期等信息,并由CA私钥签名客户端通过内置的CA公钥验证证书真实性,防止中间人攻击。若证书无效或域名不匹配,浏览器会发出警告。
TLS握手流程:
- Client Hello:客户端发送支持的TLS版本和加密算法列表。
- Server Hello:服务器确认协议版本和加密算法,并发送证书。
- 密钥交换:客户端生成预主密钥,用服务器公钥加密后发送。
- 会话密钥生成:双方基于预主密钥生成对称加密的会话密钥。
- 加密通信:后续数据通过会话密钥加密传输
非持续连接和持续连接
- 非持续连接
每个请求/响应对是经一个单独的 TCP 连接发送
发 10 张图片要建立 10 次 TCP 连接 - 持续连接
每个请求/响应对是经同一个 TCP 连接发送
HTTP 报文
HTTP 请求报文
- 使用 ASCLL 文本书写
- 第一行叫作请求行(request line)
- 请求行有三个字段:方法字段、URL 字段、HTTP 版本字段
- 第二行叫做首部行(header line)
- 第三行为空行
- 第四行为实体体(entity body)
HTTP 响应报文
- 初始状态行 版本 状态码 短语
- 首部行
- 实体行
状态码
• 200 0K:请求成功,信息在返回的响应报文中。
• 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报
文的Location:首部行中。客户软件将自动获取新的URL。
• 400 Bad Request: 一个通用差错代码,指示该请求不能被服务器理解。
• 404 Not Found:被请求的文档不在服务器上。
• 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本。
cookie
让服务器可以识别用户
- 响应报文中
- 请求报文中
- 用户端系统中
- 服务器后端数据库中
session
- 用户端只保存 sessionID 在 cookie 中
- 后续向服务器发送带有 sessionID 的 cookie 来验证身份
JWT
JSON Web Token
就是令牌token,是一个String字符串,由3部分组成,中间用点隔开
Web 缓存
Web缓存器(Web cache)也叫代理服务器(proxy server),它是能够代表初始Web服务器来满足HTTP请求的网络实体。
条件 GET 方法:
用于确保缓存器中的对象是新的。
请求报文使用 GET 方法,并包含“If-Modified——Since:”
SMTP
Simple Mail Transfer Protocol 简单邮件传输协议
基于 TCP,使用持续连接
流程:
- a 调用邮件代理程序,向 b 发送
- a 的邮件代理将邮件发给 a 的邮件服务器
- a 的邮件服务器上的 SMTP 客户端发现报文后,尝试和 b 的邮件服务器上的 SMTP 客户端建立连接
- 经过 SMTP 握手后,SMTP 客户端通过该 TCP 连接发送报文
- b 的邮件服务器上,SMTP 的服务器端接受该报文。然后邮件服务器将报文放入 b 邮箱
POP3 IMTP 用于将邮件从接收方邮件服务器传送到接收方的用户代理
DNS:因特网的目录服务
Domain Name System 域名系统
域名和 IP 地址的映射数据库
域名
- 顶级域名
国家和地区顶级域名(country code top-level domains,ccTLDs)- cn、jp 通用顶级域名(generic top-level domains,gTLDs)
- com(工商)、net(网络)、org(非盈利)
新通用顶级域名(New generic top-level domains,New gTLDs) - xyz、top、red、men
记录类型
- A 记录
用来指定主机名(或域名)对应的 IP 地址记录
低成本的负载均衡(同一域名创建多个 A 记录) - CNAME记录
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名 - AAAA记录
将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录 - PRT 记录
逆向查询记录,用于从 ip 地址中查询域。
PRT 记录是 A 记录的逆向记录,作用是把 IP 地址解析为域名 - NS 记录
域名服务器记录,用来指定该域名由哪个 DNS 服务器来进行解析。
如果要将子域名指定某个域名服务器来解析,需要设置NS记录。 - SOA记录
SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中标记哪一台是主服务器 - MX记录
建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
DNS 报文
查询报文
回答报文
P2P
BitTorrent
一种用于文件分发的流行 P2P 协议
用BitTorrent的术语来讲,参与一个特定文件分发的所有对等方的集合被称为一个洪流(torrent)。在一个洪流中的对等方彼此下载等长度的文件块(chu磁),典型的块长度为256KBO当一个对等方首次加入一个洪流时,它没有块。随着时间的流逝,它累积了越来越多的块。当它下载块时,也为其他对等方上载了多个块。一旦某对等方获得了整个文件,它也许(自私地)离开洪流,或(大公无私地)留在该洪流中并继续向其他对等方上载块。同时,任何对等方可能在任何时候仅具有块的子集就离开该洪流,并在以后重新加入该洪流中。
机制
最稀缺优先(rarest Erst)
一报还一报(tit-for-tat)
HTTP 流和 DASH
视频流
Dynamic Adaptive Streaming over HTTP 经 HTTP 的动态适应流
用于提供强大的视频流式服务
CDN
内容分发网(Content Distribution Network, CDN)
CDN 操作
截获用户请求,通过 DNS重定向 返回适合的服务器地址
集群选择策略
CDN 的核心
运输层
逻辑通信 报文段
运输层和网络层对比
运输层提供不同主机上的进程之间的逻辑通信
网络层提供不同主机之间的逻辑通信
类比:
A 地的 A家庭的 12 个小孩与 B 地的 B家庭的 12 个小孩通信,信通过 1 个小孩发送和接收
A 家小孩写信-A 家送信小孩给邮车-邮车送到 B 家-B 家收信小孩送邮车收信-每个小孩拿信
应用层报文 = 信上的内容
进程 = 小孩
主机(端系统) = 家庭
运输层协议 = 收发信小孩
网络层协议 = 邮局
运输层概述
TCP 和 UDP 分组统称为 报文段(segment)
网络层分组称为数据报(data-gram)
将主机间交付扩展到进程间交付被称为运输层的多路复用与多路分解
多路复用与多路分解
将运输层报文段中的数据交付到正确的套接字的工作称为多路分解(demultiplexing)。
在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用(nmhiplexing)。
UDP
User Datagram Protocol 用户数据报协议
是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP无非就是对网络层协议增加了一点(多路)复用/(多路)分解服务而已
- 应用层可以控制更精细
也可以通过应用层实现可靠数据传输 - 无须建立连接
- 无连接状态
- 分组首部开销小
UDP 报文
报文段结构
┌───────────────────┬───────────────────┐
│ Source Port │ Destination Port │
│ (16 bits) │ (16 bits) │
├───────────────────┼───────────────────┤
│ Length │ Checksum │
│ (16 bits) │ (16 bits) │
├───────────────────┴───────────────────┤
│ │
│ Application Data │
│ (Variable Size) │
│ │
└───────────────────────────────────────┘
首部只有 4 个字段,每个字段由两个字节组成
UDP 检验和、端到端原则
可靠数据传输原理
可靠数据传输协议(reliable data transfer protocol)
自动重传请求(Automatic Repeat reQuest, ARQ)协议
TCP
Transmission Control Protocol 传输控制协议
一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义
原理:差错检测、重传、累积确认、定时器以及用于序号和确认号的首部字段
报文结构
┌───────────────────┬───────────────────┐
│ Source Port │ Destination Port │
│ (16 bits) │ (16 bits) │
├───────────────────┴───────────────────┤
│ Sequence Number (32 bits) │
├───────────────────────────────────────┤
│ Acknowledgment Number (32 bits) │
├───────┬─────┬─────┬───────────────────┤
│ Data │ │ │ │
│Offset │Resv.│Flags│ Window │
│(4 bits│ │ │ (16 bits) │
├───────┴─────┴─────┴───────────────────┤
│ Checksum │ Urgent Pointer │
│ (16 bits) │ (16 bits) │
├───────────────────────────────────────┤
│ Options │
│ (0-40 bytes, padded) │
├───────────────────────────────────────┤
│ │
│ Application Data │
│ (Variable Size) │
│ │
└───────────────────────────────────────┘
- Data offset(首部长度字段) 显示 TCP 首部长度,通常选项字段为空,典型长度为 20 字节
- flags(标志字段)
ACK(确认字段值有效)
RST、SYN、FIN(用于连接建立和拆除)
CWR、ECE(明确拥塞通告)
PSH(指示接收方应立即将数据交给上层)
URG(指示报文存在紧急数据(最后一字节为紧急数据指针字段))
序号和确认号
TCP 把数据看成一个无结构的、有序的字节流
一个报文段的序号是该报文段首字节的字节流编号
TCP只确认该流中至第一个丢失字节为止的字节,所以TCP并未提供累积确认(cumulative acknowledgment)
序号:一个随机的序列号用于标识自己发送的数据
确认号:表示收到了 确认字段 - 1 的数据,请求确认号标识的数据
往返时间的估计与超时
TCP 连接管理
三次握手
- 客户端的TCP首先向服务器端的TCP发送一个特殊的 TCP 报文段。SYN 比特置为 1;随机一个初始序号(client_isn)放入报文段的序号字段中
- 服务器返回SYNACK报文段(SYNACK segment)。分配缓存变量;SYN 比特置为 1;确认字段置为 client_isn + 1;随机一个初始序号(server_isn)放入报文段的序号字段中
- 分配缓存变量;发送另一个报文段。确认字段置为 server_isn + 1;SYN 置为 0。可以携带数据了
终止连接
客户应用进程发出一个关闭连接命令。这会引起客户TCP向服务器进程发送一个特殊的 TCP 报文段。这个特殊的报文段让其首部中的一个标志位即 FIN 比特被设置为 l。当服务器接收到该报文段后,就向发送方回送一个确认报文段。然后,服务器发送它自己的终止报文段,其FIN比特被置为 1。最后该客户对这个服务器的终止报文段进行确认。此时,在两台主机上用于该连接的所有资源都被释放了。
网络层
核心分为两大部分
- 数据平面
转发。分组从路由器的输入链路到输出链路。 - 控制平面
路由选择。分组从发送方流向接收方时的路由或路径。
路由选择算法
数据平面
路由器
- 输入端口
线路端接、数据链路处理、查找转发排队 - 交换结构
- 输出端口
- 路由选择处理器
除了路由选择处理器,其他三者为硬件实现
IPv4、IPv6 及其他
IPv4
┌───────┬───────┬───────────┬───────────────┐
│Version│ IHL │Type of │ Total Length │
│4 bits │4 bits │Service(8) │ (16 bits) │
├───────┴───────┴───────────┴───────────────┤
│ Identification (16 bits) │ Flags│Fragment│
│ │(3b) │Offset │
├───────────────────────────┴──────┴────────┤
│ Time to Live │ Protocol │ Header │
│ (8 bits) │ (8 bits) │ Checksum │
├────────────────┴─────────────┴────────────┤
│ Source Address (32 bits) │
├───────────────────────────────────────────┤
│ Destination Address (32 bits) │
├───────────────────────────────────────────┤
│ Options (if needed) │
├───────────────────────────────────────────┤
│ Data │
└───────────────────────────────────────────┘
数据报分片
并不是所有链路层协议都能承载相同长度的网络层分组。有的协议能承载大数据报,而有的协议只能承载小分组。
一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit, MTU)。
所以 IPv4 数据报需要分片,并在端系统合成
IPv4 编址
因特网的地址分配策略被称为无类别域间路由选择(Classless Inlerdomain Routing,CIDR)
在CIDR被采用之前,IP地址的网络部分被限制为长度为8、16或24比特,这是一种称为分类编址(classful addressing)的编址方案
IP 地址获取:
- ISP
- ICANN
因特网名字和编号分配机构
DHCP
Dynamic Host Configuration Protocol 动态主机配置协议
一个应用在局域网中的网络协议,它使用UDP协议工作
动态分配 IP 地址
- DHCP 发现
- DHCP 提供 DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文(DHCP offer message)向客户做出响应,该报文向该子网的所有节点广播,仍然使用IP广播地址255. 255. 255. 255。因为在子网中可能存在几个DHCP服务器,该客户也许会发现它处于能在几个提供者之间进行选择的优越位置。每台服务器提供的报文包含有收到的发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP地址用期(address lease time) , 即IP地址有效的时间量。服务器租用期常设置为几小时或几天
- DHCP 请求
- DHCP ACK
NAT
Network Adress Translation 网络地址转换
重写首部IP地址和端口号
NAT 穿越
UPnP是一种允许主机发现和配置邻近NAT的协议
中间盒
IPv6
┌───────┬─────────────┬───────────────────┐
│Version│Traffic Class│ Flow Label │
│4 bits │ (8 bits) │ (20 bits) │
├───────┴─────────────┴───────────────────┤
│ Payload Length │ Next │ Hop │
│ (16 bits) │ Header │ Limit │
├───────────────────────────────────────────┤
│ │
│ Source Address │
│ (128 bits) │
│ │
├───────────────────────────────────────────┤
│ │
│ Destination Address │
│ (128 bits) │
├───────────────────────────────────────────┤
│ Data │
└───────────────────────────────────────────┘
匹配、转发、OpenFlow
第二层交换机和第三层路由器等中间盒的剧增,而且每种都有自己特殊的硬件、软件和管理界面,无疑给许多网络操作员带来了十分头疼的大麻烦。然而,近期软件定义网络的进展已经预示并且正在提出一种统一的方法,以一种现代、简洁和综合方式,提供多种网络层功能以及某些链路层功能
将基于目的地转发的特征总结为两个步骤:查找目的IP地址(“匹配”),然后将分组发送到有特定输出端口的交换结构(“动作”)。我们现在考虑一种更有意义的通用“匹配加动作”范式,其中能够对协议栈的多个首部字段进行“匹配”,这些首部字段是与不同层次的不同协议相关联的。“动作”能够包括:将分组转发到一个或多个输出端口(就像在基于目的地转发中一样),跨越多个通向服务的离开接口进行负载均衡分组(就像在负载均衡中一样),重写首部值(就像在NAT中一样),有意识地阻挡/丢弃某个分组(就像在防火墙中一样),为进一步处理和动作而向某个特定的服务器发送一个分组(就像在DPI —样),等等
OpenFlow是一个得到高度认可和成功的标准,它已经成为匹配加动作转发抽象、控制器以及更为一般的SDN革命等概念的先驱
控制平面
路由算法
找出最低开销路径(最短路径)
- 集中式路由选择算法
用完整的、全局性的网络知识计算路径
具有全局状态信息的算法被称作链路状态(Link State,LS)算法 - 分散式路由选择算法
迭代、分布的方式计算 - 静态
- 动态
- 负载敏感
- 负载愚钝
OSPF
(open shortest pass first 开放最短路径优先)
将路由器组织进自治系统(Autonomous System,AS),来控制规模,让每个 ISP 可以管理自治。
OSPF、IS-IS则是被应用于 AS内部 的路由管理协议
- OSPF 是一种链路状态协议
BGP
Border Gateway Protocol(当前使用的版本是 BGP-4)
动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。
BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。多运行于AS与AS之间。
自治系统间路由选择协议(inter-autonomous system routing protocol),用来管理 AS 之间的路由。
因特网中的 AS 间路由选择协议为边界网关协议(Border Gateway Protocol,BGP)
- 分布式、异步协议
- 还可用于实现 IP 任播
SDN
软件定义网络
SDN 体系结构具有 4 个关键特征:
- 基于流的转发
SDN控制的交换机的分组转发工作,能够基于运输层、网络层或链 路层首部中任意数量的首部字段值进行。 - 数据平面与控制平面分离
- 网络控制功能
- 可编程的网络
ICMP
因特网控制报文协议
ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节(以便发送方能确定引发该差错的数据报)。
| 类型 | 编码 | 描述 |
|---|---|---|
| 0 | 0 | 回显应答 (Echo Reply) |
| 3 | 0 | 网络不可达 (Network Unreachable) |
| 3 | 1 | 主机不可达 (Host Unreachable) |
| 3 | 2 | 协议不可达 (Protocol Unreachable) |
| 3 | 3 | 端口不可达 (Port Unreachable) |
| 3 | 4 | 需要分片但设置了DF (Fragmentation needed but DF set) |
| 3 | 5 | 源路由失败 (Source route failed) |
| 4 | 0 | 源抑制 (Source quench) |
| 5 | 0 | 重定向到网络 (Redirect for network) |
| 5 | 1 | 重定向到主机 (Redirect for host) |
| 5 | 2 | 重定向到服务类型和网络 (Redirect for TOS and network) |
| 5 | 3 | 重定向到服务类型和主机 (Redirect for TOS and host) |
| 8 | 0 | 回显请求 (Echo Request) |
| 11 | 0 | 传输期间生存时间为零 (TTL expired in transit) |
| 11 | 1 | 在分片重组期间生存时间为零 (Fragment reassembly time exceeded) |
| 12 | 0 | IP头部参数错误 (Parameter problem with IP header) |
| 13 | 0 | 时间戳请求 (Timestamp request) |
| 14 | 0 | 时间戳应答 (Timestamp reply) |
| 15 | 0 | 信息请求 (Information request) |
| 16 | 0 | 信息应答 (Information reply) |
SNMP
简单网络管理协议(Simple N etwork Management Protocol)版本 2 ( SNMPv2)
链路层和局域网
概述
链路层协议的任何设备均称为节点(node)
节点包括主机、路由器、交换机、WiFi 接入点
沿着通信路径连接相邻节点的通信信道称为链路(link)
为了透彻理解链路层以及它是如何与网络层关联的,我们考虑一个交通运输的类比例
子。假如一个旅行社计划为游客开辟从美国新泽西州的普林斯顿到瑞士洛桑的旅游路线。
假定该旅行社认为对于游客而言最为便利的方案是:从普林斯顿乘豪华大轿车到JFK机
场,然后乘飞机从JFK机场去日内瓦机场,最后乘火车从日内瓦机场到洛桑火车站。一旦
该旅行社作了这3项预定,普林斯顿豪华大轿车公司将负责将游客从普林斯顿带到JFK,
航空公司将负责将游客从JFK带到日内瓦,瑞士火车服务将负责将游客从日内瓦带到洛
桑。该旅程中3段中的每一段都在两个“相邻”地点之间是“直达的”。注意到这3段运
输是由不同的公司管理,使用了完全不同的运输方式(豪华大轿车、飞机和火车)。尽管
运输方式不同,但它们都提供了将旅客从一个地点运输到相邻地点的基本服务。在这个运
输类比中,一个游客好比一个数据报,每个运输区段好比一条链路,每种运输方式好比一
种链路层协议,而该旅行社好比一个路由选择协议
链路层服务
- 成帧(framing)
- 链路接入
- 可靠交付
- 差错检测和纠正
成帧
封装成帧是指数据链路层给上层交付下来的协议数据单元 PDU 添加一个首部和一个尾部,使之成为帧。
帧的首部和尾部
- 包含一些重要的控制信息。
- 定界信息
透明传输是指数据链路层给上层交付下来的协议数据单元 PDU 没有任何限制,就好像数据链路层不存在一样。
方法:
- 转义字符
链路层寻址
MAC 地址
- 长度为 6 个字节
- IEEE在管理着该MAC地址空间
ARP
Address Resolution Protocol 地址解析协议
在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。
以太网
以太网(英语:Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准如令牌环、FDDI和ARCNET。
以太网的标准拓扑结构为总线型拓扑
以太网几乎占领着现有的有线局域网市场。在20世纪80年代和90年代早期,以太网面临着来自其他局域网技术包括令牌环、FDDI和ATM的挑战。
┌─────────┬─────────┬───────────────────────────┐
│ 前同步码 │ 目的地址 │ 源地址 | 类型 | 数据 │ CRC │
└───────────────────────────────────────────────┘
链路层交换机
虚拟局域网
虚拟局域网(Virtula Local Network, VLAN)
无线网络和移动安全
对码分多址接入(Code Division Multiple Access,CDMA)
一个在无线网络中常用的共享媒体接入协议
无线网络要素:
- 无线主机
- 无线链路
主机通过无线通信链路 (wireless communication link) 连接到一个基站(定义见下文)或者另一台无线主机。 - 基站
- 网络基础设施
- 单跳,基于基础设施
4G 网络 - 单跳,无基础设施
蓝牙 - 多跳,基于基础设施
某些无线传感网络和所谓无线网状网络(wireless mesh network) - 多跳,无基础设施
计算机网络中的安全
SSL
安全套接字层(Secure Socket Layer, SSL)
SSL版本3的一个稍加修改的版本被称为运输层安全性(Transport Layer Security, TLS)
SSL将数据流分割成记录,对每个记录附加一个MAC用于完整性检查,然后加密该“记录+MAC”。
SSL 握手
1)客户发送它支持的密码算法的列表,连同一个客户的不重数。
2)从该列表中,服务器选择一种对称算法(例如AES)、一种公钥算法(例如具有特定密钥长度的RSA)和一种MAC算法。它把它的选择以及证书和一个服务器不重数返回给客户。
3)客户验证该证书,提取服务器的公钥,生成一个前主密钥(Pe Master Secret, PMS),用服务器的公钥加密该PMS,并将加密的PMS发送给服务器。
4)使用相同的密钥导岀函数(就像SSL标准定义的那样),客户和服务器独立地从PMS和不重数中计算出主密钥(Master Secret, MS)O然后该MS被切片以生成两个密码和两个MAC密钥。此外,当选择的对称密码应用于CBC (例如3DES或AES),则两个初始化向量(Initialization Vector, IV)也从该MS获得,这两个IV分别用于该连接的两端。自此以后,客户和服务器之间发送的所有报文均被加密和鉴别(使用MAC)。
5)客户发送所有握手报文的一个MAC。
6)服务器发送所有握手报文的一个MAC。
IPsec
虚拟专用网(Virtual Private Network, VPN)
在IPsec协议族中,有两个主要协议:
- 鉴别首部 (Autlientication Header, AH)协议
- 封装安全性载荷(Encapsulation Security Payload, ESP)协议。
IPsec数据报在网络实体对之间发送,例如两台主机之间、两台路由器之间或一台主机和一台路由器之间。在从源实体向目的实体发送IPsec数据报之前,源和目的实体创建了一个网络层的逻辑连接。这个逻辑连接称为安全关联(Security Association, SA)。
IPsec有两种不同的分组形式,一种用于所谓隧道模式(tunnel mode ),另一种用于所谓运输模式(transportmode)0更为适合VPN的隧道模式比运输模式部署得更为广泛。
多媒体网络
TCP/IP
对 OSI 的简化,4 层模型
TCP/IP协议的应用层的主要协议有HTTP、Telnet、FTP、SMTP等,是用来读取来自传输层的数据或者将数据传输写入传输层;传输层的主要协议有UDP、TCP,实现端对端的数据传输;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;链路层有时也称作数据链路层或网络接口层,主要协议有ARP、RARP,
通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与传输媒介(如电缆或其他物理设备)的物理接口细节。
Related notes
- 所属 MOC: 学科知识MOC
- 相关概念: 计算机网络OSI7层模型