计算机网络
计算机网络
第一章 计算机网络体系结构
1.1 计算机网络概述
1.1.1 概念
计算机网络就是一些互联的、自治的计算机,并由功能完善的软件实现资源共享和信息传递的系统的集合
三大网络:电信网络,有线电视网络,计算机网络
1.1.2 组成
①从组成部分上看: 硬件、软件、协议
②从工作方式上看:边缘部分、核心部分
边缘部分:由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享
核心部分:由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务
③从功能组成上看:通信子网、资源子网
1.1.3 功能
①数据通信:实现联网计算机之间各种信息的传输
②资源共享:可以是软件共享、数据共享,硬件共享(打印机)
③分布式处理:多台计算机各自承担同一工作的不同部分
④提高可靠性:各台计算机可以通过网络互为替代机
⑤负载均衡:将工作任务均衡地分配给计算机网络中的各台计算机
多机系统:多个处理器通过共享内存实现的紧耦合系统
分布式系统:共同完成一项任务的分布式系统
计算机网络与分布式计算机系统的主要区别是什么?
分布式系统最主要的特点是,整个系统中的各个计算机对用户都是透明的。用户通过输入命令就可以运行程序,但用户并不知道哪台计算机在为它运行程序。操作系统为用户选择一台最合适的计算机来运行其程序,并将运行的结果传送到合适的地方。
计算机网络则与之不同,用户必须先登录欲运行程序的计算机,然后按照计算机的地址,将程序通过计算机网络传送到该计算机中运行,最后根据用户的命令将结果传送到指定的计算机中。二者的区别主要是软件的不同。
1.1.4 分类
①按分布范围分类:广域网(WAN),城域网(MAN),局域网(LAN),个人区域网(PAN)
广域网和局域网之间的差异还在与它们所采用的协议和网络技术的不同,广域网使用点对点等技术,局域网使用广播技术
②按传输技术分类:广播式网络、点对点网络
③按拓扑结构分类:总线型,星型,环形,网状
星形、总线形和环形网络多用于局域网,网状网络多用于广域网
④按使用者分类:公用网、专用网
⑤按[数据交换技术](#2.1.4 数据交换方式)分类:电路交换网络、报文交换网络、分组交换网络
1.1.5 性能指标
速率(数据传输速率、数据率、比特率)
主机在数字信道上传送数据位数的速率,单位是\(b/s\) (比特/秒)(或\(bit/s\), 有时也写为\(bps\))
数据率较高时,可用\(Kb/s (K= 10^3) 、Mb/s CM= 10^6) 、Gb/s(G= 10^9)\)表示
带宽
网络的通信线路所能传送数据的能力,即最高数据传输速率,单位是\(b/s\) (比特/秒)
吞吐量
单位时间内通过某个网络(或信道、接口)的数据量,受网络带宽或网络额定速率的限制,单位是\(b/s\) (比特/秒)
时延
发送时延(传输时延)
分组的所有比特推向(传输)链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间
高速链路提高的是数据发送速率,为了减少数据的发送时延
传播时延
电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一端传播到另一端所需的时间
处理时延和排队时延
排队时延和处理时延一般可忽略不计时延带宽积
接收方在接受到第一个比特之前发送放能够发送的数据量,又称为以比特为单位的链路长度
往返时延
从发送端发送数据开始,到发送端收到来自接收端的确认总共经历的时延
信道利用率
某一信道有百分之多少的时间是有数据通过的
1.2 计算机网络体系结构与参考模型
1.2.1 分层结构
把计算机网络的各层及其协议的集合称为网络的体系结构
目的
提供标准语言、定义标准界面、增加功能之间的独立性
数据单元
服务数据单元(\(SDU\)) : 为完成用户所要求的功能而应传送的数据
协议控制信息(\(PCI\)) :控制协议操作的信息
协议数据单元(\(PDU\)) :对等层次之间传送的数据单位
把从第\(n + 1\)层收到的\(PDU\)作为第\(n\)层的\(SDU\), 加上第$n \(层的\)PCI\(,就变成了第\)n \(层的\)PDU\(, 交给第\)n - 1 \(层后作为\)SDU $发送
1.2.2 协议、接口、服务
概念
协议:为进行网络中的对等实体的数据交换而建立的规则、标准或约定
服务:下层为相邻上层提供的功能调用
接口(服务访问点(SAP)):上层使用下层服务的入口
协议和服务的联系和区别
联系:
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下一层提供的服务
区别:
①协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上面的服务用户是透明的
②协议是“水平的“ ,即协议是控制两个对等实体之间的通信的规则。但服务是“垂直的“ ,即服务是由下层通过层间接口向上层提供的
1.2.3 ISO/OSI参考模型
物联网鼠绘使用,7层模型
应用层
所有能和用户交互产生网络流量的程序
表示层
处理在两个通信系统中交换信息的表示方式
功能:①数据格式转换②数据加密解密③数据压缩恢复
会话层
为表示层实体或用户进程建立连接并在连接上有序地传输数据
功能:①建立、管理及终止进程间的会话②使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步(也称同步点)
传输层
负责主机中两个进程之间的通信(端到端通信)
功能:①流量控制②差错控制③复用分用④可靠传输和不可靠传输
复用是指多个应用层进程可同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程
端到端通信和点到点通信有什么区别?
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信,它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信, 这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程)之间的通信。”端”是指用户程序的端口,端口号标识了应用层中不同的进程。
网络层
把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务
功能:①路由选择②流量控制③拥塞控制④差错控制⑤网际互联
数据链路层
将网络层传来的IP数据报组装成帧
功能:①成帧②差错控制③流量控制④传输管理⑤广播式网络在数据链路层还要处理新的问题,即如何控制对共享信道的访问
物理层
透明的传输比特流
功能:①定义接口特性②定义传输模式③定义传输速率④比特同步⑤比特编码
描述ISO/OSI参考模型数据传输过程?
在OSI 参考模型中,传输层利用通信子网提供的服务实现两个用户进程之间端到端的通信。在这个层次模型中,如果用户A需要通过网络向用户B传送数据,那么首先将数据送入应用层,在该层给它附加控制信息后送入表示层;在表示层对数据进行必要的变换并加上头部后送入会话层;在会话层加头部后送入传输层;在传输层将数据分割为报文后送至网络层;在网络层将数据封装成分组后送至数据链路层;在数据链路层将数据加上头部和尾部封装成数据帧后发送到物理层;在物理层数据以比特流形式发送到物理线路。用户B所在的系统接收到数据后,层层剥去控制信息,最终将原数据传送给用户B。
1.2.4 TCP/IP 模型
与OSI参考模型的联系与区别
联系:
①二者都采取分层的体系结构
②二者都是基于独立的协议栈的概念
③二者都可以解决异构网络的互联
区别:
OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。这样既能使网络部分价格便宜且灵活可靠,又能保证端到端的可靠传输。
TCP/IP 模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式
1.2.5 OSI五层模型
五层模型 | 接口 | PDU | 设备 | SAP |
---|---|---|---|---|
应用层 | 用户界面 | 数据 | 网关 | |
传输层 | 端口号 | 数据段 | 网关 | 端口 |
网络层 | IP地址(网络地址) | 数据包 | 路由器 | IP |
数据链路层 | MAC地址(网卡地址) | 数据帧 | 交换机、网桥 | MAC |
物理层 | 网卡接口 | bit(数据位) | 中继器、放大器、集线器 |
第二章 物理层
2.1 通信基础
2.1.1 基本概念
信号
数据:传送信息的实体
信号:数据的电气或电磁表现,是数据在传输过程中的存在形式
分类
基带信号:将数字信号1和0直接用两种不同的电压表示
宽带信号:基带信号进行调制后形成频分复用模拟信号
信道
信源:产生和发送数据的源头
信宿:接收数据的终点
信道:信号的传输媒介,信噪比、频率宽带、调制速率都会影响信道的数据传输速率
通信电路
信道不等于通信电路,一条可双向通信的电路往往包含两个信道: 一条是发送信道,一条是接收信道
另外,多个通信用户共用通信电路时,每个用户在该通信电路都会有一个信道
分类
①按传输信号形式:模拟信道、数字信道
②按传输介质:为无线信道、有线信道
信道复用
通信方式
①按交互方式
单向通信(无线电广播、电视广播)、半双工通信(对讲机)、全双工通信
②按信号方式
基带传输:基带信号在然后送到数字信道上的传输(在计算机内部或在相邻设备之间近距离传输,通常用于局域网)
频带传输:用数字信号对特定频率的载波进行数字调制,将其变成适合于传送的信号后再进行的传输
宽带传输:频分复用模拟信号在模拟信道上的传输(将链路容量分解成两个或多个信道,每个信道可以携带不同的信号,但复用信道速率必须一致)
③按数据传输方式
串行传输:1比特1比特地按照时间顺序传输(远距离通信)
并行传输:若干比特通过多条通信信道同时传输(总线传输)
④按字符同步
同步通信:通信双方必须先建立同步,即双方的时钟要调整到同一个频率
a.全网同步(外同步):用一个非常精确的主时钟对全网所有结点上的时钟进行同步
b.准同步(内同步):各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输(曼彻斯特编码)
异步通信:两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的,发送端可以在任意时刻发送,但但接收端必须时刻做好接收的准备,因此需要有界限
字符异步:在每个字符开始和结束的地方加上开始位和停止位
帧异步:帧的首部和尾部必须设有即帧定界
码元
固定时长的信号波形(数字脉冲),可表示一位K进制数字,是数字通信中数字信号的计量单位,一个\(K\)进制码元携带\(log_2K\)个比特
码元传输速率(波特率)
表示单位时间内数字通信系统所传输的码元个数(也可称为每秒脉冲个数或信号变化的次数),单位:波特\((Baud)\)
1 波特表示数字通信系统每秒传输一个码元,且码元传输速率与码元进制数无关
信息传输速率(信息速率、比特率)
表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位:比特/秒\(( b/s)\)
若一个码元携带\(n\)比特的信息量,则\(M\)波特率的码元传输速率所对应的信息传输速率为\(Mn\)比特/秒
2.1.2 奈氏准则和香农定理
奈氏准则
在理想低通(没有噪声、带宽有限)的信道中,极限码元传输速率为\(2W\)波特,其中\(W\)是理想低通信道的带宽
奈氏准则表明要提高数据传输速率,就必须设法使每个码元携带更多比特的信息量,即采用多元制的调制方法
奈氏准则和香农定理中的带宽单位都是\(Hz\)
原因
高频分量在传输中会导致接收端收到的信号波形失去码元之间的清晰界限(码间串扰)
低频分量在传输中衰减直至消失
公式
其中,\(V\)表示每个码元离散电平的数目(即有多少种不同的码元)
香农定理
带宽受限且有高斯白噪声干扰的信道的极限数据传输速率,当用此速率进行传输时, 可以做到不产生误差
公式
其中,\(W\)为信道的带宽,\(S\)为信道所传输信号的平均功率,\(N\)为信道内部的高斯噪声功率
\(\frac{S}{N}\)为信噪比,即信号的平均功率与噪声的平均功率之比
两者的区别在于:前者(数值)是没有单位的,后者必须加\(dB\), 代表分贝
例题
2.1.3 编码与调制
编码:把数据变换为数字信号
调制:把数据变换为模拟信号
数字数据编码为数字信号
数字数据可以通过数字发送器转换为数字信号,应用于基带传输中
归零类
名称 | 表示 |
---|---|
归零编码(RZ) | 高电平代表1、低电平代表0(或者相反),每个时钟周期的中间均跳变到低电平(归零) |
非归零编码(NRZ) | 高电平代表1、低电平代表0(或者相反),不用归零 |
反向非归零编码(NRZI) | 信号的翻转代表0、信号保持不变代表1 |
曼彻斯特类
名称 | 表示 | 应用 |
---|---|---|
曼彻斯特编码 | 间隔前半部分为高电平,后半部分为低电平表示1,间隔后半部分为高电平,前半部分为低电平表示0(或者相反) | 以太网传输 |
差分曼彻斯特编码 | 间隔前半部分与后半部分电平相同表示1,间隔前半部分与后半部分电平不同同表示0(或者相反) | 局域网传输 |
每位数据(一个比特,对应信息传输速率)都需要两个电平(两个脉冲信号, 对应码元传输速率)
因此波特率是数据率的两倍,编码效率是50%,带宽度是原始基带宽度的两倍
在每个码元的中间出现电平跳变,位中间的跳变既可作为时钟信号(可用于同步),又可作为数据信号(采用曼彻斯特编码)
4B/5B 编码
将数据流每4 位作为一组转换成相应的5位码,因为5位码共32 种组合,但只采用其中的16 种,其他作为控制码(帧的开始和结束、线路的状态信息等)或保留,其编码效率是80%
例题
数字数据编码为模拟信号
数字数据可以通过调制器转换成模拟信号
名称 | 功能 |
---|---|
幅移键控(ASK) | 改变载波信号的振幅 |
频移键控(FSK) | 改变载波信号的频率 |
相移键控(PSK) | 改变载波信号的相位 |
正交振幅调制(QAM) | 在频率相同的前提下,将ASK 与PSK 结合起来,形成叠加信号 |
设波特率为\(B\) ,采用\(m\)个相位,每个相位有\(n\)种振幅,则数据传输速率\(R = Blog_2(mn) (单位为b/s)\)
模拟数据编码为数字信号
模拟数据可以通过PCM(脉冲编码调制)编码器转换成数字信号
步骤
①采样:对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号
采样定理:若\(采样频率 \geq 2最高频率\),所得的离散信号可以无失真地代表被采样的模拟数据
②量化:把采样取得的电平幅值按照一定的分级标度转化为对应的数字值并取整数
③编码:把量化的结果转换为与之对应的二进制编码
例题
模拟数据调制为模拟信号
模拟数据可以通过放大器调制器调制为模拟信号
2.1.4 数据交换方式
电路交换
在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点,这一路径在整个数据传输期间一直被独占,直到通信结束后才被释放
分为三个阶段:连接建立、数据传输和连接释放
优缺点
优点
①传输时延小,数据直达
②有序传输
③适用范围广,既适用于传输模拟信号,又适用于传输数字信号
缺点
①不能进行差错控制
②建立连接时间长
③信道利用率低
④若通路中的任何一点出了故障,就必须重新拨号建立新连接
报文交换
单位是报文,携带有目标地址、源地址等信息
优缺点
优点
①动态分配线路
②提高线路可靠性
缺点
①传输时延大,要经历接收报文、检验正确性、排队、发送时间等过程
②对报文的大小没有限制,要求网络结点需要有较大的缓存空间
有两个网络,它们都提供可靠的面向连接的服务,一个提供可靠的字节流,另一个提供可靠的报文流。请问两者是否相同?为什么?
不相同。在报文流中,网络保持对报文边界的跟踪;而在字节流中,网络不进行这样的跟踪。
例如,一个进程向一条连接写了1024B,稍后又写了1024B,那么接收方共读了2048B。对千报文流,接收方将得到两个报文,每个报文1024B。而对千字节流,报文边界不被识别,接收方将全部2048B作为一个整体,在此已经体现不出原先有两个不同报文的事实。
分组交换
把大的数据块划分为合理的小数据的报文交换
优缺点
优点
①减少了报文的传输时间
②减少了出错概率和重发数据量
缺点
①可能会出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作
②需要传输额外的信息量
时延计算
其中,\(n\)表示\(n\)个分组,\(m\)表示\(m\)段链路,忽略处理时延和排队时延
数据报
①报文携带源地址,目的地址、序号
②无连接服务:传输不保证可靠性,可能丢失,并且分组不一定按序到达目的结点
③对故障的适应能力强:当某个交换结点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组
虚电路
在分组发送之前,要求在发送方和接收方建立一条逻辑上相连的虚电路,并且连接一旦建立,就固定了虚电路所对应的物理路径
通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放
①报文携带虚电路号、分组号、校验和,相对于数据报开销小(仅在建立连接阶段需要源地址,目的地址)
②多路复用技术,每条物理线路可以进行多条逻辑上的连接
③分为永久虚电路(PVC)和交换型虚电路(SVC)
④不需要为每条虚电路预分配带宽
⑤建立虚电路时需要进行路由选择
⑥面向连接服务:提供了可靠的通信功能,保证每个分组正确且有序到达
⑦当网络中的某个结点或某条链路出现故障而彻底失效时,所有经过该结点或该链路的虚电路将遭到破坏
⑧流量控制:当接收方来不及接收数据时,可以通知发送方暂缓发送
例题
要传送的数据噩很大且其传送时间远大于呼叫时间时,采用电路交换较为合适
端到端的通路由多段链路组成时,采用分组交换传送数据较为合适
从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小
当网络出错率很高时,采用分组交换,可以减少重发时间
2.2 传输介质
2.2.1 传输介质(传输媒体)
数据传输系统中发送设备和接收设备之间的物理通路,并不是物理层,可称为第零层
传输媒体不知道所传输的信号什么时候是1,什么时候是0,但物理层由于规定了电气特性,因此能够识别所传送的比特流
2.2.2 导向传输介质
名称 | 组成 | 特点 | 应用 |
---|---|---|---|
屏蔽双绞线(STP) | 两根采用一定规则并排绞合的、相互绝缘的铜导线 | 价格便宜,绞合可以减少对相邻导线的电磁于扰 | 在局域网和传统电话网 |
非屏蔽双绞线(UTP) | 双绞线的外面再加上一层用金属丝编织成的屏蔽层 | ||
同轴电缆 | 内导体、绝缘层、网状编织屏蔽层和塑料外层 | 抗干扰:外导体屏蔽层 半双工通信 | 基带同轴电缆:局域网 宽带同轴电缆:有线电视系统 |
单模光纤 | 纤芯和包层 | 横向模式直接传输光信号 光源:定向性很好的激光二极管 不受电磁干扰和噪声传输 | 衰耗小,适合远距离传输 |
多模光纤 | 纤芯和包层 | 多种传输光信号 光源:发光二极管 不受电磁干扰和噪声传输 | 易失真,适合近距离传输 |
2.2.3 非导向传输介质
名称 | 特点 | 应用 |
---|---|---|
无线电波 | 穿透能力强,可以传输很长的距离 向所有方向传播 | 通信领域,如无线手机通信、无线局域网(WLAN) 等 |
微波 | 信道的容量大 向固定方向传播 | ①地面微波接力通信 ②卫星通信:距离远、覆盖广,保密性差、传播时延长 |
红外线和激光 | 将信号转化为自己的信号格式 向固定方向传播 |
2.3 接口特性
名称 | 功能 |
---|---|
机械特性 | 指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等 |
电气特性 | 指明在接口电缆的各条线上出现的电压的范 |
功能特性 | 指明某条线上出现的某一电平的电压表示何种意义 |
过程特性(规程特性) | 指明对于不同功能的各种可能事件的出现顺序 |
2.4 物理层设备
2.4.1 中继器
将数字信号再生还原再转发出去,有两个端口,数据从一个端口输入,再从另一个端口发出
特点
①用于信号的电气部分,而不管是否有错误数据或不适于网段的数据
②两端的网络部分是网段, 而不是子网,使用中继器连接的几个网段仍然是一个局域网
③两端的网段的数据传输速率和物理层协议要一致
在物理层互联时,各种网络的数据传输速率如果不同, 那么可能出现以下两种情况:
a.发送方的速率高千接收方,接收方来不及接收导致溢出(因为物理层没有流量控制),数据丢失
b.接收方的速率高千发送方,不会出现数据丢失的情况,但效率极低
另外, 数据链路层协议可以不同,如果是在数据链路层互联,那么要求数据链路层协议也要相同
对此总结是:本层及本层以下协议必须相同,本层以上协议可以不同
2.4.2 集线器HUB
实质上是一个多端口的中继器
特点
①转发给到其他所有(除输入端)处于工作状态的端口
②如果同时有多个端口输入,那么输出时会发生冲突,因此集线器不能分割冲突域
③平分带宽,带宽为\(10Mb/s\)的集线器上连接了\(8\)台计算机,每台计算机真正所拥有的带宽为$ \frac{10}{8}Mb/s = 1.25Mb/s$
2.4.3 5-4-3规则
“ 5" 表示5 个网段,“ 4 " 表示4个中继器或集线器,“3” 表示3个网段为主机段
即在一个由中继器或集线器互联的网络中,任意发送方和接收方最多只能经过4个中继器、5个网段
第三章 数据链路层
数据链路层功能
处理物理层数据
将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路
链路(Link):从一个结点到相邻结点的一段物理线路
数据链路(Data Link) :从一个结点到相邻结点的一段逻辑线路,即链路+通信协议
“电路接通”表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流,但数据链路并没有连接
服务网络层
①无确认的无连接服务,适用于实时通信或误码率较低的通信信道,如以太网
②有确认的无连接服务,适用于误码率较高的通信信道,如无线通信
③有确认的面向连接服务,适用于通信要求(可靠性、实时性)较高的场合
④不存在无确认的面向连接的服务,有连接就一定要有确认
封装成帧
概念
帧长:数据部分的长度加上首部和尾部的长度
帧定界:首部和尾部中的控制信息来确定帧的界限
帧同步:接收方能分出帧的起始与终止
透明传输:不管所传数据是什么样的比特组合,都应当能在链路上传送
方法
名称 | 方法 | 特点 |
---|---|---|
字符计数法 | 在帧头部使用一个计数字段来标明帧内字符数 | 如果计数字段出错,即失去了帧边界划分的依据,收发双方将失去同步 |
字符填充法 | 采用控制字符来表示帧的首部和尾部,为实现透明传输,在控制字符前面填充一个转义字符来加以区分 | 实现有着的复杂性与不兼容性 |
零比特填充法 | 遇到5个连续的“1”,在其后插入一个“0” | 很容易由硬件来实现 |
违规编码法 | 曼彻斯特编码中“高-高”电平对和“低-低“电平对是违规的 | 只适用千采用冗余编码的特殊编码环境 |
差错控制
无比特差错传输不等于可靠传输
概念
诱因
由噪声引起,可以分为两类
①热噪声:信道固有的随机差错, 可以通过提高信噪比来降低影响
②冲击噪声:外界电磁干扰的突发差错,无法通过提高信噪比来降低影响
位错
某些位出现了错误
CRC+ARQ
帧错
帧的丢失、重复和失序
检错编码
都采用冗余编码技术,给数据附加冗余位,构成符合某一规则的码字后再发送
奇偶校验码
奇(偶)校验码:数据+冗余码中“1“的个数为奇(偶)数
只能检测奇数个的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况,检错能力50%
循环冗余码\(CRC\)
发送端:
假设一个帧有\(m\)位,其对应的多项式为\(M(x)\) ,则计算冗余码的步骤如下:
①加\(0\):生成多项式\(G(x)\)的阶为\(r\), 在\(M(X)\)后加\(r\)个\(0\)
②模\(2\)除(异或):用\(M(X)\)除以\(G(x)\),余数即为冗余码帧检验序列(\(FCS\))
接收端:
用\(M(X)\)除以\(G(x)\),余数为\(0\)则认为正确接受,不为\(0\)则认为错误直接丢弃
二进制串和多项式的转换:\(1110011\)有\(7\)位,表示成多项式是\(X^6+X^5+X^4+X+1\),阶数为\(6\)(长度减一)
纠错编码
海明码
计组重点
流量控制
可靠传输机制
确认帧\(ACK\)
无数据的控制帧,有时会将确认捎带在一个回复帧中,称为捎带确认,即处理时间等于传输时间
自动重传\(ARQ\)
超时自动重传,分为以下三种
名称 | 原理 | 窗口大小 | 超时重传 |
---|---|---|---|
停止-等待协议 | 发送方发送一帧后需等待确认帧到达后才能发送下一帧 | 发送窗口:1 接受窗口:1 | 当前帧 |
后退\(N\)帧协议(\(GBN\)) | 累计确认:对某一数据帧的确认就表明该数据帧和此前所有的数据帧均已正确无误地收到 | 发送窗口:\(2^n-1\) 接受窗口:1 | 已发送但未确认的帧 |
选择重传协议(\(SR\)) | 只重传出现差错的数据帧或计时器超时的数据帧 | 发送窗口+接受窗口\(\leq 2^n\) 默认两者相等,即发送窗口=接受窗口=\(2^{n-1}\) | 计时器超时的数据帧 |
其中,\(n\)为比特对帧编号、帧的顺序号、帧头序号长
窗口大小原因
信道效率(信道利用率)
介质访问控制
使两对结点之间的通信不会互相干扰
静态划分信道
把时域和频域资源合理地分配给网络上的设备
频分多路复用\(FDM\)
将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号,适于传输模拟信号
每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽
时分多路复用
适于传输数字信号,\(TDM帧\)和\(STDM帧\)都是物理层传送比特流所划分的帧,标志着一个周期
由于计算机数据的突发性,导致信道的利用率不高
同步时分复用\(TDM\)
将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用
每个时隙被分配给不同的用户使用,用户共享带宽,所以单个信号的位速率(每个用户的最高速率)小于介质的位速率(线路的传输速率)
异步时分复用\(STDM\)
按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片
每个时隙根据用户的需求为他们分配时间来使用,如果一个用户不需要使用可以不为他分配,所以每个用户的最高速率可以等于线路传输速率
波分多路复用\(WDM\)
光的频分多用
码分多路复用\(CDM\)
码分多址\(CDMA\)
每个比特时间再划分成\(m\)个短的时间槽——码片,通常\(m\)的值是\(64\)或\(128\)
以\(m=8\)为例,假如站点\(A\)想发送\(1\),其码片被规定为\(00011011\) , 则发送\(00011011\)就表示发送比特\(1\), 发送\(11100100\)就表示发送比特\(0\)
为了方便,将码片中的\(0\)写为\(-1\),\(1\)写为\(+1\), 因此\(A\)站的码片序列是\(-1-1-1+1+1-1+1+1\)
自身与自身规格化内积结果为\(1\),两个不同的码片规格化内积结果为\(0\)
动态分配信道
ALOHA协议
纯ALOHA协议
任何站点都可以任意发送数据,若一段时间内未收到确认,则认为发生冲突,等待一段时间后再发送数据,直至发送成功
信道利用率为\(0.184\)
时隙ALOHA协议
将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送一个帧
CSMA协议
名称 | 信道空闲 | 信道忙 | 信道冲突 |
---|---|---|---|
1-坚持CSMA协议 | 立即发送数据 | 继续侦听 | 等待一个随机时间后侦听 |
非坚持CSMA协议 | 立即发送数据 | 等待一个随机时间后侦听 | 等待一个随机时间后侦听 |
p-坚持CSMA协议 | 以概率p发送数据,以概率1-p推迟到下一个时隙 | 继续侦听 | 等待一个随机时间后侦听 |
CSMA/CD协议 载波侦听多路访问/碰撞检测
适用于总线型半双工以太网
流程
①先听后发:发送数据前侦听信道
②边听边发:发送数据时侦听信道
③冲突停发:若检测到碰撞, 则中止数据的发送,并发送一个拥塞信号,以让所有用户都知道
④随机重发:二进制指数退避算法
最小帧长
站A在发送帧后至多经过时间\(2\tau\)(端到端传播时延的2倍,\(\delta \rightarrow 0\))就能知道所发送的帧有没有发生碰撞
\(2\tau\) 称为争用期(又称冲突窗口或碰撞窗口),只有经过争用期这段时间还未检测到碰撞时,才能确定这次发送不会发生碰撞
以太网争用期为\(51.2μs\),对于\(10Mb/s\)的以太网,在争用期内可发送\(512bit\),即\(64B\)
如果发生冲突,发送出去的数据一定小于\(64B\),以太网最短帧长为\(64B\),凡长度小于\(64B\)的帧都是无效帧,应立即丢弃
如果前\(64B\)未发生冲突,那么后续数据也就不会发生冲突(表示已成功抢占信道)
如果只发送小于\(64B\)的帧z则需要填充至\(64B\)
二进制退避算法
定义重传次数\(k\),和参数\(n=min(k,10)\),从集合\(\left\{0,1,...,2^n-1\right\}\)中随机取出一个数\(r\), 计算出退避时间$2r\tau \(,若此次仍然冲突,则\)++k\(,重新计算退避时间,若\)k = 16$,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错
CSMA/CA协议 载波侦听多路访问/碰撞避免
隐蔽站
RTS帧:包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该帧能被其范围内包括AP 在内的所有站点听到
CTS帧:包括这次通信所需的持续时间,该帧也能被其范围内包括A和B在内的所有站点听到,并在CTS 帧中指明的时间内将抑制发送
帧间间隔IFS
名称 | 功能 |
---|---|
SIFS(短IFS) | 分隔对话的各帧,如ACK帧、CTS 帧、分片后的数据帧、及回答AP探询的帧 |
PIFS(点协调IFS) | 中等长度的IFS,,在PCF 操作中使用 |
DIFS(分布式协调IFS) | 最长的IFS, 用于异步帧竞争访问的时延 |
与CSMA/CD的区别
①CSMA/CD可以检测冲突,但无法避免;CSMA/CA 发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免
②传输介质不同:CSMA/CD用于总线形以太网;CSMA/CA用于无线局域网
③检测方式不同:CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA 采用能量检测、载波检测和能量载波混合检测三种检测
令牌轮询协议
流程
若网络空闲时,只有令牌在循环传递,若有站点要发送数据,将令牌变为数据帧,并将令牌继续循环,剩余站点查看是否发送给自己,若是则复制帧,最后令牌回到源点,源点检验是否出现差错,若有错则重传,否则源点在传送完数据后,重新产生新的令牌继续循环
特点
①以循环方式轮询每个结点,再决定信道的分配
②令牌是一个特殊的MAC控制帧,本身不含信息
③适合负载很高的广播信道
④网络上所有节点共享带宽
⑤数据从一个节点到另一个节点时间可以计算
局域网
工作在物理层和数据链路层,各站为平等关系而非主从关系,能进行广播和组播
主要由三个要素决定: 拓扑结构、传输介质、介质访问控制方式
并将数据链路层拆分为两个子层
逻辑链路控制(LLC)子层:建立和释放数据链路层的逻辑连接、提供与高层的接口、差错控制、给帧加序号
其中,提供与高层的接口即向网络层提供无确认无连接、面向连接、带确认无连接、高速传送4种不同的连接服务类型
媒体接入控制(MAC)子层:组帧和拆卸帧、比特传输差错检测、透明传输
以太网 IEEE 802.3
特点
①拓扑结构:逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构
②编码:曼彻斯特编码
③介质控制:CSMA/CA
④介质:BASE前面的数字代表数据率,单位为Mb/s;" BASE” 指介质上的信号为基带信号(即基带传输,采用曼彻斯特编码);后面的5或2表示每段电缆的最长长度为500m或200m(实际为185m);T表示双绞线,F表示光纤
MAC帧
DIX V2 格式
只有帧开始定界符:MAC帧并不需要帧结束符,因为在以太网在传送帧时,各帧之间必须有一定的间隙,而曼彻斯特编码无变化则表示
名称 | 功能 | 大小 |
---|---|---|
地址 | 存储MAC地址 | 6 字节 |
类型 | 出数据域中携带的数据应交给哪个协议实体处理 | 2 字节 |
数据 | 规定MTU为1500B,最小帧长64B,64-18 = 46B,帧长64B ~ 1518B | 46 ~1500 字节 |
填充 | 当帧长太短时填充帧,使之达到64B | 0~46 字节 |
校验码(FCS) | 检验MAC帧的数据部分、目的地址、源地址和类型字段 | 4 字节 |
802.3 帧格式
与DIX以太帧格式的不同之处
①第3个子段是长度
②长度小于0x0600时,数据字段必须装入LLC子层
高速以太网
速率达到或超过100Mb/s 的以太网
名称 | 速度 | 介质 | 工作方式 |
---|---|---|---|
100BASE-T 以太网 | 100Mb/s | 双绞线 | 全双工(不使用CSMA/CD)、半双工 |
吉比特以太网 | 1Gb/s | 双绞线、光纤 | 全双工(不使用CSMA/CD)、半双工 |
10 吉比特以太网 | 10Gb/s | 光纤 | 全双工 |
无限局域网 IEEE 802.11
MAC帧
分为数据帧、控制帧、管理帧
格式
名称 | 大小 |
---|---|
MAC首部 | 30字节 |
帧主体 | 最大2312字节 |
帧检验序列(FCS) | 4字节 |
应用
虚拟局域网 VLAN
特点
①不是新型局域网
②对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记,有效取值范围为1~4094(0和4095不用来表示)
③VLAN的划分方式:按端口划分、按MAC地址划分、按网络层划分、按IP广播组划分、按策略
④可以消除广播风暴
Access端口
特点
①用于连接用户计算机
②只能属于一个VLAN
③端口的PVID值与端口所属VLAN的ID相同(默认为1)
处理方法
①接收:只接受“未打标签”的普通以太网MAC帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端的PVID取值相等
②发送:若帧中的VID与端口的PVID相等,则“去标签”并转发该帧,否则不转发
Trunk端口
特点
①用于交换机之间或交换机与路由器之间的互连
②可以属于多个VLAN
③可以设置Trunk端口的PVID值,默认为1
处理方法
①发送:对VID等于PVID的帧,“去标签”再转发;对VID不等于PVID的帧,直接转发
②接收:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等,接收“已打标签的帧”
Hybric端口
特点
①既可用于交换机之间或交换机与路由器之间的互连(同Trunk端口),也可用于交换机与用户计算机之间的互连(同Access端口)
②可以属于多个VLAN,默认值为1(同Trunk端口)
处理方法
①发送:查看帧的VID是否在端口的“去标签”列表中,若存在,则“去标签”后再转发,若不存在,则直接转发;
②接收:接收“未打标签”的帧,根据接收帧的端口的,PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。接收“已打标签的帧“
其他局域网
令牌环网 IEEE 802.5:逻辑拓扑是环形结构,物理拓扑是星形结构
FDDI IEEE 802.8:逻辑拓扑是环形结构,物理拓扑是双环结构
ATM:新型交换单元技术
广域网
工作在物理层、数据链路层、网络层
协议
PPP协议
软件实现的使用串行线路通信的面向字节的协议
PPP帧格式
名称 | 功能 | 大小 |
---|---|---|
标志字段(F) | 帧定界 | 1字节 |
转义字节为 | 转义 | 1字节,值为7D |
地址字段(A)、控制字段(C) | 无 | 1字节,FF和03 |
协议段 | 说明信息段中运载的是什么种类的分组 | 2字节 |
信息段 | 0 ~ 1500B |
特点
①仅支持点对点的链路通信,没有最短帧
②PPP协议允许同时采用多种网络层协议,且两端可以运行不同的网络层协议
③支持动态分配IP地址:拨号连接
④只支持全双工链路
⑤只提供CRC差错检测,是不可靠的传输协议,不使用序号和确认机制
⑥若PPP 用在异步线路,则采用字节填充法,若在在SONET/SDH等同步线路,则采用比特填充
组成
①链路控制协议(LCP) :扩展链路控制协议,用于建立、配置、测试和管理数据链路
②网络控制协议(NCP) :每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接
HDLC协议
几乎靠硬件实现的面向比特的数据链路层协议
HDLC帧格式
控制字段C共8 位,根据取值,可将HDLC 帧划分为三类:
信息帧(I) :传输数据信息,或使用捎带技术对数据进行确认
监督帧(S) :流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能;
无编号帧(U) :提供对链路的建立、拆除等多种控制功能
数据操作方式
正常响应方式:主站向从站传输数据,从站响应传输,但从站只有在收到主站的许可后,才可进行响应
异步平衡方式:每个复合站都可以进行对另一站的数据传输
异步响应方式:从站即使未受到主站的允许,也可进行传输
主站负责控制链路的操作,主站发出的帧称为命令帧
从站受控于主站,按主站的命令进行操作,发出的帧称为响应帧
复合站:既是主站,又是从站
数据链路层设备
网桥
特点
优点
①能过滤通信量
②扩大了物理范围
③可使用不同的物理层
④可互联不同类型的局域网
⑤提高了可靠性
⑥性能得到改善
缺点
①增大了时延
②MAC 子层没有流量控制功能(流量控制需要用到编号机制,编号机制的实现在LLC子层)
③不同MAC 子层的网段桥接在一起时, 需要进行帧格式的转换
③网桥只适合于用户数不多和通信量不大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞,这就是所谓的广播风暴
分类
透明网桥
选择的不是最佳路由,网桥按照自学习算法处理收到的帧,网桥每收到一个帧,就记下其源地址和进入网桥的端口
源路由网桥
在未知路径前, 源站要先发送一个发现帧,途中的每个网桥都转发此帧,最终该发现帧可能从多个途径到达目的站,目的站也将一一发送应答祯,每个应答帧将通过原路径返回,途经的网桥把自己的标志记录在应答帧中,源站选择出一个最佳路由
交换机
多端口的网桥
原理
检测从以太端口来的数据帧的源和目的地的MAC (介质访问层)地址,然后与系统内部的动态查找表进行比较,若数据帧的MAC 地址不在查找表中,则将该地址加入查找表, 并将数据帧发送给相应的目的端口
特点
①若共有N个端口,带宽为m,在全双工工作模式下,交换机的总容量Nm,在全双工工作模式下,交换机的总容量Nm/2
②即插即用设备(和透明网桥一样),其内部的帧的转发表也是通过自学习算法自动地逐渐建立起来的
分类
直通式交换机:只检查帧的目的地址,使得帧在接收后几乎能马上被传出去,速度快,但缺乏智能性和安全性,也无法支持具有不同速率的端口的交换
存储转发式交换机:先将接收到的帧缓存到高速缓存器中,并检查数据是否正确,确认无误后通过查找表转换成输出端口将该帧发送出去。如果发现帧有错,那么就将其丢弃,存储转发式的优点是可靠性高,并能支持不同速率端口间的转换,缺点是延迟较大
第四章 网络层
IP
IPv4
数据报
首部格式
固定长度20B,最大长度60B
名称 | 功能 | 单位 |
---|---|---|
版本 | IPv4,IPv6 | |
首部长度 | 最小5,最大15(20B~60B) | 4B |
总长度 | 首部+数据部分 | 1B |
标识 | 识别是否同一分片 | |
标志 | |无用位 ||DF位 DF=0 允许分片||MF位 MF=0 最后的分片| | |
片偏移 | 8B | |
生存时间(TTL) | 确保分组不会永远在网络中循环,,每经过一个路由器值减一 | |
协议 | 传输层使用的协议 | |
首部校验和 | 只校验首部 |
分片
数据链路层的MTU严格地限制着IP数据报的长度
由于偏移值的单位是8B,所以除最后一个片外,其他所有片中的有效数据载荷都应是8的倍数
分类编址
名称 | 开头 | 范围 | 最大网络数 | 最大主机数 |
---|---|---|---|---|
A类地址 | 0 | 1.0.0.0~126.0.0.0 | \(2^7-2\) | \(2^{24}-2\) |
B类地址 | 10 | 128.0.0.0~191.255.255.255 | \(2^14\) | \(2^{16}-2\) |
C类地址 | 110 | 192.0.0.0~223.255.255.255 | \(2^21\) | \(2^{8}-2\) |
D类地址(组播地址) | 1110 | 224.0.0.0~239.255.255.255 | ||
E类地址 | 1111 |
特殊地址
地址 | 特点 |
---|---|
0.0.0.0 | 只能作为源IP地址 |
255.255.255.255 | 全广播地址 |
主机号全0 | 表示本网络的IP地址 |
主机号全1 | 网络广播地址 |
127.x.x.x | 环回自检地址 |
10.0.0.0~10.255.255.255 | A类私有地址 |
172.16.0.0~172.31.255.255 | B类私有地址 |
192.168.0.0~192.168.255.255 | C类私有地址 |
子网划分
划分子网仅提高了IP的利用率,不增加网络的数量
定长子网划分
子网掩码:借用主机号划分子网
变长子网划分
无分类编址 CIDR
概念
使用网络前缀代替子网,记为IP地址/网络前缀所占比特数
超网
CIDR地址块聚合
最长前缀匹配
在查找路由表时可能会得到不止一个匹配结果,从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体
网络地址转换 NAT
NAT转换表中存放着{本地IP地址:端口}到{全球IP地址:端口}的映射,可让多个私有IP地址映射到同一个全球IP地址
IPv6
从根本上解决了IP地址耗尽
特点
①128位地址②首部长度固定,但是有扩展首部③支持QoS④支持即插即用⑤在主机才能分片,在路由器不能分片⑥取消了首部校验和
表示
①点分十进制表示法
把地址中的每4 位用一个十六进制数表示,并用冒号分隔每16 位,如4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
②缩写表示法
当16 位域的开头有一些0时,可以采用缩写表示法但在域中必须至少有一个数字
把4BF5:0000:0000:0000:BA5F:039A:OOOA:2176缩写为4BF5:0:0:0:BA5F:39A:A:2176
③双冒号表示法
当有相继的0 值域时,可以进一步缩写,因为0值域的个数没有编码,需要从指定的总的域的个数来推算
4BF5::BA5F:39A:A:2176
兼容通信
①双协议栈技术:设备同时装有IPv4 和IPv6协议栈,具备同时处理这两个协议地址的功能
②隧道技术:将整个IPv6数据报封装到IPv4数据报的数据部分,使得IPv6数据报可以在IPv4网络的隧道中传输
IP组播
特点
①主机可以使用IGMP选择加入或离开一个组,因此一台主机可以同时属于多个组
②源主机把单个分组发送给一个组播地址,网络把这个分组的副本投递给该组中的每台主机
③IP组播地址不能作为源地址,是尽最大努力交付,不产生ICMP差错报文
④并非所有的D类地址都可作为组播地址
硬件组播映射
在每个地址中,只有23位可用作组播
移动IP
特点
①移动结点以固定的网络IP地址实现跨越不同网段的漫游功能,并保证网络IP的网络权限在漫游过程中不发生任何改变
②移动IP为移动主机设置了两个IP地址:主地址和转交地址
过程
①移动结点在本地网时,按传统的TCP/IP 方式进行通信
②移动结点漫游到一个外地网络时需要向本地代理注册当前的转交地址
③本地代理接收来自转交地址的注册后,会构建一条通向转交地址的隧道,将截获的发给移动结点的IP分组通过隧道送到转交地址处
④在转交地址处解除隧道封装,恢复原始的IP分组,最后送到移动结点,实现间接通信,反之同理
地址解析协议 ARP
MAC地址
以太网地址就是MAC地址,又称为局域网硬件地址,通常存储在网卡中
计算机与外界局域网的连接是通过主机箱内插入的一块网络接口板(网络适配器、网络接口卡)实现的
网卡出厂时有一个唯一的代码,称为介质访问控制(MAC)地址,长6字节,一般用由连字符(或冒号)分隔的12 个十六进制数表示
数据链路层设备(网桥、交换机等)都使用各个网卡的MAC地址
在使用静态地址的系统中,如果有重复的硬件地址,那么这两个设备都不能正常通信,原因如下:
①目的MAC地址等于本机MAC地址的帧是不会被发送到网络上去的
②两个设备都会接收到帧,其中必有一个设备会处理不属于本设备的帧,浪费了资源
③ARP软件都会禁止把同一个MAC地址绑定到两个不同的IP 地址
每台主机都设有一个ARP表,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表
流程
若主机A和B在同一局域网下,A欲向B发送IP数据报,A先查ARP表,若有映射,则将此硬件地址写入MAC帧发送,若无,则A使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组(广播发送),B收到ARP请求后,向A发出ARP响应分组(单播发送)
若主机A和B不在同一局域网下,则A通过ARP找到本局域网上的路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络
网际控制报文协议 ICMP
解决IP没有差错控制和网络查询的缺点,ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
ICMP差错报告报文
分类
名称 | 原因 |
---|---|
终点不可达 | 路由器或主机不能交付数据报 |
源点抑制 | 路由器或主机由于拥塞而丢弃数据报,使源点放慢的发送速率 |
时间超过 | 路由器收到生存时间(TTL)为零的数据报时,丢弃该数据报外, 终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃 |
参数问题 | 路由器或目的主机收到的数据报的首部中有的字段的值不正确,丢弃该数据报 |
改变路由(重定向) | 让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由) |
Windows中Tracert命令工作在网络层,可以用来跟踪分组经过的路由,使用了ICMP时间超过报文
不发送情况
①对ICMP差错报告报文不再发送ICMP差错报告报文
②对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
③对具有组播地址的数据报都不发送ICMP 差错报告报文
④对具有特殊地址(如127.0.0.0 或0.0.0.0)的数据报不发送ICMP差错报告报文
ICMP询问报文
分为回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文
分组网间探测PING工作在应用层,使用了ICMP回送请求和回答报文
因特网组管理协议 IGMP
特点
①IGMP并不是在因特网范围内对所有组播组成员进行管理的协议
②IGMP不知道IP组播组包含的成员数,也不知道这些成员分布在哪些网络上
③IGMP让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组
流程
①主机向组播组的组播地址发送一个IGMP报文,声明自己要成为该组的成员,本地的组播路由器收到IGMP 报文后,将组成员关系转发给因特网上的其他组播路由器
②本地组播路由器周期性地探询本地局域网上的主机,只要对某个组有一台主机响应,那么组播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一台主机响应时,则不再将该组的成员关系转发给其他的组播路由器
③最终找出以源主机为根结点的组播转发树,其中每个分组在每条链路上只传送一次(即在组播转发树上的路由器不会收到重复的组播数据报,避免路由环路)
路由协议
自治系统 AS
网络规模太大,路由表开销太大,引出自治系统,路由器被划分为区域,每个路由器只知道如何将分组路由到自己所在区域内的目标地址,但对于其他区域内的结构毫不知情
路由算法
①静态路由算(非自适应路由算法):当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息,不能及时适应网络状态的变化,在拓扑变化不大的小网络中运行效果很好简单的小型网络,可以采用静态路由。
②动态路由算法(自适应路由算法):路由器上的路由表项是路由器之间在一定时间间隙里不断更新彼此交换信息,然后按照一定的算法优化出来以适应不断变化的网络,随时获得最优的寻路效果,改善网络的性能并有助于流盘控制
路由协议
协议 | 内部网关协议 RIP | 开放最短路径优先 OSPF | 边界网关协议 BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换节点 | 相邻路由器 | 所有路由器 | 相邻路由器 |
交换内容 | 路由表 | 链路状态 | 一系列AS |
特点 | ①每30s交换一次 ②到相邻网络的跳数为1,每经过一个路由器, 跳数加1 ③一条路径最多15跳,16跳认为不可达 ④180s未收到则将跳数设为16 ⑤网络出现故障时,会出现慢收敛现象 ⑥适用于小型网络 | ①当链路状态发生变化时,路由器才用洪泛法向所有路由器发送链路状态,并且更新过程收敛得快 ③将自治系统再划分为若干更小的区域,在一个区域内部的路由器只知道本区域的完整网络拓扑,其中处在上层的区域称为主干区域,负责连通其他下层的区域,并且还连接其他自治域,用于连接主干区域和其他下层区域的路由器称为区域边界路由器,只要是在主干区域中的路由器,就都称为主干路由器,因此主干路由器可以兼作区域边界路由器 ③分为5个类别:问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组、链路状态确认分组,通常每隔10秒,每两个相邻路由器要交换一次问候分组 | ①只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非寻找一条最佳路由 ②在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠的传输 |
步骤 | 修改此报文中的所有项目:把“下一跳”字段中的地址都改为X, 并把所有“距离”字段的值加1 当原来的路由表中没有目的网络N时,把该项目添加到路由表中 当原来的路由表中有目的网络N, 且下一跳路由器的地址是X时,则更新 当原来的路由表中有目的网络N, 且下一跳路由器的地址不是X 时,如果收到的项目中的距离d小于路由表中的距离,则替换 | ①通过频繁地交换链路状态,最终所有所有路由器最终都能建立全网的拓扑结构图,它在全网范围内是一致的 ②每个路由器使用Dijkstra计算出最自己到各目的网络的最优路径,以此构造自己的路由表。 ③当链路状态发生变化时,每个路由器重新计算到各目的网络的最优路径,构造新的路由表 ④每隔一段时间(如30 分钟)就刷新一次数据库中的链路状态 | ①每个自治系统的管理员要选择至少一个路由器作为该BGP 发言人 ②BGP发言人与BGP发言人先建立TCP 连接,然后在此连接上交换BGP报文以建立BGP会话,再利用BGP 会话交换路由信息 ③当所有BGP发言人都相互交换网络可达性的信息后,各BGP 发言人就可找出到达各个自治系统的较好路由 |
收敛:当路由环境发生变化后,各路由器调整自己的路由表以适应网络拓扑结构的变化,最终达到稳定状态
网段
IP地址与子网掩码相与得到的网络地址
不同网段的通信需要通过路由器
默认网关:一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包
SDN 软件定义网络
传统路由器把控制层面与数据层面结合到一起,SDN实现了控制层面与数据层面的分离,让控制层面利用软件来控制数据层面中的设备
Openflow协议
可被看成是SDN体系结构中控制层面与数据层面之间的通信接口,使控制层面的控制器可以对数据层面中的物理设备进行直接访问和控制
OpenFlow交换机
特点
①在SDN中,设备并不局限在网络层工作,因此不再称为路由器,而称为“OpenFlow交换机”或“分组交换机”,或更简单地称为“交换机”
②有一个或多个流表,每一个流表可以包含多个流表项。每个流表项包含三个字段:首部字段值(或称匹配字段)、计数器、动作
功能
网络层设备
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接异构网络井完成路由转发
路由选择
路由器的路由选择部分包括三部分
①路由选择处理机:根据所选定的路由选择协议构造路由表,同时和相邻路由器交换路由信息
②路由选择协议:更新路由表的算法,分为链路状态、距离-向量、协议无关的组播(PIM)
③路由表:根据路由算法得出,一般包括从目的网络到下一跳的映射
分组转发
分组转发部分由三部分组成
①输入端口:从物理层接收到的比特流中提取出数据链路层帧,从帧中提取出网络层数据报
②输出端口:执行与输入端口恰好相反的操作
③交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去,分为通过存储器进行交换、通过总线进行交换和通过互联网络进行交换
拥塞控制
使用AQM(主动队列管理)进行拥塞控制
第五章 传输层
功能和端口
功能
①传输层提供应用进程之间的逻辑通信(即端到端的通信),网络层提供的是主机之间的逻辑通信
②端口号的复用和分用
复用:发送方不同的应用进程都可使用同一个传输层协议传送数据
分用:接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程
网络层的复用分用
复用:指发送方不同协议的数据都可以封装IP数据报发送出去
分用:指接收方的网络层在剥去首部后把数据交付给相应的协议
③差错检测,包括首部和数据部分,而网络层只检查IP数据报的首部
端口
传输层服务访问点 (TSAP) ,数据链路层的SAP是MAC地址,网络层的 SAP是IP地址,传输层的SAP是端口
端口号
端口号长度为16bit, 能够表示 65536个不同的端口号
分类
名称 | 功能 | 范围 |
---|---|---|
熟知端口号 | 指派给了 TCP/IP 最重要的一些应用程序 | 0~1023 |
登记端口号 | 供没有熟知端口号的应用程序使用的 | 1024~49151 |
短暂端口号 | 客户端使用的端口号,通信结束就不复存在 | 49152~65535 |
常见端口号
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
UDP
特点
①无须建立连接,能支持更多的活动客户机
②不保证可靠交付,所有维护可靠性的工作可由用户在应用层来完成
③没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而UDP正好满足这些应用的需求
④面向报文:报文不可分割,是UDP数据报处理的最小单位,若报文太长,会导致分片,若报文太短,数据率会低
发送方对应用层交下来的报文,在添加首部后就向下交付给IP层, 一次发送一个报文,既不合并,也不拆分,而是保留些报文的边界
接收方UDP对IP层交上 UDP 数据报,在去除首部后就原封不动地交付给上层应用进程,一次交付一个完整的报文
UDP首部格式
UDP首部有8B,由4个字段组成,每个字段的长度都是2B
名称 | 功能 |
---|---|
端口 | 不需要时可全0 |
长度 | 包括首部和数据的总长度 |
校验和 | 源主机不想计算时全0 |
如果接收方UDP发现收到的报文中的目的端口号不正确,则就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方
UDP校验
UDP校验和对伪首部、UDP报文头及应用层数据进行校验
伪首部12B,既不向下传送又不向上递交,只是为了计算校验和
发送方:全0写入校验和,添加伪首部,按16位一组计算二进制反码(不足16位则补全0,这部分不发送),将结果的反码写入校验和
按收方:添加伪首部,按16位一组计算二进制反码(不足则补全1),结果全1则表明无差错,否则丢弃
TCP
特点
①面向连接,可靠交付
②全双工通信,两端都设有发送缓存和接收缓存
③面向字节流,把应用程序交下来的数据视为一串字节流
④报文长度由接收窗口和拥塞窗口决定
⑤不可广播
TCP报文段首部格式
首部最短20B,最长60B,根据填充,长度为4B的整数倍
名称 | 功能 |
---|---|
端口 | 存放端口号 |
序号 | 本报文段所发送的数据的第一个字节的序号 |
确认号 | 期望收到对方下一个报文段的第一个数据字节的序号 |
数据偏移(首部长度) | 单位4B |
紧急位URG | URG =1时,表明紧急指针字段有效,相当于高优先级的数据 |
确认位ACK | ACK = 1时,连接建立后所有传送的报文段都必须使ACK= 1 |
推送位PSH | PSH = 1时,表明尽快地交付给接收应用进程 |
复位位RST | RST = 1时,表明TCP连接中出现严重差错,必须重新连接 |
同步位SYN | SYN =1时,表示这是一个连接请求或连接接受报文 |
终止位FIN | FIN = 1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接 |
窗口 | 用窗口值作为接收方让发送方设置其发送窗口的依据 |
校验和 | 包括首部和数据两部分,和UDP校验一样(协议字段的17改成6) |
紧急指针 | 本报文段中紧急数据共有多少字节 |
TCP连接
一条TCP连接用\(套接字=(IP地址,端口号)\)来表示,之后相同的连接会被阻止
下面的seq应该随机选择:假定超时TCP报文段到达B,但此时已经是新的TCP连接,就会发生序号错误
连接建立——三次握手
前两次握手SYN报文段不能携带数据,但要消耗掉一个序号
第三次握手该报文段可以携带数据, 若不携带数据则不消耗序号
服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的
连接释放——四次挥手
FIN报文段的序号等于前面已传送过的数据的最后一个 字节的序号加1,即使不携带数据,也消耗掉一个序号
可靠传输
序号
TCP连接传送的数据流中的每个字节都编上一个序号。序号字段的值是指本报文段所发送的 数据的第一个字节的序号。
下图A的发送缓存区中共有10B, 序号从0开始标号,第一个报文包含第0~2 个字节,则该TCP 报文段的序号是0, 第二个报文段的序号是3
确认
TCP默认使用累积确认,但并不是接收到每个字节都要发回确认,而是在发送一个报文段的字节后才发回一个确认,所以TCP采用的是对报文段的确认机制,是一种RS和GBN的结合
重传
超时重传时间\(RTO\)
出现超时重传时,\(新RTO = 2旧RTO\)
最大报文段 MSS
MSS 应尽量大一些,只要在 IP 层传输时不要再分片就行,若过小,则网络的利用率低,若过大,会分片,增大开销使开销增大
流量控制
基于滑动窗口协议的流量控制机制
传输层定义端到端用户之间的流批控制,数据链路层定义两个中间的相邻结点的流噩控制。另外,数据链路层的滑动窗口协议的窗口大小不能动 态变化,传输层的则可以动态变化
TCP使用滑动窗口机制来进行流扯控制,其窗口尺寸的设置很重要,如果滑动窗口值设置得太小,那么会产生过多的 ACK(因为窗口大可以累积确认,因此会有更少的 ACK),如果设置得太大,那么又会由于传送的数据过多而使路由器变得拥挤,导致主机可能丢失分组
拥塞控制
\(swnd= min[rwnd, cwnd]\),即\(发送窗口=min[接受窗口,拥塞窗口]\)
拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素
流量控制往往是指点对点的通信批的控制,是个端到端的问题(接收端控制发送端),它所要做的是 抑制发送端发送数据的速率,以便使接收端来得及接收
慢开始
先令拥塞窗口 cwnd = 1, 即一个最大报文段长度MSS,每收到一个对新报文段的确认后,将cwnd加1,即增大一个MSS,这样每经过一个RTT,cwnd 的值看起来就是线性增长,直至增大到 2cwnd > ssthresh(慢开始门限),下一个 RTT 后的 cwnd 等于 ssthresh
拥塞避免
每经过一个往返时延 RTT 把发送方的拥塞窗口 cwnd 加 1,拥塞避免并不能完全避免拥塞
根据 cwnd 的大小执行不同的算法
cwnd < ssthresh 时,使用慢开始算法
cwnd > ssthresh 时,使用拥塞避免算法
cwnd = ssthresh 时,既可使用慢开始算法,又可使用拥塞避免算法(通常做法)
快重传
接收方每收到比期望序号大的失序报文段时,就发送1个冗余ACK,指明下一个期待字节的序号,当发送方收到对同一个报文段的3个冗余ACK时,就直接重传接收方期望的报文段,不必等待重传计时器超时
拥塞处理
当发送方连续收到三个冗余 ACK(即重复确认)时,发送方认为网络现在拥塞不严重,把ssthresh设为cwnd的一半,然后把cwnd值设为ssthresh,开始执行拥塞避免算法,若发送严重拥塞,则把ssthresh设为cwnd的一半,然后把cwnd值设为1,开始执行慢开始算法
指标问题
第六章 应用层
网络应用模型
客户服务器模型
流程
①服务器处于接收请求的状态
②客户机发出服务请求,并等待接收结果
③服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机
特点
①客户程序必须知道服务器程序的地址,而且不需要特殊的硬件和复杂的操作系统
② 服务器程序不需要知道客户程序的地址,服务器上运行的软件专门用来提供某种服务的程序,可同时处理多个远程或本地客户的要求,系统启动后即自动调用并一直不断地运行着,被动地等待并接收来自各地客户的请求
③一旦连接建立,服务器就能响应客户端请求的内容,服务器也能主动发送数据给客户端,用于一些消息的通知,如一些错误的通知
④网络中各计算机的地位不平等,服务器可以通过对用户权限的限制来达到管理客户机
⑤客户机相互之间不直接通信
P2P模型
peer to peer 对等方
特点
①各计算机没有固定的客户和服务器划分,网络结点之间采取对等方式直接交换信息的工作模式
②多个客户机之间可以直接共享文档
③会占用较多的内存, 影响整机速度,还会对硬盘造成较大的损伤
应用层协议
DHCP动态主机配置协议
使用客户\服务器模式,DHCP服务器分配给主机的IP地址是临时的
步骤
①主机广播DHCP发现消息,源地址为0.0.0.0,目的地址为255.255.255.255,寻找DHCP服务器
②DHCP服务器广播DHCP提供消息,源地址为DHCP服务器,目的地址为255.255.255.255,提供IP地址
③主机若接受则广播DCHP请求消息(若有多台DHCP服务器,则接受最先到达的IP地址),源地址为0.0.0.0,目的地址为255.255.255.255
④DHCP服务器广播DHCP确认消息,源地址为DCHP服务器,目的地址为255.255.255.255
DHCP的客户端和服务器端需要通过广播方式来进行交互,原因是在DHCP执行初期,客户端不知道服务器端的 IP 地址,而在执行中间,客户端并未被分配IP地址,从而导致两者之间的 通信必须采用广播的方式
采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的IP地址都不知道,那么更不可能通过双方的套接字建立连接
DNS域名系统
DNS提供从域名到IP地址或从IP地址到域名的映射,被设计成为一个联机分布式数据库系统,并采用客户/服务器方式,Intrnet上提供访问主机定要有IP地址,不一定要有域名
从概念上可将DNS分为3部分:层次域名空间、域名服务器和解析器
层次域名空间
①分为顶级域,二级域,三级域等
②级别最低的域名写在最左边,级别最高的顶级域名写在最右边
③国家(地区)顶级域名下注册的二级域名均由该国家(地区)自行确定,例如,管理en域的中国将edu.cn子域授权给中国教育和科研计算机网 (CERNET)来管理
域名服务器
名称 | 特点 |
---|---|
根域名服务器 | ①所有的根域名服务器都知道所有的顶级域名服务器IP地址 ②不直接把待查询的域名直接转换成 IP 地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询 |
顶级域名服务器 | 管理在该顶级域名服务器注册的所有二级域名 |
授权域名服务器(权限域名服务器) | ①负责一个区的域名服务器 ②能将其管辖的主机名转换为该主机的IP地址 |
本地域名服务器 | 当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器 |
过程
主机向本地域名服务器的查询采用的是递归查询,本地域名服务器向根域名服务器的查询采用迭代查询,当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器下一步向哪个顶级域名服务器进行查询
特点
①IP子网中的主机可以由不同的域名服务器来维护其映射
②一台主机可对应多个IP地址,装有多个网卡
③多台主机可映射到一个域名,可以用多台服务器来分担负载
④一台主机可映射到多个域名,虚拟主机
⑤DNS 使用传输层的UDP而非TCP ,因为它不需要使用TCP在发生传输错误时执行的自动重传功能
⑥为了提高DNS的查询效率,并减少因特网上的DNS查询报文数址,在域名服务器中使用了高速缓存
FTP 文件传输协议
FTP采用客户/服务器的工作方式,使用TCP可靠的传输服务
因为FTP使用分离的控制连接,所以也称FTP的控制信息是外带传送的
特点
①允许客户指明文件的类型与格式,并通过用户权限管理提供用户对远程FTP服务器上的文件管理能力
②提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
③以匿名FTP的方式提供公用文件共享的能力
④由两大部分组成,主进程负责接收新的请求,另有若干从属进程负责处理单个请求
⑤网络文件系统NFS允许进程打开一个远程文件,并能在该文件的某个特定位置开始读写数据,从而进行修改
控制连接
使用端口21来传输控制信息(如连接请求、传送请求等),并且控制信息都以ASCII格式传送,在整个会话期间一直保持打开状态
数据连接
客户端选择是PORT模式还是PASV模式
PORT 主动模式
①客户端连接到服务器的21端口,客户端随机开放一个端口
②客户端发送命令告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开放的端口连接,进行数据传输
PASV 被动模式
①客户端发送PASV命令到服务器,服务器收到PASV命令在本地随机开放端口
②服务器告知客户自己的端口号,客户端通过客户端端口号和服务器端口号连接,进行数据传输
电子邮件
基本概念
用户代理(UA):用户与电子邮件系统的接口,即电子邮件客户端软件
邮件服务器:发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、 被拒绝、丢失等)
传送方式:
①基于SMTP协议和POP3协议
②基于SMTP协议和HTTP协议
电子邮件格式
电子邮件分为信封封和内容两大部分,内容又分为首部和主体两部分
①用户写好首部后,邮件系统自动地将信封所需的信息提取出来
②地址格式为收件人姓名@邮箱所在主机的域名
③邮件首部是由多项内容构成的,其中一部分是由系统自动生成的,如发信人地址(From: )、发送时间,另一部分是由发件人输入的,如收信人地址(To:)、邮件主题(Subject:) 等
名称 | 功能 |
---|---|
From | 寄件人电子邮件地址 |
To | 一个或多个收件人的电子邮件地址 |
Subject | 主题 |
SMTP简单邮件传输协议
SMTP用的是TCP连接,端口号为25
特点
①传送一定长度的ASCII码邮件,许多非英语国家的文字无法传送
②无法传送可执行文件及其他二进制对象
POP3邮局协议
传输层使用 TCP, 端口号为 110
特点
①由客户端而非服务器选择接收后是否将邮件保存在服务器上
②是使用明文来传输密码的,并不对密码进行加密
③ 基于ASCII码的,不能发送二进制数据,如果要传输非 ACSII 码的数据,那么要使用 MIME 将数据转换成 ASCII 码形式
④一个账号在服务器上只能有一个邮件接收目录
IMAP是因特网报文存取协议
为用户提供了创建文件夹、在不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令
允许用户代理只获取报文的某些部分, 例如用户可能并不想取回邮箱中的所有邮件,尤其是包含很多音频或视频的大邮件
MIME多用途网际邮件扩充
增加了邮件主体的结构和多媒休邮件的表示的法标准化,定义了传送非 ASC II 时的编码规则,允许电子邮件系统传输文宇、图像、语音与视频等多种信息
WWW万维网
一样有用的事物称为一样“资源”,并由一个全域统一资源定位符(URL)标识,形式是<协议>://<主机>:<端口>/<路径>
HTTP超文本传输协议
HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
流程
特点
①HTTP 状态的, 服务器对客户的响应永远和第一次一样
②使用Cookie加数据库的方式来跟踪用户的活动,服务器根据请求报文中的Cookie识别码从数据库中查询到该用户的活动记录,进而执行一些个性化的操作
③Cookie是由服务器产生的,存储在用户主机中的文本文件
工作方式
请求一个万维网文档所需时间是该文档的传输时间+2RTT(连接+请求和接受)
①非持久连接(HTTP/1.0)
每个网页元素对象的传输都要重新独立建立TCP连接
②持久连接(HTTP/1.1)
保持连接使同一个客户和该服务器可以继续传送后续的 HTTP 请求和响应报文
又分为流水线和非流水线两种工作方式
报文格式
(1)请求行
请求行由三个标记组成:请求方法、请求 URL 和 HTTP 版本,它们用空格分享
方法 | 内容 |
---|---|
GET | 检索 URL 中标识资源的一个简单请求 |
HEAD | 与 GET 方法相同,服务器只返回状态行和头标,并不返回请求文档 |
POST | 服务器接受被写入客户端输出流中的数据的请求 |
PUT | 服务器保存请求数据作为指定 URL 新内容的请求 |
DELETE | 服务器删除 URL 中命令的资源的请求 |
OPTIONS | 关于服务器支持的请求方法信息的请求 |
TRACE | web 服务器反馈 Http 请求和其头标的请求 |
CONNECT | 已文档化,但当前未实现的一个方法,预留做隧道处理 |
GET和POST的区别 | GET | POST |
---|---|---|
植入数据 | 参数在浏览器的地址栏的url中可见,隐私性安全性较差,且参数长度有限 | 参数放在Request body中,不会在url中显示,比GET安全,且参数长度无限制 |
被缓存 | 可以,刷新浏览器或回退时没有影响 | 不可以,回退时会重新提交数据请求 |
编码 | 只能进行url编码(application/x-www-form-urlencoded) | 支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data,为二进制数据使用多重编码) |
常见方式 | 通过url地址栏请求 | 通过form表单发送请求 |
TCP数据包 | 产生一个 浏览器会把http header和data一并发送出去,服务器响应200 | 产生两个(Firefox只发送一次) 浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok |
(2)请求头
由关键字/值对组成,每行一对,关键字和值用冒号分享。请求头标通知服务器腾于客户端的功能和标识
关键字 | 值 |
---|---|
HOST | 主机或域名地址 |
Accept | 指浏览器或其他客户可以接爱的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格式 |
User-Agent | 客户浏览器名称 |
Host | 对应网址 URL 中的 Web 名称和端口号 |
Accept-Langeuage | 浏览器可以接受的语言种类,如 en 或 en-us |
connection | 用来告诉服务器是否可以维持固定的 HTTP 连接。http 是无连接的,HTTP/1.1 使用 Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个 HTML 文件和相关的图形文件),不需要每次都建立连接 |
Cookie | 浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能 |
Referer | 产生请求的网页URL |
Content-Type | request 的内容类型 |
Accept-Charset | 浏览器可以接受的字符编码 |
Accept-Encoding | 浏览器可以接受的编码方式 |
(3)版本
(4)状态码
分类 | 内容 |
---|---|
1XX | 信息型,服务器收到请求,需要请求者继续操作 |
2XX | 成功型,请求成功收到,理解并处理 |
3XX | 重定向,需要进一步的操作以完成请求 |
4XX | 客户端错误,请求包含语法错误或无法完成请求 |
5XX | 服务器错误,服务器在处理请求的过程中发生了错误 |
常见状态码 | 内容 |
---|---|
200 OK | 客户端请求成功 |
301 | 资源(网页等)被永久转移到其它URL |
302 | 临时跳转 |
400 Bad Request | 客户端请求有语法错误,不能被服务器所理解 |
401 Unauthorized | 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 |
404 | 请求资源不存在,可能是输入了错误的URL |
500 | 服务器内部发生了不可预期的错误 |
503 Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 |
HTTPS
(HyperText Transfer Protocol over Secure Socket Layer),HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密
综合
报文格式
文章来自于网络,如果侵犯了您的权益,请联系站长删除!