概论
计算机网络的产生是计算机技术和通信技术的产物。世界上最早的计算机网络是ARPANET,由美国国防部研制。
- 发展阶段
- 远程联机系统
- 计算机-计算机网络
- 开放式标准化网络
- 网络划分
- 通信子网:
- 由路由器和通信链路组成,完成网络通信任务;
- 链路通信提供物理信道;
- 路由器是一种专用计算机,具有存储转发、路由选择、差错控制、流量控制等功能
- 资源子网
- 由连接到通信子网的服务器和主机系统组成,为网络用户提供各种软硬件共享资源和数据处理的能力
- 硬件共享资源包括CPU,存储器,硬盘等资源
- 软件共享资源包括操作系统、数据库系统、工具软件等等
- 开放式标准化网络
- 具有统一的网络体系结构,遵循OSI协议,便于网络互连、大规模生产、降低了成本
- 通信子网:
- 定义:将若干台具有独立功能的计算机系统,用某种或者多种通信介质连接起来,通过完善的网络协议,在数据交换的基础之上,实现网络资源共享的系统叫做计算机网络。
- 分类:
- 地理分类
- 局域网LAN(Local Area Network)
- 城域网MAN(Metropolitan Area Network)
- 广域网WAM(Wide Area Network)
- 拓扑分类
- 星形
- 环形
- 总线
- 不规则形
- 地理分类
- 计算机网络运行过程
- 核心主机和边缘主机发挥着不同的作用
- 主机系统关心的是与其他计算机通信方式以及通信内容
- 边缘主机关心如何把收到的数据转发目的主机
- 网络核心中的路由器:网络核心是最复杂的部分,要想边缘主机提供连通性,路由器是网络和中最重要的设备,主要功能是数据交换,即接受来自源主机系统的数据,并向目的主机转发
- 核心主机和边缘主机发挥着不同的作用
电路交换与分组交换
- 电路交换
- 在进行数据交换前,两个节点之间必须建立一条专用物理线路,通信期间独占。可以分为三个阶段:建立连接,数据传输和连接释放
- 优点:
- 传输时延小
- 有序传输
- 没有冲突
- 适用范围广
- 实时性强
- 控制简单
- 缺点
- 利用率低
- 灵活性差
- 建立连接时间长
- 报文交换
- 数据交换的单位是报文,报文中携带源地址、目标地址等信息,在结点进行交换时采用存储转发方式
- 优点
- 无需建立连接
- 动态分配线路
- 提高线路可靠性
- 提高线路利用率
- 缺点
- 进入交换节点时需要经过存储转发这一过程,会引起传输时延
- 报文交换大小没有限制,对网络节点存储空间有要求
- 分组交换
- 分组交换在报文交换的基础之上,设置了分组交换的最大长度限制,将大的数据块切割为了合适的大小的数据块。此外,和报文交换一样,也采用了存储转发方式,在加上源地址、目的地址等控制信息,构成了Packet
- 优点
- 无建立时延:提供无连接服务
- 线路利用效率高
- 简化了存储管理,降低了对节点的存储空间的要求
- 减少了出错概率和重发数据量
- 缺点
- 仍然存在网路时延
- 需要额外的信息量,因为添加了额外的控制信息
- 可能会造成顺序错乱,丢失或者重复分组的问题。如果采用虚电路,可以解决该问题,但是依旧需要建立连接、传输数据、释放连接三个过程。
计算机网络的性能指标
-
速率
-
带宽,bandwidth,现在指数字信道所能传送的最高数据率,单位为bps
-
吞吐量:表示单位时间内通过某个网路(信道、接口)的数据量
-
时延:总时延=发送时延+传播时延+处理时延+排队时延
-
利用率:利用率增大,延时也会迅速增加。空闲延时 D 0 D_0 D0和当前时延 D D D与信道利用率 U U U之间满足如下关系:
D = D 0 1 − U D = \frac{D_0}{1-U} D=1−UD0
因特网概述
网络把许多计算机连接到一起,而因特网则是把许多网络连接到一起,连接在因特网上的计算机都被称为“主机”
- 因特网的发展阶段:
- 从单个网络ARPANT到互联网发展,1983年TCP/IP协议成为ARPANET上的标准协议,因此,1983年被称为因特网元
- 建立三级结构的因特网,分为:主干网、地区网和校园网
- 形成多层次ISP结构的因特网
协议三要素:语义、语法,同步
计算机网络体系结构
基本思想
将庞大的计算机网络体系分层,划分为若干个相对单一、结构比较简单、处理更加方便的局部问题,并分别解决。
耦合性低、适应性强、易于实现和维护
定义
计算机网络体系结构必须包含三个内容:分层结构和每层的功能、服务与层间接口和协议。
定义:层、层间接口以及协议的集合被成为计算机网络体系结构
术语
- 实体:任何可以发送或者接受信息的硬件或软件进程
- 任意网络中的任意两个端系统必须具备相同的层次;
- 每层使用下层提供的服务,同时向上层提供服务
- 通信只能在对等层之间进行
- 除了最底层为实际的物理通信之外,其余层都为逻辑通信
- 网络协议:对等实体间的共识就是协议
- 协议的三要素:语法——协议元素与数据的组合结构,就是报文格式;语义——协议元素的解释;时序——通信过程中,通信两方操作的执行顺序与规则
- 对等层之间交换的报文统称为协议数据单元(PDU,Protocol Data Unit)。PDU由协议控制信息和数据组成。
OSI参考模型
- 应用层:OSI参考模型中的最高层,是用户和各种程序和网络之间的接口
- 表示层:对上层数据或者命令解释以保证一个主机应用层信息可以被另一台主机理解
- 会话层:应用程序和网路之间的接口,负责在网络中两个节点之间建立、维护和终止通信
- 传输层:通信子网和资源子网之间的分界层,是两个子网之间的接口和桥梁。向高层屏蔽通信细节,为用户提供透明的报文传输,保证报文可靠的、正确的传输
- 网络层:通信子网的最高层,在下两层的基础之上,向资源子网提供服务
- 数据链路层:负责建立和管理节点间的链路,控制网络层与物理层之间的通信。
- 物理层:最底层。
TCP/IP模型
也可以称为Internet模型。
- 应用层:DNS,HTTP,SMTP
- 传输层:TCP,UDP
- 网际层:Ip
- 网络接口层:对应Phusical layer和Data Link Layer.包含协议PPP,SLIP等
特点
完全开放,免费试用,独立于特定的计算机硬件和操作系统
独立于网络硬件系统,可以运行于广域网,更适合互联网
网络地址统一分配
各层次硬件设备
- 集线器:将多条以太网双绞线和光纤集合连接在同一物理介质下的设备,对接收到的信号进行再生整形方法,以扩大网络的传输距离。
- 中继器:对输入信号进行增强放大的模拟设备,把信号送得更远,以延展网络长度
- 网桥:连接两个网络的设备,能够学习和识别MAC地址,使用存储转发,并将数据帧转发到目标地址所在的网路中;MAC地址用于在网络中唯一标识一个网卡,一台设备如果有多个网卡,会有多个MAC地址。
- 交换机:一种基于MAC地址进行转发的数据链路层设备,能够连接多个设备进行数据帧的交换;交换机具备存储转发和直接转发两种转发方式,直接转发在发送数据以前,不需要计算CRC循环冗余校验码。
物理层
基本概念
-
模拟数据:连续取值
-
离散数据:离散取值
-
信号:数据的具体表现形式,可分模拟信号和数字信号
-
信息及其度量:信息量是事件出现概率的函数,消除不确定性
-
概率越小,信息量越大;反之也成立
-
信息量与事件之间的关系
I = log a 1 P ( x ) = − log a P ( x ) I = \log_a \frac{1}{P(x)} = -\log_aP(x) I=logaP(x)1=−logaP(x)
-
-
带宽:物理信道的频率宽度,单位为 H z Hz Hz
-
信道容量:物理信道能够进行无差别传输数据的最大能力,用 C C C表示
C = B log 2 ( 1 + S N ) C = B \log_2(1+\frac{S}{N}) C=Blog2(1+NS)
其中, S N \frac{S}{N} NS被称为信噪比,提高信噪比可以提高信道容量; B B B表示信道带宽。但是 C C C与 B B B之间不成正比例,因为:
N = N 0 × B lim B → inf C = lim B → inf B log 2 ( 1 + S N 0 B ) ≈ 1.44 S N 0 N = N_0 \times B \\ \lim_{B \to \inf} C = \lim_{B \to \inf} B \log_2 (1+\frac{S}{N_0B})\approx 1.44 \frac{S}{N_0} N=N0×BB→inflimC=B→inflimBlog2(1+N0BS)≈1.44N0S
数字通信系统和物理通信系统
概念
- 信源:将各种信息转换为原始物理信号的机器
- 变换器:将物理信号转换为适合在信道上传输的信号
- 信道:传输信号的一条通道
- 噪声源:信道自身噪声以及周围环境的对信道的干扰
数字通信的优点
- 抗干扰能力强
- 适合远距离传输
- 安全保密性好
- 适合多媒体信息传输
性能指标
一般来说,可以使用有效性和可靠性两个指标
-
有效性
-
码元:Code Cell,信号的二进制编码单元,编码所需时间长度称为“码元宽度”
-
码元传输速率:信号传输速率,指每秒发送的码元数,单位是波特每秒,使用 B B B表示
R B = 1 T B R_B = \frac{1}{T_B} RB=TB1 -
信息传输速率:单位时间传输的数据量,使用bps单位
-
码元传输速率和信息传输速率之间的关系:
R b N = R B N ⋅ log 2 N R b 2 = R B 2 ⋅ log 2 2 = R B 2 R_{bN} = R_{BN} \cdot \log_2 N\\ R_{b2} = R_{B2} \cdot \log_2 2 = R_{B2} RbN=RBN⋅log2NRb2=RB2⋅log22=RB2
信息传输速率通常会大于码元传输速率,二进制条件下二者相等。
-
-
可靠性:可靠性指标使用差错率来衡量。通常有两种表示方式。
- 误码率
- 信息差错率(误信率
作业
-
阐述通信系统模型结构、指出各部分的主要作用和功能
- 信源、变换器、信道、反变换器、信宿。
-
数据通信方式有哪几种?各有什么特点?
- 两种,数字通信和模拟通信。其中,数字通信抗干扰能力强、适合远距离传输、安全保密性好、适合多媒体信息传输,而模拟通信错误率高、受干扰影响大;
- 串行并行,串行只需要建立一条信道,而并行需要建立多条信道;并行传输速率更高;并行通信造价更高,远距离通信使用串行方式
- 同步异步:异步方式每个字符起始和停止位标识字符开始和结束;起始和停止位同时作为同步时钟,不再需要额外时钟;字符间隔任意;速率较低。同步传输方式中,对数据块同步传输,开销小,效率高、适合高速率传输数据,一位错误,必须重传全部。
- 单工、半双工、全双工
-
阐述信源编码的目的、作用和主要过程。
- 将文字、图像等复杂信源信息用数字信号表示的过程;信源编码也是一个信息压缩的过程。
- 可以分为离散、连续和相关信源编码。本质上是模拟信号的数字化。
- 包含以下过程:
- 抽样:奈奎斯特抽样定理
- 量化:将连续的无限多可能的样值转换为有限的取值。对原来抽样数值的量化。
- 均匀量化:databit越多,信噪比越大;相同码位的情况下,大信号信噪比高,小信号信噪比低
- 非均匀量化:对大小量化采用不同的量化级差。我国采用A律13折线。
- 编码
- 非归零编码、曼彻斯特、差分曼彻斯特
-
阐述数字数据编码的目的和作用,并对二进制字符串01101001分别给出非归零、曼彻斯特和差分曼彻斯特编码。
- 目的:数字数据编码也成为信道编码。传输过程中,数字信号可能产生各种错误。信道编码可以对bitstream进行相应的处理,是系统具备一定的纠错能力和抗干扰能力
-
阐述多路复用的目的和作用,分别说明频分、时分和码分复用的原理和特点。
- 提升信道利用率
- 方法
- 频分复用:不同信号使用不同的频率。所用参与频分的信号带宽之和必须小于总带宽,相邻子信道之间要进行隔离;所有参与频分复用的各路信号并行在指定范围内传输;
- 时分复用:将时间划分为一段段等长的时分复用帧(TDM帧)。每一个信号在TDM帧中占用固定序号的时隙;TDM信号也被称为等时信号。
- 码分复用
数据链路层
数据链路层的功能
- 为网络层提供服务
- 无确认的无连接服务
- 有确认的无连接服务
- 有确认的面向连接服务
- 差错控制
- 帧定界、透明传输、帧同步
- 链路管理
- 流量控制
- 差错控制
差错控制
为什么要进行差错控制:数据通信的过程中,差错不可避免。主要原因可以分为:热噪声、冲击噪声。分别对模拟通信、数据通信有较大的影响。计算机网络通信中,差错控制主要针对冲击噪声。
- 常用的差错控制编码有两类:
- 检错码
- 纠错码
- 常用的差错控制方式
- 海明编码
- 海明编码位数的确认: 2 r − 1 ≥ k + r 2^r-1 \ge k+r 2r−1≥k+r,其中, r r r为添加的校验位的位数, k k k为数据位的位数
- 如果要检测出 n n n位的错误,那么需要 n + 1 n+1 n+1的海明距离;如果要纠正 n n n位的错误,那么需要 2 n + 1 2n+1 2n+1的海明距离
- 循环冗余校验码:必考
- 海明编码
数据链路层协议
HDLC:包含差错控制的一种数据链路层传输协议,全双工、可靠,面向bit
PPP协议
面向字符、全双工、按顺序传递数据包的协议。随着通信质量的提升,数据链路层取消了可靠的通信协议,将流量控制与差错控制交给上层(传输层的TCP协议)来处理。因此,目前基本转向使用PPP协议。
-
PPP协议的构成
- 将IP数据报封装到串行链路的方法
- LCP: link control protocol. 负责数据链路的建立、配置和测试。
- network control protocol.协商链路上的数据包格式与类型,建立配置不同的网络层协议,如IP,IPX以及Appletalk。分别提供了ipcp,ipxcp以及 atcp接口。
-
PPP协议分层体系结构
-
PPP协议的帧格式
- F表开始或结束,A与C固定不变,没有实际含义;协议字段分别是配不同的网络层协议;信息部分不超过1500字节,超过则填充;FCS为CRC校验部分。
-
PPP协议中的透明传输
- 同步方式中的透明传输:使用零比特填充方法实现透明传输
- 异步方式中的透明传输:没看懂,不是到有什么用。参见PPT 69页。
-
PPP协议运行阶段
- 不可用阶段
- 建立阶段:LCP协商,包括协商认证方式等
- 验证阶段:PAP/CHAP验证
- 网络层协议阶段:NCP协商
- 维持阶段:维持PPP会话,传输数据、定时测试链路
- 网络终止阶段
-
LCP: link control protocol. 点对点通信时发送和接收端协商确定必要的信息。
-
LCP类别:
- 链路配置报文:建立和配置链路
- 维护报文:维护链路
- 终止报文:终止链路
-
协议格式
- Code字段为标识LCP报文的类别:ACK,NACK,REJECT,
- Ident字段:报文序列号,由request帧的发送端生成,保持递增;应答报文使用request报文的Ident字段。
- Length字段:LCP报文的长度,以字节为单位,Code+Ident+Length+LCP Data
- LCP Data:数据报文
-
用途:
- 链路配置报文:
- Config-Request:启用链路以及配置请求报文。两端节点均可以按需主动发出;
- Config-Ack:接受请求应答
- Config-Nak:部分拒绝请求应答
- Config-Reject:全部拒绝请求报文应答
- 配置选项,可以参考PPT 77页,这一部分较为繁杂。
- 链路终止报文:
- Terminate-Request:申请关闭一个点对点的链接。持续发送Terminate-Request报文,直到收到Terminate-Reply
- Terminate-Reply报文,应答链路终止请求。
- 链路维护报文:比较繁杂。for example,定时进行PPP保活的报文,链路两端分别发送Echo Request报文,如果对方发送Echo Reply报文,表示链路仍处于活跃状态。
- 链路协商过程:请求方发送Config-Request
- Config-Ack:接受方能够识别对方请求,发送此报文并且携带全部配置参数
- Config-Nak:接收部分参数,携带自己认可的参数
- Config-Reject:全部拒绝。并且携带全部的对方请求参数。
- 链路配置报文:
-
-
PPP协议的认证
- 口令认证:Password Authentication Protocol(PAP),PPP之中最基本的认证协议。需要明文传输用户名和口令,安全性较差。
- 挑战握手认证:Challenge Handshake Authentication Protocol(CHAP),安全性较高的认证协议。认证端发出’challenge‘信息,一般要求用户名和密码,被认证端发送对应的hash函数值,认证端根据相应决定是否建立连接。
-
NCP
NCP: Network Control Protocol. 当链路建立以后,将控制权交给NCP。而NCP与LCP有着相同的 协议格式。
IPCP,IP控制协议,是PPP协议中负责配置和激活网络层IP协议传输的NCP子协议。使用与LCP同 样的机制。
-
协议域:0x8021
-
IPCP的code域,取值范围在1~7之间
-
协商内容:
- IP-Compression-Protocol:协商使用指定的压缩协议,默认不使用压缩选项。
- IP-Address:协商本地使用的IP地址
- 合法IP地址
- 全0 IP地址:要求对方分配一个IP地址
- Primary DNS Server Address/Secondary DNS Server Address:协商远端的主、次DNS
-
PPP状态转换
广播信道数据链路层MAC
广播信道( Broadcasting information channel),一种可以通过广播方式传输信息的信息通道。使用广播信道,可以实现一对多的通信。由于广播信道是一个公共信道,必须指定某种机制来保证通信有序进行:媒介共享技术,也称作多址接入控制(Multiple Access Control)或者媒介访问控制( Medium Access Control).简称MAC技术。
什么是MAC技术
在IEEE 802标准中,MAC层是数据链路层的一个子层,处于数据链路逻辑控制层和物理层之间
LLC层负责提供本结点到其他相邻节点的”链路“,MAC层负责在本节点与其他节点实现高效、有序的共享信道。
-
MAC层需要做到:
-
公平的在多个用户之间分享信道资源
-
高效地使用信道资源
-
各用户之间具有良好的连通性
-
尽可能高的系统吞吐量、尽可能低的系统时延
-
-
MAC层的构成:
- 动态接入分配协议
-
随机分配方式:当前最流行的多址服务技术,在有线网络和无线网络中应用非常广泛。
-
受控分配方式:在一些特定场合使用
- 令牌协议:持有令牌的节点才能访问媒介
- 轮询协议:由主节点轮询各从属节点并分配媒介访问权限。
-
ALOHA协议
- 世界上最早的无线电计算机网,利用共享介质来进行终端的传输
- 基本思想:不监听信道,想发就发、随即重发
- 传输机制:
- 发送端发起请求后可以立即传输数据,无需等待授权,也不用检测信道是否空闲
- 接收端收到数据后返回ACK帧,通知发送端传输成功。
- 收到的数据校验有错,不发ACK帧
- 发送端在指定时间内未收到ACK帧,则认为发生碰撞,并在一个随机时间后重发数据。
- 信道利用率:18%. 在信道之中存在大量的碰撞。
-
时隙ALOHA协议
-
基本思想:不监听信道,规定发送时间
-
传输机制:
- 将时间分为等长的时隙,每个时隙可以传输一个数据帧
- 节点间严格时钟同步,只能在时隙开始时发送帧
- 如果两个以及以上节点同时发送帧,节点即检测到冲突
-
优点:
- 单个节点活动时,可以以全部速率传输数据
- 高度分散化,只需要同步时隙
- 简单
-
缺点
- 冲突,浪费时隙
- 空闲时隙
- 节点也许能以远小于分组传输时间检测到冲突
- 时钟同步
-
信道利用率:37%
-
-
CSMA:Carrier Sense Multiple Access with Collision Detection
-
CSMA是针对ALOHA的改进机制。CSMA认为:ALOHA信道利用率较低是因为在发送之间没有检测信道是否在使用中;提出了”载波侦听“思想:发送数据前先检测信道
-
分类,基于检测到信道忙后所采取的策略,CSMA可以被分为:
-
由于只是在发送数据前检测信道是否被占用,可能造成多个节点同时发送数据时发送双方在数据发送完后才能检测到碰撞,数据无法使用,信道被浪费。
-
CSMA/CD( Carrier Sense Multiple Access with Collision Detection),一种具备碰撞检测能力的广播信道多点接入技术,中文称为“载波侦听多址接入/碰撞检测”
- “碰撞检测”:节点一边发送数据,一边检测信道上的信号电压大小。也称“冲突检测”。
- 多个节点同时发送数据,各节点信号电压叠加,信道上的信号电压会发生较大的变化
- 电压变化超过阈值时,就认为发生了碰撞
- 每个发送数据的节点,检测到碰撞以后立即停止发送。随机一段时间以后再发送数据。
-
数据碰撞
- 发送的数据信号在信道上传输时有一定的时延
- 发生碰撞后数据信号将会严重失真,无法得到有效信息。
- 碰撞的判断:任意一方,在发送数据后的 2 τ 2\tau 2τ 时间以内收到数据说明发生了碰撞,立即停止发送
-
碰撞退避算法
- CSMA/CD采用了一种“二进制指数退避”的算法
-
CSMA/CD的一些特性:
- 仅支持半双工
- 发送数据帧超过 2 τ 2\tau 2τ碰撞期之后就可以知道是否发生了碰撞。
- 最小帧长度,小于最小帧长度 的都是无效数据帧
- 检测到碰撞以后,立即停止发送数据,并发送若干比特干扰信号通知其他节点
-
CSMA/CA:Carrier Sense Multiple Access with Collision Avoidance.载波监听多路访问/冲突避免机制,一般用于无线网之中
- 由于无线网的特性——隐蔽节点问题、暴露节点问题——因此在无线网之中只能使用CSMA/CA
- 原理:
- 发送数据之前监听信道,有冲突进行二进制指数避让
- 先发送一段很小的请求传送报文RTS,收到CTS(Clear to send)之后开始传送数据。在RTS,CTS和后边发送的数据帧之中都有一个网络分配向量,指出本次发送数据所需时间。该段时间内,其他节点不会在发送数据
-
局域网:具备广播功能、便于系统拓展和逐渐演变,各设备位置可以灵活调整和改变、提高了系统的稳定性,可靠性
-
局域网拓扑:
- 星形网
- 总线网
- 树形网
- 环形网
-
局域网采用CSMA/CD作为基本工作机制
-
最大信道利用率
S m a x = T 0 T 0 + τ = 1 1 + a S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+a} Smax=T0+τT0=1+a1
其中, T 0 + τ T_0+\tau T0+τ为发送一帧占用媒介时间, T 0 T_0 T0为数据帧发送时间, τ \tau τ为端到端的传输时延。 -
以太网帧结构
-
局域网拓展
- 从物理层拓展
- 使用光纤作为传输介质
- 利用集线器的级联
- 数据链路层的拓展
- 网桥:网桥工作在数据链路层,可以根据MAC帧的目的地址对收到的帧进行转发;同时具备过滤帧的功能,检查收到数据帧的目的MAC地址,转发到相应的接口;可以利用网桥将两个局域网连接到一起。
- 网桥隔离了碰撞域
- 从物理层拓展
-
Collision Domain and Broadcast domain
集线器(Hub),既不会隔离碰撞域也不能隔离广播域
交换机(Switch),交换机的不同端口有不同的Collision Domain,所以说,Switch隔离了碰撞域但是交换机永远不会隔离广播域,所有的LANs都处于同一个广播域之中
Router:不仅仅隔离碰撞域,同样隔离广播域。
以太网的原理
作业
1、数据链路层提供的哪些服务?具有哪些主要功能?
- 在可能出错的物理线路的基础之上,构造一个无差错的逻辑数据链路,从而为网络层提供高质量的服务。
- 服务:
- 无确认的无连接服务
- 有确认的无连接服务
- 有确认的面向连接服务
- 主要功能
- 提供一种可靠的帧结构,来拆分上层数据
- 提供一种数据识别机制,确保所有的数据都得到传输
- 一种检错或者纠错机制,已发现并解决传输过程中的错误
- 一种合适的流量控制机制,来维持有序通信
- 一种获得发送数据权的判断和决策机制
2、总结数据链路层的基本问题及其解决办法
- 封装成帧:帧定界符,表示数据的开始和结束
- 透明传输:报文中任意数据都可以得到传输,高层应用无需担心特殊字符的传输问题:添加帧定界符,表示data frame 的开始和结束;如果在frame中出现了开始符号和结束符号,添加
ESC
进行转义;或者是使用比特填充方法01111110
,发送端在连续的5个1后边添加0进行转义。 - 差错控制:接收方只接收无差错的数据帧。使用海明校验或者是循环冗余校验码。
3、比较分析HDLC和PPP协议的异同
-
HDLC协议是一种面向比特的数据链路层协议,通过重传、数据编号等方式向网络层提供了可靠的数据传输协议
-
PPP协议是一种比HDLC简单的数据链路层协议,其中主要包含LCP和NCP协议。
-
相同点:
- 双方都支持全双工链路
- 都可以实现透明传输
- 都可以实现差错检测,但不支持差错纠正
-
差别点:
- HDLC协议可靠,PPP协议不可靠
- HDLC协议面向bit,HDLC协议面向Byte
- HDLC协议帧格式没有协议字段
- PPP协议没有编号和确认机制,而PPP协议有
4、PPP协议的LCP子协议中有哪几类报文?各有什么作用?
- 链路配置报文:建立和配置一条链路,包含
Config-Request
,Config-Ack
,Config-Nak
,Config-Reject
,同时包含协商配置选项,比如最大接受单元、异步控制字符映射等 - 链路维护报文:维护和调试链路。
- 链路终止报文:终止链路,终止一条链路,包括
Terminate-Request
,Terminate-Reply
,
5、阐述CSMA/CD协议的基本原理、工作机制和主要特点。
- CSDA/CD是一种既有碰撞检测能力的广播信道多点接入技术,被称为“载波侦听多址接入/碰撞检测”。
- 基本原理:多个节点同时发送数据时,信道上的电压会发生较大的变化;节点会对信道的信号电压变化值进行检测,当变化之超出了阈值,就说明发生了碰撞。
- 机制:发送数据前检测信道是否空闲,是则发送数据,否则停止发送;发送后对信道进行监听,检测到碰撞立即停止发送数据;停止后使用碰撞退避算法等待重发数据。
- 主要特点:半双工;发送端在经过2 τ \tau τ时间之内便能检测到是否发生碰撞;检测到碰撞以后,停止发送数据,并发送jamming signal通知其他节点。
6、阐述经典以太网的基本概念,比较经典以太网协议与802.3协议在报文格式方面的异同。
- 什么是经典以太网:经典以太网是一种计算机局域网技术,是以太网的原始形式。以太网使用CSMA/CD作为基本工作机制,使用粗电缆为传输媒介,采用较为灵活的无连接的工作方式,采用曼彻斯特编码。
- IEEE802.3报文格式:目的地址、源地址、长度,之后为802.2LLC字段,包含DSAP,SSAP,cntl以及org code,类型字段,数据、CRC校验码
- 经典以太网帧格式:目的地址,源地址,类型,数据,CRC字段
7、为什么说网桥和交换机隔离了冲突域、扩大了广播域?
- 冲突域是指同一时间内只能有一个设备发送信息的范围,冲突域内,两台设备不能同时发送数据。网桥和交换机可以把一个大的冲突域分割成为一个个小的冲突域,使得多个设备可以在各自的范围内传送数据,提高的吞吐量;
- 广播域是指可以接收到同样广播信息的设备的集合。如果一个设备发送了广播信息,那么通过网桥和交换机连接到一起的不同局域网都可以收到这条信息。因此,我们说网桥和交换机扩大了广播域。
7、什么是虚拟局域网?为什么说虚拟局域网可以隔离广播风暴和冲突?
- 虚拟局域网,是一种网络技术,可以将一个物理局域网划分为多个独立的广播域。每个vlan被视作一个独立的广播域,只有在同一个VLAN之中的设备才能通信。
- 划分为多个小的LAN之后,设备只能在本局域网内进行通信,不会影响到其他局域网之中的设备,避免了广播风暴的出现。
- 在以太网之中,将一个大的网络划分为多个小的Vlan之后,会把原来的冲突域划分为小的冲突域,降低了冲突发生的概率。
网络层
网络层:OSI模型中的第三层,提供路由和寻址功能,并且具有一定的拥塞控制和流量控制的能力。
主要内容:数据交换方式(可以分为电路交换和分组交换),路由选择算法(静态策略和动态策略),路由协议,IP协议
重点要理解:路由选择算法、IP协议以及子网划分
电路交换和分组交换
-
数据交换方式
- 电路交换:独占信道、稳定可靠
- 分组交换:Datagram以及Virtual-Circuits
- 信元交换
-
Datagram于Virtual-Circuits的比较
路由选择算法
The algorithms that choose the routes and the data structures that they use are a major area of network layer design.
静态策略 Static Routing
- 扩散法:会产生大量重复分组,导致无法运行。解决:可以为每个分组设置一个下跳数字段,当下跳数为0时,自动丢弃该分组.
- 最短路径算法:Dijkstra.
- Distance Vector Routing
- 固定式路由选择:固定路由表,无法适合网络拓扑结构的变化
动态路由策略
-
孤立路由算法:热土豆算法
- 节点收到数据时,选择一条输出队列最短的链路尽快将其转发出去,不管目的节点在何方
- 优点:提高链路的利用率
- 缺点:具有很大的盲目性
-
集中路由算法
- 逆向自学习算法
-
Distance Vector算法
- 距离向量路由选择:Distance Vector Routing Algorithm,also called the distributed Bellman-Ford routing algorithm.最初在ARPANET中使用,在Internet中被叫做RIP来使用。
- 算法思想:每个路由器保存一个路由表,路由表中的衡量指标可以的delay,distance or something. 每个节点首先获取到相近节点的distance、cost…,传输给相邻节点,相邻节点根据本节点路由表、相邻节点路由表来计算到其他节点距离信息。
- 优缺点:react repidly to good news;while leisurely to bad news.also,this problem was called “Count-To-Infinity” Problem.会产生”无穷计数“问题,整个网络的路由表无法收敛。
- count to infinity的解决方法:水平分割法
-
Link State算法-链路状态路由选择
-
基本思想:每个节点定期广播路由信息,并根据最新路由信息刷新路由表
-
基本步骤:
- 发现邻居节点:发送“HELLO”分组,收到”HELLO“分组的路由器应该返回响应。
- 测试链路开销:发送特殊的ECHO报文
- 产生链路状态分组:每个节点通过实测相邻的链路开销,可以创建链路状态分组
-
优点:对网络反应迅速
-
缺点:广播link state分组占用信道容量大
-
应用:OSPF采用linkstate算法作为Internet的AS内标准路由协议
-
-
Distance Vector和Link State算法的比较:
-
路由信息协议(RIP)
- 采用Distance Vector算法,用于小规模网路、
- OSPF(Open Shortest Path First):采用LS算法,是当前Internet的主要内部网关协议
- BGP:边界网关协议
IP协议
-
概述:当前Internet体系结构的核心协议,已经成为连接异构网络的工业标准
-
IP协议提供了以无连接为特征的**“尽力而为”**的数据通信服务,但是不无法解决数据报丢失、重复、延迟或者乱序等问题。
-
IP协议结构
- 版本:IP协议版本,通常为
0100
表示v4,0110
表示v6 - 首部长度:最短20字节,最长60字节
- 区分服务:表示服务类型,从未使用过。
- 标识:数据报计数器,用于区分数据包的唯一标识符。
- 标志:最高位保留,余下两位分别为: Don’t fragment and More fragment.
- 片偏移:12bits,表示分片之后在缘分组中的相对位置,以8个字节为偏移单位
- 生存时间:time to live.超过生存时间则丢弃数据包
- 协议:指出此数据包使用什么协议,如ospf,igmp,icmp,udp,tcp等
- 版本:IP协议版本,通常为
-
IP地址
- 可以被分为五类,A类和B类IP地址都有网络号与主机号组成,网络号表示了联网主机所在的位置,主机号表示了主机本身。
- D类和E类不区分网络和主机。其中,D类为多播地址,E类为保留地址。
-
子网IP地址的划分
- 将一个IP网络划分为几个较小的子网,多个物理网共用一个IP网络前缀
- 子网掩码
- 如何根据子网掩码区分不同的subnet
-
超网IP地址
- 可以被称为Classless Inter-Domain Routing,CIDR编址方法。
- 在CIDR中,不再划分A、B、C类等地址以及子网,因而可以更加有效的分配IPv4的地址空间。
- 使用各种长度的network-prefix来代替分类地址中的网络号和子网号
-
ICMP(Internet Control Message Protocol)
-
为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议,也就是ICMP
-
ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告
-
IP层协议,ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
-
主要功能:
- 报告网络错误、网络拥塞、协助解决故障、报告超时
- ICMP同样是无法保证报文按序到达
-
ICMP报文的封装格式,ICMP依赖另一个网络层协议,因此,ICMP可以称作是需要进行两次封装的网际层协议。经过两次封装之后才能被传输。
-
ICMP数据报告格式:
-
种类:有类型字段和代码字段共同决定
- 差错报告报文
- 询问报文
-
用途:ping,用来测试两个主机之间的连通性
-
ARP协议
ARP协议,Address Resolution Protocol,负责将IP地址解析为MAC地址
-
工作原理
-
报文格式
- 硬件类型:发送方硬件接口类型
- 协议类型:请求解析的协议地址类型,
0x8000
为IP协议地址 - 硬件地址长度:发送方硬件地址长度,以太网地址为48
- 协议地址长度:请求解析的协议地址长度,IP地址为32
- 操作类型:1为ARP请求,2为ARP响应,3为RARP请求,4为RARP响应
第五章作业
-
简述IP协议的作用,说明IP报文首部结构中各字段的作用
TCP/IP协议Internet视为一个单一的、抽象的网络,IP地址是给每个连接在这个网络上的网络设备的标识符,通过IP地址可以实现对接入网络的任意一台主机的访问。
IP协议字段:
- 版本位:指明是IPv4还是IPv6
- 首部长度:指明IP首部的长度,在20字节到60字节之间
- 区分服务:服务类型,并没有真正使用过
- 总长度
- 标识:数据报技术器,用于区分数据报的唯一标识
- 标志:3bit,最高位保留,中间位为Don’t Fragment标志,最后一位为More Fragment标志
- 片偏移:指出该片在原分组之中的相对位置
- 生存时间
- 协议:指出使用何种协议,表示IP层应该将数据部分上交给传输层的哪一种处理过程处理
- 校验和
- 可选字段:主要进行测试工作,包括安全性、松散源路由、严格源路由等
- 填充
-
IP地址的作用、什么是保留地址、指出ABC三类IP地址各有哪些保留地址
- 主机在网络上的地址标识
- 保留地址:也称为私有地址,标识各独立网络可以重复使用的IP地址,网关不会向目标地址为这些保留地址的主机转发IP分组。
- A类:
10.0.0.0
- B类:
172.16.0.0 ~ 172.31.0.0
- C类:
192.168.0.0 ~ 192.168.255.0
- A类:
-
某公司有一个C类地址:192.16.12.0,要求划分七个子网,每个子网可以容纳11台主机
- 使用4位数字作为子网地址,余下4bit用于划分主机IP地址, 2 4 − 2 > 11 2^4-2 \gt 11 24−2>11
- 其中,子网掩码为
255.255.255.240
- 子网地址可以从
16,32,48,64...192
内共14个网络中选择11个。
-
已知IP地址:192.168.23.35/21,说明其所属网络前缀,并给出该网络前缀的CIDR地址块的范围
- 其网络前缀为
192.168.16.0
- CIDR地址快的范围为:
192.168.16.0
到192.168.23.255
之间
- 其网络前缀为
-
简述ICMP协议的作用和其报文结构
-
ICMP,即Internet Control Message Protocl,ICMP的提出是为了提高IP数据报成功交付的机会,允许主机或者路由器报告差错情况和提供有关异常的报告
-
ICMP协议的数据包格式如下:
IMCP报文由几种字段组成:类型、代码、检验和、长度可变部分。其中,类型为指明该报文是询问报文还是差错报文;
-
-
说明tracert实现路由追踪的原理,以及说明tracert是如何知道发出的探测报文达到目的主机的
- tracert实现路由追踪主要是依赖于ICMP协议,在本地主机和目标主机之间回送请求报文和回送回答报文
- 原理:
TTL
b表示Time to live.- 从TTL=1开始,Tracert不断从源IP地址向目标IP地址发出类型值为8,代码值为0的ICMP查询报文,也就是
ping
,并且逐次增加TTL的值 - Tracert根据不同TTL值时个路由器返回的
TTL=0
的差错报文,便可以知道经过了哪些路由器。
- 从TTL=1开始,Tracert不断从源IP地址向目标IP地址发出类型值为8,代码值为0的ICMP查询报文,也就是
-
IP地址与MAC地址的区别
- 什么是MAC地址:当IP报文被数据链路层协议封装以后,包括IP地址在内的IP协议细节均无法被数据链路层获得。为了能在数据链路层描述源节点和目的节点,应该在数据链路层设计相应的标识符来表示相应的标识,设计了MAC地址。该地址也被称为物理地址,而IP地址也被称为逻辑地址。
- 区别
- 地址类型:IP地址是逻辑地址,MAC地址是物理地址
- 长度:IP地址为32位(IPv4)或者是128位(IPv6),而MAC地址的长度是48位。
- 工作层次:IP地址工作于网络层,MAC地址工作于数据链路层。
- 唯一性:MAC地址是全球唯一的,每个网络接口都要有一个MAC地址,而IP地址不具备唯一性,但是在不通过的局域网之中可以重复。
-
简述ARP协议的作用以及报文结构
-
ARP协议是IP协议的一种配套协议,目的是将IP地址转换成为MAC地址。
-
报文结构:
硬件类型:发送方的硬件接口类型;
协议类型:发送方请求解析的协议地址类型,
0x8000
表示IP协议地址;硬件地址长度:发送方硬件地址长度,Ethernet为48位;
协议地址长度:请求解析的协议地址长度,IP协议为32位
操作类型:1为ARP请求,2为ARP响应,3为RARP请求,4为RARP响应
-
-
禁用主机的ARP协议之后,最直观的现象是什么?为什么?
- 无法连接互联网,主机将无法与其他设备进行通信,因为ARP协议负责将IP地址转换为MAC地址,禁用协议之后,这一转换将无法进行。
-
免费ARP的作用
传输层
概述
传输层在计算机网络体系结构中处于非常重要的位置,无论在ISO还是TCP/IP模型中,都处于面向应用的最底层和面向通信部份的最高层。
在网络通信中,传输层扮演着承上启下的作用,实现了一种将面向应用的通信需求转变为面向网络设备的通信服务。
-
传输层和网络层区别:传输层提供进程级别的逻辑通信,而网络层提供主机级别的逻辑通信。
-
传输层提供的服务:
- 面向连接的TCP服务:通信可靠、阻塞控制
- 无连接的UDP服务:对数据无校验和重发、实现简单,通信速率高
端口、地址
- 端口:一个16位的二进制数字,范围在0到65535之间,用两个字节表示。在网络通信中,使用端口来区分不同的应用程序。
- TSAP:transport service access point,传输层地址。由IP:Port构成。
- Socket:接口。
- Stream Socket: 面向连接,可靠的数据传输服务,数据无差错,无重复,而且按顺序发送数据。内设流量控制,避免数据流超限;数据被看做是字节流,无长度限制。
- Datagram Socket: 提供无连接服务,数据包以独立包形式发送,不提供无差错保证,数据可能丢失或者重复,而且可能会顺序混乱。
- Raw Socket:允许相对较低层次的协议直接访问。
UDP协议
概述
用户数据报协议(User Datagram Protocol),是OSI参考模型和TCP/IP模型中都提供的一种面向无连接的传输层协议。UDP最基本的目的是提供面向事务的简单、不可靠信息传送服务。
主要特点
- 无连接协议,发送数据之前不需要建立连接。
- 尽最大努力交付,不保证可靠交付,同时也不使用拥塞控制。
- 面向报文,没有拥塞控制,适合多媒体通信的要求。
- 支持一对一,一对多,多对一,多对多的服务
- 首部开销小,只需要8字节
面向报文的UDP
- UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
- 一次发送一个报文,无论多长
- 接收方UDP对IP层交付的UDP用户数据报,去除首部之后直接上交,一次交付全部。
- 应用程序需要选择大小适中的报文。
首部格式
TCP协议
简介
- 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、端对端的、基于字节流的传输层通信协议,提供全双工、面向字节流的服务。
- TCP是一种虚连接而非真真多个物理连接。
- TCP根据对方给出的窗口值和当前网络的用色情况来决定一个报文段应该包含多少字节
- TCP连接都是Client/Server模式,主动发起建立连接的进程称为Client;被动等待连接的是Server
报文结构
- 确认号:四字节,是期望收到对方的下一个报文端的数据的第一个字节的序号????
- 数据偏移:占四位,指出TCP数据偏移,单位是32位字 ????
- 字段:
- URG:URG==1时,当前报文段紧急,应该尽快发送
- ACK:确认,ACK==1时确认号字段有效,否则无效,有效时该字段应为前一消息中seq+1
- PUSH:尽快交付应用程序,无需等到缓存填满
- RST:Reset==1时,说明TCP链接中出现了差错,必须释放连接,然后再建立运输连接
- SYN:SYN==1表示这是一个连接请求或者是连接接收报文
- FIN:释放连接
TCP连接
-
每一条TCP连接具有两个端点,这个端点叫做Socket
-
什么是Socket:An application can communicate with a remote process by exchanging data with TCP/IP by knowing the combination of protocol type, IP address, and port number. This combination is often known as a socket address.协议类型+IP+Port构成了一个Socket地址。
-
TCP连接由改格式构成:
{socket1,socket2}
,{(IP1:port1,IP2:port2)}
-
TCP连接的阶段
- 建立连接:三次握手
- Client->Server: 建立连接请求,发出同步请求报文,
SYN=1,seq=x
- Server->Client: 同意建立连接的同步确认报文,
SYN=1,ACK=1,seq=y,ack=x+1
- Client->Server:客户端再次发出确认报文,
ACK=1,seq=x+1,ack=y+1
- Client->Server: 建立连接请求,发出同步请求报文,
- 释放连接:四次挥手
- Client->Server:客户端发出一个连接释放报文,
FIN=1,seq=u
- Server->Client:服务器返回确认报文,
ACK=1,seq=v,ack=u+1
- Server->Client:服务器在发送完最后的数据后,向客户端发送连接释放确认报文,
FIN=1,ACK=1,seq=w,ack=u+1
- Client->Server:收到服务器连接释放报文后,发出确认报文,
ACK=1,seq=u+1,ack=w+1
- Client等到
2MSL
之后,才能断开连接,以保证客户端发送的最后一个ACK报文段能够到达服务器;防止“已失效的连接请求报文段”出现在本连接之中。MSL:maximum segment lifetime,任意报文在网络上存在的最长时间
- Client->Server:客户端发出一个连接释放报文,
- 建立连接:三次握手
-
TCP的计时器:为了保证传输的可靠性和协议栈的稳定,TCP会使用多达9种不同类型的定时器
- 重传定时器、坚持定时器、ER延迟定时器、PTO定时器、ACK延迟计时器、SYNCAK计时器、保活计时器、时间等待计时器、
FIN_WAIT2
计时器 - TCP为了正常工作,至少要有4种计时器:重传计时器、持久计时器、保活计时器、时间等待计时器
- 重传定时器、坚持定时器、ER延迟定时器、PTO定时器、ACK延迟计时器、SYNCAK计时器、保活计时器、时间等待计时器、
-
TCP状态机
TCP可靠传输原理
-
概念:可靠传输,也就是指无差错传输,对于收到的数据,只要是无差错的全部接受,有错误的数据丢弃或者是更正。这对检错能力提出了要求。
-
差错检测和控制:
- 检错码:接收端能够检验出数据差错,但是不能检查错误发生的位置,也无法进行错误矫正。编码效率高,译码速度快。
- 纠错码:也称为Forward Error Correction,FEC。接收端能够检测、纠正数据错误。但是效率低,速度慢,一般用于无法重传的场合。
-
可靠传输:
- 可靠传输提出了如下技术要求:
- 差错检测、数据编号、数据确认、数据重传
- 可靠传输提出了如下技术要求:
-
停止等待协议:实现了简单的流量控制
-
基本思想:由接收端控制发送端发送数据的速度
-
基本算法:
- 发送端
- 等待从上层应用中获得数据
- 获得数据并封装称为可发送的数据报文
- 发送报文,等待确认报文并转1
- 接收端
- 等待数据
- 获得数据,向上交付
- 发送确认报文,转1
- 发送端
-
含有差错检查的流量控制
- 发送端
- 获得数据、计算校验码、封装并缓存
- 发送数据,等待应答
- 收到应答报文,如果是肯定,删除缓存转1,否则再发送缓存转2
- 接收端
- 等待并接收数据,计算校验码,缓存
- 校验错转1,返回否定报文;校验正确转1,向上交付数据并且删除缓存,发送ACK报文
- 发送端
-
有报文丢失的流量控制
- 数据报文、应答报文都有可能丢失
- 如果数据报文丢失,接收端等待发送端发送
- 如果应答报文丢失,发送端等待接收端发送
这两种球筐都会导致死锁
解决办法:设置重发计时器,但是会导致接收端收到两次肯定应答报文
改进:对报文进行编号,接收方接收到编号重复的报文会丢弃;接收方不再发送否定应答报文,只对无差错数据发送肯定应答报文(确认报文);在确认报文中添加确认信息,支持被确认的报文;接收方收到重复报文后,丢失的同时发出确认报文
-
信道利用率:
U
=
T
D
T
D
+
R
T
T
+
T
A
U = \frac{T_D}{T_D}+RTT+T_A
U=TDTD+RTT+TA
总结:
- 只要传输层使用了有效的检错重传机制,可以在不可靠的网络上实现可靠的传输服务
- 报文发送后需要缓存
- 超时计时器的阈值应该大于数据传出的平均往返时间
改进后的停止等待协议也被称为Automatic Repeat reQuest,简称为ARQ协议
连续ARQ协议
概念:发送方可以连续发送多个报文,称为流水线传输,提高了信道利用率
信道利用率:
U
=
n
T
D
T
D
+
R
T
T
+
T
A
U = \frac{nT_D}{T_D+RTT+T_A}
U=TD+RTT+TAnTD
发送方要准备好n个缓冲区, 对报文进行编号。这意味着要对 n n n取一个合适的数值, n n n过大,成本会提升.
TCP可靠传输的实现
在实际的运行环境中,使用基础的停等协议或者连续ARQ协议并不合适。在实际的TCP中,连接双方都各有两个窗口,TCP为其传输的每个字节都编制序号,并以此为基础构建可靠传输。TCP的往返时间RTT是变化的,需要使用特定的算法估算重传时间。
以字节为单位的滑动窗口
- 使用滑动窗口来实现差错控制、流量控制
- TCP的滑动窗口是面向字节流的
- TCP报文首部包含窗口字段,限制了发送方传颂的最大字节数
TCP拥塞控制
-
概念:对资源的需求大于可用的资源数量,网络中资源供应不足。
-
拥塞控制和流量控制的关系:
- 拥塞控制的前提:网络能够承受现有的网路负荷;
- 拥塞控制是全局性的过程
- 流量控制:在指定的发送端和接收端之间的点对点通信量的控制
- 流量控制的目的:抑制发送端发送数据的速度,以便接收端来得及接受
-
开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不发生拥塞
-
闭环控制:基于反馈环路
- 检测网络在何时、何地发生
- 将拥塞的信息传送到可采取行动的地方
- 调整网络运行来解决出现的问题
-
慢开始与拥塞避免
- 发送方维持一个叫拥塞窗口cwnd(Congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度并且动态变化。一般发送窗口小于等于拥塞窗口
- 原则:没有拥塞时增大,出现拥塞时减小
- 原理:
- 开始时设置cwnd为1,也就是一个最大报文段MSS的数值;
- 每收到一个ACK,
cwnd += 1
; - 每经过一个往返时间RTT,
cwnd += MSS
,其中,MSS指的是最大传输数量 - 只要检测到拥塞,将
ssthresh
减小一半。
- 设置门限状态变量,
ssthresh
。cwnd<ssthresh
时,使用慢开始算法cwnd>sshthresh
时,使用拥塞避免算法
第六章习题
-
用自己的语言,总结传输层的作用,位置,主要功能和主要服务
- 在网络通信中,传输层有着承上启下的作用,实现了将面向应用进程的通信需求转变为面向网络的通信服务。无论是在OSI模型还是TCP/IP协议簇中,传输层都处于非常重要的位置,处于面向应用部分的最底层和面向通信的最高层。
- 传输层的作用,主要是为了运行在网络边缘的不同主机上的应用程序进程之间提供通信服务,是一种真正的端到端的通信服务。同时,在应用层和网络层之间,充当复用器的作用。各种应用的网络需求,递交给传输层后,再用IP协议用统一的方式发送到网络之中。
- 功能:
- 向高层屏蔽通信的细节
- 提供端到端的无差错的网络服务
- 服务
- 面向无连接的服务:UDP服务,简单,对数据无重发和校验,通信速度高。
- 面向连接的服务:可靠稳定、差错校验、重发机制,实现复杂,代价较大,通信速度相对较低。
-
在传输层中,端口、传输层地址和Socket分别是什么?相互有什么关系
- 端口:在应用层中,网络通信是面向不同的应用进程的,为了区别不同的进程的网络请求/服务,使用了端口。端口是一个16位整型数字。
- 传输层地址:两台主机在传输层进行通信时,需要指明哪一台主机+哪一个应用进程,也就是本地和目的地主机的IP地址+端口
- Socket,接口,构成格式:{协议,本地IP地址,端口,远程地址,远程端口}
-
什么UDP协议?有什么特点?
- User Datagram Protocol,这是一种面向无连接的传输服务,不保证可靠性、也不进行拥塞控制,支持一对一,一对多,多对一,多对多服务
- 特点
- 开销小,首部只有8字节
- 无连接协议,不保证可靠交付
- 面向报文,没有拥塞控制,适合多媒体通信的要求
-
TCP的概念,作用,协议报文首部结构。
-
什么是TCP:Transmission Control Protocol,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
-
特点:
- 面向连接的传输层协议
- TCP协议是点对点的,每一条TCP连接都是一对一的
- TCP提供可靠的、全双工的通信服务
- 面向字节流
- TCP是一种虚连接而非物理连接
-
报文结构
- 源端口、目的端口、序列号、确认号、数据偏移、保留位
- URG:紧急,立即传输;
- ACK:是否接受请求
- PSH:不再放入缓存区,直接发送
- RST:连接重置
- SYN:同步,表示这是一个连接请求或者是连接接收报文
- FIN:请求结束
- 窗口字段:窗口长度;校验和;紧急指针
-
-
简述TCP连接建立和释放的基本过程
-
建立:三次握手
- Client->Server:SYN=1,seq=x,请求建立连接
- Server->Client:SYN=,1ack=x+1,seq=y,ACK=1,同意建立连接的响应报文
- Client->Server:ACK=1,seq=x+1,ack=y+1,确认报文
-
断开连接:四次挥手
- Client->Server:FIN=1,seq=u,请求断开链接的请求报文
- Server->Client:ACK=1,seq=v,ack=u+1,响应报文,Server主机会通知上层进程。此时,Clinet to Server方向的链接已经释放,TCP连接处于半关闭的状态。如果Server发送数据,Client仍然要接受。
- Server->Client:FIN=1,ACK=1,seq=w,ack=u+1,Server 如果没有要发送的数据,进程便会通知TCP断开连接
- Client->Server:ACK=1,seq=u+1,ack=w+1,收到释放连接报文之后,发出确认。Client在收到Server发来的包含FIN的报文后,等待2MSL后结束链接。
-
-
在TCP中有哪些基本的计时器?这些计时器在TCP协议中各自发挥什么样的作用?
-
重传计时器:发送发发送出数据报文后启动该计时器,如果在重传计时器截止之前收到确认报文结束;否则重新发送报文
-
坚持计时器:接收方发出一个0窗口确认保温,发送方立即停止发送数据报文,启动Persisenet Timer,等待对方发送非零窗口的确认报文。如果在设定的时间到达之前收到对方发送的非零确认报文撤销该计时器恢复正常;否则发出一个单字节的探测报文。该探测报文未收到响应那么持续发送探测报文,如此反复直到收到非零确认报文。
-
Keep Alive Timer:判断两个TCP端点之间连接是否正常
-
时间等待计时器,Time Wait Timer,TCP终止连接时的计时器。
应用层
概念
在TCP/IP中,应用层对应OSI/RM中的会话层、表示层和引用层。是应用程序和网络传输的接口。
应用层不是应用程序,而是为应用程序进程的网络通信提供服务的第一层协议,是为用户的应用需求提供通信服务。
体系结构
C/S:客户端/服务器模式,服务器需要全天候工作,循环等待客户端传来的请求;客户端可以发起请求
P2P:通信双方地位平等,互为客户端也互为服务器
混合模式:结合了C/S和P2P
对传输层的要求
- 可靠数据传输
- 吞吐量:许多多媒体应用对带宽有要求,这类多媒体应用称为“带宽敏感应用”。
- 弹性应用
- 时间敏感
- 安全性
TCP服务面向连接、全双工,提供可靠的数据服务,具备拥塞控制机制,同时通过SSL提供安全性服务,但是无法满足应用层的吞吐量和定时服务
UDP提供最小服务、无连接、不可靠数据服务。、
DNS
Domain Name System,域名系统。用来解决主机名和IP地址映射服务,使互联网用户无需记忆繁杂的IP地址。因此,用户对DNS具备极强的依赖性。
-
域名层次结构
- 多级域名:顶级、一级、二级
-
绝对域名:以
.
结尾的域名称为绝对域名或者是完全合格的域名,如www.example.com.
,完整域名:www.example.com
-
顶级域名(Top Level Domain)
- 通用域名:七个
- 国家域名
arpa
域:用于反向域名解析,因此,又被称为反向域名
-
域名服务器
- 根域名服务器:最重要的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址
- 如果域名服务器无法解析某一域名,都会首先请求根域名服务器
- 互联网上一共有13个根域名服务器
- 本地域名服务器:主机发送DNS查询请求时,这个请求报文会首先发送给本地域名服务器;每一个ISP,都可以拥有一个本地域名服务器;有时也称为默认域名服务器
- DNS域名服务器会把数据备份到几个域名服务器来保存,来实现可靠性。
- 根域名服务器:最重要的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址
-
域名解析步骤:
-
报文结构
-
UDP or TCP
-
DNS使用的传输层协议既可以是UDP也可以是TCP,且均使用53端口号;大多数情况下使用UDP协议,但是在
- DNS响应报文过长
- 区域传送
时使用TCP协议
-
电子邮件
构成
- 发件人(SMTP客户)
- 发件服务器(SMTP服务器)
- 发邮件SMTP(TCP连接)
- 收件人POP3服务器
- 收件人用户代理POP3客户
SMTP协议
- 简单邮件传输协议(simple mail transfer protocol),规定两个相互通信的SMTP进程之间应该如何交换信息
POP3协议
IMAP协议
万维网
万维网是分布式超媒体系统,是超文本系统的扩充
工作方式:Client/Server;
使用统一资源定位符(URL)来定位互联网上的各种文件,让每个文档在互联网上有唯一一个标识符URL。
使用HTTP协议在CS之间进行交互
URL
一般格式:
HTTP是面向事务(transaction oriented)的应用层协议,是万维网上能够交换各种文件的重要基础。HTTP协议基于TCP协议,但是是无连接的——执行请求前建立连接、执行结束后断开TCP连接——这是为了节省服务器资源。