admin 管理员组文章数量: 887021
唤醒手腕考研计算机网络复习笔记:2022/4/11:课程学习(王道考研)
网络体系结构
概念、组成、功能和分类
组成部分
:一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。
软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP程序、聊天程序等)。软件部分基本属于应用层,网络协议是计算机网络的核心。
计算机网络的定义:计算机网络是互连的、自治的计算机的集合。
①自治:是指互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。
②计算机:计算机设备。
③互连:是指利用通信链路链接相互独立的计算机系统。
工作方式
:计算机网络(这里主要指Internet)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
功能组成
:计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
虽然网络类型的划分标准各有千秋,但是以地理范围划分是一种大多数人都认可的通用网络划分标准。按照此标准可以将各种网络类型划分为局域网
、城域网
、广域网
和互联网
4种。
标准化工作及相关组织
Request for comments RFC
RFC要上升为因特网正式标准的四个阶段:
①因特网草案(Internet Draft)②建议标准:开启成为RFC文档(Porposed Standard)③因特网标准(Internet Standard)
标准化工作的相关组织
国际标准化组织 ISO:ISO参考模型、HDLC协议
国际电信联盟 ITU:制定通信规则
国际电气电子工程师协会 IEEE:学术机构、IEEE802系列标准、5G
Internet工程任务组 IETF:负责因特网相关标准的制定 RFC XXXX
速率相关的性能指标
速率
速率
:即数据率或称为数据传输率或比特率,连接在计算机网络上的主机在数字信道上传送数据位数的速率。
速率单位换算:1 Tb / s = 103 Gb / s = 106 Mb / s = 109 kb / s = 1012 b / s
带宽
带宽
:“带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
吞吐量
吞吐量
:表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。吞吐量受网络的带宽或网络的额定速率的限制。
简单的讲,对于P2P系统而言,当主机A到主机B传送一个文件,任何时间瞬间的瞬时吞吐量都是主机B接收到该文件的速率(以bps计算)。如果文件由F比特组成,主机B接收到所有F比特用去T秒,则文件传送的平均吞吐量是F/T bps
什么是bps: “bits per second” 常用于表示数据机及网络通讯的传输速率。
例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps
所以常说的快速以太网能达到百兆传输,其实实际传输文件大小只有10MB = 100Mb
注意:在计算传输速率时,直接用1000来换算(1 Mb = 1000 Kb = 1000,000 bit)
想象比特是流体,而链路是管道,那么吞吐量应该为min{ Rc ,Rs }。如上图所示,当Rc为2Mbps且Rs>Rc,无论Rs有多大,吞吐量都是2Mbps。同理,当有n个路由器的时候,吞吐量为min{R1,R2,···,Rn,Rn+1}
我们今天因特网对吞吐量的限制因素通常是接入网:如果R和Rs(服务器传输速率)、Rc(接入网传输速率)相近的话,会出现怎么样的情况呢?
这时候每个下载的瓶颈不再位于接入网中,而是位于核心中的共享链路了,该瓶颈仅能为每个下载提供1.5Mbps的吞吐量,因此每个下载的端到端吞吐量现在减少到1.5Mbps
时延、BDP、RRT、利用率
时延
时延
:指一个报文或分组从网络的一端传送到另一端所耗费的时间,时延由节点处理时延、排队时延、发送时延、传播时延组成。
节点处理时延:
主机或路由器在收到分组后要花费一定的时间进行处理,比如分析首部,提取数据,差错检验,路由选择等。一般高速路由器的处理时延通常是微秒或更低的数量级。
排队时延:
排队时延很好理解,就是路由器或者交换机处理数据包排队所消耗的时间。一个特定分组的排队时延取决于先期到达的、正在排队等待向链路传输分组的数量。如果该队列是空的,并且当前没有其他分组在传输,则该分组的排队时延为0;另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很大。实际的排队时延通常在毫秒到微秒级。
传输时延:
传输时延又被称为“发送时延”,是发送数据所需要的时间,也就是从网卡或者路由器队列递交网络链路所需要的时间。用L比特表示分组的长度,用R bps表示从路由器A到路由器B的链路传输速率,传输时延则是L/R。实际的发送时延通常在毫秒到微秒级。
传播时延:
传播时延是指在链路上传播数据所需要的时间。传播时延等于两台路由器之间的距离除以传播速率,即传播时延是D/S,其中D是两台路由器之间的距离,S是该链路的传播速率。实际传播时延在毫秒级。
更加细致的描述:发送时延(首次传输时延)、节点处理时延、排队时延、传播时延、处理时延(接收时延)
发送时延计算公式
:Sending Delay 发送时延 = Data Length 数据长度 / Channel Bandwidth 信道带宽
传播时延计算公式
:Transfering Delay 传播时延 = Channel Length 信道长度 / 电磁波在信道传播的速率
带宽时延积 BDP
带宽时延积:(Bandwidth-Delay Product ,BDP)即链路上的最大比特数,也称以比特为单位的链路长度。描述某段链路中的数据容量。
计算方法: Bandwidth - Delay Product = Delay * Bandwidth
发送缓冲区与带宽时延积的关系:
-
如果发送缓冲区「超过」带宽时延积,超出的部分就没办法有效的网络传输,同时导致网络过载,容易丢包;
-
如果发送缓冲区「小于」带宽时延积,就不能很好的发挥出网络的传输效率。
结论:发送缓冲区的大小最好是往带宽时延积靠近
例题:考虑两台主机 A 和主机 B 由一条带宽为 R bps、长度为 M 米的链路互连,信号传播速率为 V m/s。假设主机 A 从 t=0 时刻开始向主机 B 发送分组,分组长度为 L 比特,试求:(注:1 k = 103, 1 M = 106)
(1) 传播延迟(dp)
传播时延:dp = 信道长度(m) / 电磁波在信道上的传播速率(m/s) = M / V
(2) 传输延迟(dt)
传输延迟:dt = 数据帧长度(b) / 信道带宽(b/s) = L / R
(3) 若忽略结点处理延迟和排队延迟,求端到端延迟 de
端到端总延迟:de = 传播时延 + 传输延迟 = M / V + L / R
(4) 若 dp > dt,则 t = dt 时刻,分组的第一个比特在哪里?
dp > dt 意味着最早发送的信号没有到达目的主机之前,数据分组的最后一个比特已经发送出来了,所以分组的第一个比特在距离主机的 V * dt 米的链路上
(5) 若 V = 250000 km/s,L = 512 bit,R = 100 Mbps,则使带宽时延积刚好为一个分组长度(即 512 bit)的链路长度M是多少?
时延带宽积 = 传播时延 * 带宽 = M / V * R = 512,解之得 M = 1280 m
往返时延 RTT
往返时延
:RTT ( Round-Trip Time ),从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
往返延时(RTT)由三个部分决定:即链路的传播时间、末端系统的处理时间以及路由器的缓存中的排队和处理时间。其中,前面两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。
RTT的变化在一定程度上反映了网络拥塞程度的变化。
结论:RTT越大,在收到确认之前,可以发送的数据越多。
利用率 Utilization Rate
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道利用率是零。
假定A发送分组需要的时间为TD,分组确认时间为TA,往返时间为RTT。根据信道利用率的概念,我们可以得到如下信道利用率的计算方法:
经典例题
:通信信道带宽为 1 Gb/s,端到端时延为 10 ms,TCP的发送窗口为 65535 字节,试问:可能达到的最大吞吐量和信道利用率?
发送时延 = 数据长度 / 信道带宽 = (655358 bit) / (1 Gb/s) = 0.52428 * 10-3 s = 0.52428 ms;
传播往返时延 = 2 * 10 = 20 ms (发送数据和接收确认)
故每发送每个窗口大小的流量,总时延 = 发送时延 + 传播往返时延 = 0.52428 + 20 = 20.52428 ms
每秒钟可以产生 1 s / 20.20.52428 ms = 1000 ms / 20.52428 ms 个窗口
最大数据吞吐量 = 655368 * (1000 / 20.52428) = 25544769 bit/s = 25.5 Mb/s
信道的利用率 = (25.5 Mb/s) / (1000 Mb/s) ≈ 2.55%
信道利用率,也叫信道的效率。对发送方而言,发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
分层结构、协议、接口、服务
发送文件前要完成的工作?
(1)发起通信的计算机必须将数据通信的通路进行激活。
(2)要告诉网络如何识别目的主机。
(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
(5)确保差错和意外可以解决。
计算机网络体系分层结构
OSI 体系结构
:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层
TCP / IP 体系结构
:应用层,运输层(TCP或UDP),网际层(IP),网络接口层
五层协议体系结构
:应用层,运输层,网络层,数据链路层,物理层
网络协议 Network protocol
网络协议(network protocol)
,简称为协议 ,是为进行网络中的数据交换而建立的规则、标准或约定 。
协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的“动作”(actions)。
网络协议至少包括三要素:
① 语法(用来规定信息格式)② 语义(用来说明通信双方应当怎么做)③ 时序(详细说明事件的先后顺序)
网际层协议
:IP协议、ICMP协议、ARP协议、RARP协议
传输层协议
:TCP协议、UDP协议
应用层协议
:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS
接口 (访问服务点SAP)
接口(访问服务点SAP):上层使用下层的服务的入口
例如:传输层和网络层的接口,逻辑上属于网络层。
服务 Service
服务:下层为相邻上层提供的功能调用(垂直)
下层为上层提供的功能调用(即原语)主要分为:Request、Indiction、Response、Confirmation
请求(Request) :由服务用户发往服务提供者,请求完成某项工作。
指示(Indication) :由服务提供者发往服务用户,指示用户做某件事情。
响应(Response) :由服务用户发往服务提供者,作为对指示的响应。
证实(Confirmation) :由服务提供者发往服务用户,作为对请求的证实。
注意:在一层内完成的全部功能并非都称之为服务,只有那些能够被高一层实体“看得见”的功能才能称为服务。
服务原语
:上层使用下层所提供的服务必须与下层交换一些指令,这些指令在OSI中被称为服务原语。
OSI 7层网络互连模型
OSI(Open System Interconnect)
,即开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在 1985 年研究的网络互连模型。
ISO 为了更好的使网络应用更为普及,推出了 OSI 参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
OSI 定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO 开放互连系统参考模型。
(1) 物理层 (Physical Layer)
物理层是 OSI 参考模型的最低层,它利用传输介质为数据链路层提供物理连接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。
它关心的问题有:多少伏电压代表 1 ?多少伏电压代表 0 ?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。
(2) 数据链路层 (Data Link Layer)
数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。
数据帧中包含物理地址(又称 MAC 地址)、控制码、数据及校验码等信息。该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。
此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。
(3) 网络层 (Network Layer)
网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。
另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。
(4) 传输层 (Transport Layer)
传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
传输层传送的协议数据单元称为段或报文。
(5) 会话层 (Session Layer)
会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。
(6) 表示层 (Presentation Layer)
表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。
数据压缩和加密也是表示层可提供的转换功能之一。
(7) 应用层 (Application Layer)
应用层是 OSI 参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。
通信子网(数据通信)、资源子网(数据处理)
通信子网(数据通信)
:负责完成网络数据的传输,转发等通信处理任务。一方面,作为与资源子网的主机,终端链接的接口,将主机和终端连入网内;另一方面,作为通信子网中的分组存储转发节点,完成分组的接收、校验、存储、转发等功能,实现将源主机报文准确发送到目的主机的作用。
通信子网(数据通信):物理层、数据链路层、网络层、传输层
资源子网(数据处理)
:由主机系统,终端、终端控制器、联网外设、各种软件资源与信息资源组成。 资源子网实现全网的面向应用的数据处理和网络资源共享。
通信子网(数据通信):会话层、表示层、应用层
OSI 7层参考模型图解
OSI 7层参考模型的具体功能介绍
TCP / IP、5层网络架构
OSI 模型和 TCP / IP 模型异同比较?
OSI 模型和 TCP / IP 相同点
① OSI 参考模型与 TCP/IP 参考模型都采用了层次结构。
② 都能够提供面向连接和无连接两种通信服务机制。
OSI 模型和 TCP / IP 不同点
OSI 采用的七层模型;
TCP / IP 是四层结构。
TCP / IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述;
OSI 参考模型对服务和协议做了明确的区分。
OSI 先有模型,后有协议规范,适合于描述各种网络;
TCP / IP 是先有协议集然后建立模型,不适用于非 TCP / IP 网络。
TCP / IP 一开始就提出面向连接和无连接服务;
而 OSI 一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。
OSI 参考模型虽然被看好,但将网络划分为七层,实现起来较困难;
相反,TCP / IP 参考模型虽然有许多不尽人意的地方,但作为一种简化的分层结构还是比较成功的。
面向无连接和面向连接的最主要区别是什么?
其一:面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。而面向无连接没有这么多阶段,它直接进行数据传输。
其二:面向连接的通信具有数据的保序性, 而面向无连接的通信不能保证接收数据的顺序与发送数据的顺序一致。
为什么 TCP / IP 去除了表示层和会话层?
OSI 参考模型在提出时,他们的理想是非常好的,但实际上,由于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的。
例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP / IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了。
总结:会话层,表示层和应用层都是在应用程序内部实现的,应用程序之间无法实现代码的抽象共享,因此应用程序维度无法实现分层。
5层参考模型的功能介绍
5层网络架构(5层参考模型)封装与解封装过程
物理层
计算机网络体系结构中的物理层,就是要解决在各种传输媒体上传输比特0和1的问题。进而给数据链路层提供透明传输此特流的服务。
物理层基本概念介绍
物理层为了解决在各种传输媒体上传输比特0和1的问题,主要有以下四个任务:
机械特性
:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。
电气特性
:指明在接口电缆的各条线上出现的电压的范围。
功能特性
:指明某条线上出现的某一电平的电压表示何种意义。
过程特性
:指明对于不同功能的各种可能事件的出现顺序。
数据通信基础知识
数据通信系统
包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)
数据通信的目的:传送消息
典型的数据通信模型图例:
数据:传送信息的实体,通常是有意义的符号序列。
信号:数据的电气 / 电磁的表现,是数据在传输过程中的存在形式。
数字信号:代表消息的参数取值是离散的。
模拟信号:代表消息的参数取值是连续的。
信源:产生和发送数据的源头。
信宿:接收数据的终点。
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
通信双方信息的交互方式:3种通信方式
单向通信(单工通信)
:只能有一个方向的通信而没有反方向的交互。(需要1条信道)
双向交替通信(半双工通信)
:通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。(需要2条信道)
双向同时通信(全双工通信)
:通信的双方可以同时发送和接收信息。(需要2条信道)
基带信号(基本频带信号):来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。
两种数据的传输方式:串行传输
(速度慢、费用低、适合远距离)、并行传输
(速度快、费用高、适合近距离,如:计算机内部数据传输)
码元、波特、速率、带宽
什么是码元?
码元
是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。
什么是波特?
数字信号由码元组成,码元携带一定量的信息。定义单位时间传输的码元数为码元速率,单位为码元/秒,又称为波特(Baud)。
由此可见,波特是一种单位,是码元传输速率(也称传码率)的单位,也可以理解成单位时间内载波调制状态变化的次数。
注意:“波特”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate 是赘字)。
单位“波特”本身就代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。
什么是速率?
速率
也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
码元传输速率
:别名码元速率,波形速率,调制速率,符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或者信号变化次数),单位是波特。1波特表示数字通信系统每秒传输一个码元。码元速率和码元进制数无关。
信息传输速率
:别名信息速率,比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特 / 秒(b/s)。
两者关系:若一个码元携带 n bit 的信息量,则 M Baud 的码元传输速率所对应的信息传输速率为 M × n bit / s。
若一个码元有4个状态值时,该码元携带的信息量?在9600波特对应的信息传输速率?
在4个状态值时,按上述的推理可以知道( 2^2=4),每2个比特组成一个码元。即该码元携带2个bit的信息量。
在9600RB条件下,利用 Rb 公式,就可以直接得到 = 9600 log24 = 9600 × log24 = 9600 × 2 = 19200 bps,即信息传输速率 = 19200 bps
什么是带宽?
带宽
:表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,常用来表示网络的通信线路所能传输数据的能力。单位是b/s。
速率与带宽的区别?
速率是实际上的发送速率,带宽是理想状况下的发送速率
奈氏准则和香农定理
码元在信道传输失真问题:
影响失真程度的因素: 1. 码元传输速率 2. 信号传输距离 3. 噪声干扰 4. 传输媒体质量
失真的一种现象 - 码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象。
理想低通信道:
什么是“低通”呢?
:简单说就是带宽受限,“低通”即指低频通过,“理想低通信道”即指理想的能让部分低频率信号通过的信道(只要不要超过这个低频率信号范围都可无失真的通过)。
什么是“信道”呢?
:信道一般用来表示向某一个方向传送信息的媒体,因此一条通信电路往往含一条发送信道和一条接收信道。而“理想的信道”指没有噪声的信道。
什么是“噪声”呢?
:指因传输系统造成的各种失真,例如导体中电子的热振动、闪电引起脉冲错乱等。
奈氏准则
奈奎斯特定理
:奈奎斯特(Nyquist)定理:又称奈氏准则,指在理想低通(无噪声,带宽受限)的信道中,极限码元传输率为 2W Baud。其中,W是理想低通信道的带宽,单位为Hz。(当然只有在这两个公式里带宽采用Hz,其他地方采用bps)
奈氏准则:(目的是为了避免码间串扰)
♥ 对于奈氏准则,可得以下结论:
1)在任何的信道中,码元传输的速率是有限的;(如果过大,会出现严重的码间串扰问题,使得接收方正确识别非常困难)
2)信道的频带越宽(能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输;
3)奈氏准则给出了码元传输速率的限制,并没有对信息传输速率给出限制;
4)由于码元的传输速率受限于奈氏准则,要提高数据的传输速率,要采用多元的调制方法。
例题:在无噪声的情况下,若某通信链路的带宽为 3k Hz,采用 4 个相位,每个相位具有 4 种振幅的 QAM 调制技术,则该通信链路的最大数据传输率是?
信号有 4 x 4 = 16 种变化,最大数据传输率 = 2 x 3 k x 4 = 24 k b/s
补充内容:什么是相位?
香农定理
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。
香农定理(Shannon Theory)
:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。
信噪比 = 信号的平均功率 / 噪声的平均功率,常记为S/N,并用分贝(dB)作为度量单位。信噪比 dB = 10 log10 (S / N)
香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。
在有随机热噪声的信道上传输数据信号时,信道容量Rmax与信道带宽W,信噪比S/N关系为:
Rmax=W*log2(1+S/N)。注意这里的log2是以2为底的对数。
♥ 对于香农定理,可以得出以下结论:
1)信道的带宽或信噪比越大,则信息的极限传输速率越高;
2)对一定的带宽和一定的信噪比,信息传输速率就确定了;
3)只要信息的传输速率低于信道的传输速率,就一定能找到某种方法来实现无差错的传输;
4)香农定理得出的为极限传输速率,实际信道能达到的传输速率要比它低不少;
5)若带宽W或信噪比 S/N 没有上限(不可能),信道的极限信息传输速率也就没有上限。
例:电话系统的典型参数是信道带宽为3000 Hz,信噪比为30 dB,则该系统最大数据传输速率是多少?
30 dB = 10 log2 (S/N),则 S / N = 1000
信道的极限数据传输速率 = W log2 (1 + S/N) = 3000 x log2 (1 + 1000) ≈ 30k b/s
俗话说:“有线的资源是无限的,而无线的资源却是有限的。”无线信道并不是可以任意增加传送信息的速率,它受其固有规律的制约,就像城市道路上的车一样不能想开多快就开多快,还受到道路宽度、其他车辆数量等因素影响。这个规律就是香农定理。
奈氏准则、香农定理比较?
考试的时候选用提示:看是否给出 V(1个码元对应几个bit),还有是否是无噪声条件下?
重要的区别:奈氏准则只是限制码元传输速率有上限,而香农定理才是限制数据传输速率的上限。
考题例子
:进制信号在信噪比为 127 : 1 的 4k Hz 信道上传输,最大数据速率可达到多少?
奈氏准则:2 × 4k × log2 2 = 8 k bps = 8000 b/s
香农定理:4k × log2 (1 + 127) = 28 k bps = 28000 b/s
结果:那个小,选哪个,所以最大数据传输速率为 8000 b/s。
信号的编码与调制
基带信号、宽带信号
基带信号
:将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)
来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。
宽带信号
:将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)
把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)
在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)
数字信号和模拟信号的区别
数字信号(Digital Signal)
定义:指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示。
表示形式:① 断续变化的电压脉冲(如我们可用恒定的正电压表示二进制数1,用恒定的负电压表示二进制数0)② 光脉冲
模拟信号(Analog Signal)
定义:指信息参数在给定范围内表现为连续的信号/ 或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。
表示形式:① 连续变化的电磁波(如无线电与电视广播中的电磁波)② 电压信号(如电话传输中的音频电压信号)
模拟信号转数字信号:模拟信号的数字化一般需要三个步骤:采样、量化和编码。
随着采样率和量化等级的增加,转换后的数字信号的曲线也就越能贴近模拟信号的曲线(对比上图的原曲线和黄色曲线)。
编码与调制的区分
物理层传输介质、设备
传输介质及分类
传输介质也称传输媒体 / 传输媒介,它就是数据传输系统中在发送设备和接收设备之间的数据通路。
传输媒体并不是物理层,传输媒体在物理层的下面,因为物理层是体系结构的第一次,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。
物理层则因为规定了电气特性,因此能够识别所传输的比特流。
导向性传输介质:1. 双绞线(最常用的传输介质) 2. 同轴电缆(主要用于有线电视系统) 3. 光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是10MH,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
光纤的特点:1. 传输损耗小,中继距离长,对远距离传输特别经济。2. 抗雷电和电磁干扰性好。
3. 无串音干扰,也不易被窃听或截取数据。4. 体积小,重量轻。
非导向性传输介质分三种:分线电波,微波,(红外线、激光)
物理器设备
中继器
:中继器又称为转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到所需要的要求,进而扩大网络传输的距离。
中继器是没有存储转发功能的,因此是不能连接两个速率不同的网段,中继器两端的网段一定要使用同一个协议。
集线器
:集线器实质上是一个多端口的中继器,它也工作在物理层。(连在集线器的工作主机将会平分带宽)
数据链路层
数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层。
数据链路层必须具备一系列相应的功能,主要有:
-
如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位)
-
如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使之与接收方相匹配
-
在两个网路实体之间提供数据链路通路的建立、维持和释放管理
数据链路层基本概念介绍
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
数据链路层功能介绍
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧(把网络层的数据进行封装成帧:打帧头帧尾)
功能四:流量控制(限制发送方)
功能五:差错控制(帧错、位错)
封装成帧和透明传输
封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界
(确定帧的界限)。
帧同步
:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
组帧(四种方法)
组帧的四种方法:1. 字符计数法,2. 字符(节)填充法,3. 零比特填充法,4. 违规编码法。
字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
字符填充法
就是在帧的开始部分和结束部分分别加上一个开始字段和结束字段,但是这样会产生一个问题,当传输的帧是非ASCALL的文件时,若数据部分有和开始字段或结束字段相同的字段怎么办?这个时候就需要字符填充法进行透明传输
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
当传送的帧是由非ASCIlI码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。
就是在数据中出现的与开始和相同的字段是,在其前面加上转义字符ESC,接收方收到数据后,发现前面有ESC就知道这是数据而不是控制字段,同时将ESC去掉还原出原来的数据
零比特填充法
操作:① 在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。② 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
违规编码法
违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境。局域网IEEE802标准就采用这种方法。
结论: 由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果〉及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
差错控制(检错、纠错编码)
由于数据通信系统传输特性的不理想和外部干扰的存在,传输中出现差错是不可避免的。
差错控制的目的:确保所有的帧按顺序正确递交到数据链路层用户(网络层实体)。
差错的分类:随机差错(随机的、单个的),突发差错(成片的、连续的)
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
奇偶效验码
奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。
一个二进制码字,如果它的码元有奇数个1,就称为具有奇性。例如,码字“10110101”有五个1,因此,这个码字具有奇性。同样,偶性码字具有偶数个1。注意奇性检测等效于所有码元的模二加,并能够由所有码元的异或运算来确定。
具体方法:通过加入校验位后的1个数是奇数还是偶数,可分为两种:① 奇校验:1的个数为奇数 ② 偶校验:1的个数为偶数
奇偶效验码特点:只能检查出奇数个比特错误,检错能力是50%
循环冗余码 CRC
Cyclic Redundancy Check
:即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。
CRC算法的是以GF(2)(2元素伽罗瓦域)多项式算术为数学基础的,听起来很恐怖,但实际上它的主要特点和运算规则是很好理解的。
GF(2)多项式中只有一个变量x,其系数也只有0和1,如:
1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 1*x^2 +1*x^1 + 1*x^0
计算冗余码的步骤:① 加0:假设生成多项式G(X)的阶是R,则加R个0 ② 模2除法:数据加0后除以多项式,余数为冗余码 / FCS / CRC 效验码的比特序列。
接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数R
- 余数为0,判定这个帧没有差错,接受。
- 余数为不为0,判定这个帧有差错(无法确定到位),丢弃。
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
海明效验码
海明码的特点:2r >= k + r + 1 (r 为冗余信息位,k 为信息位)
例如发送的数据是 D = 101101,数据的位数 k = 6,满足不等式的最小 r = 4,也就是说 D = 101101 的海明码应该有 6 + 4 = 10 位,其中原数据 6 位,效验码 4 位。
结论:若采用的是偶校验,四个校验位Gi全为0,表示收到的数据正确;若采用的是奇校验,四个校验位Gi全为1,表示收到的数据正确
流量控制与可靠性传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制:点到点;传输层的流量控制:端到端;
网络中进行数据传输时,如果发送方发送速率过快,超过了接收方的接收速度,会发生丢包等网络错误,TCP提供一种机制,让发送方根据接收方接收能力, 控制发送的速率,这种做法称为流量控制。流量控制是保证TCP可靠性的一个方面。
停止等待协议、滑动窗口协议到底属于哪一层?
早些时候,链路的质量还没有那么可靠的时候,就需要数据链路层负责起可靠传输的功能,就会用到停止等待协议
、滑动窗口协议
;随着链路质量的不断发展,链路的通信已经非常的可靠,这个时候就不需要数据链路层担负可靠传输的任务了,也就用不着停止等待协议、滑动窗口协议。
不管停止等待协议、滑动窗口协议是在数据链路层还是传输层,其功能都是进行可靠传输,只不过数据链路层的传输对象是帧,传输层的传输对象是分组。
停止 - 等待协议
停止等待协议(stop-and-wati),是数据链据层一个很重要的协议,基本原理就是说每发送一个分组,必须要停下来等待,等接收方确认后才可继续发送下一个分组。如果没收到确认,就只能超时重传。
为什么要有停止 - 等待协议?
除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。
什么是丢包?:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。
优点:很简单,每次发送一个分组就等待确认。缺点:信道利用率不高,每次都要等。
情况一:数据帧丢失或检测到帧出错
情况二:ACK丢失(左图) 情况三:ACK延迟(右图)
注意:1. 每发完1个帧,必须保留它的副本。 2. 数据帧和确认帧必须编号。
信道利用率
:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
信道利用率 = ( L / C )/ T
:L 是 T 内发送 L 比特数据;C 是发送方数据传输率;T 是发送周期(从开始发送数据,到收到第一个确认帧为止)
信道吞吐率 = 信道利用率 * 发送方的发送速率
例题:一个信道的数据传输率为 4k b/s,单向传播时延为 30 ms,如果使停止 - 等待协议的信道最大利用率达到 80 %,要求的数据帧长度至少为( )。
80% = ( L / 4 ) / [ ( L / 4 ) + 2 * 30 ms ] => 答:L = 960 bit
后退 N 帧协议(GBN)
GBN (Go-Back-N)
:产生背景:停止等待协议的弊端
后退N帧协议和停止等待协议的主要区别在于后退N帧协议的发送窗口包含多个帧序号;而选择重传机制区别于上二者的主要特点是:发送窗口和接收窗口均有多个帧序号。
滑动窗口的长度
滑动窗口长度不可以无限增大。若采用 n 个比特对帧窗口编号,2n 个数字,满足 1 <= WT <= 2n - 1,因为如果发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
GBN发送方必须响应的 3 件事
上层调用
:上层要发送数据时,发送方先检査发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些媺据,窗口不满时再发送帧)。
收到了一个ACK
:GBN协议中,对 n 号帧的确认采用累积确认
的方式,标明接收方已经收到 n 号帧和它之前的全部帧。
超时事件
:协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果岀现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事
正确时:如果正确收到 n 号帧,并且按序,那么接收方为 n 帧发送一个ACK,并将该帧中的数据部分交付给上层。
非正确时:其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK,接收方无需缓存仼何失序帧,只需要维护一个信息: expected seq num(下一个按序接收的帧序)
运行中GBN流程
例题测试:答案选 C(3 号帧确认其实就是 0 ~ 3 号全部已经成功接收成功了)
GBN协议性能分析:因连续发送数据帧而提高了信道利用率,在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
选择重传协议(SR)
选择重传协议(Selective-Repeat, SR)
:选择重传协议只重传真正丢失的分组.
背景:由于GBN协议的弊端,在累积确认的机制下,如果有错误的话,则发送方将会批量重传,这样使效率降低。
可不可以只重传出错的帧?
解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
选择重传协议的发送窗口
SR发送方必须要响应的 3 件事
上层的调用
:从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
收到了一个ACK
:如果收到了ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记记为已接收,如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处,如果窗口移动了,并且有序号在窗口内的未发送帧,则发送这些帧。
超时重传
:每一个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方要做的事
来者不拒(窗口内的帧)
:SR接收方将确认一个正确接收的帧而 不管其是否按序,失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
运行中SR流程
滑动窗口可以无限吗?
最大发送窗口最好等于最大接收窗口。(大了会溢出,小了没意义)WTmax = WRmax = 2n-1
例题测试:答案选 A
信道划分 介质访问控制
传输数据使用的两种链路
点对点链路
:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。
广播式链路
:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)
介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
信道划分介质访问控制图例
多路复用技术的基本原理
多路复用技术的基本原理是:各路信号在进入同一个有线的或无线的传输媒质之前,先采用调制技术把它们调制为互相不会混淆的已调制信号,然后进入传输媒质传送到对方,在对方再用解调(反调制)技术对这些信号加以区分,并使它们恢复成原来的信号,从而达到多路复用的目的。
拓展:多路复用器的存在意义是为了充分利用通信信道的容量,大大降低系统的成本。
信道划分介质访问控制:频分多路复用 FDM
Frequency Division Multiplexing
:按频率划分的不同信道,用户分到一定的频带后,在通信过程中自始至终都占用这个频带,可见频分复用的所有用户在同样的时间占用不同的带宽资源(带宽指频率带)
优点:充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。
信道划分介质访问控制:时分多路复用 TDM
Time Division Multiplexing
:按时间划分成不同的信道,每一个时分复用的用户在每一个TDM帧中占用固定序列号的间隙,可见时分复用的所有用户是在不同时间占用同样的频带宽度。
改进的时分复用 => 统计时分复用STDM(提高信道复用率)
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
信道划分介质访问控制:波分多路复用 WDM
Wavelength Division Multiplexing
:就是光的频分复用,使用一根光纤同时传输多个频率很接近的光载波信号,因为光载波频率很高,习惯用波长而不用频率表示使用的光载波,就使用了波分复用的名词。
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
波分多路复用技术的出现是具有划时代意义的,WDM系统具有以下方面的优势?(了解)
- 高容量:可以充分利用光纤巨大带宽资源,使传输容量比单波长增加几十上百倍;
- 低成本:在大容量长途传输时节省大量光纤和3R再生器,传输成本显著下降;
- 保护投资:在网络升级和扩容时,无需对光缆线路进行改造,增加波长即可开通或叠加新业务;
- 透明性:与信号速率、调制格式无关,方便引入大带宽新业务;
- 波长路由:利用WDM选路可以实现网络交换和恢复从而实现未来透明全光网络。
波分复用就是光的频分复用,在一根光纤上传输不同波长(就是不同频率)的光。光载波的频率很高,因此习惯上用
波长
而不用频率
来表示所使用的光载波,光速 = 频率 x 波长
信道划分介质访问控制:码分多路复用 CMD
Code Division Multiplexing
:更常用的是码分多址(Code Division Multiple Access, CDMA),每一个用户可以在同样的时间使用同样的频带进行通信,由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
码分复用最初用于军事通信,因为这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现,后来才广泛的使用在民用的移动通信中,它的优越性在于可以提高通信的话音质量和数据传输的可靠性,减少干扰对通信的影响,增大通信系统的容量,降低手机的平均发射功率等。
每个用户分配一个唯一的 m bit 码片序列(chipping sequence),其中“0”用“-1”表示,“1”用“+1”表示。由于各用户既不分割频率,也不分割时间,各用户使用相同频率载波,利用各自码片序列编码数据。
编码信号 = 原始数据 × 码片序列
如发送比特1(+1),则发送自己的 m bit 码片序列
如发送比特0(-1),则发送该码片序列的 m bit 码片序列的反码
由于每个用户所用频率相同,故每个用户发送的信息在信道中必然相互叠加,为了让信息之间互不干扰,各用户码片序列必须满足相互正交。
一个用户的码片序列只有与自己相乘时得1,与其他码片序列相乘都为0
一个用户的码片序列只有与自己的反码相乘时的0,与其他码片序列的反码相乘都为0
CDMA 例题一:
共有4个站进行码分多址通信。4个站的码片序列:
A:(-1-1-1+1+1-1+1+1) B:(-1-1+1-1+1+1+1-1)
C:(-1+1-1+1+1+1-1-1) D:(-1+1-1-1-1-1+1-1)
现收到这样的码片序列S:(-1+1-3+1-1-3+1+1)。问哪个站发送数据了?
发送数据的站发送的是0还是1?
答案如下:
S • A=(+1-1+3+1-1+3+1+1)/ 8 = 1 => A 发送 1
S • B=(+1-1-3-1-1-3+1-1)/ 8 = -1 => B 发送 0
S • C=(+1+1+3+1-1-3-1-1)/ 8 = 0 => C 无发送
S • D=(+1+1+3-1+1+3+1-1)/ 8 = 1 => D 发送 1
CDMA 例题二:
站点 A、B、C 通过 CDMA 共享链路,A、B、C 的码片序列(chipping sequence)分别是 (1,1,1,1)、(1,-1,1,-1) 和 (1,1,-1,-1) 。若 C 从链路上收到的序列是 (2,0,2,0,0,-2,0,-2,0,2,0,2),则 C 收到 A 发送的数据是( 101 )
随机访问 介质访问控制
随机访问介质访问控制:ALOHA 协议、CSMA 协议、CSMA / CA 协议、CSMA / CD 协议
ALOHA 协议
纯 ALOHA 协议工作原理:
任何一个站都可以在帧生成后立即发送(可能冲突),并通过信号的反馈检测信道以确定发送是否成功;
如发送失败,则经随机延时后再发送。
每个站点可在任意时间发送数据(不关心信道是否已被占用)
两个以上站点都在发送数据时就会发生冲突
时隙 ALOHA(S - ALOHA)协议
用时钟来统一用户的数据发送。办法是将时间分为离散的时间片,用户每次必须等到下一个时间片才能开始发送数据,从而避免了用户发送数据的随意性,减少了数据产生冲突的可能性,提高了信道的利用率。
在时隙ALOHA系统中,计算机并不是在用户按下回车键后就立即发送数据,而是要等到下一个时间片开始时才发送。
Aloha 和 时隙 Aloha 性能分析
纯 Aloha
:对于局域网 LAN,反馈信息很快就可以得到;而对于卫星网,发送方要在 270 ms 后才能确认数据发送是否成功。通过研究证明,纯 ALOHA 协议的信道利用率最大不超过 18.4%(1 / 2e)
时隙 Aloha
:
信道效率:冲突危险区是 纯 ALOHA 的一半,所以,与纯 ALOHA 协议相比,降低了产生冲突的概率,信道利用率最高为 36.8%。
重发策略:同纯 ALOHA ,等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止。
代价:需要全网同步;可设置一个特殊站点,由该站点发送时钟信号。
载波监听多路访问协议 CSMA(carrier sense multiple access)
CS
:载波侦听 / 监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA
:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
协议思想:发送帧之前,监听信道
1 - 坚持 CSMA
:坚持指的是对于监听信道忙之后的坚持。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持 CSMA
:非坚持指的是对于监听信道忙之后就不继续监听。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
:p - 坚持指的是对于监听信道空闲的处理。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则以 p 概率直接传输,不必等待;概率1 - p 等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像 1 - 坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是坚持把数据发完,造成了浪费
3 种 CSMA 对比总结
CSMA / CD 协议(Carrier Sense Multiple Access with Collision Detection)
载波帧听,多路访问 / 冲突检测
载波侦听:多个计算机在发送数据帧前,首先帧听是否空闲,如果空闲,则发送数据帧;否则等待,继续帧听直到信道空闲。
多路访问:许多计算机以多点接入方式连接在一根总线上,都有访问总线的权利。
控制方式原理
:各工作站在发送数据前,需先侦听信道是否空闲。若空闲,则立即发送数据;若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突;若侦听到冲突,则所有节点立即停止发送数据,等待一段随机时间,再重新尝试发送。
控制方式作用
:提供寻址和媒体存取的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信而不相互冲突。
CSMA / CD 协议特点:
1、 使用 CSMA/CD 协议的以太网不能进行全双工通信,而只能进行双向交替通信(半双工通信)。
2、 计算机发送数据帧之后的一小段时间内,存在着遭遇冲突的可能性。
3、 冲突不确定性使整个以太网平均数据率远小于以太网最高数据率。
CSMA / CA 协议(Carrier Sense Multiple Access with Collision Avoidance)
载波侦听,多路访问 / 冲突避免
采用该协议要求设备要主动避免冲突而非被动侦测的方式来解决冲突问题。避免冲突的方法主要有两个:
1、监听到信道空闲时,并不是立即发送,而是等待一段时间再发送数据。
2、先发送一个很小的信道侦测帧 RTS,如果收到最近的接入点返回的 CTS,就认为信道是空闲的,然后再发送数据
协议的主要流程如下:
1、 首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。
2、 接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧 ACK。
3、 发送端收到 ACK 帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。
CSMA / CD 与 CSMA / CA 两者区别
1、 CSMA/CD主要着眼点在冲突的侦测,当侦测到冲突时,进行相应的处理,要求设备能一边侦测一边发送数据。
2、CSMA/CA主要着眼点在冲突的避免,协议里也看到经常是等待一段时间再做动作,通过退避尽量去避免冲突,还有就是先发送一些特别小的信道侦测帧来测试信道是否有冲突。
应用领域:CSMA / CD主要适用以太网。 CSMA / CA主要适用无线局域网。
轮询访问 介质访问控制
介质访问控制 ( Multiple Access Control ) 协议 : 简称 MAC
① 信道划分 MAC 协议
:基于多路复用技术划分资源;
网络负载重时,信道利用率高(公平);网络负载轻时,信道利用率低
② 随机访问 MAC 协议
:用户根据随机意愿 发送信息,发送信息时,可以独占信道带宽;
网络负载重时,产生冲突开销;网络负载轻时,共享信道效率高 , 单个站点可使用全部信道带宽
③ 轮询访问 MAC 协议
:既不产生冲突,又占用全部带宽;
主要包含:轮询协议;令牌传递协议 ( 重点 )
轮询协议
轮询协议:主结点轮流“邀请”从属节点发送数据。
优点:每一次只允许一台主机发送数据 , 不会产生冲突;缺点:轮询开销,等待延迟,单点故障。
令牌传递协议
令牌帧
:特殊格式的 MAC 控制帧,没有任何信息。
令牌作用
:控制信道使用,确保同一时刻,只有一个站点独占信道。
发送数据前提
:每个节点都可以在令牌持有时间内,获得发送数据的权利。该时间并不是无限持有的,有时间限制。
优点 : 令牌环网没有数据碰撞冲突;缺点:令牌开销、等待延迟、单点故障
令牌传递协议应用场景:令牌传递协议应用于令牌环网(物理上是 星型拓扑 结构;逻辑上是 环形拓扑 结构)采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
局域网 - 总线型 IBM 令牌环
以太网 MAC 帧格式
现阶段成熟的局域网技术有三种:以太网(Ethernet)、令牌环(Token Ring)和光纤分布式数据接口(FDDI),其中以太网技术逐步成为局域网技术的主流。
以太网
是一种计算机局域网技术。IEEE 组织的 IEEE 802.3 标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI 和 ARCNET。
以太网在局域网各种技术中占统治性地位
1.造价低廉(以太网网卡不到100块)
2.是应用最广泛的局域网技术
3.比令牌环网、ATM 网便宜,简单
4.满足网络速率要求:10M b / s ~ 10G b / s
以太网提供无连接、不可靠的服务
无连接
:发送方和接收方之间无 “ 握手过程 ” 。
不可靠
:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
10BASE - T 以太网
BASE 前的数字表示网络的数据传输率
比如说:10BASE 指数据传输率为 10Mbps,1000BASE 为 1000Mbps
BASE:基带传输,即未经过调制,不能复用的传输,与其对应的 BROAD 指宽带传输(多用于有线电视网)
BASE 后的字母或数字指的是传输介质,反应介质特点。
比如说:10BASE - T 中的 T 指双绞线。
适配器
适配器是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。
但是现在的计算机主板上就已经嵌入了适配器,因此现在的计算机上的适配器不是独立的。
适配器的作用
1. 要进行数据串行传输和并行传输的转换。
2. 对数据进行缓存。
3. 实现以太网协议。
4. 管理该适配器的设备驱动程序安装在计算机的操作系统。
以太网 MAC 帧
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC 位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。
在 OSI 模型中,第三层网络层负责 IP 地址,第二层数据链路层则负责 MAC 位址 。
MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的 MAC 地址 。
MAC 地址的长度为 48 位 ( 6 个字节 ),通常表示为 12 个 16 进制数,例如:00-16-EA-AE-3C-40,就是一个 MAC 地址。
前 3 个字节,16 进制数 00-16-EA 代表网络硬件制造商的编号,它由 IEEE(电气与电子工程师协会)分配。
后 3 个字节,16 进制数 AE-3C-40 代表该制造商所制造的某个网络产品(如网卡)的系列号。
只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性 。
常用的以太网 MAC 帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。
IEEE 802.3 和 以太网 的关系
以太网应当按 DIX Ethernet V2 标准,但是它与 IEEE 802.3 只有一丢丢不同(帧格式),因此通常将 802.3 局域网简称为以太网。
IEEE 802.3标准是一种基带总线型的局域网标准,它描述物理层和数据链路子层MAC子层的实现方法。
最常用的 MAC 帧是以太网V2的格式图示:
以太网 MAC 帧各字段功能
MAC 层要求定界字符之后的内容要在 64 字节到 1518 个字节之间,其中包括 14 字节的目标和源 MAC,4 字节的 CRC32 值。并且报文帧之间的传递间隔要大于 9.6 us。
在数据链路层,对于上层网络层的 IP 数据报 是要打 帧头 和 帧尾 的。
类型字段 ( 2 个字节)
:用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议;
数据字段 ( 46 - 1500 )
:正式名称是 MAC 客户数据字段最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度;
FCS 字段 ( 4 字节)
:当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节;
前导码(7 字节)
:在帧的前面插入的 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。
帧开始定界符(1 字节)
:在帧的前面插入的 8 字节中的第二个字段是帧开始定界符,表示后面的信息就是 MAC 帧。
帧序列检测 FCS(4 字节)
:计算机网络差错检测(帧检验序列 FCS 计算方法)用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。
这个字段只是提供检错功能,并不提供纠错功能。该效验和效验的范围为:目的地址,源地址,类型,数据等字段。
WLAN 无线局域网技术
IEEE 802
标准所描述的局域网参考模型只对应 OSI 参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层 LLC 子层和介质访问控制 MAC 子层。
WLAN(无线局域网络)
:英文全称是Wireless Local Area Network,是一种利用射频Radio Frequency RF
技术进行数据传输的系统。
WLAN 无线局域网 和 WiFi 区别
WiFi(WirelessFidelity,无线保真)
:技术是一个基于 IEEE802.11系列标准的无线网路通信技术的品牌,目的是改善基于 IEEE802.11 标准的无线网路产品之间的互通性,由 Wi-Fi 联盟 ( Wi-Fi Alliance ) 所持有。
简单来说 WIFI 就是一种无线联网的技术,以前通过网络连接电脑,而现在则是通过无线电波来连网。
WiFi 和 WLAN 的区别主要在于发射信号的功率不同,覆盖范围不同。WiFi 的覆盖范围则可达300英尺左右(约合90米),WLAN 最大(加天线)可以到 5 KM 甚至更远。WiFi 包含于 WLAN 中,是一种应用最为广泛的 WLAN 标准。
不论是 iPhone 还是安卓手机用户,只要知道 WiFi 和 WLAN 都是指无线网络,用来无线上网即可,一般我们普遍叫 WiFi 比较多。
从生活中的实际例子也可以看到,WiFi 无线网络主要由路由器或者无线网卡、无线 AP 产生,传速的距离有限,因此一般也只是家用或者一般的中小企业采用。而 WLAN 网络在很多校园都是,想中国移动与电信都在一些地区有 WLAN 网络,它的最大亮点是一个 WLAN 网络信号可以覆盖整个校园,这就是我们能感受到的区别。
常见无线通信协议
常见无线通信协议:蓝牙(BlueTeeth)、WiFi、蜂窝(Zigbee)、ModBus、PROFINET
802.11 的 MAC 帧头格式
首先要说明的是 mac 802.11的帧格式很特别,它与TCP / IP这一类协议不同,它的长度是可变的。不同功能的数据帧长度会不一样。这一特性说明 mac802.11 数据帧显得更加灵活,然而,也会更加复杂。
地址 1 : RA 接收端 , 接收端 基站 地址 ;
地址 2 : TA 发送端 , 发送端 基站 地址 ;
地址 3 : DA 目的地址 , 目标主机的 MAC 地址 ;
地址 4 : SA 源地址 , 发送端的 MAC 地址 ;
有固定基础设施无线局域网
无限局域网分为两种:有固定基础设施的无线局域网、无固定基础设施的无线局域网自组网络(ad hoc network)
数据链路层传输介质、设备
物理层扩展以太网,主机和集线器之间距离不能超过100m,否则失真会非常严重。所以要进行物理扩展(光纤、集线器),当然数据链路层也需要扩展以太网,常用的设备是 网卡(网络适配器)、网桥 和 交换机。
链路层扩展以太网 网桥
网桥(Bridge)
:根据MAC帧的目的地址对帧进行转发和过滤,当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃。
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
网桥优点:
1.过滤通信量,增大吞吐量(一个冲突域带宽100,那么3个冲突域带宽最大可以达到300)
2.扩大了物理范围
3.提高了可靠性(某一冲突域内发生问题不会影响其他冲突域)
4.可以互连不同物理层、不同MAC子层和不同速率的以太网。
透明网桥
:透明指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备 - 自学习。
源路由网桥
:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部。方法:源站以广播方式向欲通信的目的站发送一个发现帧。
链路层扩展以太网 交换机
交换机(Switch)
:数据链路层设备,作用是转发数据包。和网桥一样它也是通过识别帧中的MAC地址,然后对特定的端口进行转发的。以太网交换机可以独占信号带宽。
直通式交换机
:查完目的地址(6B)就立刻转发,延迟小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机
:将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可以支持具有不同速率的端口的交换。
交换机与网桥的区别
局域网交换机的基本功能与网桥一样,具有帧转发、帧过滤和生成树算法功能。但是,交换机与网桥相比还是存在以下不同:
1、端口数目的区别
:交换机工作时,实际上允许许多组端口间的通道同时工作。所以,交换机的功能体现出不仅仅是一个网桥的功能,而是多个网桥功能的集合。即网桥一般分有两个端口,而交换机具有高密度的端口。
2、分段能力的区别
:由于交换机能够支持多个端口,因此可以把网络系统划分成为更多的物理网段,这样使得整个网络系统具有更高的带宽。而网桥仅仅支持两个端口,所以,网桥划分的物理网段是相当有限的。
3、传输速率的区别
:交换机与网桥数据信息的传输速率相比,交换机要快于网桥。
4、数据帧转发方式的区别
:网桥在发送数据帧前,通常要接收到完整的数据帧并执行帧检测序列 FCS后,才开始转发该数据帧。交换机具有存储转发和直接转发两种帧转发方式。
直接转发方式在发送数据以前,不需要在接收完整个数据帧和经过 32bit 循环冗余校验码 CRC 的计算检查后的等待时间。
冲突域 和 广播域
冲突域
:一种物理分段,指连接到同一导线上所有工作站的集合、同一物理网段上所有节点的集合或是以太网上竞争同一带宽节点的集合。
冲突域表示冲突发生并传播的区域,这个区域可以被认为是共享段。
在OSI模型中,冲突域被看作是OSI第一层的概念,连接同一冲突域的设备有集线器、中继器或其它简单的对信号进行复制的设备。
其中,使用第一层设备(如中继器、集线器)连接的所有节点可被认为是在同一个冲突域内,而第二层设备(如网桥、交换机)和第三层设备(如路由器)既可以划分冲突域,也可以连接不同的冲突域。
广播域
:指可以接收到同样广播消息的节点的集合。
简单地说,在该集合中的任何一个节点传输一个广播帧,则其它所有能够接收到这个帧的节点都是该广播域的一部分。
由于许多设备都极易产生广播,因此,如果不进行维护就会消耗大量的带宽,降低网络的效率。
广播域被看作是OSI第二层的概念,因此由中继器、集线器、网桥、交换机等第一、二层设备连接的节点被认为是在同一个广播域中,而路由器、第三层交换机等第三层设备则可以划分广播域。
网络层
网络层介于传输层和数据链路层之间,其主要作用是实现两个不同网络系统之间的数据透明传送,具体包括路由选择,拥塞控制和网际互连等。网络层负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
网络层是网络与网络之间通信的最底层,在数据从数据链路层向传输层进行数据传输的通信中,起到构建一个中间通信子网的作用。
不同网络有这不同的网络层协议和地址规范,如果一个网络中的用户不能识别其他网络的通信协议和地址规范,那么这两个网络之间就不能进行数据通信,就好比不同国家有着不同的交通法规,属于不同的交警系统管理,不允许他国车辆随便出入一样。不同网络也有不同的设计规范,属于不同的组织来管理,必须通过授权,并由专门的协议来负责网络间的通信。
网络层基本概念介绍
如果只是同一局域网内的各个计算机之间的通信,单靠物理层和数据链路层就可以建立通信链路完成用户间的数据通信,但要扩大应用范围,连接不同的局域子网,就需要借助网络层处理各个网络子网的协议,从而进行计算机的网络互连,所以网络层在 TCP/IP 协议体系中叫网际互连层。
网络层主要功能
在网络体系中,每一层都是服务于对应的上下层的。网络层也是服务于上层的传输层和下层的数据链路层。
网络层的功能就是让我们在茫茫人海中,能够找到另一台计算机在哪里,是否属于同一个子网等。
(1)屏蔽网络差异,提供透明传输
网络层就是为了解决不同网络有不同的规范要求的差异问题,寻找一个不同网络间都能共同遵守的网络通信规范,以便不同网络间能相互识别,并接受对方的网络请求。也就是一个中转站的作用,两个毫无交集的网络通过这个中转站来建立交集。
(2)为网络间通信提供路由选择
路由选择是根据一定的原则和路由选择算法在多个结点的通信子网中选择一条到达目的节点的最佳路径的过程。确定路由选择的策略称为路由算法。在无连接的数据包服务中,网络节点要为每个数据包做出路由选择,即选择到达目的节点的最佳路线,而在面向连接的虚电路服务中,存在一条专门的逻辑线路,在建立连接时就已经确定了路有路径,无需额外选择。
(3)拥塞控制
拥塞控制是为了避免网络传输路径中数据的传输延迟或死锁。数据链路层中的流量控制功能,是针对数据链路中点对点传输速率的控制,这里的拥塞控制是针对在网络层传输路径中的端到端传输效率的控制。主要采用预约缓冲区、许可证和分组丢弃等方式。
数据包的路由过程
电路 / 报文 / 分组交换
为什么要数据交换?
(1)对于每台主机要通信,我们给每个主机都建立线路,那么一共是 n (n - 1) / 2 条链路。
(2)通过交换设备互联,N 条链路,缺点:如果主机数量大,将会给交换机压力很大,交换机的内部吞吐量要特别大,并且远距离链路就要长,链路一长信号会差。
数据交换方式:电路交换、报文交换、分组交换
1. 报文交换和分组交换都采用存储转发。
2. 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
3. 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。
电路交换
由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)
报文交换
报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式。
优点:1. 无需建立连接 2. 存储转发,动态分配线路 3. 线路可靠性较高 4. 线路利用率较高 5. 多目标服务
缺点:1. 有存储转发时延 2. 报文大小不定,需要网络节点有较大缓存空间
分组交换
分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。
优点:1. 无需建立连接 2. 存储转发,动态分配线路 3. 线路可靠性较高 4. 线路利用率较高 5. 相对于报文交换,存储管理更容易
缺点:1.有存储转发时延 2. 需要传输额外的信息量(占用带宽资源) 3. 乱序到目的主机时,要对分组排序重组
例题:比较报文交换、分组交换的所需时间?
报文交换的方式:10000 bit / 1000 bps = 10 s,最少要跳 2 次交换设备:10 s * ( 2 + 1 ) = 30 s
分组交换的方式:10 bit / 1000 bps = 0.01 s,最少要跳 2 次交换设备:( 10000 bit / 10 bit ) * 0.01 s + 0.01 s * 2 = 10.02 s
数据报和虚电路
数据报方式:为网络层提供无连接服务
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
每个分组携带源和目的地址,路由器根据分组的目的地址转发分组:基于路由协议 / 算法构建转发表;检索转发表;每个分组独立选路。
虚电路方式:为网络层提供连接服务
指的是一条源主机到目的主机之间类似于电路的一条路径,那这个路径它是类似于电路的,是一种逻辑上的连接,所以它是虚的电路,而路径上的所有节点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录,每一项都记录了一个打开的虚电路的信息。
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
TCP的特性就是面向连接的,是可靠传输,可以差错控制和流量控制,TCP的数据传送是建立在虚电路的基础上的。
传输单元名词辨析
报文
:其实就是对于一个要传输的数据。
比如说我现在要发送一个文件,比如说现在使用QQ,QQ它就是应用层的程序,要用QQ来发送一个文件,这一个文件其实就是一个报文。
报文段
:传输层会对报文进行一个分割,也就是把报文分割成一个又一个的小段,就叫做报文段,这个是对于报文长度比较大,报名比较大的情况,传输层才会进行分割。
如果这报文很小,比如说就是一句话,你好,可能传输层它并不会进行分割,不会分割成报文段,也可以叫做报文。
IP数据段 / 分组
:它要封装上网络层的 IP 地址,这个地址包括原地址以及目的地址,都是 IP 地址。封装好这样一个就叫做一个 IP 数据报了。
如果这个数据报大小再次过大的话,因为链路层的时候,它有一个 MTU 最大传送单元,如果这个数据报的部分过大,我们就需要对数据报进行一个切割,进行一个切割下来的一个部分,就叫做一个分组。
帧
:加头加尾,就形成了一个帧,这个头加的就是在原来的ip数据报,或者说分组基础之上,我们家头加上mac地址,加上物理地址,然后加尾就是加一个FCS的帧检验序列。
比特流
:比特流(BitTorrent)是一种内容分发协议。
数据报 和 虚电路 比较
相关区别比较项 | 数据报 服务 | 虚电路 服务 |
---|---|---|
连接的建立 | 不要 | 必须有 |
目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 |
路由的选择 | 每个分组独立的进行路由选择和转发 | 属于同一条虚电路的分组按照同一路由转发 |
分组顺序 | 不保证分组有序到达 | 保证分组的有序到达 |
可靠性 | 不保证可靠通信,可靠性由用户主机保证 | 可靠性由网络保证 |
对网络故障的适应性 | 出故障的结点丢失分组,其他分组路径选择发生变化,可正常传输 | 所有经过故障结点的虚电路均不能正常工作 |
差错处理和流量控制 | 由用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
路由算法与路由协议概述
最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
静态路由算法(非自适应路由算法) | 动态路由算法(自适应路由算法) | |
---|---|---|
介绍 | 管理员手工配置路由信息 | 路由器间彼此交换信息,按照路由算法优化出路由表项 |
优点 | 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络 | 路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化 |
缺点 | 路由更新慢,不适用大型网络 | 算法复杂,增加网络负担 |
动态路由算法 全局性 分散性
全局性 | 分散性 |
---|---|
链路状态路由算法OSPF | 距离向量路由算法RIP |
所有路由器掌握完整的网络拓扑和链路费用信息 | 路由器只掌握物理相连的邻居及链路费用 |
分层次的路由选择协议
(1)因特网规模很大
(2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网
自制系统 AS
:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和公共的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由协议以确定AS之间的路由。
一个 AS 内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
内部网关协议 IGP | 外部网关协议 EGP |
---|---|
一个 AS 内使用RIP、OSPF | AS 之间使用 BGP - 4 |
IP 数据报格式与分片
TCP / IP 协议定义了一个在因特网上传输的包,称为 IP 数据报,由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是 IP 协议地址。
IP 数据报格式
如下图所示,IP 数据报格式分为首部和数据部分。并且最高位在左边,为 0 位,最低位在右边,为 31 位。在传输的时候按照从高到低的顺序进行传输。
IP 数据报各字段功能
版本号
:占用 4 位二进制数,表示该 IP 数据报使用的 IP 协议版本。目前 Internet 中使用的主要是 TCP / IP 协议族中版本号为 4 的 IP 协议。
头长度
:占用 4 位二进制位,此域指出整个报头的长度(包括选项),该长度是以 32 位二进制数为一个计数单位的,接收端通过此域可以计算出报头在何处结束及从何处开始读数据。普通 IP 数据报(没有任何选项)该字段的值是 5(即 20 个字节的长度)。
服务类型(TOS、type of service)
:占用 8 位二进制位,用于规定本数据报的处理方式。
(1) 优先权(0 - 7)数越大,表示该数据报优先权越高。
网络中路由器可以使用优先权进行拥塞控制,如当网络发生拥塞时可以根据数据报的优先权来决定数据报的取舍。
(2) 短延迟位 D (Delay):该位置 1 时,数据报请求以短延迟信道传输,0 表示正常延时。
(3) 高吞吐量位 T (Throughput):该位置 1 时,数据报请求以高吞吐量信道传输,0 表示普通。
(4) 高可靠位 R (Reliability):该位置 1 时,数据报请求以高可靠性信道传输,0 表示普通。
(5) 保留位
目前在Internet中使用的 TCP / IP 协议大多数情况下网络并未对 TOS 进行处理,但在实际编程时,有专门的函数来设置该字段的各域。
总长度
:占用 16 位二进制位,总长度字段是指整个 IP 数据报的长度(报头区 + 数据区),以字节为单位。
利用头部长度字段和总长度字段就可以计算出 IP 数据报中数据内容的起始位置和长度。由于该字段长度为 16 位二进制数,因此理论上IP数据报最长可达 65536 个字节(事实上受物理网络的限制,要比这个数值小很多)。
生存时间(TTL,time to live)
:占用 8 位二进制位,它指定了数据报可以在网络中传输的最长时间。实际应用中把生存时间字段设置成了数据报可以经过的最大路由器数。
TTL 的初始值由源主机设置(通常为 32、64、128 或 256),一旦经过一个处理它的路由器,它的值就减 1。当该字段为 0 时,数据报就丢弃,并发送 ICMP 报文通知源主机,因此可以防止进入一个循环回路时,数据报无休止地传输下去。
特别补充:ICMP(Internet Control Message protocol)
ICMP(Internet Control Message protocol)互联网信息控制协议,用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。ICMP有多种类型的报文,同一类型的报文会有多个不同的Code。
ICMP 是 IP 层的一部分,虽然从形式上看 ICMP 被包装在 IP 的数据部中,感觉和 TCP、UDP 同一层,但实际上 ICMP 被划分到网络层。ICMP 的主要作用在于传递差错报文。
ICMP 报文的结构为:8 位类型 + 8 位代码 + 16 位检验和 + 特有内容
上层协议标识
:占用 8 位二进制位,IP 协议可以承载各种上层协议,目标端根据协议标识就可以把收到的 IP 数据报送到 TCP 或 UDP 等处理此报文的上层协议了。
上层协议 常用网际协议编号:
校验和
:占用 16 位二进制数,用于协议头数据有效性的校验,可以保证 IP 报头区在传输时的正确性和完整性。头部检验和字段是根据 IP 协议头计算出的检验和,它不对头部后面的数据进行计算。
原理:发送端首先将检验和字段置 0,然后对头部中每 16 位二进制数进行反码求和的运算,并将结果存在校验和字段中。由于接收方在计算过程中包含了发送方放在头部的校验和,因此,如果头部在传输过程中没有发生任何差错,那么接收方计算的结果就应该是全 1。
源地址
:占用 32 位二进制数,表示发送端 IP 地址。
目的地址
:占用 32 位二进制数,表述目的端 IP 地址。
IP 数据报分片
在IP数据报头中有三个字段与数据报的分片与重组有很大的关系,分别是标识符、标志和片偏移量。
标志
:占3位,该字段目前只有后两位有意义。
最低位记为 MF (More Fragment)
,用于把数据报最后一片与前面其它各片区分开来;
MF = 1代表片未完,即钙片不是原始数据报的最后一片;MF = 0表示钙片是原始数据报的最后一片。
次低位 DF(Don't Fragment)
,用来控制数据报是否允许分片。
DF = 1表示该数据报不允许分片;DF = 0允许分片。
其实,数据报的分片和重组都是由机器自动完成的,因此设置 DF 位的真正意义在于,程序员可以控制数据报的分片过程,这为程序调试提供了方便和灵活性。
标识
:占 16 位,用于目的主机将数据报的各个分片重装成原来的数据报。当数据报分片时,该标识字段的值被复制到所有的数据报片的标识字段中。
这样,目的主句就可以正确的将标识字段值相同的各数据报分片重装成原来的数据报。
片偏移
:占 13 位,表示本片在原数据报中的偏移,偏移量以 8 字节为单位。由于各片数据均按照独立数据报方式传输,因此到达目的站的片序是不定的,目的主机在重装数据报时需要该字段提供偏移量。
除了最后一个分片,每个分片长度一定是 8B 的整数倍。
例题:IP 数据报计算(IP数据报分片)
一个数据报部分长度为3400字节(使用固定首部)。现在经过一个网络传输,该网络的 MTU 为 800 字节:
(1)应分为几个数据报片?(2)各数据报片的数据字段长度?(3)各数据报片的片偏移字段值?
分析思路:IP 数据报由首部和数据部分组成;MTU:最大传输单元(首部 + 数据部分);IP 数据报的固定首部 20 字节。
MF = 1:表示后面还有分片数据报
MF = 0:表示后面没有分片数据报
DF = 0:表示能分片
DF = 1:表示禁止分片
解题分析:
这个题目固定首部:24 字节,正常情况下是 20 字节
原因
:片偏移以 8 个字节为偏移单位,每个分片长度一定是 8 字节(64位)的整数倍。
该网络的 MTU 为 800 字节:包括首部和数据部分,最大的数据部分(减去首部 24 字节)为 776 字节
(1)数据报部分长度为 3400 字节能分成多少个 776 => 3400 / 776 ≈ 4.38;剩余部分不能丢弃;所以应分为 5 个数据报片。
(2)各数据报片的数据字段长度:776 776 776 776 296
(3)各数据报片的片偏移字段值:0 97 194 291 388
IP 数据包分片 总结:
当需要进行分片时,在每个数据报片的首部存放着该数据报的标识、标志位和片偏移,在进行重组时,标识用来分辨该数据报片的原数据报是哪个,标志位中的 MF 用来分辨这是不是原数据报的最后一片,片偏移用来分辨这个数据报片相对原数据报的位置。通过这几个字段,可以稳定的完成数据报的分片与重组操作。
IPv4 地址、IPv6 地址
IP 地址的分类
整个的因特网就是一个单一的、抽象的网络。IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内唯一的 32 位的标识符。
所谓分类的IP地址,就是将IP地址划分为若干固定类,每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net - id
,它标志主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的。
IP 地址与硬件地址
硬件地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
发送数据时,数据从高层下到地层,然后才到通信链路上传输。使用 IP 地址的 IP 数据报一旦交给了数据链路层,就被封装成了 MAC 帧。MAC 帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在 MAC 帧的首部。
连接在通信链路上的设备在接受 MAC 帧时,其根据是 MAC 帧首部中的硬件地址。在数据链路层看不见隐藏在 MAC 帧的数据中的 IP 地址。
只有在剥去了 MAC 帧的首部和尾部后把 MAC 层的数据上交给网络层后,网络层才能在 IP 数据报的首部中找到源 IP 地址和目的 IP 地址。
IPv4 与 IPv6 的区别
首部
:IPv6 的首部长度是 40 个字节,相对 IPv4 的首部长度 24 字节要长,但是,IPv6 首部结构比 IPv4 简单。
在 IPv6 中,IPv4 报头格式中一些冗余的域或被丢弃或被列为扩展报头,从而降低了包处理和报头带宽的开销。
扩展了路由和寻址的能力
:IPv6 把 IP 地址由 32 位增加到 128 位,从而能够支持更大的地址空间,有2128-1个 IPv6 地址,估计在地球表面每平米有 4*1018 个 IPv6 地址,使 IP 地址在可预见的将来不会用完。
IPv6 地址的编码采用类似于 CIDR 的分层分级结构,如同电话号码。简化了路由, 加快了路由速度。
对可选项更大的支持
:IPv6 的可选项不放入报头,而是放在一个个独立的扩展头部。如果不指定路由器不会打开处理扩展头部,这大大改变了路由性能。
IPv6 放宽了对可选项长度的严格要求 ( IPv4 的可选项总长最多为 40 字节 ) ,并可根据需要随时引入新选项。
IPV6 的很多新的特点就是由选项来提供的,例如:对 IP 层安全 ( IPSEC ) 的支持,对巨报 ( jumbogram ) 的支持以及对 IP 层漫游 ( Mobile - IP ) 的支持等。
支持即插即用(即自动配置)
:IPv6 协议支持地址自动配置,这是一种即插即用的机制。IPv6 节点通过地址自动配置得到 IPv6 地址和网关地址。
IPv6 支持无状态地址自动配置和状态地址自动配置两种地址自动配置方式。它会给配置 128
位的地址带来很大的方便,特别是无状态地址自动配置。
身份验证和保密
:在 IPv6 中加入了关于身份验证、数据一致性和保密性的内容。
允许协议继续扩充
:技术总是在不断发展的,而新的应用也还会出现。而 IPv4 的功能是固定不变的。
网络地址转换 NAT
NAT 英文全称是“ Network Address Translation ”
,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用 IP(Internet Protocol)地址出现在 Internet 上。
顾名思义,它是一种把内部私有网络地址(IP 地址)翻译成合法网络 IP 地址的技术。因此我们可以认为,NAT 在一定程度上,能够有效的解决公网地址不足的问题。
NAT 有三种类型:静态地址 NAT(Static NAT)、动态地址 NAT(Pooled NAT)、网络地址端口转换 NAPT(Port - Level NAT)
基本工作原理
NAT 的基本工作原理是:当私有网主机和公共网主机通信的 IP 包经过 NAT 网关时,将 IP 包中的源 IP 或目的 IP 在私有 IP 和 NAT 的公共 IP 之间进行转换。
如下图所示,NAT 网关有 2 个网络端口,其中公共网络端口的 IP 地址是统一分配的公共 IP,为 202.20.65.5
;私有网络端口的 IP 地址是保留地址,为 192.168.1.1
。
私有网中的主机 192.168.1.2
向公共网中的主机 202.20.65.4
发送了 1 个 IP 包( Dst = 202.20.65.4;Src = 192.168.1.2 )
当 IP 包经过 NAT 网关时,NAT Gateway 会将 IP 包的源 IP 转换为 NAT Gateway 的公共 IP 并转发到公共网,此时 IP 包(Dst = 202.20.65.4,Src = 202.20.65.5)中已经不含任何私有网 IP 的信息。
由于 IP 包的源 IP 已经被转换成 NAT Gateway 的公共 IP,Web Server 发出的响应 IP 包(Dst= 202.20.65.5;Src = 202.20.65.4)将被发送到 NAT Gateway。
这时,NAT Gateway会将 IP 包的目的 IP 转换成私有网中主机的IP,然后将 IP 包(Dst = 192.168.1.2,Src = 202.20.65.4)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。转换示意图如下:
如果内网主机发出的请求包未经过 NAT ,那么当 Web Server 收到请求包,回复的响应包中的目的地址就是私网 IP 地址,在 Internet 上无法正确送达,导致连接失败。
在上述过程中,NAT Gateway 在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态 NAT 手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)
在 NAT Gateway 收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当 NAT Gateway 收到服务器来的响应包后,查找 Track Table
,确定转发目标,做目的地址转换,转发给客户机。
网络地址转换 NAT 应用功能
NAT主要可以实现以下几个功能:数据包伪装、平衡负载、端口转发和透明代理。
数据伪装
: 可以将内网数据包中的地址信息更改成统一的对外地址信息,不让内网主机直接暴露在因特网上,保证内网主机的安全。同时,该功能也常用来实现共享上网。
端口转发
: 当内网主机对外提供服务时,由于使用的是内部私有IP地址,外网无法直接访问。因此,需要在网关上进行端口转发,将特定服务的数据包转发给内网主机。
负载平衡
: 目的地址转换NAT可以重定向一些服务器的连接到其他随机选定的服务器。
失效终结
: 目的地址转换NAT可以用来提供高可靠性的服务。如果一个系统有一台通过路由器访问的关键服务器,一旦路由器检测到该服务器当机,它可以使用目的地址转换NAT透明的把连接转移到一个备份服务器上。
透明代理
: NAT可以把连接到因特网的HTTP连接重定向到一个指定的HTTP代理服务器以缓存数据和过滤请求。一些因特网服务提供商就使用这种技术来减少带宽的使用而不用让他们的客户配置他们的浏览器支持代理连接。
子网划分和子网掩码
为什么要划分子网?
IPv4 地址如果只使用有类(A、B、C类)来划分,会造成大量的浪费或者不够用,为了解决这个问题,可以在有限类网络的基础上,通过对 IP 地址的主机号进行再划分,把一部分划入网络号,就能划分各种类型大小的网络了。
IPv4 子网划分与聚合
为了解决 IPv4 的不足,提高网络划分的灵活性,诞生了两种非常重要的技术,那就是 VLSM(可变长子网掩码)和 CIDR(无类别域间路由),把传统标准的 IPv4 有类网络演变成一个更为高效,更为实用的无类网络。
可变长子网掩码
:Variable Length Subnet Mask,VLSM 用于 IPv4 子网的划分,也就是把一个大的网络划分成多个小的子网。
无类别域间路由
:Classless Inter-Domain Routing,CIDR 则用于 IPv4 子网的聚合,当然主要是指路由方面的聚合,也就是路由汇总。
通过 CIDR 可以把多个小的子网路由条目汇总成一个大网络的路由条目,以减少路由器中路由条目的数量,提高路由效率。
VLSM 子网划分的基本思想
通过 VLSM 实现子网划分的基本思想很简单:就是借用现有网段的主机位的最左边某几位作为子网位,划分出多个子网。
① 把原来有类网络 IPv4 地址中的 “网络 ID” 部分向 “主机 ID” 部分借位
② 把一部分原来属于 “主机 ID” 部分的位变成 “网络 ID” 的一部分(通常称之为 “子网 ID” )。
③ 原来的 “网络 ID” + “子网ID” = 新 “网络 ID” ,“子网 ID” 的长度决定了可以划分子网的数量。
IP 子网划分 常见问题注意点
每个子网的广播地址是什么?
答:主机位全为 1 就是该子网的广播地址。通常我们这样计算:广播地址总是下一个子网前面的数,前面确定了子网为0、64、128 和 192
例如,子网 0 的广播地址为 63,因为下一个子网为 64 ;子网 64 的广播地址为 127,因为下一个子网为 128,以此类推。请记住,最后一个子网的广播地址总是 255
每个子网可包含哪些主机地址?
合法的主机地址位于两个子网之间,但全为 0 和全为 1 的地址除外。例如,如果子网号(网段号)为 64,而广播地址为 127 ,则合法的主机地址范围为 65 - 126 ,即子网地址和广播地址之间的数字。
子网掩码 ( subnet mask )
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码就是将某个 IP 地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
子网掩码屏蔽一个 IP 地址的网络部分的 “全 1” 比特模式。对于 A 类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
通过子网掩码,就可以判断两个IP在不在一个局域网内部。子网掩码可以看出有多少位是网络号,有多少位是主机号。
网关 (Gateway)
网关(Gateway)
:又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。
网关实质上是一个网络通向其他网络的IP地址。
比如有网络 A 和网络 B,网络 A 的 IP 地址范围为 “192.168.1.1 ~ 192. 168.1.254”,子网掩码为 255.255.255.0;网络 B 的 IP 地址范围为 “192.168.2.1 ~ 192.168.2.254”,子网掩码为 255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行 TCP / IP 通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP / IP 协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
实现这两个网络之间的通信,则必须通过网关。如果网络 A 中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络 B 的网关,网络 B 的网关再转发给网络 B 的某个主机。
只有设置好网关的IP地址,TCP / IP 协议才能实现不同网络之间的相互通信。
那么这个 IP 地址是哪台机器的IP地址呢?网关的 IP 地址是具有路由功能的设备的 IP 地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
广播地址 (Broadcast Address)
广播地址(Broadcast Address)
:专门用于同时向网络中所有工作站进行发送的一个地址。
在使用 TCP / IP 协议的网络中,主机标识段 host ID 为全1 的 IP 地址为广播地址,广播的分组传送给 host ID 段所涉及的所有计算机。
例如,对于10.1.1.0 ( 255.255.255.0 )网段,其广播地址为 10.1.1.255 (255 即为 2 进制的 11111111 ),当发出一个目的地址为 10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。
使用子网时分组的转发
例题探究(1):
一个主机的IP地址是 202.112.14.137,掩码是 255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址
如何计算网络地址?
网络地址就是:把 IP 地址转成二进制和子网掩码进行与运算
什么是与运算: 0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1 &1 = 1 即:两个同时为 1,结果为 1,否则为 0
11001010 01110000 00001110 10001001 IP 地址
11111111 11111111 11111111 11100000 子网掩码
----------------------------------- 与运算
11001010 01110000 00001110 10000000 网络地址
即:202.112.14.128
如何计算广播地址?
网络地址 202.112.14.128 => 广播地址:网络地址的主机位全部变成1 ,10011111 即159 即:202.112.14.159
如何计算主机数?
主机号有 5 位,那么这个地址中,就只能有 25 − 2 = 30 个主机
例题探究(2): 答案是 D
无分类编址 CIDR
无分类编址 CIDR(构造超网)
无分类编址 CIDR 的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)
网络前缀
CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
CIDR 使用各种长度的 “网络前缀” ( network-prefix ) 来代替分类地址中的网络号和子网号。
IP 地址从三级编址(使用子网掩码)又回到了两级编址。
CIDR 使用 “斜线记法” (slash notation),它又称为 CIDR 记法,即在 IP 地址后面加上一个斜线 “/” ,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。
分类编址缺点 - > 无分类编址
分类编址缺点:比如一个 A 类地址对应的是224 - 2个 IP 地址(网络地址和广播地址),这个是个天文数字,一个公司或者组织是无法完全利用这么多 IP 地址的,就造成了 IP 地址的浪费。
CIDR无分类编址:无分类编址的做法是将IP分为两部分(网络号 + 主机号)
1、网络号
:网络号对应的是一个网络地址,一个网络可以容纳多个主机,主机的网络号相同。
2、主机号
:来唯一标识一个主机在一个网络中的id。
怎么区分网络号和主机号呢?
xx:xx:xx:xx/n:在IP地址后边加入了 /n ,n 就前 n 位代表网络号
CIDR 记法的其他形式:
10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。
10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为 ( 10代表掩码中1的个数 )
构成超网 路由聚合 (route aggregation)
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
补充:路由聚合也称为构成 超网 (supernetting)
CIDR 虽然不使用子网了,但仍然使用 “掩码” 这一名词(但不叫子网掩码)。
对于 / 20 地址块,它的掩码是 20 个连续的 1,斜线记法中的数字就是掩码中 1 的个数。
最长前缀匹配
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
最长前缀匹配又称为最长匹配或最佳匹配。
使用二叉线索查找路由表
- 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。
- 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索 (binary trie)。
- IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
- 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
就是从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于 IP 地址中的一位。一个 IP 地址存入二叉线索的规则很简单。
先检查 IP 地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。
例如:10.100.122.2/24
考研例题展示:答案:B
传输层
传输层,上承应用层,下启网络层,主要作用是将上层(应用层)的数据进行处理封装后,递交给下层(网络层),并在此过程中实现一定的网络收发控制(比如网络流量控制)。
传输层封装后的数据一般称为数据段或者报文段(Segment)
复用是指,在发送端,多个应用进程共用一个传输层。
分用是指,在接收端,传输层会根据端口号将数据分派给不同的应用进程。
传输层主要有两个协议:TCP, UDP
TCP协议(Transmission Control Protocol):可靠传输协议,即保证可靠交付报文段。
UDP协议(User Datagram Protocol):不可靠传输协议,即不保证可靠交付报文段。
UDP 协议、TCP 协议
TCP
是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例如文件传输。特点
:面向字节流,传输慢。
UDP
是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用,例如:IP电话、视频会议、直播等。特点
:以报文的方式传输,效率高。
UDP无连接,TCP面向连接
使用UDP协议的双方随时可以发送数据,使用TCP协议的双方在发送数据之前必须使用“三次握手”建立TCP连接,TCP连接建立成功后,才能进行数据传输,数据传输结束后,必须使用“四报文挥手”来释放连接。
TCP 字节流服务
字节流服务和数据报服务的这种区别对应到实际编程中,则体现为通信双方是否必须执行相同次数的读、写操作(当然,这只是表现形式)。
当发送端应用程序连续执行多次写操作时,TCP 模块先将这些数据放入 TCP 发送缓冲区中。当 TCP 模块真正开始发送数据时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个 TCP 报文段发出。因此,TCP 模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。
当接收端收到一个或多个 TCP 报文段后,TCP模块将它们携带的应用程序数据按照 TCP 报文段的序号依次放人 TCP 接收缓冲区中,并通知应用程序读取数据。接收端应用程序可以一次性将 TCP 接收缓冲区中的数据全部读出,也可以分多次读取,这取决于用户指定的应用程序读缓冲区的大小。因此,应用程序执行的读操作次数和 TCP 模块接收到的 TCP 报文段个数之间也没有固定的数量关系。
TCP头部结构
原端口号、目标端口号:长度为 16 位,表示发送端端口号和接收端端口号。
序列号:长度为 32 位,指发送数据端位置,每发送一次数据,就累加一个该数据字节数的大小。
确认应答号:长度为 32 位,是指下一次应该收到的数据的序列号。
数据偏移:长度位 4 位,表示 TCP 所传输的数据部分应该从 TCP 包的哪个位开始计算,可以看作是TCP 首部的长度。
保留:长度为 4 位,为了以后扩展时使用。
控制位:字段长位 8 位,每一位从左到右分别位 CWR、ECE、URG、ACK、PSH、RST、SYN、FIN;这就控制标识就叫做控制位。
控制位 标志 | 解释 |
---|---|
FIN 标志 | 用于断开连接,为 1 时,表示今后都不会再有数据发送了。 |
SYN 标志 | 用于建立连接,为 1 时,表示希望建立连接。 |
RST 标志 | 为 1 时,表示 TCP 连接中出现异常必须强制断开连接。 |
PSH 标志 | 为 1 时,表示传输的数据立刻给上层应用,为 0 时,不需要立刻传送可以进行缓存。 |
ACK 标志 | 为 1 时,表示确认应答的字段为有效,在三次握手时,SYN 包之外该位必须为 1 。 |
URG 标志 | 为 1 时,表示时需要紧急处理的数据。 |
ECE 标志 | 当为 1 时,表示从对方到这边的网络有拥堵。 |
CWR 标志 | 与 ECE 表示都用于 IP 首部的 ECN 字段。 |
窗口大小:长度为 16 位,表示可以发送数据的窗口大小,当为 0 时,表示可以发送窗口探测。
校验和:长度为 16 位,校验TCP伪首部是否正确。
紧急指针:长度为 16 位,只有在 URG 标志为 1 时有效,该字段的数值表示本报文段中紧急数据的指针。
选项:可以用于提高 TCP 传输性能。
填充:用于数据补全。
TCP 连接管理(三握四挥)
连接管理就是三次握手与四次挥手的过程。保证可靠的连接,是保证可靠性的前提。
三次握手(Three-way Handshake)
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。
进行三次握手:
第一次握手
:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手
:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中 SYN=1,ACK=1,确认号 ack=x+1,初始序号 seq=y。
第三次握手
:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号 ack=y+1,序号 seq=x+1(初始为 seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
四次挥手 (Four-way handshake)
建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。
TCP 连接的拆除需要发送四个包,因此称为四次挥手 (Four-way handshake),客户端或服务端均可主动发起挥手动作。
刚开始双方都处于ESTABLISHED 状态,假如是客户端先发起关闭请求。
四次挥手的过程如下:
第一次挥手
:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。
第二次挥手
:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
第三次挥手
:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
第四次挥手
:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
TCP 拥塞控制
TCP 传输的过程中,发送端开始发送数据的时候,如果刚开始就发送大量的数据,那么就可能造成一些问题。网络可能在开始的时候就很拥堵,如果给网络中在扔出大量数据,那么这个拥堵就会加剧。拥堵的加剧就会产生大量的丢包,就对大量的超时重传,严重影响传输。
所以 TCP 引入了慢启动的机制,在开始发送数据时,先发送少量的数据探路。探清当前的网络状态如何,再决定多大的速度进行传输。这时候就引入一个叫做拥塞窗口的概念。发送刚开始定义拥塞窗口为 1,每次收到 ACK 应答,拥塞窗口加 1。在发送数据之前,首先将拥塞窗口与接收端反馈的窗口大小比对,取较小的值作为实际发送的窗口。
拥塞窗口的增长是指数级别的。慢启动的机制只是说明在开始的时候发送的少,发送的慢,但是增长的速度是非常快的。为了控制拥塞窗口的增长,不能使拥塞窗口单纯的加倍,设置一个拥塞窗口的阈值,当拥塞窗口大小超过阈值时,不能再按照指数来增长,而是线性的增长。在慢启动开始的时候,慢启动的阈值等于窗口的最大值,一旦造成网络拥塞,发生超时重传时,慢启动的阈值会为原来的一半(这里的原来指的是发生网络拥塞时拥塞窗口的大小),同时拥塞窗口重置为 1。
当输入的负载到达一定程度,吞吐量不会增加,即一部分网络资源会丢失掉,网络的吞吐量维持在其所能控制的最大值,转发节点的缓存不够大这造成分组的丢失是拥塞的征兆。
TCP的四种拥塞控制算法:1.慢启动 2.拥塞控制 3.快重传 4.快恢复
快重传、快恢复
“快重传” ,就是让发送方尽快重传丢失报文段,而不是等待超时重传计时器超时后再重传。
“快恢复” 主要步骤:
-
当收到 3 个重复 ACK 时,把 ssthresh 设置为 cwnd 的一半,把 cwnd 设置为 ssthresh 的值加 3,然后重传丢失的报文段,加3的原因是因为收到 3 个重复的ACK,表明有 3 个“老”的数据包离开了网络。
-
再收到重复的 ACK 时,拥塞窗口增加 1。
-
当收到新的数据包的 ACK 时,把 cwnd 设置为第一步中的 ssthresh 的值。原因是因为该 ACK 确认了新的数据,说明从重复 ACK 时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。
TCP拥塞控制流程图
网络应用模型
HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)
是一种最基本的客户机/服务器的访问协议。浏览器向服务器发送请求,而服务器回应相应的网页,用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
FTP协议(File Transfer Protocol,文件传输协议)
基于客户服务器模式,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端,提供交互式的访问 面向连接 ,使用TCP/IP可靠的运输服务,主要功能:减少/消除不同操作系统下文件的不兼容性。
SMTP 协议(简单邮件传送协议,用户发信到邮件网关的传输协议)
面向连接 的Client/Server模式,基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件。
DNS协议(域名解析协议)
DNS是一种用以将域名转换为IP地址的Internet服务。
MQ协议(消息队列)
消息从发送者到接收者的方式也有两种:
一种我们可以称为即时消息通讯,也就是说消息从一端发出后(消息发送者)立即就可以达到另一端(消息接收者),这种方式的具体实现就是我们已经介绍过的RPC(当然单纯的http通讯也满足这个定义)
另一种方式称为延迟消息通讯,即消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端。 这个容器的一种具体实现就是消息队列。
JDBC协议(Java语言)
利用Tcp/Ip协议,是应用层的协议,和FTP,HTTP同一个级别。DBC(Java DataBase Connectivity, java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
DNS 域名解析系统
DNS使用的名称集合就叫命名空间,与计算计文件夹和文件系统类似,都是划分为层次且大小写不敏感,类似于树状结构。
当一个用户在地址栏输入www.taobao时,DNS解析有大致十个过程:
-
浏览器先检查自身缓存中有没有被解析过的这个域名对应的 ip 地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
-
如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在 windows 中可通过 c 盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的 ip 地址,那浏览器会首先使用这个 ip 地址。
但是这种操作系统级别的域名解析规程也被很多黑客利用,通过修改你的 hosts 文件里的内容把特定的域名解析到他指定的 ip 地址上,造成所谓的域名劫持。所以在 windows 7 中将 hosts 文件设置成了 readonly,防止被恶意篡改。
-
如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约 80% 的域名解析到这里就完成了。
-
如果LDNS仍然没有命中,就直接跳到 Root Server 域名服务器请求解析。
-
根域名服务器返回给 LDNS 一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如 等)地址。
-
此时 LDNS 再发送请求给上一步返回的 gTLD。
-
接受请求的 gTLD 查找并返回这个域名对应的 Name Server 的地址,这 个Name Server 就是网站注册的域名服务器。
-
Name Server根据映射关系表找到目标 ip,返回给 LDNS 本地域名服务器。
-
LDNS 缓存这个域名和对应的 ip 地址。
-
LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束。
FTP 文件传输协议
FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
FTP的主要特征:
-
控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。
-
数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。
文件类型:
-
ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输。
-
EBCDIC文件类型,该文本文件传输方式要求两端都是EBCDIC系统。
-
图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。
数据结构:
-
文件结构(File Structure)字节流,无结构。
-
记录结构(Record Structure)文件被划分为记录,用于文本文件。
-
页结构(Page Structure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。
SMTP 邮件传输协议
SMTP 是电子邮件传输的协议。SMTP 是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
SMTP服务器是遵循SMTP协议的邮件服务器,用来发送或中转电子邮件。首先, 客户端需要建立一个与SMTP服务器的TCP连接 , 端口一般为25 。在连接建立之后,客户端和服务器先执行一些应用层的握手操作,让SMTP服务器知道客户端的信息,并且对客户端需求做出响应等。
在SMTP握手阶段,客户端向SMTP服务器分别指定发件人和收件人的电子邮件地址。握手阶段完毕,SMTP服务器把客户端发出的邮件消息添加到发信队列中,通过TCP提供的可靠数据传输服务把该消息准确地传送到收件人的服务器。
连接和发送过程
(1)首先建立 TCP 连接。
(2)客户端发送 HELO 命令以标识发件人自己的身份,客户端发送 MAIL 命令。服务器以 OK 作为响应,表明准备接收。
(3)使用 AUTH 命令登录 SMTP 服务器,输入用户名和密码(注意,用户名和密码都需要 base64 加密)。
(4)客户端发送 RCPT 命令,标识该电子邮件的计划接收人,可以有多个 RCPT 行。服务器以 OK 作为响应,表示愿意为收件人发送邮件。
(5)协商结束后,使用 DATA 命令发送。
(6)以 . 号表示结束,输入内容一起发送出去,结束此次发送,用 QUIT 命令退出。
电子邮件系统组成
电子邮件系统应具有三个主要组成构件,用户代理、邮件服务器、SMTP 和 POP3
万维网 和 HTTP 协议
万维网 概述
万维网以 C/S 方式,即 客户/服务器 的方式工作。其中,浏览器就是在用户主机上的万维网客户程序。万维网文档(web文档)所驻留的主机则运行服务器程序,如IIS 、Apache、Nginx等。所以这个主机也叫作万维网服务器或者Web服务器。
当浏览器向web服务器发送出对某个Web文档的请求时,Web服务器返回浏览器请求的Web文档,浏览器将该文档在窗口中显示出来。Web文档呈现在浏览器窗口中的就是我们所说的网页和页面。
超文本传输协议 http
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本 HTTP 1.1。
HTTP协议概述
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
HTTP 请求 / 响应 过程
客户端连接到Web服务
:一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。当然也有附带签名的 https,例如,https://www.baidu。
发送HTTP请求
:通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
服务器接受请求并返回HTTP响应
:Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
释放连接TCP连接
:若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。
客户端浏览器解析HTML内容
:客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
问题:在浏览器地址栏键入URL,按下回车之后会经历的流程?
1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
5. 释放 TCP连接;
6. 浏览器将该 html 文本并显示内容;
版权声明:本文标题:将近 10 万字爆肝 3 天整理 408 考研计算机网络复习笔记(更新中) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726803630h1031400.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论