1.计算机网络概述
1.1计算机网络的定义与分类
1.1.1计算机网络的定义
? ? ? ? 计算机网络就是以传输信息为基本目的,将通信线路和通信设备连接在一起的计算机系统集合。
1.1.2计算机网络的分类
- 局域网(LAN)范围比较小,是在一个局部的地理范围内(如一个学校、工厂和机关内)
- 城域网(MAN)范围比较大,是在一个城市范围内所建立的计算机通信网
- 广域网(WAN)范围是最广的,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络
- 私人网(PAN)范围是做小的,就是几米之内,个人携带的网络,个人区域网一般指个人局域网
1.2计算机网络的分类
1.2.1网络的网络
因特网是最大的互联网络
Internet和internet的区别(类似于通讯app和微信之间的关系)
- Internet:是一个专有名词,指当前全球最大的、开放的有众多网络相互连接而成的特定的计算机网络,它遵守TCP/IP协议,其前身是美国的阿帕网(ARPANet)
- internet:是一个通用名词,它泛指由多个计算机网络互联而成的网络,这些网络之间的通信协议是可以任意的
1.2.3网络的两大主要功能
- 边缘部分:由各主机构成,用户直接进行信息处理和信息共享;低速连入核心网
- 核心部分:由各路由器连网,负责为边缘部分提供高速远程分组交换
1.2.4互联网结构发展的三个阶段
- 第一阶段:从单个网络ARPANENT向互联网络发展
- 第二阶段:逐步形成三层结构的互联网
- 第三阶段:逐步形成多层次ISP结构的互联网
1.3电路交换和分组交换
1.3.1电路交换的特点
三个阶段(步骤)
- 建立连接(分配通信资源)->通话(一直占用通信资源)->释放连接(归还通信资源)
1.3.2分组交换的特点
- 不需要建立一条物理信道,是以数据段为单位发送,是一种存储转发
分组交换的步骤
- 分数据报划分为等份的数据段,在数据段前面加上必要的控制信息,在将数据段发给相邻结点,存储下来后更具转发表发送至下一个结点
1.3.3电路交换和分组交换的区别
电路交换
优点 | 缺点 |
传输时延小,一直会按序到达 | 建立时间长 |
是全双工通信没有冲突 | 一直占用通信信道,利用率低 |
用于模拟信号和数字信号 | 灵活性较差 |
电路交换设备及控制较简单 | 难以在交换中差错检测 |
| 无数据的存储能力,难以平滑通信量 |
分组交换
优点 | 缺点 |
在传输过程中动态分配传输宽带,对通信链路是逐段占用的 | 分组交换机在转发分组时需要一定的时间,会造成时延 |
为每一个分组独立的选择转发路由 | 每个数据段携带了一些控制信息,会增加开销 |
以分组为传输单位,不必建立连接就能向其他主机发送分组 | 在通信量较大的时候可能会造成网路拥塞 |
分布式多路由的分组交换网,使网路有很好的生存性 | |
1.4计算机网络的主要性能指标
1.4.1速率
- ? ? ? ?数据的传输速率,也称为数据率或比特率
1.4.2带宽
- ? ? ? ?在计算机中带宽网络某通道传输数据的能力(一条通信链路的“频带宽度”越宽,其传输数据的"最高数据率"也越高)
1.4.3吞吐量
- ? ? ? ?在单位时间内通过某个网络(信道或接口)的数据量
1.4.4时延
- ? ? ?1)发送时延(是主机或路由器将整个数据分组的所有比特发送到通信线路所需要的时间)? ?2)传播时延? ?3)处理时延? ? ?4)排队时延
1.4.5丢包率
- ? ? ?在通信量较大时就可能造成网络拥塞,导致分组交换机的队列溢出和分组丢失
1.4.6利用率
- ? ? 某信道是有百分之几的时间是被利用的(有数据通过)
1.5计算机网络体系结构
1.5.1网络协议
- 1)语法:即数据与控制信息的结构或格式
- 2)语义:各个控制信息的具体含义(发出何种控制信息、完成何种动作、做出何种响应)
- 3)同步(时序):事件实现的顺序和时间的详细说明
1.5.2计算机网络的分层体系结构的优点
各层之间相互独立 | 某一层不需要知道它的下一层是如何实现的,只需要享受通过层间接口所提供的服务 |
灵活性好 | 当某一层发生变化时,只要层间接口关系保持不变,那么该层以上或一下都不会受影响 |
结构上可分割靠 | 各层都可以采用最合适的技术来实现 |
易于实现与维护 | 整个系统被分割为若干个相对独立的子系统 |
有利于功能复用 | 下层可以为多个不同的上层提供服务 |
能促进标准化工作 | 对每一层的功能及其所提供的服务都有精确的说明 |
1.5.3具有五层协议的原理体系结构
应用层 | 通过应用进程之间的交互来完成特定的网络应用 |
运输 层 | 向两台主机中的进程之间的通信提供通用的数据传输服务(TCP、UDP) |
网路层 | 主机与主机之间分组转发和路由选择 |
数据链路层 | 在相邻结点之间的链路上传送以帧为单位的数据(封装成帧、透明传输、差错检测) |
物理层 | 需要在不同的传输媒介上无差错的传输比特流 |
1.5.4协议、服务和实体
- 实体:任何可发送或接受信息的硬件或软件进程
- 协议:两个对等实体进行通信的规则的集合(协议是水平的)
- 服务:在协议的控制下,俩个对等实体之间的通信使得本层能够向上一层之间提供服务(服务是垂直的)
1.5.5TCP/IP体系结构
应用层 | HTTP? ? ? ? ? SMTP | ? ? ? ? ? ? ?DNS? ? ? ? ? ? RTP |
运输层 | ? ? ? ? ? TCP | ? ? ? ? ? ? ? ? ? ? ?UDP |
网际层 | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IP |
网络接口层 | 网络接口层1 | 网络接口层n |
2.物理层
2.1物理层的基本概念
2.1.1传输媒体的类型
2.1.1.1引导型和非引导型
引导型传输媒体
- 1)双绞线(局域网广泛应用):屏蔽双角线(有屏蔽层)、非屏蔽双角线(无屏蔽层)
- 2)同轴电缆(有线电视网)
- 3)光纤:多模光纤(多种方向)、单模光纤(单个方向)
非引导型传输媒体
- 1)无线电波
- 2)微波:地面微波接力通信、卫星通信
- 3)红外线、激光
2.2.1编码与调制
2.2.1.1常见的编码方式
2.2.1.1常见的调制方式
2.3.1物理拓扑结构
1)星型结构
- 概念:以中央节点为中心,把若干外围节点连接起来的辐射状互联结构
2)总线型
- 概念:采用一个共享信道作为传输介质,所有结点都通过相应的硬件接口直接连到被称为总线的传输介质上
3)网状型
- 概念:各网络节点之间根据需要将通信线路互连,形成网状
- 应用场景:广域网,因特网
4)环形结构
- 概念:所有网络节点通过通信链路连接成一个闭合环
- 应用场景:IEEE802.5令牌环网记为采用拓扑的网络
2.4.1传输方式
2.4.1.1串行和并行传输
- 串行传输:每次发送n个比特而不是一个比特,为此发送端与接收端有n条传输路线
- 并行传输:每次发送一个比特,所以发送方与接受方只有一条路线
- 并行的优点是速度为串行的n倍,但是花费的成本较高,所以在发送端和接收端通常要使用串/并型转换
2.4.2.1同步和异步传输
- 同步传输:数据块以稳定的比特流形式传输,要使双方的时钟保持一致
- 异步传输:以字节为独立的传输单位,字节之间的时间间隔不固定,通常在字节前后加上起始位和初始位
2.4.3.1单工、半双工和全双工通信
- 单工通信:有一条通信线道,只允许一方进行发送信息(广播)
- 半双工通信:有两条通信线道,双方都可以通信,但是不能同时通信(对讲机)
- 全双工通信:有两条通信线道,双发都可以互相交流(打电话)
2.5.1与传输媒体的接口特性
2.5.1.1机械特性
- 定义:定义物理连接特性?,?包括?采用的规格?,?接口形状?,?引线数目?,?排列情况?,?引脚数量?;
2.5.2.1电气特性
- 定义:传输二进制时?,?传输信号的?电压范围?,?阻抗匹配?,?传输速率?,?距离限制
2.5.3.1功能特性
- 定义:描述?电平?的意义?,?接口部件?信号线用途
2.5.4.1过程特性
- 定义:规定?各个?物理线路?工作?规程?,?时序关系
2.2数据通信的基础知识
- 概念:一个数据通信系统可以划分为三大部分,即源系统、传输系统和目的系统
- 信源:产生和发送数据的源头
- 发送器:将数字信号转换为模拟信号
- 接受器:将模拟信号转换为数字信号
- 信宿:接受数据的终点
- 码元:码元是指一个固定时长的信号波形(数字脉冲)表示一位K进制数字
2.3信道的极限容量
- 奈氏准则:奈氏准则指出了码元传输的速率是受限的(但没有对传输速率给出限制),不能任意提高,否则在接收端就无法正确识别
- 香农定理:香农用信息的理论推导出了带宽受限且有高斯白噪声干扰的信道极限、无差错的信息传输速率,即为香农公式
2.4信道复用技术
2.4.1频分复用(FDM)
- 将整个带宽分为多份,用户在分配到一定的额带后,在通信过程中自始至终都占用这个频带。
- 频分复用的所有用户在同样的事件占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
2.4.2时分复用(TDM)
2.4.3码分复用(CDM)
2.4.4波分复用(WDM)
2.5物理层设备
2.5.1中继器
- 概念:中继器又称为转发器,主要功能是将信号整形并放大再转发出去
- 注意:中继器是没有存储转发功能的,因此是不能连接两个速率不同的网段,中继器两端的网段一定要使用同一个协议。
2.5.1集线器
3.数据链路层
3.1使用点对点信道的数据链路层
3.1.1数据链路层所处地位与作用
- 在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.
- 数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务.
3.1.2数据链路和帧
- 链路:就是一个结点到相邻结点之间的一段物理路线(链路的传输介质主要有双绞线、光纤和微波、分为有线链路、无线链路)
- 数据链路:当需要在一条路线上传输数据时,不仅需要物理路线还需要各种协议的硬件和软件
- 帧:数据链路层的协议数据单元,作用是封装网络层数据报
3.1.3封装成帧
- 概念:数据链路层在接收到网络层传输下来的数据报,将数据报添加上首部和尾部信息,这样就构成了一个帧,接收端接收到物理层发送的比特流,就能根据头部和尾部的信息来确定帧的开始和结束
- 首部和尾部包含许多信息,最重要的一个作用是:帧界定
组帧的四种方法
- 字节计数法:帧首部使用一个计数字段,来表明帧内的字符数
- 字符填充法:在数据中出现的标记字符前面插入一个转义字符
- 零比特填充法:发送端在发送时发现有5个1就填充入一个0,接收方根据相应原理,发现5个1去掉一个0
- 违规编码法:使用“高高-低地”,“高低-低高”来判别帧的开始与终止
3.1.4差错检测
原因:一般来说,传输中的差错是由于噪声引起的
差错检测分为两种
? ? ? ? ? ? ? ? ? ? ? ?检错编码——CRC循环冗余码
定时器、编号机制
- 帧错:1)丢失? ? ? ? ? ? 2)重复? ? ? ? ? ?3)失序
- ?方法:定时器、编号机制,帧错指帧的丢失、重复或失序等错误
3.1.5可靠传输
概念:发送端发送什么,对应的接收端就收到什么
- 停止等待协议(SW):发送方每发送一个帧都要等接收方的确认,确认之后再发送下一个帧,所以发送窗口和接收窗口的大小为1
滑动窗口协议
- 退回N帧协议(GBN)(发送窗口大小>1,接收窗口大小=1)
- ?优点:发送端可以先 连续 发送 滑动窗口中的 N 帧 数据帧 , 提高了信道利用率?
- ?缺点 : 选择重传时 , 将某些正确发送的数据帧进行了重传 , 降低了传输效率 ;
- 解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧
- 发送窗口最大为2^n -1,接收窗口大小为1
- 为了解决上述弊端 , 引入了 选择重传协议 ;
?????为了提高信道的利用率,便可设法只重传出现差错的数据分组。(逐一对帧)->不再采用累计? ? ? ?确认,同时加大接收窗口(临时把错误帧之后的帧存起来),可以接收乱序到达的帧,使得只? ? ? ?重发出错的帧。->?选择重传协议只重传真正丢失的分组
3.2点对点协议
3.2.1PPP的特点
(1)同时支持同步和异步传输方式。
(2)支持多种网络层协议,除IP外,还支持IPX(因特网包交换协议)、Appletalk协议。
(3)支持链路层的网络层参数协商,特别是IP地址协商。
(4)PPP能保持透明传输
(5)网络开销小(帧头小),速度快,但无重传机制。
(6)差错检测,发现帧错误就丢弃
3.3使用广播信道的数据链路层(所有主机共享通信介质)
3.3.1媒体接入控制
静态划分信道
- 频分多路复用FDM
- 时分多路复用TDM
- 波分多路复用WDM
- 码分多路复用CDM
动态划分信道
CSMA协议
- CS:载波监听,每一个站在发送信息之前,要监听一下是否有其他的计算机在发数据
- MA:多点接入,表示许多计算机以多点接入的方式连接在总线上
- 协议思想:发送之前,先监听信道
监听结果
信道空闲
思想:发送前先监听信道,空闲则以p的概率发送出去,如果忙则继续监听直到空闲以p的概率发送
优点:既能像1-坚持CSMA提高对媒体的利用率,又能像非坚持CSMA减少与其他站点之间的冲突
信道忙
思想:发送前先监听信道,空闲则直接输出,忙则等待,直到空闲的时候马上发送。如果有冲突则等待一个随机长的时间再监听,重复上述过程
优点:只要信道空闲就马上发送,不会浪费信道的利用率
缺点:如果有两个或两个以上的站点需要发送信息,那么造成冲突就不可避免了
思想:发送前先监听信道,空闲则直接输出,忙则等待,不忙就等待一个随机的时间发送数据
优点:等待一个随机的时间发送,可以减少与其他站点的冲突与碰撞
缺点:可能出现大家都在延迟等待的过程中,使得媒体仍处于空闲状态,媒体使用率降低
CSMA/CD协议
- CS:载波监听,每一个站在发送信息之前,要监听一下是否有其他的计算机在发数据
- MA:多点接入,表示许多计算机以多点接入的方式连接在总线上
- CD:碰撞检测,边发送边监听? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??CSMA/CA协议
3.3网桥和以太网交换机
3.1.1以太网
3.1.1.1局域网的定义
在较小的地理范围内,利用通信线路将办公室、企业、校园、小区等较小区域内的计算机、网络通信设备等连接在一起,配以接口和高层软件,进行高速数据传输和软硬件资源共享的系统。
以太网是应用最广泛的局域网。
例子:10BASE-T(双绞线以太网)
- 10:表示数据传输速率?10Mbps基带传输
- BASE:基带信号
- T:代表双绞线
通常我们所说的以太网主要是指以下三种不同的局域网技术。
- (1)10 Mbps以太网,又称为标准以太网、传统以太网。采用同轴电缆作为网络媒体,传输速率达到10 Mbps。
- (2)100 Mbps以太网,又称为快速以太网。采用双绞线作为网络媒体,传输速率达到100 Mbps。
- (3)1 000 Mbps以太网,又称为千兆以太网。采用光缆或双绞线作为网络媒体,传输速率达到1 000 Mbps。
以太网跨越数据链路层和物理层,有许多不同的以太网标准,它们有不同的速率: 2Mbps,10 Mbps,100 Mbps, 1Gbps,10G bps,不同的物理层媒体,但它们有共同的MAC协议和帧格式。
3.1.1.2在物理层扩展以太网
在物理层扩展的共享式以太网仍然是一个碰撞域和一个广播域,不能连接太多的站点,否则可能会出现大量的碰撞,导致平均吞吐量太低。
3.1.1.3在数据链路层扩展以太网
在物理层扩展的共享式以太网是两个独立的碰撞域,和一个广播域
3.2.1网桥
- 1、使用网桥在数据链路层扩展局域网
- 2、网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
- 3、网桥具有过滤帧的功能。当网桥收到一个帧时,并不 是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
- 4、要执行CSMA/CD 协议?
- 5、可以互连工作在不同速率的网段?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ?网桥的内部结构
3.3.1网桥与集线器的区别和共同的
集线器 | 网桥 |
工作在物理层 | 工作在数据链路层 |
必须要连接在相同的网段上,没有存储的功能 | 可以连接在不同的网段,可以存储和过滤 |
将接收到的信息发送给每一个站点 | 将接收到的信息到自己的转发表(MAC地址表)寻找该发送的目的地点 |
按照比特来发送,不识别帧,也不执行CSMA/CD协议 | 按照帧来发送,在向以太网网段转发帧时必须执行CSMA/CD协议 |
? ? ? ? ? ?也可以对接收到的信号进行再生整形放大,以扩大网络的传输距离 |
3.4.1交换机
- 实质上就是一个多接口的网桥,但功能比网桥还要好
- 1990 年问世的交换式集线器(switching hub),可明显地提高局域网的性能。
- 交换式集线器又称为以太网交换机(switch)或二层交换机(表明此交换机工作在数据链路层),或直接简称为交换机。
- 以太网交换机通常都有十几个接口,工作原理与透明网桥相同。因此,以太网交换机实质上就是一种多接口的网桥。
4.网络层
4.1网络层概述
网络层的主要任务:分组转发、路由选择
4.1.1虚电路和数据报服务(分组交换)
对比的方面 | 虚电路网络 | 数据报网络 |
? ? 思路 | 可靠通信应该由网络来保证 | 可靠通信由主机来保证 |
连接的建立 | 必须有 | 不需要 |
? 终点地址 | 只需要在连接建立阶段有,每个分组使用短的虚电路号 | 每个分组都要带有完整的终点地址 |
分组的转发 | 属于同一虚电路的分组均按照同一路由转发 | 每个分组独立选择路由转发 |
当结点出故? ? ? ?障时 | 所有通过节点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 都会按序到达 | 到达终点时不一定按序 |
服务质量保? ? ? ? ?证? | 可以将资源通信提前分配给每一个虚电路,因此容易实现 | 较难实现 |
4.2网际协议
网际协议(IP,又称互联网协议)是TCP/IP体系中两个最重要的协议之一
地址解析协议(ARP)
互联网控制报文协议(ICMP)
4.2.1异构网络互联
有没有一种单一的网络互联能够适应所有的用户的需求?
答案是:没有,因为每个人的需求是多种多样的。
使用一些中间设备将网络互联相互连接
- 物理层使用的中间设备叫做转发器(集线器)
- 数据链路层使用的中间设备叫做网桥
- 网络层使用的中间设备叫做路由器
- 在网络层以上的中间设备叫做网关,用网关连接两个不兼容的系统需要在高层及逆行协议的转化
4.2.2IP地址及编码方式
IPv4地址是给因特网(Internet)上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符。
IP地址是一个32位的标识符。
8位无符号二进制整数转十进制数
IP地址是由32位组成:
网络号+主机号
- 网络号用来标识主机所连接的网络
- 主机号用来标识连接在这个网络中的不同主机
- 同一个网络中,不同主机(或路由器)的接口的IPv4地址的网络号必须相同,表示它们属于同一个网络,主机号必须各不相同,以便区分各主机(或路由器)的接口。
A类网络号范围
- A类网络号范围为:0-127,有两个特殊的不能指派
- 1)0000 0000:0表示网络地址不能指派
- 2)0111 1111:127表示本地回环测试地址,不能指派
- 可指派的A类网络数量是 2^(8-1)-2=126;
A类主机号范围
- A类主机号范围为:0.0.0-255.255.255,有两个特殊不能指派
- 1)0.0.0:全0表示网络地址,不能指派
- 2)255.255.255:全255表示广播地址,不能指派
- 每个A类网络中可分配的地址数量为2^24?2=16777214
B类网络号范围
- B类网络号范围为:128.0-191.255,都可以指派
- 1)10000000 00000000:128.0
- 2)10111111 11111111:191.255
- 可指派的B类网络数量为 2^(16?2)=16384
B类主机号范围
- B类主机号范围为:0.0-255.255,有两个特殊不能指派
- 1)0.0:全0表示网络地址,不能指派
- 2)255.255:全255表示广播地址,不能指派
- 每个B类网络中可分配的地址数量为2^16?2=65534
C类网络号范围
- C类网络号范围为:192.0.0-223.255.255,都可以指派
- 1)11000000 00000000 00000000:128.0.0
- 2)10111111 11111111 11111111:191.255.255
- 可指派的C类网络数量为 2^(24?3)=2097152??????
C类主机号范围
- C类主机号范围为:0-255,有两个特殊不能指派
- 1)0:全0表示网络地址,不能指派
- 2)255:全255表示广播地址,不能指派
- 每个C类网络中可分配的地址数量为2^8?2=254
为了充分利用A类和B类地址空间从主机号借用若干位作为子网号subnet-id,而主机号 host-id 也就相应减少了若干位。划分子网后 IP 地址就变成了三级结构:
网络号+子网号+主机号
同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。 子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。
? ? ? ? ? ? ? ? ? ? ? ?例题1
将划分子网的IPv4地址与相应的子网掩码进行逐比特的逻辑与运算,就可得到该IPv4地址所在子网的网络地址。
? ? ? ? ? ? ? ? ? ? ? ? 例题2
一台主机的IP地址为202.113.224.68,子网掩码为255.255.255.240,那么这台主机的主机号为( D? ?? )。 A.4? ? ? ? ? ? ? ? ? ? ?B. 6? ? ? ? ? ? ? ? C. 8? ? ? ? ? ? ? ? ? ? D.68
题解:已知IP地址和子网掩码,将IP地址与子网掩码进行逻辑与,可以得到网络地址
所以的知网络地址是202.113.224.0,与原来的IP地址进行对比,主机号少了68,所以这台主机的主机号是68.
CIDR使用“斜线记法”,斜线后面的数字就是地址掩码中1的个数
4.2.3IP地址与物理地址
物理地址(MAC地址硬件)是数据链路层或物理层使用的地址,而IP地址是在网络层及以上各层使用的地址,是一种逻辑地址(软件)
在数据链路层进行传播时就被封装成MAC帧。MAC帧在传送时使用的使用的源地址和目的地址都是物理地址,这两个物理地址都写在MAC帧的首部中,在数据链路层看不见隐藏在MAC帧中的IP地址
关于不同层次、不同区间和目的地址
- 1)在IP层抽象的互联网上只能看到IP数据报
- 2)虽然IP数据报有源IP地址,但路由器只根据目的IP地址转发IP数据报
- 3)在局域网的链路层,只能看见MAC帧
4.2.4地址解析协议
在支持硬件广播的局域网中可以使用地址解析协议来解决IP地址与物理地址的动态映射关系
使用ARP的每个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到物理地址的映射表,这些都是该主机目前知道的一些地址
来解析主机是如何知道的,举个例子
1.主机A要向本局域网上的某个主机B发送IP数据报时,会在ARP高速缓存上查看是否有主机B的IP地址,如有就在ARP高速缓存中查出其对应的物理地址,在把这个物理地址写入MAC帧,然后通过局域网将该MAC帧发给此物理地址
2.主机A查不到主机B的IP地址,那么根据以下步骤来获取主机B的物理地址:
- 1)ARP进程在本局域网上广播发送一个ARP请求分组,该分组被直接封装在数据链路层广播帧中
- 分组的主要内容:“我的IP地址是209.0.0.5,物理地址是00-00-C0-15.我想知道IP地址为209.0.0.6的物理地址。”
- 2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
- 3)主机B在ARP分组请求中见到主机的IP地址,就向主机A发送ARP响应分组,并写入自己的物理地址,而其余的所有主机都不会理睬这个ARP请求分组
- 4)主机A收到主机B的ARP响应后,就在其ARP高速缓存中写入主机B 的IP地址到物理地址的映射
注意:
ARP用于解决同一个局域网上的主机或路由器的IP地址和物理地址的映射关系。如果索要找的主机和源主机不在同一个局域网上,首先需通过与主机H1连接在同一个局域网上的路由器来转发,因此主机H2需要把路由器的IP地址解析为物理地址
4.2.5IP数据报的格式
4.2.5.1IP数据报首部的固定部分中的各字段
- 1)版本:占4位,指的是IP的版本
- 2)首部长度:占4位
- 3)区分服务:占8位,用来获得更好的服务
- 4)总长度:指首部和数据部分长度之和2^16-1=65535
- 5)? 标识:占16位
- 6)标志:占3位
- 7)偏偏移:占13位
- 8)生命周期:占8位(TTL)
4.2.6IP数据报的转发
由于路由器是根据路由表中的目的网络地址来确定吓一跳的路由器的,因此有以下结论:
- 1)IP数据报一定可以找到目的主机所在的目的网络上的路由器(可能通过多次的间接交付)
- 2)只有最后一个路由器才试图向目的主机进行直接交付
4.2.6.1IP数据报的转发流程
- 1)从收到的数据报首部提取目的IP地址D
- 2)先判断是否直接交付。对与路由器相连的网络逐个进行检查;用各网络的掩码与IP地址进行“与”,如果网络地址相同则直接交付,如果网络地址不同,则间接交付,执行
- 3)对路由表中的每一行,与其中的掩码和D逐位相‘与’,结果为N。若N与该行的网络地址匹配,则把数据报传送给改行指明的下一跳路由器,否则执行(4)
- 4)每个路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(5
- 5)报告转发数据报出错
4.2.7路由聚合
这种使用一个网络前缀代表多个网络路由的功能称为:地址聚合或路由聚合
当有多项匹配时,从中选择具有最长网络前缀的路由
4.3互联网控制报文协议
4.3.1? ICMP报文的种类
ICMP报文有两种,即ICMP差错报告报文和ICMP询问报文
1.ICMP差错报告报文:
- 1)终点不可达:路由器或主机不能交付数据报时,就向源点发送终点不可达报文(网络不可达、目的主机不可达、目的端口不可达……)
- 2)超时:当路由器收到一个IP数据报,若目的地址不是自己,会将其生存时间TTL减1再转发出去,但当TTL减为零时(收到TTL为1的IP数据报),除丢弃该数据报外,还要向源点发送超时差错报告报文。 ? ? ? ?
- 另外,当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送超时差错报告报文。
- 3)参数问题:当路由器或目的主机收到的数据包的首部中有字段的值不正确时,路由器或主机就会丢弃该数据报,并向源点发送参数问题报文
- 4)路由重定向:路由器把路由重定向报文发送给主机,让主机知道下次应将数据报发送给另外的路由(提供一条更好的路由)
- 5)源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(目前已不再使用)
2.ICMP询问报文
- 1)回送请求和回送应答(PING):用来测试目的站是否可达及了解其相关的状态
- 2)时间戳请求和时间戳应答:用来进行时钟同步和测量时间
4.3.1 ICMP的应用举例
- PING (Packet InterNet Groper) ?用来测试两个主机之间的连通性。
- PING 使用了 ICMP 回送请求与回送应答报文。
- PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP。
- traceroute(这是UNIX操作系统中的名字),它用来探测一个分组从源点到终点的路径。
- 在Windows操作系统中这个命令是 tracert。
4.4虚拟专用网与网络地址转换
虚拟专用网VPN (Virtual Private Network)
- 世界上有很多机构有自己独立的网络,这些网络并不与因特网互连,为该机构所专有,被称为专用网络。
- 从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址(本地地址),而无需要向互联网的管理机构申请全球唯一的IP地址(全球地址)
- 但是,如果任意选择一些 IP 地址作为本机构内部使用的本地地址,当内部的某个主机需要和互联网连接,那么这种仅在内部使用的本地地址就有可能和互联网中某个IP地址重合,这样就会出现地址的二义性问题。
RFC 1918指明了一些专用地址,只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。 在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
RFC 1918指明的专用地址是:
- 10.0.0.0到10.255.255.255 ?(或记为10/8地址块)
- 172.16.0.0到172.31.255.255 ?(或记为172.16/12地址块)
- 192.168.0.0到192.168.255.255 ?(或记为192.168/16地址块)
VPN的要点:
- 虚拟专用网VPN利用公用的因特网作为专用网之间的通信载体,可大大节约建设专用网络的成本
- 可以用 IP 隧道技术来实现 VPN,将专网的 IP 数据报封装到公网的 IP 数据报中进行传输
- 为了实现保密性,所有通过互联网传送的数据都必须加密
- 单台计算机可以还通过远程接入VPN 连接到内部专用网络
为什么要使用网络地址转换(NAT)的原因:
- 互联网采用了无分类编址方式、动态分配IP地址等措施来减缓IP地址空间耗尽的速度
- 但由于互联网用户数目的激增,特别是大量小型办公室网络和家庭网络接入互联网的需求不断增加,IP地址空间即将面临耗尽的危险仍然没有被解除。
好处:
- NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问互联网上的主机和资源。 需要在专用网连接到互联网的路由器上安装 NAT 软件。
- 装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球地址。
- 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成全球地址才能和互联网连接。
VPN 的要点:
- NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问互联网上的主机和资源。(节省地址)
- 通过NAT连接互联网,专网可自行独立分配和改变本地网络中的设备地址,不必通知外部。(易于管理)
- 由于本地网络中的设备对外不可见,隐藏了内部网络的细节,内部设备不易受到外部网络的主动攻击。(增强安全)
- 通信必须由内部发起,内网主机不能直接充当互联网服务器,影响P2P等应用。(不透明性)
4.5下一代网际协议IPv6
使用IPv6的原因:
- 从计算机本身发展以及从互联网规模和网络传输速率来看,现在 IPv4 已很不适用。
- 最主要的问题就是 32 位的 IP 地址不够用。
到2011年2月,IPv4的地址已经耗尽 要解决 IP 地址耗尽的问题的措施:
- 采用无类别编址 CIDR,使 IP 地址的分配更加合理。
- 采用网络地址转换 NAT 方法以节省全球 IP 地址。
- 采用具有更大地址空间的新版本的 IP 协议 IPv6。 ?
4.5.1IPv6的表示方法
- 在 IPv6 中,每个地址占 128 位,地址空间大于 3.4 ? 1038 。
- 在想象得到的将来,IPv6的地址空间是不可能用完的。 128位的IPv6地址使用冒号十六进制记法表示。
- 每个 16 位的值用十六进制值表示,各值之间用冒号分隔: 68E6:8C64:F:FFFF:0:1180:960A:FFFF
- 允许省去两个冒号之间的数中最前面的一串0,如000F可缩写为F。
- 零压缩(zero compression),即一连串连续的零可以为一对冒号所取代: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FF05:0:0:0:0:0:0:B3 ?可以记为:FF05::B3
- 为保证零压缩不会产生歧义,规定在任意一个地址中只能使用一次零压缩。 ? ? ? ? ? ? 例如: ?12AB:0:0:CD30:0:0:0:0 ? ? ? ? ? ? ? 可以记为:12AB:0:0:CD30:: ? ?但不能记为: 12AB::CD30::
- 该技术对已建议的分配策略特别有用,因为会有许多地址包含连续的零串
- 冒号十六进制记法可结合有点分十进制记法的后缀(用于IPv4向IPv6过渡): ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0:0:0:0:0:0:128.10.2.1 ?或 ?::128.10.2.1
- IPv6地址前缀的书写方法采用“斜线记法”,用“地址/前缀长度”表示一个
- IPv6地址前缀,并且不再使用子网掩码: ? ? ? ? ? ?例如:12AB:0:0:CD30:0:0:0:0 的60位前缀 ? ? ? ? ? ?可记为:12AB:0:0:CD30::/60 ? 但不能记为:12AB::CD30/60
4.5.2IPv6地址的分类
IPv6 分组的目的地址可以是以下三种基本类型地址之一:
- 单播(unicast)地址 ?用来唯一标识一个接口。单播就是传统的点对点通信,发送到单播地址的分组将被传送给此地址所标识的一个接口。
- 多播(multicast)地址 ?用来标识一组接口(通常属于不同结点)。多播是一点对多点的通信,发送到多播地址的分组将被传送给此地址所标识的所有接口。可以用所有结点多播地址来实现原来IPv4广播地址的功能。
- 任播(anycast)地址 ?IPv6 新增类型。发送到任播地址的分组将被传送给此地址所标识的一组接口中的一个,通常是距离源结点最近的一个。任播寻址目前尚处在实验阶段。
5.运输层
5.1端口
作用:为两台主机中进程的通信提供通用的数据传输服务
那么我们是如何区分进程的呢?
端口号来确定主机之间的进程
注意:这里的“端口”并不是看得见、摸得着的物理端口,而是用来区分不同应用进程的标识符。
端口号的要点:
- 两个主机进行通信实际上就是两个主机中的应用进程互相通信。
- 应用进程之间的通信又称为端到端的通信。 两个计算机中的进程要互相通信,不仅要知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
- TCP和UDP的端口号都是16 位,但端口号只具有本地意义,在互联网中不同计算机的相同端口号是没有联系的,并且TCP和UDP端口号之间也没有必然联系。
三种不同类型的端口号:
- 熟知端口号 ? ?其数值为 0~1023。由互联网赋号管理局(Internet Assigned NumbersAuthority,IANA)分配给一些常用的应用层程序固定使用。
- 登记端口号 ? 其数值为 1024~49151。这类端口号 IANA 并不控制,但可以在 IANA 注册登记,以防止重复使用。
- 动态端口号 ? ?其数值为 49152~65535。留给客户进程选择作为临时端口号。
5.2运输层的复用与分用
复用和分用是运输层很重要的一个功能
- 复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据(需要加上运输层协议的首部)。
- 而分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
- 在TCP/IP网络中,利用软件端口(Port)来实现复用和分用。
- 端口是应用层与运输层之间接口的抽象。
5.3运输层的协议
互联网(更一般地说是TCP/IP网络)的运输层有两个不同的协议:
- 用户数据报协议 UDP (User Datagram Protocol)
- 传输控制协议 TCP (Transmission Control Protocol)
5.3.1TCP 与 UDP协议栈中的位置
5.4.1TCP的连接过程? ? ?(三次握手)
三次握手的例子:
- 客户端:我能和你建立连接吗?我的初始seq=951057939,如果同意就发送Ack=951057940
- 服务器:我同意,Ack=951057940,我也想和你建立连接,我的初始Seq=290218379,如果同意就发送Ack=290218380
- 客户端:我同意,Ack=290218380
5.4.1TCP&UDP的区别
? ? ? ? ? ? ?UDP支持单播、多播和广播,TCP仅支持单播
? ? ? ? ? ? UDP是面向应用报文的,TCP是面向字节流的
? ? ? UDP向上提供无连接不可靠传输服务,TCP向上提供面向连接的可靠传输服务的
? ? ? UDP用户数据报首部仅8字节,TCP向报文段首部最小20字节,最大60字节
UDP与TCP的区别
无连接 | 面向连接 |
尽最大努力交付,提供不可靠传输,不使用流量控制和拥塞控制 | 提供可靠传输,使用流量控制和拥塞控制 |
面向应用报文 | 面向字节流 |
可以使用“一对多”,“多对多”,“一对一” | 只能使用“一对一”(单播) |
数据报首部最小20字节,最大60字节 | 数据报首部仅8字节 |
6.应用层
6.1应用层概述
6.1.1应用层的作用
通过应用程序交互实现各种特定的网络应用,如网页浏览、文件传输、电子邮件等
6.2.1网络应用程序体系结构
网络应用程序在各种端系统上的组织方式和它们之间的关系,即网络应用程序体系结构:
客户/服务器(Client/Server, C/S)体系结构
基于C/S结构的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。
- 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
- 客户/服务器方式所描述的是进程之间服务和被服务的关系。 客户是服务的请求方,服务器是服务的提供方。客户相互之间不直接进行通信。
- 服务器具有固定的IP地址和端口号,并且总是处于运行状态,等待客户的服务请求。
- 目前大多数网络应用采用C/S结构。
对等(Peer-to-Peer ,P2P )体系结构
基于P2P的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等方计算机中。
- 在对等(P2P, Peer-to-Peer)方式中,没有固定的服务请求者和服务提供者,应用进程是对等的,被称为对等方(peer)。
- 对等方相互之间直接通信,每个对等方即是服务的请求者,又是服务的提供者。
- P2P体系结构的最突出特性之一就是它的可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而明显降低。
- 对等方式的应用如:BT文件下载软件
6.3.1应用层协议
- 为实现某种网络应用,不论是客户进程和服务器进程之间,还是对等方之间,都需要遵循的某种通信协议——应用层协议
- 可以是公开的,如RFC文档定义的互联网公共领域的应用层协议,HTTP, FTP等
- 还有很多其他应用的应用层协议不是公开的,而是专用的,如很多P2P应用等
? ? ? ? ? ? ? ? ? ? ? ? ??选择运输层协议
6.2域名系统
- 人愿意使用不等长的字符串名字来标识一台计算机,而不是使用难记忆的IP地址 网络应用更多的是使用主机名字
- 计算机使用等长的二进制数来标识一台计算机——高效 IP协议使用32位的IP地址
- 域名系统 DNS (Domain Name System),实现主机名(域名)到IP地址的转换
层次树状的等级结构命名方法
?… . 三级域名 . 二级域名 . 顶级域名
等级结构的命名便于分级管理和维护名字的唯一性
6.2.1顶级域名 TLD(Top Level Domain)
- (1) 国家顶级域名 nTLD:cn 表示中国,us 表示美国,uk 表示英国,等等。
- (2) 通用顶级域名 gTLD:com(公司企业),net(网络服务机构),org(非营利性组织)等等。 (3) 反向域arpa:用于反向域名解析,将IP地址反向解析为域名。
6.3.1域名解析的过程
递归查询:如果被查询的域名服务器不知道被查询域名的 IP 地址,那么该服务器就以 DNS 客户的身份,代替请求者向其他域名服务器发送查询请求报文,最后将查询结果返回请求者
缺点:域名服务器的负担太重!
迭代查询:如果被查询的域名服务器不知道被查询域名的 IP 地址,就将负责该域名的下一级域名服务器的地址告诉查询者,让查询者再去询问下一级的域名服务器。
缺点:DNS客户机的负担太重!
域名服务器的四种类型
- 根域名服务器
- 顶级域名服务器
- 权威域名服务器
- 本地域名服务器
本地域名服务器
- 本地域名服务器也称为默认域名服务器
- 当一个主机发出 DNS 查询请求时,将查询请求报文发送给本地域名服务器,本地域名服务器作为该主机的代理完成后续域名解析的过程
- 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以配置一个本地域名服务器
采用客户/服务器模式
DNS 报文类型
DNS 协议使用的运输层协议是 UDP(一般情况),默认端口号是 53
DNS缓存
为了提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。
- 主机和域名服务器都可以维护一个DNS缓存,存放最近查询过的域名以及IP地址。
- 为保持缓存中内容的准确性,域名服务器应为每项内容设置计时器,并删除超时未用的项目(例如,每个项目只存放两天)。
- 当权威域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的准确性。
6.3.1?DNS提供的其它服务
- 主机别名。可以为一个规范主机名(不是别名的主机名)起多个简单易记的别名。
- 负载分配。DNS允许用同一个主机名对应一个IP地址集合。DNS服务器收到该主机名的解析请求时,随机或循环返回地址集合中的一个地址。一些热门网站,可以利用该服务将网站复制到多个服务器上,这些服务器共用同一个域名,从而实现在这些服务器上的负载分配。
- 反向域名解析。将某个IP地址转换为域名,这是通过反向域来实现的。
6.3万维网
- 万维网 WWW (World Wide Web),简称Web,不是某种特殊的计算机网络。
- 万维网是一个运行在互联网上的网络应用。
万维网的工作方式
- 万维网以客户/服务器方式工作。
- 浏览器就是在用户计算机上的Web客户程序。Web文档所驻留的计算机则运行服务器程序,因此这个计算机也称为Web服务器。
- 客户程序向服务器程序发出请求,服务器程序向客户程序响应客户所要的Web文档。
- 在浏览器中显示的Web文档称为页面(page)。
6.3.1万维网必须解决的问题
(1) 怎样标志/定位分布在整个互联网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
- 使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
(2) 使用什么协议实现Web页面的传送?
- 在浏览器与Web服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
(3) 如何编写Web文档,如何在文档中嵌入超链接?
- 超文本标记语言HTML(HyperText Markup Language)使得Web页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个Web页面。
(4) 在万维网中用户如何方便地找到信息?
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
- 目前最有名的英文搜索引擎是谷歌Google,而最有名的中文搜索引擎是百度。
6.4.1统一资源定位符
- 统一资源定位符 URL 用来标志一个资源在因特网上的位置。
- URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个“指针”。
- 是一种应用层地址 ?
?1.URL 的一般形式
<协议>://<主机>:<端口>/<路径>
协议:
- ftp —— 文件传送协议 FTP
- http —— 超文本传送协议 HTTP
2. 使用 HTTP 的 URL
?http://<主机>:<端口>/<路径>
- 主机:可以是主机的域名或IP地址
- 端口:HTTP 的默认端口号是 80,通常可省略
- 路径:若再省略文件的<路径>项,则 URL 就指向该服务器上的默认网页,通常就是该网站的主页(home page)
6.5.1超文本传送协议 HTTP
- 浏览器向Web服务器请求网页所使用的应用层协议是超文本传送协议 HTTP。
- 该协议运行在TCP之上,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础
HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
- 响应报文——从服务器到客户的回答。
- 由于 HTTP 是面向文本的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
6.6.1超文本标记语言 HTML
- 制作网页的标准语言,定义了嵌入超链接和许多用于排版的命令(即标签)
- HTML 把各种标签嵌入到Web页面中。这样就构成了所谓的 HTML 文档。
- HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件,以.html 或 .htm 为后缀。