王道考研:计算机网络
1. 计算机网络
1.1 计算机网络
1.1.1 概念、组成、功能和分类
计算机网络的概念
计算机网络:时一个将分散的具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现 资源共享 和 信息传递 的系统
计算机网络的功能
- 数据通信
- 资源共享
- 分布式处理
- 提高可靠性 宕机和替代机
- 负载均衡
计算机网络的组成
- 组成部分:硬件、软件、协议
- 工作方式:
2.1 边缘部分:用户直接使用,采用 C/S 方式或者 P2P 方式
2.2 核心部分:为边缘部分服务,例如路由器等 - 功能组成
3.1 数据通信:通信子网
3.2 资源共享/数据处理:资源子网
七层网络协议:
应用层:资源子网
表示层:资源子网
会话层:资源子网
传输层
网络层:通信子网:路由器
数据链路层:通信子网:交换机、网桥
物理层:通信子网:集线器、中继器
计算机网络的分类
- 分布范围:广域网WAN、城域网MAN、局域网WAN、个人区域网PAN
- 使用者:公用网、专用网
- 交换技术:电路交换、报文交换、分组交换
- 拓扑结构:网状型、星型
- 传输技术:广播式网络、点对点网络(分组存储转发、路由选择)
1.1.2 标准化工作及相关组织
标准化工作
标准的分类:
- 法定标准:OSI
- 事实标准:TCP/IP
RFC(Request For Comments)—因特网标准的形式
RFC称为因特网正式标准的三个阶段:因特网草案(Internet Draft)—>建议标准(Proposed Standard)—>因特网标准(Internet Standard)
标准化工作的相关组织
国际标准化组织 ISO:OSI参考模型、HDLC协议
国际电信联盟 ITU:通信规则
国际电气电子工程师协会 IEEE:学术机构、IEEE802系列标准、5G
Internet工程任务组 IETF:因特网相关标准的制定、RFCxxxx
1.1.3 速率相关的性能指标
- 速率
- 带宽
- 吞吐量
速率
速率:连接在计算机网络上的主机在数字信道上传送数据位数的速率。又称数据率或称数据传输率或称比特率。单位:b/s, kb/s, Mb/s, Gb/s, Tb/s
比特:1/0,单位:位
带宽
带宽:表示网络的通信线路传送数据的能力,即网络设备所支持的最高速度,单位:b/s, kb/s, Mb/s, Gb/s, Tb/s。
这里不能理解为传输的快了,因为传输的速率是与链路相关的定值,而应该理解为单位时间内可以发送的数据量变多了,链路内的数据量变多了。或者说单位时间内同时可以上路的bit。
吞吐量
吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。单位 b/s, kb/s, Mb/s
吞吐量受网络的带宽或者网络的额定速率的限制
1.1.4 性能指标2
- 时延
- 时延带宽积
- 往返时间RTT
- 利用率
时延
时延:数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也称延迟或者迟延,单位是s
时延分为四个部分:
- 发送时延:也称传输时延,从发送第一个比特到最后一个比特发送完毕所需的时间。$发送时延=\frac{数据长度}{信道带宽(发送速率)}$,发生在主机内。
- 传播时延:取决于电磁波传播速度和链路长度,$传播时延=\frac{信道长度}{电磁波速率}$,发生在链路中。
- 排队时延:等待输出/输入链路可用
- 处理时延:检错、找出口
时延带宽积
时延带宽积=传播时延(s)x带宽(b/s),又称为以比特为单位的链路长度。即某段链路现在有多少比特。
往返时延RTT
往返时延RTT:从发送方发送数据开始,到发送方收到接收方的确认,总共经历的时延。
RTT越大,在收到确认之前,可以发送的数据越多。
RTT包括:往返传播时延(传播时延*2),末端处理时间
利用率
信道利用率:有数据通过时间/(有+无)数据通过时间
网络利用率:信道利用率加权平均值
时延D越大<==>利用率越大
1.2 分层结构
1.2.2 分层结构:协议、接口、服务
分层的基本原则
- 上层单向使用下层提供的服务
分层结构
- 实体:第n层中的活动元素称为n层实体,同一层的实体叫对等实体
- 协议:为进行网络中的对等实体数据交换而建立的规则、标准或者约定,称为网络协议。协议是水平的
2.1 语法:规定传输数据的格式
2.2 语义:规定所完成的功能
2.3 同步:规定各种操作的顺序 - 接口(访问服务点SAP):上层使用下层服务的入口
- 服务:下层为相邻上层提供的功能调用。服务是垂直的
SDU服务数据单元:用户需要传送的数据
PCI协议控制信息:控制协议操作的信息
PDU协议数据单元:对等层次之间传送的数据单位
PDU=PCI+SDU
网络体系结构是从功能上描述计算机网络结构,包括各层及其协议
每层遵循某个/些网络协议完成本层功能
仅仅在相邻层之间有接口,实现细节对上一层完成屏蔽
下层为上层提供服务
1.2.2 OSI参考模型 1
计算机网络分层结构
- 法定标准:7层OSI参考模型
- 事实标准:4层TCP/IP参考模型
- 学习标准:5层参考模型
OSI七层:
层 | 数据 |
---|---|
应用层 | DATA, H7 |
表示层 | 7-PDU, H6 |
会话层 | 6-PDU, H5 |
传输层 | 5-PDU, H4 |
网络层 | 4-PDU, H3 |
数据链路层 | T2, 3-PDU, H2 |
物理层 | 傻瓜层 |
通信子网(数据通信):网络层、数据链路层、物理层
资源子网(数据处理):应用层、表示层、会话层
中间系统(路由器、网关等):最多只有下面三层:网络层、数据链路层、物理层
上面四层称为:端到端
下面三层称为:点对点
1.2.3 OSI参考模型 2
应用层:
所有能和用户交互产生网络流量的程序,时用户与网络的界面
典型应用层服务:文本传输(FTP)、电子邮件(SMTP)、万维网(HTTP)
表示层:
用于处理在两个通信系统中交换信息的表示方式
功能:
数据格式交换
数据加密解密
数据压缩和恢复
协议:ASCII、JPEG
会话层:
向表示层实体/用户进程提供建立连接并在连接上有序地传输数据
会话:建立同步(SYN)
功能:
建立、管理、终止会话
使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步
主要协议:ADSP、ASP
传输层:
负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
功能:
可靠传输、不可靠传输
差错控制
流量控制
复用分用
复用:多个应用层进程可同时使用下面传输层的服务
分用:运输层把收到的信息分别交付给上面应用层中相应的进程
TCP、UDP
网络层:
把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务
传输单位:数据报
数据报切分成分组
功能:
路由选择
流量控制
差错控制
拥塞控制
IP等
数据链路层:
把网络层传下来的数据报组装成帧
传输单位:帧
功能:
成帧:定义帧的开始和结束
差错控制:帧错+位错
流量控制
访问(接入)控制:控制对信道的访问
协议:
SDLC、PPP、STP
物理层:
傻瓜层:在物理媒体上实现比特流的透明传输
传输单位:比特
功能:
定义接口特性:引脚个数等
定义传输模式:单工、半双工、双工
定义传输速率
比特同步
比特编码
协议:
Rj45、802.3
1.2.4 TCP、IP参考模型和5层参考模型
TCP/IP参考模型
应用层:HTTP、FTP、DNS
传输层:TCP、UDP
网际层:IP
网络接口层:Ethernet、ATM、Frame Relay
OSI参考模型和TCP/IP的相同点:独立的协议栈、异构网络互联
不同点:
OSI定义三点:服务、协议、接口
TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次
OSI参考模型 | TCP/IP模型 | |
---|---|---|
传输层 | 面向连接 | 无连接+面向连接 |
网络层 | 无连接+面向连接 | 无连接 |
5层参考模型
应用层:支持各种网络应用:FTP、SMTP、HTTP:报文
传输层:进程-进程的数据传输:TCP、UDP:报文段
网络层:源主机到目的主机的数据分组路由与转发:IP、ICMP、OSPF:数据报
数据链路层:把网络层传下来的数据报组装成帧:Ethernet、PPP:帧
物理层:比特传输:比特
2. 物理层
- 通信基础
- 两个公式 lim
- 看图说话
- 传输介质
- 物理层设备
2.1 物理层
2.1.1 物理层基本概念
物理层:解决如何在连接各种计算机的传输媒体上传输比特流,而不是指具体的传输媒体。
物理层的主要任务:确定与传输媒体接口相关的一些特性—>定义标准
- 机械特性:物理连接的特性,比如引线数目、引脚数量等
- 电气特性:规定传输二进制位时,信号的电压范围、传输速率等
- 功能特性:规定某一电平的意义
- 规程特性:定义各条物理线路的工作规程和时序关系
2.1.2 数据通信基础知识
数据:传送信息的实体,有意义的符号序列
信号:电气,是数据在传输过程中的存在形式,分为数字信号和模拟信号
信道:信号的传输媒介。一条通信线路包含一条发送信道和一条接收信道
三种通信方式:
- 单工通信:一条信道
- 半双工通信:两条信道
- 全双工通信:两条信道
两种数据传输方式
- 串行传输:速度慢,费用低,适合远距离
- 并行传输:速度快,费用高,适合近距离,适合计算机内部数据传输
2.1.3 码元、波特、速率、带宽
码元
码元:固定时长的信号波形(数字脉冲),这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
1码元可以携带多个比特的信号量。在二进制编码中,只有两种不同的码元,一种代表0状态,另一种代表1状态,可以携带1比特的信号量。4进制码元中,码元的离散状态有4种,00,01,10,11,可以携带2比特的信号量。
速率
速率:也称数据率,指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
码元传输速率:又称码元速率、波形速率、调制速率、符号速率等。表示单位时间内数字通信系统所传输的码元个数,单位是波特(Baud)=1码元/s,与进制数无关。
信息传输速率:又称信息速率、比特率。表示单位时间内的二进制码元个数(比特数)。
若一个码元携带n bit的信息量,则 M baud的码元传输速率所对应的信息传输速率为 Mxn bit/s
带宽
表示单位时间内从网络中的某一点到另一点所能通过的最高数据率。单位 b/s
2.1.4 奈氏准则和香农定理
失真
影响失真的因素:
- 码元传输速率
- 信号传输距离
- 噪声干扰
- 传输媒体质量
失真的另一种现象—码间串扰
信道带宽:信道能通过的最高频率(码间串扰)和最低频率(容易衰减)之差
码间串扰:接收段收到的信号波形失去了码元之间清晰界限的现象。(高频)
奈氏准则(奈奎斯特定理)
奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为 2W Baud,W是信道带宽,单位是Hz,极限数据传输率 $2W\log_2 V$
香农定理
信噪比:信号的平均功率/噪声的平均功率,常记为S/N,或者分贝(dB),$dB=10\log_{10}(S/N)$
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值 $W\log_2(1+S/N)(b/s)$
2.1.5 编码与调制 1
基带信号与宽带信号
基带信号:1和0直接用两种不同的电压表示,数字信道,基带传输,适用于近距离
宽带信号:将基带信号进行调制后形成的频分复用模拟信号,模拟信道,宽带传输,适用于远距离
编码与调制
编码:数据—>数字信号
调制:数据—>模拟信号
2.1.6 编码与调制 2
编码:数字数据—>数字信号
非归零编码 NRZ
高1低0,容易实现,但没有检错功能,收发双发难以保持同步徐
曼彻斯特编码
码元内出现电平跳变,前0后1表示0,前1后0表示1
数据传输速率只有调制速率的1/2
差分曼彻斯特编码
同1异0
归零编码 RZ
信号电平在一个码元之内都要恢复到零
反向不归零编码 NRZI
信号电平翻转表示0,信号电平不变表示1
4B/5B编码
比特流中插入额外的比特以打破一连串的0或1
编码效率只有80%
调制:数字数据—>模拟信号
调幅、调频、调相
编码:模拟数据—>数字信号
PCM编码:抽样、量化、编码
- 抽样:对模拟信号周期性扫描,连续信号变成离散信号 $f{采样频率}>=2f{信号最高频率}$
- 量化:取整
- 编码:量化结果转换为对应的二进制编码
调制:模拟数据—>模拟信号
频分复用技术,充分利用带宽
2.2 物理层传输介质
传输介质,也称传输媒体,是第零层,不是物理层。
分为导向性传输介质和非导向性传输介质。
导向性传输介质
双绞线:对于模拟传输,需要放大器,对于数字传输,需要中继器
同轴电缆:传输距离更远
光纤:带宽大,分为多模光纤(远距离),多模光纤(近距离)
非导向性传输介质
无线电波:所有方向,穿透能力强,远距离,适用于通信领域
微波:固定方向,频率高,数据率高,适应于地面微波接力通信、卫星通信
红外线、激光:固定方向,需要转成各自的格式
2.3 物理层设备
中继器、集线器
中继器
再生和还原数字信号
中继器的两端的网络部分是网段、两端的网段一定是同一个协议
集线器(多口中继器)
再生和放大数字信号,星形拓扑
不具备信号的定向传送能力
3. 数据链路层
- 链路层的功能
- 链路层的两种信道
- 局域网、广域网
- 链路层的设备
3.1 数据链路层功能描述
链路:网络中两个结点之间的物理通道
数据链路:网络中两个结点之间的逻辑通道
帧:协议数据单元
可靠无差错的数据传输
功能:
- 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。
- 链路管理,即连接的建立、维持、释放
- 组帧
- 流量控制
- 差错控制(帧错/位错)
3.2 封装成帧和透明传输
封装成帧
帧首部+帧的数据部分(IP数据报)+帧尾部
首部和尾部包含很多的控制信息,一个重要作用:帧定界
帧的数据部分 不大于 最大传送单元 MTU
数据链路层的帧长:帧首部+帧的数据部分(IP数据报)+帧尾部
组帧的四种方法:字符计数法,字符(节)填充法,零比特填充法、违规编码法
透明传输
透明传输:不管数据是什么样的比特组合,都应该能够在链路上传送。或者说当所传数据中的比特组合恰好与某一个控制信息完全一样,需要采取适当的措施,使接收方不会认为是某种控制信息。
字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数
字符填充法
SOH(八位)+数据部分+EOT(八位)
当传送的帧是文本文件组成(键盘输入 ASCII码),不会影响SOH和EOT,即透明传输
当传送的帧由非ASCII码的文件文件(二进制的代码、图像等),需要采用字符填充法实现透明传输
转义字符
零比特填充法
01111110+数据部分+01111110
发送端:每5个连续的1,填入1个0
接收端:每5个连续的1,删除1个0
违规编码法
曼彻斯特编码:1:高低,0:底高
帧界:高高、低低
常使用 零比特填充法和违规编码法
3.3 差错控制
3.3.1 差错控制—检错编码
噪声:全局性(随机噪声、信噪比)、局部性(冲击噪声、编码技术6)
差错:位错(比特位)、帧错(丢失、重复、丢序)
位错:检错编码(奇偶校验码、循环冗余码CRC)、纠错编码(海明码)
奇偶校验码
n-1位信息元,1位校验元
奇校验码:1的个数为奇数
偶校验码:1的个数为偶数
CRC循环冗余码
发送方—计算冗余码:
- 加0:生产多项式G(x)的阶为r,则加r个0/多项式N位,阶为N-1
- 模2除法:数据加0后,余数为冗余码/FCS/CRC检验码的比特序列 亦或
- 发送的数据:数据加冗余码
接收方—检错:
将帧除以相同的除数,检查余数R
如果R为0,则帧无错,如果R不为0,则帧有错,丢弃
FCS的生成以及接收端CRC检验都是硬件实现。
凡是接收端数据链路层接收的帧均无差错
可靠传输:发送端发送什么,接收端就接收什么
CRC检验:只是实现了无差错传输,没有实现可靠传输
3.3.2 差错控制—纠错编码
纠错编码—海明码:发现双比特错,纠正单比特错
原理:动一发而牵全身
工作流程:确定校验码位数r—确定校验码和数据的位置—求出检验码的值—检错并纠错
确定校验码位数r
海明不等式:$2^r>=k+r+1$,r为冗余信息位,k为信息位
例如:D=101101,k=6,r=4,数据位一共是10位
确定校验码和数据的位置
假设这4位校验码分别为P1,P2,P3,P4:数据从左到右为D1,…D6
校验码:放在2的次方位置
数据位:按序把空填满
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
代码 | P1 | P2 | D1 | P3 | D2 | D3 | D4 | P4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
求出校验码的值
二进制位 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
---|---|---|---|---|---|---|---|---|---|---|
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
代码 | P1 | P2 | D1 | P3 | D2 | D3 | D4 | P4 | D5 | D6 |
实际值 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
对于P1,二进制的第一位为1,则找出所有二进制第一位为1的代码:D1,D2,D4,D5,令所有要校验的位异或=0,即 P1^ D1^ D2^ D4^ D5=0,则P1=0
对于P2,有P2^ D1^ D3^ D4^ D6=0,则P2=0
对于P3,有P3^ D2^ D3^ D4 = 0, 则P3=0
对于P4,有P4^ D5^ D6 = 0, 则P4=1
检错并纠错
P1^ D1^ D2^ D4^ D5 = C1
P2^ D1^ D3^ D4^ D6 = C2
P3^ D2^ D3^ D4 = C3
P4^ D5^ D6 = C4
一位出错:C4C3C2C1就是出错的比特位
两位出错:无法确定出错的比特位位置
3.4 流量控制与可靠传输机制
3.4.1 流量控制与可靠传输机制(第一话)
数据链路层的流量控制
较高的发送速率和较低的接收能力
数据链路层的流量控制是点对点的,传输层的流量控制是端到端的
数据链路层的流量控制手段:接收方收不下就不回复确认
传输层的流量控制手段:接收端给发送端一个窗口公告
流量控制的方法
停止-等待协议:(发送窗口=1,接收窗口=1)
滑动窗口协议:后退N帧协议(GBN)(发送窗口>1,接收窗口=1)(累计确认)、选择重传协议(SR)(发送窗口>1,接收窗口>1)(没有累计确认)
可靠传输、滑动窗口、可靠传输
可靠传输:发送端发啥,接收端收啥
流量控制:控制发送速率
滑动窗口:用于实现流量控制(收不下就不确认)、可靠传输(发送方自动重传)
3.4.2 停止-等待协议
丢包问题、流量控制
停止-等待:每发送一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组
停止-等待的应用情况:无差错情况 与 有差错情况
有差错情况
用1bit可以表示帧编号:0,1,0,1
1.数据帧丢失或者检测到帧出错:超时计时器
发完一个帧后,必须保留它的副本
数据帧和确认帧必须编号
2.ACK丢失:丢弃重复帧,重传确认ACK
3.ACK迟到:丢弃迟到的ACK
信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。(L/C)/T:T内发送L比特数据/发送方数据传输率/从开始发送数据到接收到第一个确认帧
信道利用率低
信道吞吐率:信道利用率*发送方的发送速率
3.4.3 后退N帧协议 GBN
流水线技术:
必须增加序号范围
发送方需要缓存多个分组
后退N帧协议的滑动窗口
发送窗口:发送方维持一组连续的允许发送的帧的序号,窗口大于1
接收窗口:接收方维持一组连续的允许发送的帧的序号,窗口为1
GBN发送方必须响应的三件事
1.上层的调用:当窗口不满时,则产生一个帧将其发送,当窗口已满,则返回给上层
2.收到一个ACK:累计确认
3.超时事件:如果出现超时,发送方重传所有已发送但未确认的帧
GBN接收方要做的事
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK n,并且将该帧中的数据部分交付给上层。
其他情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)
滑动窗口长度
如果采用n个比特对帧编号,那么发送窗口的大小应该满足:1<=W<=2^n-1.否则接收方无法区分新帧和旧帧。
讲到gbn,首先要讲到累积确认。
累积确认的意思是:接收方不必对收到的分组逐个发送确认,而是可以在收到几个分组后,对按序到达的最后一个分组加以确认。
比如,发送方发送0~7个帧,接收方对第0,2,3,7个帧发送确认,就是分别对第0个帧的确认,对第1,2个帧的确认,对第3个帧的确认,对第4,5,6,7个帧的确认。
假如接收方只发送了第3个帧的确认,就说明前面0,1,2,3号帧都被接收方正常接收了,但是后面的四个帧虽然也已经发送了,但是却需要重传,这就称作Go-back-N,也就是gbn(后退N帧)协议。
在这里实际上是回退4帧。
性能
提高了信道利用率
但是重传时必须把已经正确传送的数据帧重传,传送效率低
3.4.4 选择重传协议 SR
GBN:累计确认—>批量重传
SR:缓存接收数据
SR发送方必须响应的三件事
1.上层调用:缓存或者返回给上层
2.收到了一个ACK:逐一确认
如果收到ACK,SR发送方将被确认的帧标为已接收,同时尽可能移动窗口,尽可能发送窗口内的未发送帧
3.超时事件:每个帧有自己的定时器,只重传一个帧
SR接收方要做的事
1.窗口内的帧来者不拒:发送确诊帧,尽可能移动窗口,尽可能将连续有序的一批帧交付给网络层
2.对于小于窗口下界的帧,返回一个ACK
3.其他情况,忽略该帧
滑动窗口长度
发送窗口=接收窗口=2^{n-1}
3.5 信道划分介质
3.5.1 信道划分介质访问控制
传输数据的两种链路
点对点链路:PPP协议,适用于广域网
广播式链路:主机主机共享通信介质,适用于早期的总线以太网、无线局域网,常用于局域网。总线型,星型
介质访问控制
介质访问控制:采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况
分为:静态划分信道(信道划分介质访问控制)、动态划分信道
- 静态划分信道:
1.1 频分多路复用 FDM
1.2 时分多路复用 TDM
1.3 波分多路复用 WDM
1.4 码分多路复用 CDM - 动态分配信道:
2.1 轮询访问介质访问控制:
2.1.1 令牌传递协议
2.2 随机访问介质访问控制(所有用户可随机发送信息,发送信息时占用全部带宽,冲突):
2.2.1 ALOHA协议、
2.2.2 CSMA协议、
2.2.3 CSMA/CD协议、
2.2.4 CSMA/CA协议
信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
将一条广播信道,逻辑上变为点对点信道
频分多路复用FDM:用户分配一定的频带
时分多路复用TDM:将时间划分为一段段等长的时分复用帧(TDM帧),用户占用固定序号的时隙
改进的时分复用—统计时分复用STDM:固态分配时隙
波分多路复用 WDM:光的不同波长
码分多路复用CDM:码分多址(CDMA),1个比特转化为多个码片,正交
3.5.2 ALOHA协议
纯ALOHA协议、时隙ALOHA协议
纯ALOHA协议
纯ALOHA协议:不监听信道,不按时间槽发送,随机重发。
冲突检测:如果发送冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内接收不到就判断发生冲突
冲突解决:超时后等待随机时间重传
时隙ALOHA协议
把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送
3.5.3 CSMA协议
CS:每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
CSMA协议:发送帧之前,监听信道。监听信道空闲:发送完整帧,信道忙:推迟发送帧
分为:1-坚持CSMA,非坚持CSMA,p-坚持CSMA
1-坚持CSMA
空闲则直接传输
忙则一直监听,直到空闲马上传输
如果有冲突(一段时间内未收到答复),则等待一个随机长的时间再监听,重复上述过程。
优点:避免媒体利用率的损失
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持:监听信道忙之后就不继续监听
空闲则直接传输
忙则等待一个随机时间之后再进行监听
优点:随机的重发延迟时间可以减少冲突发送的可能性
缺点:媒体利用率低
p-坚持CSMA
p-坚持:对于监听信道空闲的处理
空闲以p概率传输,1-p概率等待到下一个时间槽再传输
忙则等待一个随机时间再进行监听
优点:减少冲突,媒体空闲时间少
但是:发生冲突后还是会坚持将数据帧发送完,造成了浪费。
3.5.4 CSMA-CD协议
ALOHA协议:不听就说
CSMA协议:先听再说
CSMA-CD协议:先听再说,边听边说,碰撞检测,用于半双工信道
传播时延对载波监听的影响
假设单程端到端的传播时延时 $\tau$,则发送方最多经过$2\tau$时间检测到碰撞,或者说如果经过$2\tau$时间还没有检测到碰撞,则这次发送不会发生碰撞。
$2\tau$: 争用期、冲突窗口、碰撞窗口
如何确定碰撞后的重传时机
截断二进制指数规避算法:
- 确定基本推迟时间为争用期 $2\tau$
- 定义参数k,k=min{重传次数,10}
- 从离散集合{0,1,…,2^k-1}中随机取出一个数r,重传所需要的退避时间 $2r\tau$
- 当重传次数达到16次仍不能成功,则认为网络拥挤,抛弃此帧并向高层汇报出错
最小帧长问题
为了保证监听到碰撞时停止传输帧,所以帧不能太小,
最小帧长=$2\tau \times 数据传输速率$
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧
3.5.5 CSMA-CA协议
ALOHA协议:不听就说
CSMA协议:先听再说
CSMA-CD协议:先听再说,边听边说,有线网络
CSMA-CA协议:碰撞避免,无线局域网
CSMA-CA协议:先听再说,先等再说
CSMA-CA协议工作原理
发送数据前,先检测信道是否空闲
空闲则发出RTS,RTS包括发射端的地址、接收端的地址,下一份数据将持续发送的时间等;信道忙则等待
接收端收到RTS后,则响应CTS
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己还需要传多久数据)
接收端收到数据帧后,用CRC检验数据是否正确,正确则响应ACK帧
发送方收到ACK则可以进行下一个数据帧的发送,如果没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)
预约信道
ACK帧
RTS/CTS帧
CSMA-CD与CSMA-CA
相同点:都是先听再说,两者冲突之后都会有限次的重传
不同点:
1.传输介质不同:CSMA-CD用于总线式以太网(有线),CSMA-CA用于无线局域网
2.载波检测方式不同
3.CSMA-CD检测冲突中断传输,CSMA-CA避免冲突
3.5.6 轮询访问介质访问控制
信道划分介质访问控制 MAC:
基于多路复用技术
网络负载重:共享信道效率高,且公平
网络负载轻:共享信道效率低
随机访问MAC协议:
用户根据意愿随机发送信息,发送信息时可独占信道带宽
网络负载重:产生冲突开销
网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
轮询访问MAC协议/轮流协议/轮转访问MAC协议:
既要不产生冲突,又要发送时占全部带宽
轮询访问MAC协议 主要包括:轮询协议和令牌传递协议
轮流协议
主结点轮流邀请从属结点发送数据
缺点:轮询开销;等待延迟;单点故障
令牌传递协议
令牌环网:逻辑上是环状,物理上是星形
令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。
每个结点可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不能无限制地持有令牌。
缺点:令牌开销;等待延迟;单点故障;常用于负载较重、通信量较大的网络
3.6 局域网和以太网
3.6.1 局域网基本概念和体系结构
局域网
局域网:LAN,指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点:范围小;专门的传输介质,数据传输率高;延迟时间短,误码率低;多采用分布式控制和广播式通信,能进行广播和组播
决定局域网的主要要素是:网络拓扑,传输介质和介质访问控制方法
局域网拓扑结构
星型拓扑,总线型拓扑,环型拓扑,树形拓扑
局域网传输介质
有线局域网:双绞线、同轴电缆、光钎
无线局域网:电磁波
局域网介质访问控制方法
- CSMA-CD:常用于总线型局域网,也用于树型网络
- 令牌总线:总线型局域网,也用于树型网络
- 令牌环:用于环形局域网
局域网的分类
以太网:逻辑拓扑总线型,物理拓扑星型或者拓展星型。使用CSMA-CD IEEE 802.3
令牌环网:物理上采用星形拓扑,逻辑是环形拓扑结构
FDDI网:光纤,物理是双环拓扑结构,逻辑是环形拓扑结构 IEEE 802.8
ATM网:较新型的单元交换技术
无线局域网:IEEE 802.11
IEEE 802.3:以太网
IEEE 802.8:光纤
IEEE 802.11:无线局域网
MAC子层和LLC子层
数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
LLC子层:LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、待确认无连接、高速传送
MAC子层:包括数据帧的封装、卸装,帧的寻址和识别,帧的接收和发送,链路的管理,帧的差错控制。MAC子层的存在屏蔽了不同物理链路种类的差异性。
3.6.2 以太网
以太网 Ethernet:基带总线局域网规范,CSMA/CD协议,IEEE802.3局域网
特点:便宜,能满足网络速率要求:10Mb/s-10Gb/s
以太网提供无连接、不可靠的服务
无连接:无 握手过程
不可靠:不对帧编号,不发确认帧,差错帧之间丢弃,差错纠正由高层负责。
以太网:只实现无差错接收,不实现可靠传输
传输介质与拓扑结构
逻辑上总线型,物理上星型
10BASE-T以太网
10BASE-T:基带信号,双绞线,10Mb/s
物理星型,逻辑总线型,每段双绞线长度最长为100m
采用曼彻斯特编码
采用CSMA/CD介质访问控制
适配器与MAC地址
计算机与外界有线局域网的连接是通过通信适配器的
网络接口板
网络接口卡NIC
适配器上装有处理器和存储器(RAM和ROM)
ROM上有计算机硬件地址MAC地址
MAC地址:全球唯一,48位二进制地址,前24位表示厂家,后24位厂家自己指定
以太网MAC帧
最常用的MAC帧:以太网V2
IP层:数据:数据IP数据层
MAC层:目的地址(6),源地址(6),类型(2),数据(46~1500),FCS(4)
物理层:前导码(8B),以太网MAC帧
前导码:8B=前同步码(7B,10组成)+帧开始定界符(1B,10101011)
物理层只加了头,没有加尾:因为使用的曼彻斯特编码,电压不发生变化,则认为结束。
高速以太网
高速以太网:速率>=100Mb/s的以太网
100BASE-T 以太网:全双工和半双工
吉比特以太网:全双工和半双工
10吉比特:光纤,全双工
3.6.3 无线局域网
IEEE 802.11:无线局域网
802.11的MAC帧头格式
MAC帧头:帧控制(2),生存周期ID(2),地址1(6,接收端),地址2(6,发送端),地址3(6,目的地址),序列控制(2),地址4(6,源地址)
无线局域网的分类
有固定基础设施无线局域网
无固定基础设施无线局域网的自组织网络
3.7 PPP协议与HDLC协议
广域网
广域网:因特网(Internet网)。通信子网使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,将分布在不同地区的局域网或者计算机系统互联起来,达到资源共享的目的。
PPP协议
点对点协议PPP:目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
只支持全双工链路。
需要满足:
简单:对于链路层的帧,无需纠错,无需序号,无需流量控制
封装成帧:帧定界符
透明传输:异步线路用字节填充,同步线路用比特填充
多种网络层协议:封装的IP数据报可以采用多种协议
差错检测:丢弃
无需满足:
纠错
流量控制
序号
不支持多点线路
PPP协议的三个组成部分
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
- 链路控制协议LCP:建立并维护数据链路连接。身份验证。
- 网络控制协议NCP:PPP可支持多种网络层协议
PPP协议的状态图
设备之间无链路—>物理链路—>LCP链路—>已鉴别的LCP链路—>已鉴别的LCP链路和NCP链路
PPP协议的帧格式
F | A | C | F | |||
---|---|---|---|---|---|---|
7E | FF | 03 | 协议 | 信息部分(IP数据报) | FCS | 7E |
1 | 1 | 1 | 2 | 不超过1500B | 2 | 1 |
字符填充法
面向字节
HDLC协议
HDLC协议:高级数据链路控制,是一个在同步网上传输数据、面向比特的数据链路
数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。
采用全双工通信
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或者重份,传输可靠性强。
HDLC的站
主站:发送命令帧、接收响应帧,并负责流量控制、差错检测和恢复
从站:接收主站的命令帧
复合站:既能发送,也能接收命令帧和响应帧
三种数据操作方式:
- 正常响应方式
- 异步平衡方式
- 异步响应方式
HDLC的帧格式
标志F | 地址A | 控制C | 信息info | 帧检验序列FCS | 标志F |
---|---|---|---|---|---|
8 | 8 | 8 | 可变 | 16 | 8 |
7E | 零比特传输 | 7E |
控制C:
- 信息帧 I:第1位为0,用来传输数据信息
- 监督帧 S:10,用于流量控制和差错控制
- 无编号帧 U:11,用于提供对链路的建立、拆除等
PPP协议与HDLC协议
相同点:
- HDLC、PPP只支持全双工链路
- 都可以实现透明传输
- 都可以差错检测,但无法纠正差错
不同点:
- PPP协议,面向字节,2B协议字段,无序号和确认机制,不可靠
- HDLC协议,面向比特,没有协议字段,有编号和确认机制,可靠
3.8 链路层设备
物理层扩展以太网
- 光纤
- 集线器—集线器:冲突域
链路层拓展以太网
网桥和交换机
网桥:根据MAC帧的目的地址对帧进行转发和过滤。可以互联不同物理层、不同MAC层和不同速率的以太网。
网段:一般指一个计算机网络中使用同一物理层设备,能够直接通讯的那部分
网桥分为:透明网桥和源路由网桥
透明网桥:以太网上的站点并不知道所发送的帧将经过哪几个网桥,时一种即插即用的设备—自学习
源路由网桥:在发送帧时,把详细的最佳路由信息(路由)放在帧的首部中。
交换机—多接口网桥:独占传输媒体带宽
两种交换方式:直通式交换机,存储转发式交换机
直通式交换机:查完目的地址(6B)就立刻转发。延迟小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机:将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可以支持具有不同速率的端口的交换。
冲突域和广播域
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息。(物理层设备:集线器或者中继器)
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。或者说,如果站点发出一个广播信号,所有能接收到这个信号的设备范围称为一个广播域。(链路层设备:网桥、交换机)(网络层设备:路由器可以隔离不同的广播域)
集线器:物理层设备,冲突域
交换机:链路层,广播域,局域网
路由器:网络层,
4. 网络层
网络层:不可靠传输
4.1 网络层
4.1.1 网络层功能概述
网络层:把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
路由器
功能:
- 路由选择与分组转发
- 异构网络互联
- 拥塞控制
流量控制:发送方发送太快,接收方接收太慢
拥塞控制:网络处于拥塞状态,所有结点都来不及接收分组,而丢弃大量分组。方法:开环控制(静态),闭环控制(动态)
分组是数据报的切分。
4.1.2 数据交换方式
数据交换方式:
- 电路交换
- 报文交换
- 分组交换
3.1 数据报方式
3.2 虚电路方式
电路交换
独占资源、多路复用
报文交换
报文:源应用发送的信息整体
存储转发,动态分配线路
多目标服务
分组转发
分组:把大的数据块分割成小的数据块
存储转发
4.1.3 数据报与虚电路
分组交换:
- 数据报方式
- 虚电路方式
数据报方式:为网络层提供无连接服务
虚电路方式:为网络层提供连接服务
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同
连接服务:首先为分组的传输确定传输路径,系列分组传输路径相同,传输结束后拆除连接。
传输单元辨析
应用层:报文
传输层:报文段
网络层:IP数据报—>分组
数据链路层:帧
物理层:比特流
数据报方式
无连接
每个分组携带源和目的地址
路由器根据分组的目的地址转发分组:基于路由协议/算法构成转发表;检索转发表;每个分组独立选路
虚电路方式
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。
面向连接
每个分组携带虚电路号,而非目的地址。
数据报 | 虚电路 | |
---|---|---|
连接 | 不要 | 要 |
目的地址 | 每个分组都有完整的目的地址 | 仅在建立时使用,之后使用虚电路号 |
路由选择 | 每个分组独立进行路由选择和转发 | 同一虚电路的分组按照同一路由转发 |
分组顺序 | 不保证分组的有序到达 | 保证分组的有序到达 |
可靠性 | 不保证可靠通信,可靠性由用户主机保证 | 可靠性由网络保证 |
4.2 IP数据报
4.2.1 IP数据报格式
TCP/IP协议栈
HTTP | FTP | DNS | |
---|---|---|---|
TCP | UDP | ||
IP | ICMP | IGMP | |
IP | |||
ARP | IP | ||
数据链路层 | |||
物理层 |
IP数据报格式
IP数据报:首部,数据部分(TCP、UDP段)
4.2.2 IP数据报分片
最大传送单元MTU
最大传送单元MTU:链路层数据帧可封装数据的上限
以太网的MTU是1500字节
IP数据报格式
标识:同一数据报的分片使用同一标识
标志:只有两位有意义:x
中间位 DF (Don’t Fragment):1:禁止分片,0:允许分片
最低位 MF (More Fragment):1:后面还有分片,0:最后一个分片
片偏移:较长分组分片后,某片在原分组的相对位置,以8B为单位。所以分片尽可能满足8B的整数倍。
IP数据报分片例题
原始数据报:首部(20B),数据部分(3800B)
数据报片:分片不超过1420B
数据报片1:首部(20B),数据部分(1400B), MF 1,DF 0, 片偏移 0
数据报片2:首部(20B),数据部分(1400B),MF 1,DF 0,片偏移 175=1400/8
数据报片3:首部(20B),数据部分(1020B),MF 1,DF 0,片偏移 350=2800/8
总长度单位是 1B
片偏移单位是 8B
首部长度单位 4B
4.2.3 IPv4地址
IP地址
IP地址:32位/4字节标识符,标识路由器主机的接口
IP地址==<网络号><主机号>
网络层:路由器,属于不同的网络地址
链路层:网桥,属于同一段网络
IP地址分类
A类(1-126):0, 1B网络号, 主机号
B类(128-191):10, 2B网络号, 主机号
C类(192-223):110, 3B网络号, 主机号
D类(224-239):1110, 多播地址
E类(240-255):1111, 保留为今后使用
特殊IP地址
NetID网络号 | HostID主机号 | 作为IP分组源地址 | 作为IP分组目的地址 | 用途 |
---|---|---|---|---|
全0 | 全0 | 可以 | 不可以 | 本网范围内表示主机,路由表中表示默认路由(表示整个Internet网络) |
全0 | 特定值 | 不可以 | 可以 | 表示本网中某个特定主机 |
全1 | 全1 | 不可以 | 可以 | 本网广播地址(路由器不转发) |
特定值 | 全0 | 不可以 | 不可以 | 网络地址,表示一个网络 |
特定值 | 全1 | 不可以 | 不可以 | 直接广播地址,对特定网络上的所有主机进行广播 |
127 | 任何数(非全0/1) | 可以 | 可以 | 用于本地软件环回测试,称为环回地址 |
私有IP地址
内部IP地址
A类:10.0.0.0-10.255.255.255 网段个数 1
B类:172.16.0.0—172.31.255.55 网段个数 16
C类:192.168.0.0-192.168.255.255 网段个数 255
路由器对目的地址是私有IP地址的数据报一律不进行转发
IP地址网络数
网络类别 | 最大可用网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A | 2^7-2(全0,全1=127) | 1 | 126 | 2^24-2(全0,全1) |
B | 2^14-1(全0) | 128.1 | 191.255 | 2^16-2 |
C | 2^21-1(全0) | 192.0.1 | 223.255.255 | 2^8-2 |
4.2.4 网络地址转换NAT
路由器对目的地址是私有IP地址的数据报一律不进行转发
网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址,将(源地址)私有地址转换为全球IP地址。
NAT转换表
WAN端:ip:40001—>LAN端:192.168.0.3:3000
4.3.5 子网划分和子网掩码
分类的IP地址的缺点:
IP地址空间利用率低
两级IP地址不够灵活
子网划分
两级IP地址:网络号,主机号
三级IP地址:网络号,子网号,主机号
子网号不能全0全1,除非CIDR;主机号不能全0全1
划分子网后,一个路由器对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
子网掩码
三级IP地址:145.13(网络号).3(子网号).10(主机号)
子网掩码 : 255.255.255.0
IP地址 141.14.72.24,子网掩码 255.255.192.0,网络地址:141.14.64.0
子网掩码 255.255.224.0,网络地址:141.14.64.0
虽然是相同的网络地址,但是前者有14个主机号,后者有13个主机号。
使用子网时分组的转发
路由表中:
- 目的网络地址
- 目的网络子网掩码
- 下一跳地址
路由器转发分组的算法:
- 提取目的IP地址
- 是否直接交付,目的IP地址与不同子网的子网掩码按位与,与子网段进行匹配
- 特定主机路由
- 检测路由表中有无路径
- 默认路由 0.0.0.0
- 丢弃,报告转发分组出错
4.2.6 无分类编址 CIDR (构成超网)
划分子网后,一个路由器对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
无分类编址 CIDR
一个路由器下定长掩码—>变长掩码
无分类编址 CIDR 又称 无分类域间路由选择 CIDR
- 消除了传统的 A类 B类 C类地址以及划分子网的概念:网络前缀,主机号:IP地址/网络前缀的位数
- 融合子网地址与子网掩码,方便子网划分:CIDR把网络前缀都相同的连续IP地址组成一个 CIDR 地址块。其中最小地址全0表示本机,最大地址全1表示广播地址。地址块:128.14.47.255/20。
构成超网
构成超网:将多个子网聚合成一个较大的子网,又称路由聚合
方法:将网络前缀缩短
路由器转发表:网络前缀、下一跳地址
最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果,应该选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
???为什么最长前缀匹配到的一定可以找到目的地址,如果目的地址被隐藏呢
路由器1:128.14.00000000.0/16
128.14.10000000.0/18
128.14.01000000.0/18
路由器2:128.14.00000000.0/16
128.14.00000000.0/18
128.14.11000000.0/18
路由器2—路由器3—路由器1
4.2.7 ARP协议
网络层:IP地址
数据链路层:MAC地址
路由器:网络层,有MAC地址,路由器两端的主机属于不同局域网,
交换机:链路层,广播域,一个交换机下的主机属于一个局域网,端口转发
集线器:物理层设备,冲突域,无脑转发
发送数据的过程
第一种:接收主机3与发送主机1在同一个局域网
主机1有ARP高速缓存,局域网内IP地址与MAC地址的映射
广播ARP请求分组:IP1,IP3,MAC1,FFFFFF-FFFFFF
单播ARP响应分组:IP3,MAC3
网络层:分组,IP1,IP3
数据链路层:FCS,分组,IP1,IP3,MAC1,MAC3
第二种:接收主机5与发送主机1不在同一个局域网
主机1—交换机—MAC6 路由器1 MAC7—MAC8 路由器2 MAC9—交换机—主机5
主机1:发给路由器的网关IP6,广播ARP请求分组:IP1,IP6,MAC1,FF-FF-FF-FF-FF-FF-FF
路由器的网关IP6,:单播ARP响应分组:IP6,MAC6
主机1:
网络层:分组,IP1,IP5
数据链路层:FCS,分组,IP1,IP5,MAC1,MAC6
路由器1:
IP1,IP5,MAC1,MAC6—>IP1,IP5,MAC7,MAC8
如果是点对点PPP协议,MAC8则改为 全1
如果是NAT路由器,IP1也会发生改变
路由器2:广播ARP协议:IP9,IP5,MAC9,FF-FF-FF-FF-FF-FF-FF
主机5:单播ARP响应分组:IP5,MAC5
路由器2:
IP1,IP5,MAC7,MAC8—>IP1,IP5,MAC9,MAC5
交换机:将IP1,IP5,MAC9,MAC5只传输给MAC5
补充:PPP协议
ppp属于广域网范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,ppp支持的网络结构只能是点对点,mac支持多点对多点。以太网中用mac,远程的话就用ppp(如ADSL拨号,就是基于ppp的)。ppp是点到点协议 ,逻辑上相连的就一台设备,因此不需要寻址, 目标地址为广播地址(全1), PPP中前6个字节就是目标地址。
ARP协议
ARP协议:完成主机或者路由器IP地址到MAC地址的映射,解决下一跳走哪的问题。
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FFFFFFFFFFFF的帧封装并广播ARP请求分组,同一局域网中的所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
4.2.8 DHCP协议
路由器:网络层,有MAC地址,路由器两端的主机属于不同局域网,
交换机:链路层,广播域,一个交换机下的主机属于一个局域网,端口转发
集线器:物理层设备,冲突域,无脑转发
获取IP地址方式:DHCP协议—DHCP服务器
DHCP服务器连接在交换机上
多台主机—交换机—多台DHCP服务器
DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器和IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
DHCP服务器与主机交互过程—客户/服务方式:
- 主机广播DHCP发现报文:客户机试图找到网络中的服务器,
- DHCP服务器广播DHCP提供报文:每台服务器拟分配给客户机一个IP地址及相关配置
- 主机广播DHCP请求报文:客户机从多台服务器发出的IP地址中选择一个IP地址,并以广播的方式通知其他服务器,已经选择好了IP地址,其他服务器可以收回拟分配的IP地址
- DHCP服务器广播DHCP确认报文:服务器进行确认,并将其TCP/IP协议与网卡绑定。其他的DHCP服务器收回曾提供的IP地址。
4.2.9 ICMP协议
网际控制报文协议 ICMP协议:为了更有效地转发IP数据报和提高交付成功的机会
ICMP协议
ICMP协议支持主机或者路由器:差错(或异常)报告、网络探询
方式:发送特定的ICMP报文
IP数据报:首部,ICMP报文
ICMP差错报文(4种)
- 终点不可达:路由器或者主机不能交付数据报时
- 时间超过:路由器收到生存时间TTL=0的数据报,或者终点在预定时间内没有收到完整的数据报的全部数据报片时,就将素有数据报丢弃,并发送时间超过报文
- 参数问题:当路由器或者目的主机收到的数据报的首部中有的字段值不正确时,丢弃并发送参数问题报文
- 改变路由(重定向):路由器把改变路由报文发送给主机时,让主机知道更好的路由选择
ICMP差错报告报文数据字段
ICMP将错误的IP数据报的 首部+前8字节 组成ICMP的数据部分
IP数据报:首部,ICMP差错报告报文
IP数据报:首部,ICMP的前8字节,错误的IP数据报首部,错误的IP数据报的前8字节
不应发送ICMP差错报文的情况
- 对ICMP差错报文不再发送ICMP差错报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报都不发送ICMP差错报告报文
广播地址:一对所有
组播地址:一对部分
ICMP询问报文
- 回送请求和回答报文:主机或路由器向特定主机发出的询问,收到次报文的主机必须给源主机或者路由器发送ICMP回送回答报文。用于测试是否可达。
- 时间戳请求和回答报文:轻某个主机或者路由器回答当前的日期与时间。用于时钟同步和测量时间。
ICMP的应用
ping:测试两个主机之间的联通性,使用了ICMP回送请求和回答报文
traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
4.3 IPv6
IPv4地址已经分配完:
- CIDR、NAT
- 改进首部格式:快速处理/转发数据报,支持QoS
IPv6
IPv6数据报格式
基本首部(40字节),有效载荷(不超过65535字节)
基本首部(40字节),扩展首部1,扩展首部2,…,扩展首部N,数据部分
IPv4和IPv6
- 地址位:IPv4,4B;IPv6,16B
- IPv6将IPv4的校验和字段彻底删除,减少每跳的处理时间
- IPv6将IPv4的可选字段移除首部,变成了扩展首部,路由器通常不对扩展首部进行检查
- IPv6支持即插即用(即自动配置),不需要DHCP协议
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
- ICMPv6:附加报文类型“分组过大”
- IPv6支持资源的预分配,支持实时视像等要求
IPv6地址表示形式
一般形式:冒号十六进制记法(4*8):4BF5:AA12:0216:FEBC:BA5F:D39A:BE9A:2170
压缩形式:4BF5:0000:0000:0000:BA5F:039A:000A:2176
4BF5:0:0:0:BA5F:39A:A:2176
零压缩:一连串连续的0可以被双冒号取代,双冒号仅可出现一次
FF05:0:0:0:0:0:0:B3
FF05::B3
IPv6基本地址类型
单播:一对一通信,可做源地址+目的地址
多播:一对多通信,可做目的地址,可以实现广播
任播:一对多中的一个通信,可做目的地址,一般是离最近的主机响应
IPv4向IPv6过度的策略
双栈协议:在一台设备上同时启用IPv4和IPv6协议
隧道技术:隧道协议将其他协议的数据帧或报重新封装然后通过隧道发送。使用隧道传递的数据可以是不同协议的数据帧或包。
4.4 路由算法与路由协议概述
路由算法
R1的路由表/转发表
目的网络IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
---|---|---|---|
路由算法的分类
- 静态路由算法(非自适应路由算法):管理源手工配置路由信息:适用于高度安全性的军事网络和较小的商业网络
- 动态路由算法(自适应路由算法):路由算法
动态路由算法:
- 全局性:链路状态路由算法 OSPF:所有路由器掌握全局网络拓扑
- 分散性:距离向量路由算法 RIP:路由器只掌握相邻的邻居
分层次的路由选择协议
原因:因特网规模大;部分单位不想将自己的路由选择协议外漏,但还想连入因特网
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定AS之间的路由。
一个AS内部的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须互通。
或者说,AS内部是一家,外部是一家,内部不知道外部的协议,外部不知道内部的协议,互相透明。
路由选择协议:
- 内部网关协议IGP:一个AS内部使用的 RIP、OSPF
- 外部网关协议EGP:AS之间使用的 BGP-4
4.5 路由选择算法的具体协议
4.5.1 RIP协议与距离向量算法
路由选择协议:
- 内部网关协议IGP:一个AS内部使用的 RIP(小网络)、OSPF(大网络)
- 外部网关协议EGP:AS之间使用的 BGP-4
RIP协议
RIP协议:分布式的基于距离度量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组数据)
距离,又称跳数,即经过的路由器个数。RIP规定一条路由最多能包含15个路由器,因此距离为16表示网络不可达。只适合小网络
目的网络 | 距离 | 下一跳路由器 |
---|---|---|
Net2 | 1 | 直接交付 |
Net1 | 2 | 路由器R1 |
RIP协议和谁交换,多久交换一次,交换什么
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 每30s交换一次路由信息,然后更新;如果超过180s没有收到邻居路由器的通告,则判断邻居没了,并更新自己的路由表
距离向量算法
- 修改相邻路由器发来的RIP报文中的所有表项:对地址为x的相邻路由器的RIP报文,把下一跳地址字段中的地址改为x,距离+1
- 对修改后的RIP报文中的每一个项目,则进行以下步骤:
2.1 R1路由表中若没有Net3,则把该项目填入R1路由表
2.2 R1路由表中有Net3,则查看下一跳路由器地址:如果下一跳是x,则替换;如果下一跳不是x,选取距离最短的 - 若180s没有收到相邻路由器x的更新路由表,则把x记为不可达的路由器,距离设置为16
RIP协议的报文格式
IP数据报:首部+UDP首部+RIP首部+路由部分
RIP是应用层协议,使用UDP传送数据。
一个RIP报文最多可包括25个路由。
RIP协议好消息传得快,坏消息传得慢
4.5.2 OSPF协议与链路状态算法
路由选择协议:
- 内部网关协议IGP:一个AS内部使用的 RIP(小网络)、OSPF(大网络)
- 外部网关协议EGP:AS之间使用的 BGP-4
开发最短路径优先 OSPF 协议:“开放”:OSPF协议不受某一厂家控制,是公开发表的。最短路径优先。是使用分布式的链路状态协议。
和谁交换:
使用洪泛法向自治系统内所有路由器发送信息,即路由器向相邻路由器发送信息,而相邻路由器会将信息发送其相邻路由器。即广播的形式。
交换什么:
发送的信息是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量—费用、时延、带宽等,而RIP协议只是跳数)
多久交换:
只有当链路状态发送变化时,路由器才向所有路由器泛发送此消息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
链路状态路由算法
- 每个路由器发现它的邻居结点 “HELLO问候分组”,并了解邻居结点的网络地址
- 设置它到它每个邻居的成本度量 metric
- 构造 DD数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 如果DD分组中的摘要自己有,则邻站不做处理;如果出现没有的或者更新的,则发送 LSR链路状态请求分组 ,请求么有的或者更新的
- 收到邻站的LSR分组后,发送 LSU链路状态更新分组 进行更新
- 更新完毕后,邻站返回一个 LSAck链路状态确认分组进行确认
如果一个路由器的链路状态发送变化 - 泛洪发送 LSU链路状态更新分组 进行更新
- 更新完毕后,其他站返回一个 LSAck链路状态确认分组 进行确认
- 使用Dijkstra算法根据自己的链路状态数据库构造到其他节点间的最短路径
OSPF的区域
OSPF将一个自治系统进一步划分为若干个更小的范围,即区域。
每一个区域都有一个32位的区域标识符(点份十进制表示)
OSPF分组
IP数据报:IP首部+OSPF首部+类型1到类型5的OSPF分组
OSPF 直接使用 IP 数据报进行传送
OSPF其他特点
- 每隔30min更新一次
- 收敛速度快
4.5.3 BGP协议
路由选择协议:
- 内部网关协议IGP:一个AS内部使用的 RIP(小网络)、OSPF(大网络)
- 外部网关协议EGP:AS之间使用的 BGP-4
BGP协议
和谁交换:与其他AS的邻站BGP发言人交换信息
交换什么:交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS
多久交换:发生更新时交换
较好的路由路径
BGP协议交换信息的过程
BGP交换的网络可达性的信息:到达某个网络所要经过的一系列AS
BGP协议报文格式
BGP报文:BGP报文通用首部,BGP报文主体
TCP报文:TCP首部,BGP报文
IP报文:IP首部,TCP报文
BGP发言人之间交换路由信息,需要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。
BGP协议特点
BGP支持CIDR
BGP刚开始交换整个BGP路由表,之后只更新有变化的部分。
BGP-4的四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方
- UPDATE(更新)报文:通告新路径或者撤销旧路径
- KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性,也作为OPEN的确认
- NOTIFICATION(通知)报文:报告先前报文的差错,也被用于关闭连接。
RIP、OSPF、BGP协议的比较
- RIP协议:内部网关协议,基于距离度量,广播UDP报文
- OSPF协议:内部网关协议,直接使用IP报文,不经过TCP或UDP
- BGP协议:外部网关协议,采用TCP
4.6 IP组播
IP数据报的三种传输方式
单播:点对点
广播:同一广播域或同一子网,点对多点
组播(多播):点对多点,数据到达距离用户端尽可能近的结点后才开始复制和分发。组播路由器。
IP组播地址
IP组播地址:源设备将分组发送给一组设备,属于多播组的设备都将分配一个组播组IP地址(一群共同需求主机的相同标识)
组播地址范围:224.0.0.0-239.255.255.255(D类地址),一个D类地址表示一个组播组,只能用作分组的目的地址。源地址总是单播地址。
- 组播数据报是尽最大努力交付,不提供可靠交付,应用于UDP
- 对组播数据报不产生ICMP差错报文
- 并非所有D类地址都可以作为组播地址
分为:
- 硬件组播(局域网内)
- 因特网范围内组播(局域网外)
硬件组播
组播IP地址需要对应的组播MAC地址。组播MAC地址(6B,48位)以十六进制 01-00-5E 开头,余下的6个十六进制是根据IP组播组地址的最后23位转换而来的。
收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报进行过滤。
因特网范围内组播:IGMP协议与组播路由选择协议
网际组管理协议IGMP:让路由器知道本局域网上是否有主机(的进程)参加或者退出了某个组播组。
IGMP工作的两个阶段:
- 某主机要加入组播组:主机向组播组的组播地址发送IGMP报文,本地组播路由器收到IGMP报文后,利用组播路由选择协议,把这组成员关系发给因特网上的其他组播路由器。
- 本地组播路由器查询是否还有主机是该组播组的成员。本地组播路由器周期性探询本地局域网上的主机,只要有一个主机响应(其他主机发现有响应后,就不再响应),就认为该组还是活跃的;如果几次探询后没有响应,则认为该组不再活跃,不再把这组的成员关系发给其他的组播路由器。
组播路由选择协议:找出以源主机为根节点的组播转发树。
组播路由选择协议常使用的三种算法:
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)
4.7 移动IP
移动IP相关术语
移动IP技术:是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点:具有永久IP地址的移动设备(计算机/服务器等)
归属代理(本地代理):一个移动结点拥有的旧居所称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
永久地址(归属地址/主地址):移动站点在归属网络中的原始地址
转交地址(辅地址):移动站点在外部网络使用的临时地址
4.8 网络层设备
路由器
路由器:多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
网络层
数据链路层
网络层
路由器分为两个功能:
- 路由选择:根据所选定的路由选择协议构造出路由表,
- 分组转发:交换结构:根据转发表(路由表)对分组进行转发
输入端口:查找和转发功能
路由器中的输入或者输出队列产生溢出是造成分组丢失的重要原因
三层设备的区别
路由器:可以互联两个不同网络层协议的网段:端口转发,可以隔离冲突域和广播域
网桥/交换机:可以互联两个物理层和数据链路层不同的网段,可以隔离冲突域,但不能隔离广播域
集线器:不能互联两个物理层不同的网段,不能隔离冲突域和广播域
路由表和路由转发
路由表:根据路由选择算法得出,主要用途是路由选择,软件实现
路由表:目的网络IP地址,子网掩码,下一跳IP地址,接口
转发表:由路由表得来,软件或者特殊的硬件实现。转发表必须包含完成转发功能所必需的信息。在转发表的每一行必需包含从要到达的目的网络到输出端口和某些MAC地址。
4.9 第四章 网络层 总结
网络层功能:
- 异构网络互联
- 路由与转发
- 拥塞控制
数据交换方式:
- 电路交换
- 报文交换
- 分组交换
IP数据报:
- 格式
- IP数据报分片
IPv4地址:
- 分类的IP地址—网络地址转换NAT
- 子网的划分
- 无分类编址CIDR—构成超网
重要协议:
- ARP协议:MAC和IP的映射
- DHCP协议:动态获取IP地址
- ICMP协议
- IGMP协议+组播路由选择协议(IP组播)
IPv6:
- 地址表示
- IPv6到IPv4的过渡:双协议栈、隧道技术
路由算法:
- 动态路由算法:OSPF、RIP
路由选择协议:
- 内部网关协议:RIP、OSPF
- 外部网关协议:BGP
移动IP:
路由器:
- 路由选择
- 分组转发
5. 传输层
5.1 传输层概述
传输层
传输层的功能:
- 传输层提供进程与进程之间的逻辑通信(网络层提供主机之间)
- 复用和分用
- 传输层对收到的报文进行差错检测
- 传输层的两种协议
复用:应用层所有的应用进程都可以通过传输层再传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
传输层的两个协议
TCP:面向连接的传输控制协议TCP,报文段,可靠,面向连接,时延大,适用于大文件
UDP:无连接的用户数据报协议UDP,数据报,不可靠,时延小,适用于小文件
传输层的寻址与端口
逻辑端口/软件端口:端口:是传输层的SAP,标识主机中的应用进程。
端口号长度为16bit,能表示65536个不同的端口号。
端口号:
- 服务端使用:
1.1 熟知端口号:0-1023
1.2 登记端口号:1024-49151 - 客户端使用:动态分配
HTTP:80
DNS:53
套接字:在网络中采用发送方和接收方的套接字组合来标识端点,套接字唯一标识了网络中的一个主机和它上面的一个进程
套接字:主机IP地址,进程端口
5.2 UDP协议
UDP
用户数据报协议UDP:
- 无连接
- 不保证可靠交付
- 面向报文(应用层报文),适合一次性传输少量数据的网络应用
- 无拥塞控制,适合实时应用
- UDP首部 8B
5.3 TCP协议
5.3.1 TCP协议特点和TCP报文段
TCP协议特点
- TCP面向连接(虚连接)的传输层协议
- TCP连接只能有两个端点,是点对点的
- TCP提供可靠交付,无差错、不丢失、不重复、按序到达
- TCP提供全双工通信
- TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP报文段首部格式
确认号 ack:希望下一次传输的序号,或者该序号之前的(不包括本序号)的字节都已经确认收到
同步位 SYN:SYN=1时,表明是一个连接请求/连接接收报文
确认位 ACK:ACK=1时,确认号有效。连接建立后所有报文都需要ACK=1
终止位 FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
5.3.2 TCP连接管理
TCP连接:客户服务器方式,连接确立—数据传递—连接释放
三次握手
“三次握手” 过程:
- 客户端发送 连接请求报文段,无应用层数据:同步位 SYN=1,序号 seq=x(随机),确认位ACK=0(确认号无意义)
- 服务器为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。SYN=1,ACK=1,seq=y(随机),确认号ack=x+1
- 客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。SYN=0,ACK=1,seq=x+1,ack=y+1
四次挥手
参与TCP的两个进程都可以终止连接,连接结束后,主机中的资源(缓存和变量)都被释放
- 客户端发送连接释放报文段,停止发送数据。FIN=1,seq=u
- 服务器回送一个确认报文段,进入“半关闭状态”。ACK=1,seq=v,ack=u+1
- 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。FIN=1,ACK=1,seq=w,ack=u+1。
- 客户端回送一个确认报文段,在等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。ACK=1,seq=u+1,ack=w+1
5.3.3 TCP可靠传输
可靠传输:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的
TCP实现可靠传输的机制:
- 校验:增加伪首部,校验码
- 序号:一个字节占一个序号,序号字段指一个报文的第一个字节的序号
- 确认:累计确认
- 重传:TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段,动态改变重传时间RTTs(加权平均往返时间),冗余ACK
冗余ACK:每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号,实现快速重传。
5.3.4 TCP流量控制
流量控制:让发送方慢点
TCP流量控制:滑动窗口:在通信过程中,接收方根据字节接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd,发送方的发送窗口取min(接收窗口rwnd和拥塞窗口cwnd)
接收窗口:接收方根据接收缓存设置的值,并告知给发送方,反映接收方容量
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量
5.3.5 TCP拥塞控制
TCP拥塞控制算法:慢开始、拥塞避免;快重传、快恢复
假定:
- 数据单方向传送,另一个方向只传送确认
- 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度
慢开始与拥塞避免
满开始:从一个报文段开始,指数增大,达到ssthresh值后线性增大,拥塞后重新初始化为0
拥塞避免:ssthresh的值在拥塞后变为拥塞窗口的一半
快重传和快恢复
快重传:收到3个重复的确认后(冗余ack),执行快重传
快恢复:快重传发生时,ssthresh设置为拥塞窗口的一半,拥塞窗口设置为新的ssthresh
5.4 传输层总结
协议:
- TCP
- UDP
- 寻址与端口
UDP:
- 校验:伪首部校验
TCP
6. 应用层
应用层
传输层
网络层
数据链路层
物理层
应用层协议定义:
- 应用进程交换的报文类型,请求还是响应?
- 各种报文类型的语法
应用层功能:
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
应用层的重要协议:
- FTP
- SMTP、POP3
- HTTP
- DNS
6.1 网络应用模型
网络应用模型
- 客户/服务器模型(Client/Server)
- P2P模型(Peer-to-Peer)
客户/服务器模型(C/S)模型
客户:请求计算服务的主机,客户机之间不会互相通信
服务器:提供计算服务的设备,永久性访问地址/域名
应用:Web、文件传输FTP、远程登录、电子邮件
P2P模型
每个主机都可以提供和请求服务
节点可能改变IP地址
节点之间可以直接通讯
6.2 域名解析系统DNS
DNS:域名—>IP
跟:.
顶级域名:国家顶级域名:cn,us,uk;通用顶级域名:com,net,org;基础结构域名/反向域名: arpa
二级域名:类别域名: ac(科研),com,edu,gov,mil,net,org;行政区域名:各省;字节注册的
三级域名:…
域名服务器
根域名服务器:顶级域名器对应的IP地址
顶级域名服务器:二级域名服务器对应的IP地址
权限域名服务器:负责一个区的域名服务器
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器
域名解析过程
递归查询(少):
本地域名服务器—根域名服务器—顶级域名服务器—权限域名服务器
迭代查询:
本地域名服务器—根域名服务器—本地域名服务器—顶级域名服务器—本地域名服务器—权限域名服务器
高速缓存
6.3 文件传输协议 FTP
文件传送协议FTP:提供不同种类主机系统之间的文件传输能力
简单文件传送协议TFTP
FTP基于客户/服务器的协议
FTP工作原理
登录:用户名密码;匿名登录(anonymous)
FTP基于TCP实现可靠传输
服务器进程:1个主进程,n个从属进程
客户端:
用户界面
控制进程(TCP控制连接端口 21)
数据传送进程(TCP数据连接端口 20)
服务器端:
控制进程(TCP控制连接端口 21)
数据传送进程(TCP数据连接端口 20)
控制连接始终保持
数据连接只保持一会
传输模式决定TCP 20 端口:主动方式:TCP20;被动方式:服务器与客户端自行协商(端口>1024)
FTP传输模式:
- 文本模式:ASCII模式,以文本序列传输数据
- 二进制模型:Binary模式,以二进制序列传输数据
6.4 电子邮件
SMTP协议:发
TCP连接
POP3协议:收
客户/服务器方式
简单邮件传送协议SMTP
TCP连接,端口 25,C/S
SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)
SMTP的缺点:
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于7位ASCII码,不能传送其他非英语国家的文字
- SMTP服务器会拒绝超过一定长度的邮件
MIME
通用因特网邮件扩充 MIME:SMTP—>MIME
邮局协议POP3
TCP连接,端口 110,C/S
POP3:接收端服务器->接收方代理
网际报文存取协议IMAP
IMAP协议比POP协议复杂。用户可以只看邮件的首部,当需要打开时,该邮件才上传到用户的计算机上。
基于万维网的电子邮件
用户代理—HTTP—邮件服务器—SMTP—邮件服务器—HTTP—用户代理
6.5 万维网和HTTP协议
万维网 WWW :是一个大规模的、联机式的信息资料空间,是无数个网络站点和网页的集合。
统一资源定位符 URL:<协议>://<主机>:<端口>/<路径>
协议:http,ftp
主机:域名,IP地址
用户通过点击超链接获取资源,这些资源通过超文本传输协议(HTTP)传给使用者。
万维网以客户/服务器方式工作。
万维网使用超文本标记语音 HTML,使万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能在自己的屏幕上显示出来。
超文本传输协议HTTP
HTTP协议:定义了浏览器(万维网客户进程)怎么样向万维网服务器请求万维网文档,以及服务器怎么样把文档传送给浏览器。
服务器进程监听 TCP连接 端口 80
用户浏览页面方法:
- 输入URL
- 点击超链接
HTTP的特点:
- HTTP协议是无状态的
- Cookie:万维网识别用户
- HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)
Cookie:存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别)的访问记录。
HTTP的连接方式:
- 持久连接(Keep-alive)
1.1 非流水线
1.2 流水线 - 非持久连接(Close)
超文本传输协议HTTP—报文结构
HTTP报文:请求报文、响应报文
HTTP报文是面向文本的,因此在报文的每一个字段都是一些ASCII码串。
202 Accepted
301 重定向