文章目录
缩写
-
ISP
(Internet Service Provider
,因特网服务提供商)包含公司
ISP
、大学ISP
等 -
TCP
(Transmission Control Protocol
,传输控制协议) -
IP
(Internet Protocol
,网际协议) -
RFC
(Request For Comment
,请求评论) -
DSL
(Digital Subscriber Line
,数字用户线) -
CMTS
(Cable Modem Termination System
,电缆调制解调器端接系统) -
FTTH
(Fiber To The Home
,光纤到户) -
LAN
(Local Area Network
,局域网) -
FDM
(Frequency-Division Multiplexing
,频分复用) -
TDM
(Time-Division Multiplexing
,时分复用) -
IXP
(Internet Exchange Point
,因特网交换点) -
DoS attack
(Denial-of-Service attack
,拒绝服务攻击)大多数因特网 D o S DoS DoS攻击属于以下三种类型
- 弱点攻击
- 带宽洪泛
- 连接宏泛
-
DDos
(Distributed DoS
,分布式 D o S DoS DoS) -
P2P architecture
(Peer-to-Peer architecture
,对等体系结构) -
SSL
(Secure Sockets Layer
,安全套接字层)是对
TCP
的加强,这种强化是在应用层实现的 -
HTTP
(HyperText Transfer Protocol
,超文本传输协议) -
RTT
(Round-Trip Time
,往返时间) -
CDN
(Content Distribution Network
,内容分发网络)专用
CDN
:由内容提供商自己拥有第三方
CDN
:代表多个内容提供商分发内容两种不同的服务器安置原则:
- 深入:时延低,但维护难
- 邀请做客:时延较高,但维护简单
集群选择策略:
- 地理上最邻近
- 实时测量
-
SMTP
(Simple Mail Transfer Protocol
,简单邮件传输协议) -
POP3
(Post Office Protocol-Version 3
,第三版邮局协议) -
IMAP
(Internet Mail Access Protocol
,因特网邮件访问协议) -
TLD
(Top-Level Domain
,顶级域) -
RR
(Resource Record
,资源记录) -
DASH
(Dynamic Adaptive Streaming over HTTP
,经 H T T P HTTP HTTP的动态适应流)对于不同的质量水平,客户动态的请求来自不同版本且长度为几秒的视频段数据块
-
ACK
(positive acknowledgment
,肯定确认) -
NAK
(negative acknowledgment
,否定确认) -
ARQ
(Automatic Repeat reQuest
,自动重传请求协议) -
GBN
(Go-Back-N
,回退 N N N步) -
SR
(Selective Repeat
,选择重传) -
PPP
(Point-to-Point Protocol
,点对点协议) -
MTU
(Maximum Transmission Unit
,最大传输单元)以太网和
PPP
链路层协议通常具有 1500 1500 1500字节的MTU
-
MSS
(Maximum Segment Size
,最大报文段长度)TCP/IP
的首部通常为 40 40 40字节( 20 + 20 20+20 20+20),因此MSS
通常为 1460 1460 1460字节( 1500 − 40 1500-40 1500−40) -
ECN
(Explicit Congestion Notification
,明确拥塞通告)对于
TCP
和IP
的拓展方案允许网络明确向TCP
发送方和接收方发出拥塞信号TCP
收到ECN
拥塞指示时,接收主机中的TCP
通过在接收方到发送方的TCP ACK
报文段中设置ECE
(明确拥塞通告回显)比特,通知发送主机中的TCP
收到拥塞指示 -
DCCP
(Datagram Congestion Control Protocol
,数据报拥塞控制协议) -
QUIC
(Quitck UDP Internet Connections
, Q U I T QUIT QUIT协议) -
SDN
(Software-Defined Networking
,软件定义网络) -
TCAM
(Tenary Content Address Memory
,三态内容可寻址存储器) -
HOL
(Head-Of-the-Line
,线路前部)HOL
阻塞是指输入队列中排队的分组必须等待通过交换结构发送,因为它被线路前部的另一个分组所阻塞 -
AQM
(Active Queue Management
,主动队列管理) -
RED
(Random Early Detection
,随机早期检测)RED
算法是得到最广泛研究和实现的AQM
算法之一 -
FCFS
(First Come First Service
,先来先服务)也被称为
FIFO
(First-In-First-Out
,先进先出) -
WFQ
(Weighted Fair Queuing
,加权公平排队) -
CIDR
(Classless Interdomain Routing
,无类别域间路由选择) -
DHCP
(Dynamic Host Configuration
,动态主机配置协议) -
NAT
(Network Address Translation
,网络地址转换)通过
NAT
路由器上的NAT转换表,让外部广域网和内部专用网络能够进行沟通 -
ICMP
(Internet Control Message Protocol
,互联网控制报文协议) -
SNMP
(Simple Network Management Protocol
,简单网络管理协议) -
BGP
(Border Gateway Protocol
,边界网关协议) -
OSPF
(Open Shortest Path First
,开放式最短路径优先) -
MOSPF
(Multicast extensions to OSPF
,多播 O S P F OSPF OSPF) -
LS
(Link State
,链路状态) -
DV
(Distance-Vector
,距离向量) -
RIP
(Routing Information Protocol
,路由信息协议) -
AS
(Autonomous System
,自治系统)自治系统由其全局唯一的 A S AS AS号(
ASN
)唯一标识 -
MIB
(Management Information Base
,管理信息库)网络管理的组件之一
-
PDU
(Protocol Data Unit
,协议数据单元) -
MAC
(Medium Access Control
,媒体访问控制) -
NIC
(Network Interface Card
,网络接口卡) -
FEC
(Forward Error Correction
,前向纠错)接收方检测和纠正差错的能力
-
CRC
(Cyclic Redundancy Check
,循环冗余检测) -
HDLC
(high-level data link control
,高级数据链路控制) -
CDMA
(Code Dicision Multiple Access
,码分多址) -
CSMA
(Carrier Sense Multiple Access
,载波侦听多路访问) -
CSMA/CD
(CSMA with Collision Detection
,具有碰撞检测的 C S M A CSMA CSMA) -
ARP
(Address Resolution Protocol
,地址解析协议) -
VLAN
(Virtual Local Network
,虚拟局域网) -
MPLS
(Multiprotocol Label Switching
,多协议标签交换) -
VPN
(Virtual Private Network
,虚拟专用网)
概念
-
主机、端系统
主机可划分为客户和服务器
-
传输速率
单位:
bit/s
、bps
-
分组
源将长报文划分为较小的数据块,称之为分组
分组包含两种类型的字段:首部字段和有效荷载字段
-
分组交换机
两种主要类型
-
路由器
每台路由器具有一个转发表,用于将目的地址(或目的地址的一部分)映射成输出链路
路由器使用路由选择协议来自动的设置转发表
路由器的四个组件:
-
输入端口
执行终结入物理链路的物理层功能
与位于入链路远端的数据链路层交互来执行数据链路层功能
执行查找功能,通过查询路由表决定路由器的输出端口
-
输出端口
存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组
-
交换结构
将输入端口连接到输出端口
交换的几种方式:
-
经内容交换
-
经总线交换
-
经互联网络交换
纵横式网络能够并行转发多个分组
-
-
路由选择处理器
执行路由选择协议,维护路由选择表和关联链路状态信息,并为该路由器计算转发表
路由器通过使用最长前缀匹配规则确定转发路径
-
-
链路层交换机
主要功能:
-
过滤
决定将一个帧转发到某个接口,还是将其丢弃
-
转发
决定帧应该被导向哪个接口,并且把帧移动到该接口
交换机的过滤和转发借助于交换机表完成
工作流程
假设一个目的地址为 D M A C DMAC DMAC的帧从接口 x x x到达
- 如果交换机表中没有对 D M A C DMAC DMAC的表项,交换机向除了 x x x外的所有接口转发该帧(被称为泛洪)
- 如果存在一个表项将目的地址 D M A C DMAC DMAC和接口 x x x联系起来,则丢弃该帧
- 如果存在一个表项将目的地址 D M A C DMAC DMAC和不为 x x x的接口 y y y联系起来,则将该帧转发到接口 y y y的输出缓存中
交换机是自学习的
学习过程:
- 初始为空
- 在每个接口接收到的入帧,交换机在表中存储该帧的源地址字段中的** M A C MAC MAC地址**、该帧到达的接口和当前时间
- 一段时间(被称为老化期)后,交换机没有收到以该地址作为源地址的帧,就从表中删除这一项;如果一台 P C PC PC被另一台 P C PC PC代替,则原来的项也会被删除
-
路由器提供对广播风暴的控制,而链路层交换机没有
-
-
协议
协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作
-
套接字
进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文
套接字是应用程序和网络之间的应用程序编程端口
简单的套接字编程
T C P s e r v e r TCP\space server TCP server
from socket import * HOST = '' PORT = 12000 BUFSIZ = 1024 ADDR = (HOST, PORT) serverSock = socket(AF_INET, SOCK_STREAM) serverSock.bind(ADDR) serverSock.listen(5) while True: print('waiting for connection...') cliSock, addr = serverSock.accept() print('get connection from {}'.format(addr)) while True: msg = cliSock.recv(BUFSIZ).decode() print(msg) if msg.upper() == 'QUIT': cliSock.send("Byebye!".encode()) print('end connection.') break tranMsg = msg.upper() cliSock.send(tranMsg.encode()) cliSock.close()
T C P c l i e n t TCP\space client TCP client
from socket import * HOST = 'localhost' PORT = 12000 BUFSIZ = 1024 ADDR = (HOST, PORT) clientSock = socket(AF_INET, SOCK_STREAM) clientSock.connect(ADDR) while True: msg = input('> ') clientSock.send(msg.encode()) retMsg = clientSock.recv(BUFSIZ) print(retMsg.decode()) if msg.upper() == 'QUIT': break clientSock.close()
U D P s e r v e r UDP\space server UDP server
from socket import * serverPort = 12000 BUFSIZ = 2048 serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('', serverPort)) print('waiting for connection...') while True: data, addr = serverSocket.recvfrom(BUFSIZ) print('get connection from {}'.format(addr)) tranData = data.decode().upper() print(tranData) msg = tranData if tranData != "QUIT" else "Byebye" serverSocket.sendto(msg.encode(), addr)
U D P c l i e n t UDP\space client UDP client
from socket import * serverName = 'localhost' serverPort = 12000 BUFSIZ = 2048 clientSock = socket(AF_INET, SOCK_DGRAM) while True: message = input("> ") clientSock.sendto(message.encode(), (serverName, serverPort)) backMsg, serverAddr = clientSock.recvfrom(BUFSIZ) print(backMsg.decode()) if message.upper() == 'QUIT': break clientSock.close()
一个
UDP
套接字由(目的 I P IP IP地址,目的端口号)这个二元组全面标识而
TCP
套接字由(源 I P IP IP地址,源端口号,目的 I P IP IP地址,目的端口号)这个四元组标识 -
接入网
将端系统物理连接到边缘路由器的网络
-
物理媒体
可分为两种类型:
-
导引型媒体
双绞铜线是最便宜且最常用的导引型传输媒体
-
非导引型媒体
-
-
存储转发传输
交换机在向输出链路传输该分组的第一个比特之前,必须接收到整个分组
P P P个分组经 N N N条链路的时延(只考虑传输时延, L L L为分组长度, R R R为传输速率): d 端 到 端 = ( N + P − 1 ) L R d_{端到端}=(N+P-1)\frac{L}{R} d端到端=(N+P−1)RL
-
输出缓存
也称为输出队列,用于存储路由器准备发往的那条链路的分组
排队时延在此产生
-
分组丢失
也叫做丢包,缓存满了之后,到达的分组或已经排队的分组之一会被丢弃
是在路由器中的队列中,分组被实际丢弃或丢失
-
电路交换和分组交换
电路交换中,端系统通信会话期间,预留了端系统之间沿路径通信所需的资源
电路通过
FDM
或TDM
来实现FDM
中频段的宽度被称为带宽TDM
中一条电路的传输速率等于帧速率乘以一个时隙中的比特数量 -
时延
包括节点处理时延、排队时延、传输时延、传播时延等
累加起来是节点总时延
传播时延等于两个路由器之间的距离除以传播速率
-
流量强度
假设 α \alpha α为分组到达队列的平均速率, R R R是传输速率, L L L是分组的长度(单位为 b i t bit bit),则流量强度为 L α R \frac{L\alpha}{R} RLα
设计系统时流量强度不能大于1
随着流量强度接近1,平均排序时延迅速增加
-
吞吐量
瞬时吞吐量、平均吞吐量
单位为
bps
吞吐量取传输路径上所有链路速率的最小值
在今天,互联网中吞吐量的限制因素通常是接入网
-
服务模型
某层向上一层提供的服务
-
协议栈
各层所有的协议被称为协议栈
-
5层因特网协议栈
自顶向下依次是:
-
应用层
位于应用层的信息分组被称为报文
-
运输层
运输层的分组被称为报文段
-
网络层
网络层分组被称为数据报
-
链路层
链路层分组被称为帧
-
物理层
以比特流的形式传输
-
-
O S I OSI OSI参考模型
-
应用层
-
表示层
使通信的应用程序能够交换数据的含义,包括数据压缩、数据加密和数据描述
-
会话层
提供了数据交换的定界和同步功能
-
运输层
-
网络层
-
链路层
-
物理层
-
-
病毒
需要某种形式的用户交互来感染用户设备的恶意软件
-
蠕虫
无需任何明显用于交互就能进入设备的恶意软件
-
分组嗅探器
记录每个流经分组副本的被动接收机
-
应用程序体系结构
两种主流体系结构:
- 客户-服务器体系结构
- 对等(P2P)体系结构
-
进程通信
网络应用程序由成对的进程组成
发起通信的进程被称为客户,等待联系的进程是服务器
-
进程寻址
主机通过**
IP
地址**标识进程通过端口号标识
-
应用程序服务
可以从四个方面对应用程序服务要求进行分类
-
可靠数据传输
对运输层而言,代表能确保应用程序的一端发送的数据正确、完全的交付给该应用程序的另一端
-
吞吐量
可用吞吐量指发送进程能像接收进程交付比特的速率
-
定时
-
安全性
TCP
提供面向连接的服务和可靠的数据传送服务UDP
提供无连接不可靠服务 -
-
应用层协议
定义了运行在不同端系统上的应用程序进程如何相互传递报文,特别定义了:
- 交换的报文类型(请求报文、响应报文等)
- 报文类型的语法
- 字段的语义
- 确定进程何时、如何发送报文,如何对报文进行响应
-
电子邮件
三个主要组成部分:
- 用户代理
- 邮件服务器
- 简单邮件传输协议
SMTP
-
多路分解与多路复用
将运输层报文段的数据交付到正确的套接字的过程叫多路分解
从源主机不同的套接字中收集数据块,并为每个数据块封装上首部信息,然后将报文段传递到网络层的过程叫多路复用
-
周知端口号
0 − 1023 0-1023 0−1023范围内的端口号被称为周知端口号
-
自动重传请求协议( A R Q ARQ ARQ)
基于
ACK
和NAK
控制报文,使得接收方可以让发送方知道哪些内容被正确接收,哪些内容接收有误并且需要重传 -
停等协议
发送方确信接收方已经正确接收当前分组后,才会发送一块新数据
-
比特交替协议
分组序号在0和1之间交替
-
流水线可靠数据传输协议
允许发送方发送多个分组而无需等待
差错恢复的方式:
-
回退 N N N步( G B N GBN GBN)
常被称为滑动窗口协议
接收方丢弃所有失序分组
出现超时时,发送方重传所有已发送但还未被确认过的分组
-
选择重传( S R SR SR)
接收方将确认一个正确接收的分组而不管其是否时序(但序号需要在自己的接收窗口中)
超时时,发送方仅重传那些它怀疑在接收方出错(丢失或受损)的分组
窗口长度必须小于或等于序号空间大小的一半
若用 n n n个比特表示序号,则序号的范围为 0 到 ( 2 n − 1 ) 0到(2^{n}-1) 0到(2n−1),则窗口长度必须小于等于 2 n − 1 2^{n-1} 2n−1
-
-
单工、半双工与全双工
单工仅允许单向传输
半双工允许双向传输,但同一时刻只允许朝一个方向传输
全双工允许双向传输,同一时刻允许两个方向同时传输
-
点对点与多播
点对点:单个发送方和单个接收方之间的连接
多播:一次发送操作中,从一个发送方将数据传送传送给多个接收方
-
冗余 A C K ACK ACK
再次确认某个报文段的 A C K ACK ACK
-
供给载荷
运输层向网络中发送报文段(包含初始数据和重传数据)的速率
-
拥塞控制方法
端到端拥塞控制
网络层没有为运输层拥塞控制提供显示支持
网络辅助的拥塞控制
路由器向发送方提供关于网络中拥塞状态的显示反馈信息
-
瓶颈链路
对于每条连接,沿着该连接路径上的所有其他路径都不拥塞,而且与该瓶颈链路的传输容量相比,它们都有充足的传输容量,则该链路被称为瓶颈链路
-
网络层功能
转发
将分组移动到适当的输出链路
转发方式:
-
基于目的转发:只根据最终目的地来选择路径
查找目的
IP
地址(“匹配”),然后将分组发送到有特定输出端口的交换结构(“动作”) -
通用转发:基于多种因素决定转发路径
路由选择
通过路由选择算法来确定转发路径
-
-
网络层可以提供的服务
- 确保交付
- 具有时延上界的确保交付
- 有序分组交付
- 确保最小带宽
- 安全性
但网络层只提供尽力而为服务
-
分组调度的方式
先进先出
优先权排队
循环排队
加权公平排队
-
子网
分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离得到网络的断电,这些隔离的网络中的每一个都叫做一个子网
-
子网掩码
223.1.1.0/24
里的/24
记法被称为子网掩码也可将其写成如下形式:
255.255.255.0
-
网络前缀
形式为
a.b.c.d/x
的地址的x最高比特构成了IP
地址的网络部分,被称为网络前缀,亦可简称为前缀 -
默认网关
第一跳路由器地址通常被称作默认网关
-
专用网络
亦称作具有专用地址的地域,是指其地址仅对该网络中的设备有意义的网络
-
任播地址
在
IPv6
中引入,这种地址可以将数据报交付给一组主机中的任意一个 -
转发表和流表的维护方法
每路由器控制
在每台路由器中运行一种路由选择算法,每台路由器都包含转发和路由选择功能
逻辑集中式控制
逻辑集中式控制器计算并分发转发表以供每台路由器使用, S D N SDN SDN采用了该种控制方式
-
路由选择算法
分类方式1:
-
集中式路由选择算法
用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径
具有全局状态信息的算法通常被称作链路状态( L S LS LS)算法
-
分散式路由选择算法
路由器以迭代、分布式的方式计算出最低开销路径,每个结点仅有与其直接相连链路的开销信息就能开始工作
距离向量( D V DV DV)算法就属于分散式路由选择算法
分类方式2:
-
静态路由选择算法
通常人工进行调整
-
动态路由选择算法
随着网络流量负载或拓扑发生变化而改变路由选择路径
分类方式3:
-
负载敏感算法
链路开销会动态的变化以反映出底层链路的当前拥塞水平
-
负载迟钝算法
链路开销不明显的反映当前的拥塞水平
LS
算法使用全局信息
典型的
LS
算法有 D i j k s t r a Dijkstra Dijkstra算法在拥塞敏感的路由选择中,可能会出现振荡
因特网上的路由器能够进行自同步
即使路由器初始以相同周期、不同时刻开始执行算法,但算法的执行时机最终会同步
DV
算法DV
算法是一种迭代的、异步的和分布式的算法采用 B e l l m a n − F o r d Bellman-Ford Bellman−Ford算法
可能会遇到路由选择环路,无穷计数问题
要解决该问题,可以采用毒性逆转,即如果 Z Z Z通过 Y Y Y到达 X X X,则 Z Z Z通告 Y Y Y它到 X X X的距离是 ∞ \infin ∞,但这个方法不能解决一般的无穷计数问题,只适用于只有两个直接相连的邻居节点的环路
-
-
自治系统内部路由选择协议
在一个自治系统内部运行的路由选择算法就叫做自治系统内部路由选择协议,通常采用 O S P F OSPF OSPF路由选择协议
-
自治系统间路由选择协议
所有的 A S AS AS运行相同的 A S AS AS间路由选择协议
BGP
B G P BGP BGP是所有因特网中最重要的协议(唯一的竞争者可能是
IP
协议) -
网关路由器和内部路由器
网关路由器是一台位于 A S AS AS边缘的路由器,直接连接到其他 A S AS AS中的一台或多台路由器
内部路由器仅连接在自己 A S AS AS内部的主机和路由器
-
路由
路由器通过 B G P BGP BGP连接通告前缀时,前缀中包含了一些BGP属性,前缀及其属性称为路由
-
热土豆路由选择
从所有可能的路由中,选择 到该路由的 N E X T − H O P NEXT-HOP NEXT−HOP路由器 的开销最小的那一条路由
这是一个"自私"的算法,它选择在自己 A S AS AS中开销最小的路由,而不管其他部分的开销
-
I P IP IP任播
C D N CDN CDN公司为多台服务器指派相同的 I P IP IP地址,当客户向该 I P IP IP地址发送请求时,因特网路由器向最近的服务器转发该请求分组,最近的服务器由 B G P BGP BGP路由选择算法定义
实际中, C D N CDN CDN通常不使用 I P IP IP任播,但 I P IP IP任播广泛的引用与 D N S DNS DNS中
-
S D N SDN SDN控制平面
SDN
控制平面可划分为:-
S D N SDN SDN控制器
功能可分为3个层次:
-
通信层
南向接口,负责 S D N SDN SDN控制器和受控网络设备之间的通信,通常使用 O p e n F l o w OpenFlow OpenFlow协议
-
网络范围状态管理层
-
网络控制应用程序层
北向接口,允许网络控制应用程序在状态管理层之间读/写网络状态和流表
-
-
S D N SDN SDN网络控制应用
-
-
网络管理的组件
管理服务器
被管设备
管理信息库( M I B MIB MIB)
网络管理代理
网络管理协议
-
链路层信道
广播信道
连接有线局域网、卫星网和混合光纤同轴电缆接入网中的多台主机,使用媒体访问协议来协调帧传输
点对点通信链路
由链路一端的单个发送方和链路另一端的单个接收方组成
-
链路层提供的服务
成帧
链路接入
M A C MAC MAC协议规定了帧在链路层上传输的规则
可靠交付
差错检测和纠正
-
网络适配器
又被称为网络接口卡
链路层的主体部分在网络适配器中实现
位于适配器核心的是链路层控制器,该控制器通常是实现了许多链路层服务的专用芯片
-
差错检验
差错检验的3种技术:
-
奇偶校验
描述差错检测和纠正背后的基本思想
奇校验:添加一个附加比特,使得1的总数为奇数
偶校验:添加一个附加比特,使得1的总数为偶数
二维奇偶校验:对每一行和每一列都进行一维的奇偶校验
-
检验和
更多的应用于运输层
对接收的数据的和 取反码,通过看结果是否全为1来检测是否出错
-
循环冗余检测( C R C CRC CRC)
更多的应用于适配器中的链路层
发送方和接收方须先协商一个 r + 1 r+1 r+1比特生成多项式 G G G,对于给定的 d d d比特数据段 D D D,发送方需要给它添加 r r r个附加比特 R R R,使得 ( D ⋅ 2 r + R ) % G = 0 (D\cdot 2^r+R)\%G=0 (D⋅2r+R)%G=0(则 R = ( D ⋅ 2 r ) % G R=(D\cdot 2^r) \%G R=(D⋅2r)%G)
接收方用 G G G去除接收到的 r + d r+d r+d比特数据,若结果非0,则说明传输出现了差错
-
-
多路访问协议
可以划分为3种类型:
-
信道划分协议
T D M TDM TDM:将事件划分为时间帧,每个帧再划分为 N N N个时隙,每个节点的传输速率为 R N b p s \frac{R}{N}\ bps NR bps( R R R为信道的总传输速率)
F D M FDM FDM:将 R b p s R\ bps R bps信道划分为 N N N个不同的频段,每个节点分配一个,每个节点的传输速率为 R N b p s \frac{R}{N}\ bps NR bps
C D M A CDMA CDMA:码分多址,给每个节点分配一个不同的编码,使不同的节点能够同时传输
-
随机接入协议
随机接入协议中,一个传输节点总是以信道的全部速率进行发送
有碰撞时,涉及碰撞的节点反复重发该帧(不必马上重发,需要等待一个随机时延),直到无碰撞通过
-
轮流协议
轮询协议
指定一个主节点,主节点以循环的方式轮询每个节点,告知他们能传输的帧的最大数目
令牌传递协议
一个被称作令牌的特殊帧在节点之间以某种固定的次序传递
一个节点收到令牌时,当它有帧要传输时,发送最大数目的帧数,然后将令牌转发给下一个节点;如果它没有帧要传输,则立即向下一个节点转发令牌
-
-
M A C MAC MAC地址
又被称为LAN地址、物理地址
地址长度为 6 6 6字节,共有 2 48 2^{48} 248个可能的 M A C MAC MAC地址
并不是主机或路由器具有 M A C MAC MAC地址,而是它们的适配器有 M A C MAC MAC地址
没有两块适配器拥有相同的 M A C MAC MAC地址
M A C MAC MAC广播地址为: F F − F F − F F − F F − F F − F F FF-FF-FF-FF-FF-FF FF−FF−FF−FF−FF−FF(48位都为1)
-
多协议标签交换( M P L S MPLS MPLS)
在第二层首部和第三层首部之间添加了一个
MPLS
首部MPLS
首部的包含的字段:-
标签
-
预留的3比特实验字段
-
1比特 S S S字段,用于指示一系列成栈的 M P L S MPLS MPLS首部的结束
-
寿命字段
MPLS
增强的转发在转发表项中添加了入标签和出标签
MPLS
能够并且已经被用于实现虚拟专用网(VPN
) -
协议
应用层协议
HTTP
W e b Web Web,流式多媒体,基于
TCP
协议W e b Web Web页面是由对象组成的
H T T P HTTP HTTP服务器并不保存关于客户的任何信息,所以
HTTP
是一个无状态协议持续连接和非持续连接
HTTP
默认采用持续连接
HTTP
请求报文格式请求行:方法字段、 U R L URL URL字段、 H T T P HTTP HTTP版本字段
首部行:首部字段、值
实体体
样例:
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/5.0 Accept-language: zh
使用 G E T GET GET方法时实体体为空,只有用 P O S T POST POST方法时才使用实体体
条件 G E T GET GET方法
添加首部行
If-modified-since: Web, 9 Sep 2015 09:23:24
HTTP
响应报文格式初始状态行:版本、状态码、状态信息
首部行
实体体
样例:
HTTP/1.1 200 OK Connection: close Date: Tue, 18 Aug 2015 15:44:04 GMT Server: Apache/2.2.3(CentOS) Last-Modified: Tue, 18, Agu 2015 15:11:03 GMT Content-Length: 6821 Content-Type: text/html (data data data data ...)
常见状态码
状态码 状态信息 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version Not Supported 304 Not Modified
cookie
四个组件:
HTTP
响应报文中的一个cookie
首部行Set-cookie: 1678
HTTP
请求报文中的一个cookie
首部行Cookie: 1678
用户端系统中保留一个
cookie
文件,由用户浏览器进行管理位于
Web
站点的一个后端数据库
Web
缓存器也叫代理服务器
SMTP
电子邮件,基于
TCP
协议使用持续连接
语法
HELO domain_name MAIL FROM: <1550223143@qq.com> RCPT TO: <zhj1550223143@gmail.com> DATA FROM: 1550223143@qq.com TO: zhj1550223143@gmail.com Subject: Learning Computer Network The content of the mail . QUIT
POP3
邮件访问协议,基于
TCP
协议三个阶段:
- 特许
- 事务处理
- 更新
命令
特许阶段
user <username> pass <password>
事务处理
list retr dele quit
IMAP
协议比POP3
协议更为复杂,也更加强大现在基于
Web
的电子邮件:浏览器和邮件服务器之间使用HTTP
协议,但邮件服务器和其他邮件服务器之间仍然使用SMTP
协议
Telnet
远程终端访问,基于
TCP
协议
FTP
文件传输,基于
TCP
协议
DNS
目录服务,基于
UDP
协议主机可以根据主机名来标识,还可以根据
IP
地址来标识,DNS
提供主机名到IP
地址转换的目录服务
DNS
提供的其他服务
- 主机别名
- 邮件服务器别名
- 负载分配
三类
DNS
服务器
- 根
DNS
服务器- 顶级域(
TLD
)DNS
服务器- 权威
DNS
服务器还有一类本地DNS服务器
查询方式
- 递归查询
- 迭代查询
DNS
广泛的使用了缓存技术
DNS
记录和报文
DNS
服务器中存储了资源记录( R R RR RR)资源记录是一个包含了下列字段的四元组
(Name, Value, Type, TTL)
- T y p e Type Type为 A A A,则 N a m e Name Name是主机名, V a l u e Value Value是对应的 I P IP IP地址
- T y p e Type Type为 N S NS NS,则 N a m e Name Name是域名, V a l u e Value Value是知道如何获取该域中主机的 I P IP IP地址的权威DNS服务器的主机名
- T y p e Type Type为 C N A M E CNAME CNAME,则 N a m e Name Name是别名, V a l u e Value Value是对应的规范主机名
- T y p e Type Type为 M X MX MX,则 N a m e Name Name是别名, V a l u e Value Value是对应的邮件服务器的规范主机名
T T L TTL TTL是该记录的生存时间
DNS
报文格式![]()
BitTorrent
最为流行的
P2P
文件分发协议,基于TCP
协议
P2P
和客户-服务器体系结构的分发时间设服务器上载速率为 u s u_s us,对其他主机, d i d_i di表示下载速率, u i u_i ui表示上载速率,F为文件的总比特数
则客户-服务器体系结构的最小分发时间为 m a x ( N F u s , F d m i n ) max(\frac{NF}{u_s},\frac{F}{d_{min}}) max(usNF,dminF)
而 P 2 P P2P P2P体系结构的最小分发时间为 m a x ( F u s , F d m i n , N F u s + ∑ i = 1 N d i ) max(\frac{F}{u_s},\frac{F}{d_{min}}, \frac{NF}{u_s+\sum\limits_{i=1}^{N}{d_i}}) max(usF,dminF,us+i=1∑NdiNF)
参与一个特定文件分发的所有对等方的集合被称为一个洪流
请求块时采用最稀缺优先技术
优先请求在邻居中最稀缺且自己没有的块
采用一报还一报的激励机制
给当前能够以最高速率向自己发送数据的邻居以优先权
每隔30秒需要随机另选一个邻居发送数据
DHCP
动态主机配置协议,基于
UDP
协议又被称为即插即用协议或零配置协议
是一个客户-服务器协议
获取
IP
地址的4个步骤
DHCP
服务器发现通过发送DHCP发现报文来完成( U D P UDP UDP分组中,目的端口号为 67 67 67; I P IP IP数据报中,源 I P IP IP地址填 0.0.0.0 0.0.0.0 0.0.0.0,目的 I P IP IP地址填广播地址 255.255.255.255 255.255.255.255 255.255.255.255)
DHCP
服务器提供使用DHCP提供报文来完成(依旧使用广播地址 255.255.255.255 255.255.255.255 255.255.255.255),报文内容包含发现报文的事务ID、向客户推荐的 I P IP IP地址、网络掩码和IP地址租用期
DHCP
请求客户从一台或多台 D H C P DHCP DHCP服务器的提供中选择一个,向对应的服务器发送 D H C P DHCP DHCP请求报文(源 I P IP IP地址依旧使用 0.0.0.0 0.0.0.0 0.0.0.0),回显配置的参数
DHCP ACK
服务器对 D H C P DHCP DHCP请求进行响应,发送一个 D H C P A C K DHCP~ACK DHCP ACK报文,证实要求的参数
SIP
、RTP
NFS
远程文件服务器,通常基于
UDP
协议
SNMP
简单网络管理协议,通常基于
UDP
协议用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文
请求响应模式
S N M P SNMP SNMP管理服务器向 S N M P SNMP SNMP 代理发送请求,代理接受请求后,执行一些动作,然后对该请求发送一个回答(请求常用于查询或修改 M I B MIB MIB对象值)
陷阱报文
代理向管理服务器发送的一种非请求报文,用于通知管理服务器一个异常情况已经导致了 M I B MIB MIB对象值的改变
报文格式参考链接
BGP
边界网关协议,基于
TCP
协议是一种自治系统间路由选择协议,是一种分布式和异步的协议
BGP
为每台路由器提供了完成以下任务的手段从邻居 A S AS AS获取前缀的可达性信息
确定到该前缀的"最好的"路由
BGP
连接跨越两个 A S AS AS的 B G P BGP BGP连接称为外部BGP连接( e B G P eBGP eBGP)
在相同 A S AS AS内部的两台路由器之间的 B G P BGP BGP会话称为内部BGP连接( i B G P iBGP iBGP)
BGP
属性路由器通过 B G P BGP BGP连接通告前缀时,前缀中包含了一些BGP属性
两个重要的属性:
A S − P A T H AS-PATH AS−PATH
包含了已经通过的 A S AS AS的列表
当一个前缀通过某 A S AS AS时,就将该 A S AS AS的 A S N ASN ASN加入到 A S − P A T H AS-PATH AS−PATH的现有列表中
N E X T − H O P NEXT-HOP NEXT−HOP
是 A S − P A T H AS-PATH AS−PATH起始的路由器接口的 I P IP IP地址
BGP
路由组件每条 B G P BGP BGP路由包含3个组件: N E X T − H O P ; A S − P A T H ; 目 的 前 缀 NEXT-HOP;AS-PATH;目的前缀 NEXT−HOP;AS−PATH;目的前缀
路由选择算法
BGP
采用了一种比热土豆路由算法更加复杂但综合了其特点的算法,顺序调用以下规则直到剩下一条路由:
- 路由被指派一个本地偏好值(可能由该路由器设置,或者从相同 A S AS AS的另一台路由器学到,它的值完全取决于网络管理员),具有最高本地偏好值的路由将被选择
- 如果具有最高本地偏好值的路由有多个,则选择具有最短 A S − P A T H AS-PATH AS−PATH的路由(如果该规则是路由选择的唯一规则,则采用距离向量算法计算最短路,其中距离测度采用 A S AS AS跳而非路由器跳数)
- 如果还有多个路由,则使用热土豆路由选择
- 如果还有多个路由,则使用 B G P BGP BGP标识符来选择路由
RIP
路由信息协议,基于
UDP
协议使用 B e l l m a n − F o r d Bellman-Ford Bellman−Ford算法
运输层协议
TCP
TCP
是面向连接的,提供全双工服务
TCP
连接是点对点的
TCP
报文格式:![]()
序号: 32 b i t 32bit 32bit,发送的报文段的第一个首字节的序号
确认号: 32 b i t 32bit 32bit,期望收到的下一个字节的序号
W i n d o w Window Window:接收窗口字段, 16 b i t 16bit 16bit,用于指示接收方愿意接受的字节数
D a t a O f f s e t Data\ Offset Data Offset:首部长度字段, 4 b i t 4bit 4bit,以 32 b i t 32bit 32bit为单位
6比特的标志字段:
A C K ACK ACK比特用于指示确认字段中的值是有效的
S Y N SYN SYN比特用于
TCP
连接的建立(三次握手)F I N FIN FIN比特用于
TCP
连接的拆除(四次挥手)R S T RST RST比特用于连接的重设
当接受到的报文段的端口或
IP
地址和当前主机进行的套接字不匹配时,该主机向源发送一个特殊重置报文段,将 R S T RST RST标志位设置为1P S H PSH PSH比特用于指示接收方应立即将数据交给上层
U R G URG URG比特用于指示报文段的紧急数据指针字段是有效的
首部字段通常为 20 20 20字节
TCP
提供累积确认只确认流中至第一个丢失字节的字节
往返时间
大多数
TCP
的实现仅在某个时刻做一次 S a m p l e R T T SampleRTT SampleRTT测量,而不是为每个发送的报文段都进行一次测量TCP绝不为重传的报文段计算SampleRTT
S a m p l e R T T SampleRTT SampleRTT均值: E s t i m a t e d R T T = ( 1 − α ) ⋅ E s t i m a t e d R T T + α ⋅ S a m p l e R T T EstimatedRTT=(1-\alpha)\cdot EstimatedRTT+\alpha\cdot SampleRTT EstimatedRTT=(1−α)⋅EstimatedRTT+α⋅SampleRTT
R T T RTT RTT偏差: D e v R T T = ( 1 − β ) ⋅ E s t i m a t e d R T T + β ⋅ S a m p l e R T T DevRTT=(1-\beta)\cdot EstimatedRTT+\beta\cdot SampleRTT DevRTT=(1−β)⋅EstimatedRTT+β⋅SampleRTT
其中 α \alpha α的推荐值为 0.125 0.125 0.125, β \beta β的推荐值为 0.25 0.25 0.25
超时重传间隔
T i m e o u t I n t e r v a l = E s t i m a t e d R T T + 4 ⋅ D e v R T T TimeoutInterval=EstimatedRTT+4\cdot DevRTT TimeoutInterval=EstimatedRTT+4⋅DevRTT
每次重传都会将 T i m e o u t I n t e r v a l TimeoutInterval TimeoutInterval设置为原来的两倍,而不使用该公式来计算
一旦受到 3 3 3个冗余 A C K ACK ACK, T C P TCP TCP就执行快速重传
TCP
为应用程序提供了流量控制服务
TCP
通过让发送方维护一个接收窗口的变量来提供流量控制该变量指示接收方还有多少可用的缓存空间
TCP
连接管理
三次握手
- 客户端
TCP
首先向服务器端的TCP
发送一个SYN
报文段(SYN
标志位被设置为1,并随机选择一个初始序号 c l i e n t _ i s n client\_isn client_isn放入报文段的序号字段中)- 收到
SYN
报文段后,服务器发送一个SYNACK
报文段(SYN
比特置为1,选择一个初始序号 s e r v e r _ i s n server\_isn server_isn放入序号字段中,将 c l i e n t _ i s n + 1 client\_isn+1 client_isn+1放入确认号字段中)- 收到
SYNACK
报文段后,客户再向服务器发送一个报文段(SYN
比特置为0,将确认号字段设置为 s e r v e r _ i s n + 1 server\_isn+1 server_isn+1)其中在第二步的时候服务器会为
TCP
连接设置缓存和变量,但这使得TCP
容易受到SYN
洪泛的拒绝服务攻击。而客户会在第三步为该连接分配缓存和变量第三步的报文段已经可以传输数据
四次挥手
- 客户
TCP
向服务器发送一个特殊的TCP
报文段(FIN
标志位设置为1)- 服务器向客户发送一个确认报文段
- 服务器向客户发送终止报文段(
FIN
比特置为1)- 客户向服务器段发送确认报文段
服务器受到最后的确认报文段后关闭,经过一段等待时间后,客户端关闭(为了避免最后的确认报文段丢失,所以需要等待一段时间,通常为 2 R T T 2RTT 2RTT)
TCP
客户端状态![]()
TCP
服务器状态
TCP
的拥塞控制
TCP
采用端到端拥塞控制运行在发送方的
TCP
拥塞控制机制跟踪一个额外的变量拥塞窗口,通常记为 c w n d cwnd cwnd拥塞避免算法的3个主要部分
慢启动
一旦发生超时事件就进入慢启动状态
c w n d cwnd cwnd从1个 M S S MSS MSS开始增加,以指数级别增长,每收到完整的一组 A C K ACK ACK,就将 c w n d cwnd cwnd翻一番(相当于每到达一个 A C K ACK ACK就给 c w n d cwnd cwnd增大一个 M S S MSS MSS)
当到达 s s t h r e s h ssthresh ssthresh(慢启动阈值)时,就进入拥塞避免状态
当收到三个冗余 A C K ACK ACK时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半, c w n d cwnd cwnd设置为 s s t h r e s h ( + 3 ⋅ M S S ) ssthresh(+3\cdot MSS) ssthresh(+3⋅MSS),进入快速恢复状态
遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,重新启动慢启动状态
拥塞避免
每收到完整的一组 A C K ACK ACK, c w n d cwnd cwnd就增加一个 M S S MSS MSS(相当于每到达一个 A C K ACK ACK就增加 M S S c w n d \frac{MSS}{cwnd} cwndMSS)
当收到三个冗余 A C K ACK ACK时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半, c w n d cwnd cwnd设置为 s s t h r e s h ( + 3 ⋅ M S S ) ssthresh(+3\cdot MSS) ssthresh(+3⋅MSS),进入快速恢复状态
遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,进入慢启动状态
快速恢复(推荐部分,并非必需)
继续收到冗余的 A C K ACK ACK时,每收到一个给 c w n d cwnd cwnd增加一个 M S S MSS MSS
当收到一个新的非冗余的 A C K ACK ACK时,进入拥塞避免状态
当遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,进入慢启动状态
TCP
的两个版本
TCP Tahoe
版本未采用快速恢复
TCP Reno
版本综合了快速恢复
TCP
拥塞控制通常被称为加性增、乘性减
TCP
吞吐量设当前窗口是w字节,用W表示w的值
则一条连接的平均吞吐量为 0.75 × W R T T \frac{0.75\times{W}}{RTT} RTT0.75×W
设丢包率为 L L L,则一条连接的平均吞吐量为 1.22 × M S S R T T L \frac{1.22\times{MSS}}{RTT\sqrt{L}} RTTL1.22×MSS
UDP
UDP
报文格式:![]()
检验和提供了差错检验功能
发送方对报文段中所有16比特字的和进行反码运算(求和的溢出将被回卷),得到的结果被放在
UDP
报文的检验和字段首部开销通常为 8 8 8字节
网络层协议
IP
IPv4
数据报格式![]()
I H L IHL IHL:首部长度
T y p e o f S e r v i c e Type\space of\space Service Type of Service:服务类型(比如可以将要求低时延的数据报和普通的数据报区分开来)
T o t a l L e n g t h Total\space Length Total Length:数据报的总长度(首部加数据)
I d e n t i f i c a t i o n , F l a g s , F r a g m e n t O f f s e t Identification,Flags,Fragment\ Offset Identification,Flags,Fragment Offset:用于 I P IP IP分片
T i m e t o L i v e Time\ to\ Live Time to Live: T T L TTL TTL,每经过一台路由器,该值减1,该值为0时将被丢弃
P r o t o c o l Protocol Protocol:标识应该交给哪个运输层协议
S o u r c e A d d r e s s , D e s t i n a t i o n A d d r e s s Source\ Address,Destination\ Address Source Address,Destination Address: 32 b i t 32bit 32bit
IPv4
数据报的首部通常为 20 20 20字节
IPv4
编址主机和物理链路之间的边界叫做接口
从技术上来说,一个
IP
地址与一个接口相关联,而不是与包括该接口的主机或路由器相关联地址通常通过点分十进制记法书写
因特网的地址分配策略被称为无类别域间路由选择
CIDR
即 a . b . c . d / x a.b.c.d/x a.b.c.d/x中 / x /x /x的写法,让网络部分的长度更加自由化
在
CIDR
被采用前,IP
地址的网络部分被限制为8、16或24比特(分别被称为A、B、C类网络)
IPv6
数据报格式![]()
T r a f f i c c l a s s Traffic\ class Traffic class:类似
IPv4
的 T y p e o f c l a s s Type\ of \ class Type of classF l o w L a b e l Flow Label FlowLabel:流标签,用于给特殊流的分组加上标签
P a y l o a d l e n g t h Payload\ length Payload length:有效荷载长度
N e x t h e a d e r Next\ header Next header:使用和
IPv4
中 P r o t o c o l Protocol Protocol字段相同的值H o p l i m i t Hop\ limit Hop limit:跳限制,与
IPv4
中的 T i m e t o l i v e Time\ to\ live Time to live字段类似S o u r c e A d d r e s s , D e s t i n a t i o n A d d r e s s Source\ Address,Destination\ Address Source Address,Destination Address: 128 b i t 128bit 128bit
IP
数据报首部一共 40 40 40字节
IPv4
到IPv6
的迁移可以采用建隧道的方法,将
IPv6
数据报封装到IPv4
数据报中
ICMP
最典型的应用是差错报告
ICMP
通常被认为是IP
的一部分,但从体系结构上讲,它位于IP
之上,因为ICMP
报文是承载在IP
分组中的
ICMP
报文有一个类型字段和一个编码字段,并且包含引起该 I C M P ICMP ICMP报文首次生成的 I P IP IP数据报的首部和前 8 8 8个字节
ICMP
的报文类型请参考维基百科
OSPF
OSPF
是一种链路状态协议(LS
协议),使用洪泛链路状态信息和 D i j k s t r a Dijkstra Dijkstra最短路算法路由器会向自治系统内所有其他路由器广播路由选择信息
优点
安全
多条相同开销的路径
对单播和多播的综合支持
支持在单个 A S AS AS中的层次结构
在 A S AS AS中只有一个 O S P F OSPF OSPF区域被配置成为主干区域(主干区域的作用是为该 A S AS AS中其他区域之间的流量提供路由选择),主干区域包含本 A S AS AS中的所有区域边界路由器,还可能包含一些其他的非边界路由器
分组先路由到一个区域边界路由器,再通过主干路由到位于目的区域的区域边界路由器,再路由到最终目的地
链路层和物理层协议
以太网
现在以太网中使用交换机
交换机是无碰撞的
以太网帧结构
数据字段:承载
IP
数据报,至少为 46 46 46字节,最大传输单元( M T U MTU MTU)为 1500 1500 1500字节目的地址:目的
MAC
地址,6字节;如果适配器收到的以太网帧的目的地址字段的值不等于当前适配器的 M A C MAC MAC地址,也不是广播地址( F F − F F − F F − F F − F F − F F FF-FF-FF-FF-FF-FF FF−FF−FF−FF−FF−FF),也不是当前适配器的某个多播地址,则该帧会被丢弃源地址:源 M A C MAC MAC地址,6字节
类型:允许以太网复用多种网络层协议。该字段用于指示应该传递给哪个网络层协议
C R C CRC CRC:循环冗余检测字段
前同步码:使发送方和接收方适配器的时钟同步
以太网技术向网络层提供无连接、不可靠服务
拓展以太网帧格式 802.1 Q 802.1Q 802.1Q添加了4字节的 V L A N VLAN VLAN标签字段,以实现
VLAN
PPP
点到点协议
OpenFlow
OpenFlow API
:该协议是通用转发的典型样例
(以下皆为
OpenFlow1.0
的内容)匹配加动作转发表在
OpenFlow
中被称为流表流表的表项:
首部字段值的集合
计数器集合
分组和流表匹配时更新计时器
分组匹配流表项时所采取的动作集合
匹配
允许对来自三个层次(链路层、网络层、运输层)的协议首部所选择的字段进行匹配
分组匹配字段
动作
转发
丢弃:没有动作的流表项表明对应匹配的分组应该被丢弃
修改字段:分组首部的10个字段可以被重写(除了
IP
协议字段的其他字段)
OpenFlow
协议基于
TCP
,使用 6653 6653 6653的默认端口号重要报文
从控制器到受控交换机流动的重要报文有:
- 配置
- 修改状态
- 读状态
- 发送分组
从受控交换机到控制器流动的重要报文有:
- 流删除
- 端口状态
- 分组入
时隙ALOHA
前提
只在时隙起点开始传输帧
节点是同步的,每个节点都知道时隙何时开始
如果遇到碰撞,能在时隙结束之前检测到该碰撞事件
是一种随机接入协议
操作
当节点有新的帧要发送时,等到下一个时隙开始并在该时隙传输整个帧
如果没有碰撞,无需重传
如果有碰撞,该节点在时隙结束前检测到这次碰撞,该节点以概率 p p p在后序每个时隙中重传该帧,直到被无碰撞的传输出去
成功时隙:刚好有一个节点传输的时隙
该协议的最大效率为 1 e = 0.37 \frac{1}{e}=0.37 e1=0.37
纯
ALOHA
协议是一个非时隙、完全分散的协议
当帧首次到达时,节点立即把该帧完整的传输到广播信道,经历碰撞后立即以概率 p p p重传,否则等待一个帧传输时间
最大效率为 1 2 e \frac{1}{2e} 2e1
CSMA
载波侦听多路访问协议
载波侦听
节点在传输前先听信道,检测到一小段时间没有传输时再开始传输
CSMA/CD
具有碰撞检测的载波侦听多路访问协议
碰撞检测
一个传输节点在传输时一直侦听此信道,如果检测到另一个节点在传输干扰帧,就停止传输,在重复"侦听-当空闲时传输"循环前等待一段随机时间
二进制指数回退算法
传输一个给定帧时,经历第 n n n次碰撞后,节点随机从 { 0 , 1 , 2 , … , 2 n − 1 } \{0,1,2,\dots,2^n-1\} {0,1,2,…,2n−1}中选择一个等待值
传输效率的近似式为 1 1 + 5 d p r o p / d t r a n s \frac{1}{1+5d_{prop}/d_{trans}} 1+5dprop/dtrans1
ARP
地址解析协议,将
IP
地址解析成MAC
地址每台主机或路由器的内存中有一张 A R P ARP ARP表,包含了 I P IP IP地址到 M A C MAC MAC地址的映射
如果当前分组的目的主机不在当前表中,则发送方会构造一个 A R P ARP ARP分组(包括发送和接收 I P IP IP地址和 M A C MAC MAC地址),询问子网中所有其他主机和路由器,以确定要解析的 I P IP IP地址的 M A C MAC MAC地址(查询 A R P ARP ARP报文在广播帧中发送,而响应 A R P ARP ARP报文在标准帧中发送)
ARP
是即插即用的
ARP
协议既可以被看作网络层协议,也能被看作链路层协议,可能最好把它看成跨越两层的协议在跨越子网的传输过程中,报文的源 M A C MAC MAC地址和目的 M A C MAC MAC地址是不断变化的,但源 I P IP IP地址和目的 I P IP IP地址是不变的
工具
-
Tracerout
利用
ICMP
协议定位自己的计算机和目标计算机之间的所有路由器源主机中的 T r a c e r o u t Tracerout Tracerout向目的地主机发送一系列普通的
IP
数据报,每个数据报携带了一个具有不可达UDP
端口号的 U D P UDP UDP报文段,第一个数据报的 T T L TTL TTL为1,第二个为2,第三个为3,依此类推按照
IP
协议规则,路由器会丢弃该数据报,并返回一个类型11编码0的ICMP
告警报文,而最后一台路由器会返回一个类型3编码3的 I C M P ICMP ICMP报文 -
telnet
互联网远程登录服务的标准协议和主要方式
-
nslookup
查询
DNS
相关信息 -
nmap
端口扫描
-
ping
ping
程序发送一个类型0编码0的ICMP
报文到指定主机,目的主机发挥一个类型0编码0的ICMP
回显报文