计算机网络知识总结

您所在的位置:网站首页 计算机网络必考知识点 计算机网络知识总结

计算机网络知识总结

2022-03-27 16:52| 来源: 网络整理| 查看: 265

文章目录 前言一、计算机网络概述1 互联网的构成2.网络分类3.接入网4.网络核心的两大功能①路由②转发 5.网络分层①OSI 7层模型②TCP/IP 4层模型③两种模型比较 二、物理层1.物理介质①引导型介质②非引导型介质 2.数据交换方式①分组交换②电路交换 3.信道复用①频分复用②时分复用③波分复用④码分复用 三、数据链路层1.功能(要解决的问题)2.数据链路层提供的服务3.成帧(Framing)3.1 要解决的关键问题:如何标识一个帧的开始?3.2 成帧(framing)的方式①带比特填充的定界符法②物理层编码违例 4.差错控制4.1 背景4.2 差错检验与纠正①奇偶检验 (Parity Check)②校验和 (Checksum)③循环冗余校验 (Cyclic Redundancy Check,CRC)④汉明码 5.流量控制6.媒体接入控制 MAC (Medium Access Control)子层6.1 信道分配问题① 时分多址接入-TDMA② 频分多址接入-FDMA 6.2 多路访问协议6.2.1 随机访问协议①ALOHA②载波侦听多路访问协议CSMA 6.2.2 受控访问协议①位图协议(预留协议)②令牌传递③二进制倒计数协议 6.2.3 有限竞争协议①自适应树搜索协议(Adaptive Tree Walk Protocol) 6.3虚拟局域网VLAN6.4无线局域网WLAN 四、网络层1.网络层概述2.网络层关键功能3.Internet网际协议3.1 IPv4协议及其相关技术3.1.1 基本概念3.1.2 IPv4数据报格式3.1.3 数据报分片3.1.4 IP协议功能及报头字段总结 3.2 IP地址3.2.1 概述3.2.1 子网划分3.2.3 无类域间路由 3.3 DHCP动态主机配置协议3.4 ARP地址解析协议3.5 网络地址转换(NAT)3.6 ICMP: 互联网控制报文协议 4.路由算法4.1 距离向量路由算法过程特殊情况考虑 4.2 链路状态路由算法过程距离向量和链路状态算法比较 4.3 层次路由4.4 广播路由实现方法 5.Internet路由协议5.1 路由选择协议RIP5.2 BGP-外部网关路由协议 6.路由器的工作原理6.1 路由器概述6.2 路由器控制层6.3 路由器数据层 7.拥塞控制算法7.1 概述7.2 流量调节7.3 随机早期检测RED (Random Early Detection) 8.服务质量8.1概述8.2 流量整形①漏桶算法②令牌桶算法 8.3 数据包调度 9.三层交换9.1 三层交换的技术背景9.2 三层交换的动机9.3 三层交换机的工作原理 10.虚拟专用网VPN (Virtual Private Network)10.1 VPN的技术背景10.2 VPN的原理10.3 VPN的实现方式 11.IPv6协议 五、传输层1.传输层概述1.1 套接字1.2 传输层提供的服务1.3 因特网传输层提供的服务 2.传输层基本服务——复用和分用2.1 复用和分用概述2.2 套接字标识与端口号2.3 TCP/UDP套接字(复用和分用) 3.无连接传输:UDP3.1 UDP报文段结构3.2 UDP校验和(checksum)3.3 为什么需要UDP? 4.面向连接的传输:TCP4.1 可靠传输4.2 流水线技术①GBN 协议(回退 N 步协议)②SR 协议(选择重传协议)③TCP 可靠通信的具体实现GBN、SR和TCP小结 4.3 TCP报文段结构 5.TCP流量控制6.拥塞控制6.1 拥塞控制的类型6.2 TCP拥塞控制要解决的问题6.3 TCP拥塞控制的实现 六、应用层1.应用层概述1.1 应用进程通信方式①客户/服务器(C/S, Client/Server)方式②对等(P2P,Peer to Peer)方式 1.2 服务器进程工作方式 2.域名系统2.1 概述2.2 域名系统名字空间和层次结构2.3 域名解析过程 3.电子邮件3.1 邮件发送的常用协议3.2 Webmail 4.WWW4.1 WWW体系结构与协议4.2 HTTP概述HTTP发展现状Web安全与隐私:Cookie 5.流媒体5.1 概述5.2 流媒体动态自适应传输 6.内容分发网络CDN6.1 概述6.2 关键问题6.3 机理与解决方式 7.P2P网络8.远程登录Telnet9.FTP9.1 概述9.2 工作过程 写在最后

前言

为了准备期末考试,同时也是为了之后复习方便,特对计算机网络的知识进行了整理。本篇内容大部分是来源于我们老师上课的ppt。而我根据自己的理解,将老师的PPT整理成博文的形式以便大家复习查阅,同时对于一些不是很清楚的地方,我去查阅了相关资料进行补充,当然也会有少部分个人看法夹带其中来帮助大家理解。

应评论要求这里放上本文的思维导图以供大家更好的查看 在这里插入图片描述

一、计算机网络概述 1 互联网的构成

网络边缘:位于互联网边缘与互联网相连的计算机和其他设备,如桌面计算机、移动计算机、服务器、其他智能终端设备 网络核心:由互联端系统的分组交换设备和通信链路构成的网状网络 如:分组交换路由器、链路层交换机、通信链路(光纤、铜缆、无线电、激光链路)

2.网络分类

个域网PAN( Personal Area Network )

能在便携式消费电器与通信设备之间进行短距离通信的网络覆盖范围一般在10米半径以内,如蓝牙耳机等

局域网LAN(Local Area Network)

局部地区形成的区域网络,如企业网络分布地区范围有限,可大可小,大到一栋建筑、小到办公室内的组网电脑WLAN接入,打印机共享等等

城域网MAN(Metropolitan Area Network )

范围覆盖一个城市的网络

广域网WAN(Wide Area Network)

覆盖很大地理区域,乃至覆盖地区和国家 3.接入网

接入网的用途

接入网的用途是将主机连接到边缘路由器上边缘路由器是端系统Host去往任何其他远程端系统的路径上的第一台路由器

各种异构网络通过边缘路由器接入

接入网分类:

光纤到户FTTH数字用户线DSL同轴电缆无线接入企业和家庭网络 4.网络核心的两大功能 ①路由

确定数据分组从源到目标所使用的路径(全局操作)

②转发

路由器或交换机将接收到的数据分组转发出去(即移动到该设备的某个输出接口)(本地操作)

5.网络分层 ①OSI 7层模型

在这里插入图片描述

数据链路层 (Data Link Layer)

实现相邻(Neighboring)网络实体间的数据传输成帧(Framing):从物理层的比特流中提取出完整的帧错误检测与纠正:为提供可靠数据通信提供可能物理地址(MAC address):48位,理论上唯一网络标识,烧录在网卡,不便更改流量控制,避免“淹没”(overwhelming):当快速的发送端遇上慢速的接收端,接收端缓存溢出共享信道上的访问控制(MAC):同一个信道,同时传输信号。如同:同一个Wifi热点(AP)连接着多个无线用户(手机),则多个用户同时需要发送数据,如何控制发送顺序?

网络层 (Network Layer)

将数据包跨越网络从源设备发送到目的设备(host to host)路由(Routing):在网络中选取从源端到目的端转发路径,常常会根据网络可达性动态选取最佳路径,也可以使用静态路由路由协议:路由器之间交互路由信息所遵循的协议规范,使得单个路由器能够获取网络的可达性等信息服务质量(QoS)控制:处理网络拥塞、负载均衡、准入控制、保障延迟 异构网络互联:在异构编址和异构网络中路由寻址和转发

传输层 (Transport Layer)

将数据从源端口发送到目的端口(进程到进程)网络层定位到一台主机(host),传输层的作用域具体到主机上的某一个进程网络层的控制主要面向运营商,传输层为终端用户提供端到端的数据传输控制两类模式:可靠的传输模式,或不可靠传输模式可靠传输:可靠的端到端数据传输,适合于对通信质量有要求的应用场景,如文件传输等不可靠传输:更快捷、更轻量的端到端数据传输,适合于对通信质量要求不高,对通信响应速度要求高的应用场景,如语音对话、视频会议等

会话层 (Session Layer)

利用传输层提供的服务,在应用程序之间建立和维持会话,并能使会话获得同步

表示层(Presentation Layer)

关注所传递信息的语法和语义,管理数据的表示方法,传输的数据结构

应用层(Application Layer)

通过应用层协议,提供应用程序便捷的网络服务调用 ②TCP/IP 4层模型

在这里插入图片描述

③两种模型比较

在这里插入图片描述

注:我们教材的是以下分层来讲述的 在这里插入图片描述

二、物理层 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。用于物理层的协议也常称为物理层规程 (procedure)。 1.物理介质 ①引导型介质

信号在固体介质中传播,例如铜、光纤、同轴电缆

光纤

高速运行 高速点对点传输(10-100 Gbps)低错误率 中继器相距很远,对电磁噪声免疫 在这里插入图片描述

双绞线

两根绝缘铜线互相缠绕为一对电话线为1对双绞线,网线为4对双绞线,广泛用于计算机网络(以太网)双向传输第5类:100 Mbps~1 Gbps;第6类:10Gbps传输距离一般为为100米

在这里插入图片描述

同轴电缆

两根同心铜导线,双向传输电缆上的多个频率通道带宽可达100Mbps传输距离一般为200米

在这里插入图片描述

②非引导型介质

信号自由传播,例如无线电(陆地无线电、卫星无线电信道)

无线电

电磁频谱中各种“波段”携带的信号没有物理“电线”不依赖介质的广播半双工(发送方到接收方)

无线链路类型

无线局域网(WiFi) 10-100 Mbps;10米广域(如3/4/5G蜂窝) 在~10公里范围内蓝牙:短距离,有限速率地面微波:点对点;45 Mbps同步卫星:36000km高空, 280毫秒的往返时延低轨卫星:近地,但围绕地球高速运动,需要大量卫星才能覆盖地球 2.数据交换方式 ①分组交换

分组交换采用把一个个小的数据包存储转发传输来实现数据交换。

主要的一些缺点: 1、不具有实时性。 2、存在延时。 3、会造成通信阻塞。 4、存在无用的重复数据。 5、会出现丢包的情况。

优点: 1、设计简单。 2、资源利用率很高。

②电路交换

电路连接的三个阶段:

1、建立连接。 2、数据传输。 3、释放连接。

优点: 1、传输速度快、高效。 2、实时。

缺点: 1、资源利用率低。 2、新建连接需要占据一定的时间,甚至比通话的时间还长。

电路交换的多路复用 频分多路复用FDM 时分多路复用TDM

在这里插入图片描述

3.信道复用

复用 (multiplexing) 是通信技术中的基本概念。 它允许用户使用一个共享信道进行通信,降低成本,提高利用率。

①频分复用 将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

在这里插入图片描述

②时分复用

时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。 在这里插入图片描述

③波分复用

波分复用就是光的频分复用。使用一根光纤来同时传输多个光载波信号。 在这里插入图片描述

④码分复用

各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。

三、数据链路层 1.功能(要解决的问题)

成帧 (Framing) 将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现 差错控制 (Error Control) 处理传输中出现的差错,如位错误、丢失等 流量控制 (Flow Control) 确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出

2.数据链路层提供的服务

1.无确认 无连接 服务( Unacknowledged connectionless )

接收方不对收到的帧进行确认适用场景:误码率低的可靠信道;实时通信;网络实例:以太网

2.有确认 无连接 服务( Acknowledged connectionless )

每一帧都得到单独的确认适用场景:不可靠的信道(无线信道)网络实例:802.11

3.有确认 有连接 服务( Acknowledged connection-oriented )

适用场景:长延迟的不可靠信道 3.成帧(Framing) 3.1 要解决的关键问题:如何标识一个帧的开始? 接收方必须能从物理层接收的比特流中明确区分出一帧的开始和结束,这个问题被称为帧同步或帧定界关键:选择何种定界符?定界符出现在数据部分如何处理? 3.2 成帧(framing)的方式 ①带比特填充的定界符法

定界符:两个0比特之间,连续6个1比特,即01111110,0x7E 在这里插入图片描述 发送方检查有效载荷:若在有效载荷中出现连续5个1比特,则直接插入1个0比特 在这里插入图片描述

接收方的处理: 若出现连续5个1比特, 若下一比特为0,则为有效载荷,直接丢弃0比特; 若下一比特为1,则连同后一比特的0,构成定界符,一帧结束

②物理层编码违例 核心思想:选择的定界符不会在数据部分出现4B/5B编码方案 4比特数据映射成5比特编码,剩余的一半码字(16个码字)未使用,可以用做帧定界符 例如: 00110组合不包含在4B/5B编码中,可做帧定界符前导码 存在很长的 前导码(preamble),可以用作定界符 例如:传统以太网、802.11曼切斯特编码 / 差分曼切斯特编码 正常的信号在周期中间有跳变,持续的高电平(或低电平)为违例码,可以用作定界符 例如:802.5令牌环网 4.差错控制 4.1 背景

链路层存在的一个问题:信道的噪声导致数据传输问题

差错( incorrect ):数据发生错误丢失( lost ):接收方未收到乱序(out of order):先发后到,后发先到重复(repeatedly delivery):一次发送,多次接收

解决方案:差错检测与纠正、确认重传

确认:接收方校验数据(差错校验),并给发送方应答,防止差错定时器:发送方启动定时器,防止丢失顺序号:接收方检查序号,防止乱序递交、重复递交 4.2 差错检验与纠正

目标

保证一定差错检测和纠错能力的前提下,如何减少冗余信息量?

考虑的问题

信道的特征和传输需求冗余信息的计算方法、携带的冗余信息量计算的复杂度等

两种主要策略

检错码(error-detecting code)

在被发送的数据块中,包含一些冗余信息,但这些信息只能使接收方推断是否发生错误但不能推断哪位发生错误,接收方可以请求发送方重传数据主要用在高可靠、误码率较低的信道上,例如光纤链路偶尔发生的差错,可以通过重传解决差错问题

纠错码(error-correcting code)

发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误(定位出错的位置)主要用于错误发生比较频繁的信道上,如无线链路也经常用于物理层,以及更高层(例如,实时流媒体应用和内容分发)使用纠错码的技术通常称为前向纠错(FEC,Forward Error Correction)

常用的检错码包括:

①奇偶检验 (Parity Check)

1位奇偶校验是最简单、最基础的检错码。

1位奇偶校验:增加1位校验位,可以检查奇数位错误。 在这里插入图片描述

②校验和 (Checksum)

主要用于TCP/IP体系中的网络层和传输层 在这里插入图片描述

③循环冗余校验 (Cyclic Redundancy Check,CRC)

数据链路层广泛使用的校验方法

CRC校验码计算方法

设原始数据D为k位二进制位模式如果要产生n位CRC校验码,事先选定一个n+1位二进制位模式G (称为生成多项式,收发双方提前商定),G的最高位为1将原始数据D乘以2^n (相当于在D后面添加 n 个 0),产生k+n位二进制位模式,用G对该位模式做模2除,得到余数R(n位,不足n位前面用0补齐)即为CRC校验码

在这里插入图片描述

CRC校验码计算示例

D = 1010001101n = 5G = 110101 或 G = x5 + x4 + x2 + 1R = 01110实际传输数据:101000110101110 在这里插入图片描述 ④汉明码

目标:以奇偶校验为基础,找到出错位置,提供1位纠错能力

给定n位待发送的数据,首先确定校验位的个数k(根据2^k≥k+n+1)确定校验位在码流中的位置,2^i,i=0,1,2,……,得到校验位P_1,P_2,P_4,P_8,……确定分组,即每个校验位分别负责哪些数据位 P_1负责位置号的二进制符合XXXX1形式的数据位,即1,3,5,7,9,…… P_2负责位置号的二进制符合XXX1X形式的数据位,即2,3,6,7,10,…… P_3负责位置号的二进制符合XX1XX形式的数据位,即4,5,6,7,12,13,14,15,……基于偶校验确定每组的校验位(0或1)

注: 汉明码是采用奇偶校验的码。它采用了一种非常巧妙的方式,把这串数字分了组,通过分组校验来确定哪一位出现了错误。

实际的海明码编码的过程也并不复杂,我们通过用不同过的校验位,去匹配多个不同的数据组,确保任何一个数据位出错,都会产生一个多个校验码位出错的唯一组合。这样,在出错的时候,我们就可以反过来找到出错的数据位,并纠正过来。当只有一个校验码位出错的时候,我们就知道实际出错的是校验码位了。

5.流量控制

链路层存在的另一个问题:接收方的处理速率

接收方的接收缓冲区溢出

解决方案

基于反馈 (feedback-based) 的流量控制 接收方反馈,发送方调整发送速率基于速率 (rate-based) 的流量控制 发送方根据内建机制,自行限速 6.媒体接入控制 MAC (Medium Access Control)子层

数据链路层分为两个子层: MAC子层:介质访问 LLC子层:承上启下(弱层) 在这里插入图片描述

6.1 信道分配问题 ① 时分多址接入-TDMA

TDMA: time division multiple access

按顺序依次接入并使用信道每个用户使用固定且相同长度的时隙某时隙轮到某用户使用时,该用户没有数据要发送,则该时隙被闲置

例子: 6-user LAN, 1,3,4时隙有数据发送, 2,5,6时隙被闲置 在这里插入图片描述

② 频分多址接入-FDMA

FDMA: frequency division multiple access

信道总频带被划分为多个相同宽度的子频带每个用户占用一个子频带,不管用户是否有数据发送

例子: 6-user LAN, 1,3,4频带有数据发送, 2,5,6频带被闲置 在这里插入图片描述

6.2 多路访问协议

在这里插入图片描述

6.2.1 随机访问协议

特点:冲突不可避免

①ALOHA

纯ALOHA协议

原理:想发就发!

特点:

冲突:两个或以上的帧随时可能冲突冲突的帧完全破坏破坏了的帧要重传

分隙ALOHA

分隙ALOHA是把时间分成时隙(时槽)时隙的长度对应一帧的传输时间。帧的发送必须在时隙的起点。冲突只发生在时隙的起点 在这里插入图片描述 ②载波侦听多路访问协议CSMA

特点:“先听后发” 改进ALOHA的侦听/发送策略分类 在这里插入图片描述

非持续式CSMA

1.特点 ①经侦听,如果介质空闲,开始发送 ②如果介质忙,则等待一个随机分布的时间,然后重复步骤①

2.好处 等待一个随机时间可以减少再次碰撞冲突的可能性

3.缺点 等待时间内介质上如果没有数据传送,这段时间是浪费的

持续式CSMA

p-持续式CSMA

1.特点

①经侦听,如介质空闲,那么以 p的概率 发送,以(1–p)的概率延迟一个时间单元发送 ②如介质忙,持续侦听,一旦空闲重复① ③如果发送已推迟一个时间单元,再重复步骤①

1-持续式CSMA

1.特点 ①经侦听,如介质空闲,则发送 ②如介质忙,持续侦听,一旦空闲立即发送 ③如果发生冲突,等待一个随机分布的时间再重复步骤①

2.好处:持续式的延迟时间要少于非持续式

3.主要问题:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突

4.注意 1-持续式是p-持续式的特例

6.2.2 受控访问协议

在这里插入图片描述

特点:克服了冲突

①位图协议(预留协议)

在这里插入图片描述

在这里插入图片描述

竞争期:在自己的时槽内发送竞争比特

举手示意资源预留

传输期:按序发送

明确的使用权,避免了冲突 ②令牌传递

令牌:发送权限

令牌的运行:发送工作站去抓取,获得发送权

除了环,令牌也可以运行在其它拓扑上,如令牌总线发送的帧需要目的站或发送站将其从共享信道上去除;防止无限循环

缺点:令牌的维护代价

在这里插入图片描述

③二进制倒计数协议

在这里插入图片描述

站点:编序号,序号长度相同 竞争期:有数据发送的站点从高序号到低序号排队,高者得到发送权 特点:高序号站点优先

6.2.3 有限竞争协议

利用上述二者的优势

①自适应树搜索协议(Adaptive Tree Walk Protocol) 在一次成功传输后的第一个竞争时隙,所有站点同时竞争。如果只有一个站点申请,则获得信道。否则在下一竞争时隙,有一半站点参与竞争(递归),下一时隙由另一半站点参与竞争即所有站点构成一棵完全二叉树。 在这里插入图片描述 6.3虚拟局域网VLAN

广播域(Broadcasting Domain)

广播域是广播帧能够到达的范围;缺省情况下,交换机所有端口同属于一个广播域,无法隔离广播域;广播帧在广播域中传播,占用资源,降低性能,且具有安全隐患。

在这里插入图片描述

VLAN是一个在物理网络上根据用途,工作组、应用等来逻辑划分的局域网络,与用户的物理位置没有关系。

在这里插入图片描述

通过路由器或三层交换机进行VLAN间路由,实现VLAN间通信。 在这里插入图片描述 VLAN类型

基于端口的VLAN 在这里插入图片描述

基于MAC地址的VLAN 在这里插入图片描述

基于协议的VLAN 在这里插入图片描述

基于子网的VLAN 在这里插入图片描述

6.4无线局域网WLAN

无线局域网(Wireless Local Area Network,WLAN):指以无线信道作为传输介质的计算机局域网

基础架构模式(Infrastructure) 在这里插入图片描述

分布式系统(DS)访问点(AP)站点(STA)基本服务集(BSS)扩展服务集(ESS)站点之间通信通过AP转发

自组织模式(Ad hoc) 在这里插入图片描述

站点(STA)独立基本服务集(IBSS)站点之间直接通信共享同一无线信道

无线局域网需要解决的问题

1.有限的无线频谱带宽资源

通道划分、空间重用提高传输速率,解决传输问题提高抗干扰能力和保密性

2.共享的无线信道

介质访问控制方法(CSMA/CA)可靠性传输、安全性

3.组网模式管理

BSS构建、认证、关联移动性支持(漫游)睡眠管理(节能模式) 四、网络层 1.网络层概述

网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。 在这里插入图片描述

2.网络层关键功能 路由(控制面) 选择数据报从源端到目的端的路径核心:路由算法与协议 转发(数据面) 将数据报从路由器的输入接口传送到正确的输出接口 3.Internet网际协议 3.1 IPv4协议及其相关技术 3.1.1 基本概念

IPv4协议,网际协议版本4,一种无连接的协议,是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6

internet协议执行两个基本功能

寻址(addressing)分片(fragmentation) 3.1.2 IPv4数据报格式

在这里插入图片描述

版本: 4bit ,表示采用的IP协议版本首部长度: 4bit,表示整个IP数据报首部的长度区分服务: 8bit ,该字段一般情况下不使用总长度: 16bit ,表示整个IP报文的长度,能表示的最大字节为2^16-1=65535字节标识: 16bit , IP软件通过计数器自动产生,每产生1个数据报计数器加1;在ip分片以后,用来标识同一片分片标志: 3bit,目前只有两位有意义。 MF,置1表示后面还有分片,置0表示这是数据报片的最后1个; DF,不能分片标志,置0时表示允许分片片偏移: 13bit,表示IP分片后,相应的IP片在总的IP片的相对位置生存时间TTL(Time To Live) :8bit,表示数据报在网络中的生命周期,用通过路由器的数量来计量,即跳数(每经过一个路由器会减1)协议:8bit,标识上层协议(TCP/UDP/ICMP…)首部校验和:16bit ,对数据报首部进行校验,不包括数据部分源地址:32bit,标识IP片的发送源IP地址目的地址:32bit,标识IP片的目的地IP地址选项:可扩充部分,具有可变长度,定义了安全性、严格源路由、松散源路由、记录路由、时间戳等选项填充:用全0的填充字段补齐为4字节的整数倍 3.1.3 数据报分片

分片原因

数据报长度大于传输链路的MTU

MTU(Maximum Transmission Unit), 最大传输单元

链路MTU路径MTU (Path MTU)

分片策略

允许途中分片:根据下一跳链路的MTU实施分片不允许途中分片:发出的数据报长度小于路径MTU(路径MTU发现机制)

重组策略

途中重组,实施难度太大目的端重组(互联网采用的策略)重组所需信息:原始数据报编号、分片偏移量、是否收集所有分片

在这里插入图片描述

在这里插入图片描述 IPv4分片策略

IPv4分组在传输途中可以多次分片 源端系统,中间路由器(可通过标志位设定是否允许路由器分片,DF标志位) IPv4分片只在目的IP对应的目的端系统进行重组IPv4分片、重组字段在基本IP头部 标识、标志、片偏移 IPv6分片机制有较大变化(见IPv6部分的介绍)

注:分组 (packet) 与 帧(frame)的关系

在这里插入图片描述

3.1.4 IP协议功能及报头字段总结

网络层基本功能

支持多跳寻路将IP数据报送达目的端:目的IP地址表明发送端身份:源IP地址根据IP头部协议类型,提交给不同上层协议处理:协议

其它相关问题

数据报长度大于传输链路的MTU的问题,通过分片机制解决:标识、标志、片偏移防止循环转发浪费网络资源(路由错误、设备故障…),通过跳数限制解决:生存时间TTLIP报头错误导致无效传输,通过头部机校验解决:首部校验和 3.2 IP地址 3.2.1 概述

IP地址,网络上的每一台主机(或路由器)的每一个接口都会分配一个全球唯一的32位的标识符

将IP地址划分为固定的类,每一类都由两个字段组成

网络号相同的这块连续IP地址空间称为地址的前缀,或网络前缀

IP地址共分为A、B、C、D、E五类,A类、B类、C类为单播地址

IP地址的书写采用点分十进制记法,其中每一段取值范围为0到255

在这里插入图片描述

IP特殊地址 在这里插入图片描述

3.2.1 子网划分 子网划分(subnetting),在网络内部将一个网络块进行划分以供多个内部网络使用,对外仍是一个网络子网(subnet ),一个网络进行子网划分后得到的一系列结果网络称为子网子网掩码(subnet mask ),与 IP 地址一一对应,是32 bit 的二进制数,置1表示网络位,置0表示主机位子网划分减少了 IP 地址的浪费、网络的组织更加灵活、便于维护和管理 在这里插入图片描述

在这里插入图片描述

3.2.3 无类域间路由 将32位的IP地址划分为前后两个部分,并采用斜线记法,即在IP地址后加上“/”,然后再写上网络前缀所占位数

在这里插入图片描述

一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合(route aggregation),也称为构成超网 (supernet)聚合技术在Internet中大量使用,它允许前缀重叠,数据包按具体路由的方向发送,即具有最少IP地址的最长匹配前缀

注:当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表进行逐位(Bit-By-Bit)对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。(路由比对之前会用相应路由的目的网络掩码进行逻辑与运算,再拿结果与路由路径比对)

3.3 DHCP动态主机配置协议

DHCP :动态主机配置协议

当主机加入IP网络,允许主机从DHCP服务器动态获取IP地址可以有效利用IP地址,方便移动主机的地址获取

工作模式:客户/服务器模式( C/S ) 基于 UDP 工作,服务器运行在 67 号端口, 客户端运行在 68 号端口

在这里插入图片描述

DHCP 客户从UDP端口68以广播形式向服务器发送发现报文(DHCPDISCOVER)DHCP 服务器广播发出提供报文(DHCPOFFER)DHCP 客户从多个DHCP服务器中选择一个,并向其以广播形式发送DHCP请求报文(DHCPREQUEST)被选择的DHCP服务器广播发送确认报文(DHCPACK) 3.4 ARP地址解析协议

背景 网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址二获取的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。

注:因为下层协议是通过MAC地址来确定各自身份的,所以下层发送必须要MAC地址

IP 与 MAC地址 在这里插入图片描述

ARP协议工作过程 在这里插入图片描述

A已知B的IP地址,需要获得B的MAC地址(物理地址)如果A的ARP表中缓存有B的IP地址与MAC地址的映射关系,则直接从ARP表获取如果A的ARP表中未缓存有B的IP地址与MAC地址的映射关系,则A广播包含B的IP地址的ARP query分组 在局域网上的所有节点都可以接收到ARP query B接收到ARP query分组后,将自己的MAC地址发送给AA在ARP表中缓存B的IP地址和MAC地址的映射关系 超时时删除

路由到另一个局域网 在这里插入图片描述

A创建IP数据包(源为A、目的为E)在源主机A的路由表中找到路由器R的IP地址223.1.1.4A根据R的IP地址223.1.1.4,使用ARP协议获得R的MAC地址A创建数据帧(目的地址为R的MAC地址)数据帧中封装A到E的IP数据包A发送数据帧,R接收数据帧 3.5 网络地址转换(NAT)

定义 网络地址转换(NAT)用于解决IPv4地址不足的问题,是一种将私有(保留)地址转化为公有IP地址的转换技术

私有IP地址: A类地址:10.0.0.0–10.255.255.255 B类地址:172.16.0.0–172.31.255.555 C类地址:192.168.0.0–192.168.255.255

NAT工作机制 在这里插入图片描述

出数据报:外出数据报用 NAT IP地址(全局), 新port # 替代 源IP地址(私有), port #

NAT转换表:每个 (源IP地址, port #)到(NAT IP地址, 新port #) 映射项

入数据报:对每个入数据报的地址字段用存储在NAT表中的(源IP地址, port #)替代对应的 (NAT IP地址, 新port #)

NAT根据不同的IP上层协议进行NAT表项管理 TCP,UDP,ICMP

传输层TCP/UDP拥有16-bit 端口号字段 所以一个WAN侧地址可支持60,000个并行连接

NAT的优势

节省合法地址,减少地址冲突灵活连接Internet保护局域网的私密性 3.6 ICMP: 互联网控制报文协议

ICMP: 互联网控制报文协议

ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告由主机和路由器用于网络层信息的通信ICMP 报文携带在IP 数据报中: IP上层协议号为1

ICMP报文类型

ICMP 差错报告报文 终点不可达:不可达主机、不可达网络,无效端口、协议 ICMP 询问报文 回送请求/回答 (ping使用)

ICMP 报文格式 在这里插入图片描述

ICMP报文的前 4 个字节包含格式统一的三个字段:类型、代码、检验和相邻的后四个字节内容与ICMP的报文类型有关

ICMP报文类型及功能 在这里插入图片描述

4.路由算法

路由算法须满足的特性:

正确性简单性鲁棒性稳定性公平性有效性

根据路由算法是否随网络的通信量或拓扑自适应划分

静态路由选择策略(非自适应路由选择)动态路由选择策略(自适应路由选择) 4.1 距离向量路由

算法基本思想

每个节点周期性地向邻居发送它自己到某些节点的距离向量;

当节点x接收到来自邻居的新DV估计,它使用B-F方程更新其自己的DV : Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N

上述过程迭代执行,Dx(y)收敛为实际最小费用 dx(y)

距离向量算法特点:迭代的、分布式的

每次本地迭代由下列引起: 本地链路费用改变、邻居更新报文分布式:各节点依次计算,相互依赖

注:路由器只掌握物理相连的邻居以及链路费用

算法过程

路由器启动时初始化自己的路由表

初始路由表包含所有直接相连的网络路径,距离均为0 在这里插入图片描述

路由器周期性地向其相邻路由器广播自己知道的路由信息

相邻路由器可以根据收到的路由信息修改和刷新自己的路由表 在这里插入图片描述

路由器经过若干次更新后,最终都会知道到达所有网络的最短距离

所有的路由器都得到正确的路由选择信息时网络进入“收敛”(convergence)状态

在这里插入图片描述

特殊情况考虑

计数到无穷问题(The Count-to-Infinity Problem)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

好消息传播快,坏消息传播慢,是距离向量路由的一个主要缺点

4.2 链路状态路由

注:所有路由器掌握完整的网络拓扑和链路费用信息

算法过程

链路状态(Link State)路由可分为五个部分:

发现邻居,了解他们的网络地址; 在这里插入图片描述

设置到每个邻居的成本度量;

开销/度量/代价: 自动发现设置或人工配置度量:带宽、跳数、延迟、负载、可靠性等 常用度量:链路带宽(反比) 例如:1-Gbps以太网的代价为1,100-Mbps以太网的代价为10 可选度量:延迟 发送一个echo包,另一端立即回送一个应答通过测量往返时间RTT,可以获得一个合理的延迟估计值 构造一个分组,分组中包含刚收到的所有信息;

构造链路状态分组(link state packet,LSP)

发送方标识序列号年龄邻居列表

在这里插入图片描述

将此分组发送给其他的路由器; 每个LSP分组包含一个序列号,且递增路由器记录所收到的所有(源路由器、序列号)对当一个新分组到达时,路由器根据记录判断: 如果是新分组,洪泛广播如果是重复分组,丢弃如果是过时分组,拒绝 计算到其他路由器的最短路径。

Dijkstra算法示例 D(k):从计算节点到目的节点k当前路径代价 p(k):从计算节点到目的节点k的路径中k节点的前继节点

在这里插入图片描述

距离向量和链路状态算法比较

网络状态信息交换的范围

DV:邻居间交换LS:全网扩散

网络状态信息的可靠性

DV:部分道听途说LS:自己测量 4.3 层次路由

产生原因

过于庞大的路由表存储、查找困难,路由信息交互开销高

现实情况:

地址分配往往是随机的,难以进行高效的地址聚合每个网络的网络管理员有自己的管理方法和思路,并不希望每个路由器都干涉本网络内部的地址分配等问题

层次路由可以解决:

网络扩展性问题:当网络扩大时,控制路由表条目和路由表存储空间的增长管理的自治问题:网络管理员可以控制和管理自己网络的路由

基本思路

互联网由大量不同的网络互连,每个管理机构控制的网络是自治的

自治系统(AS,Autonomous System)

一个管理机构控制之下的网络一个AS内部通常使用相同的路由算法/路由协议,使用统一的路由度量(跳数、带宽、时延 …)不同的AS可以使用不同的路由算法/路由协议每个AS有一个全球唯一的ID号:AS ID

自治系统内的还可以进一步划分层次:私有自治系统或区域

效果 在这里插入图片描述

4.4 广播路由

广播(Broadcasting):源主机同时给全部目标地址发送同一个数据包

实现方法

①给每个主机单独发送一个数据包

效率低、浪费带宽Server需要知道每个目的地址

②多目标路由(multi-destination routing)

在需要转发的路由器线路复制一次该数据报网络利用率高Server依然需要知道所有的目的地址

注:以上方法难以实现

③泛洪(flooding)

一种将数据包发送到所有网络节点的简单方法将每个进入数据包发送到除了进入线路外的每条出去线路

用途

保证性:一种有效广播手段,可确保数据包被传送到网络中每个节点鲁棒性:即使大量路由器被损坏,也能找到一条路径(如果存在)简单性:仅需知道自己的邻居

无控制的泛洪

实现广播最显而易见的技术环路可能导致广播风暴路由器可能收到多个副本节点需要跟踪已泛洪的数据包以阻止洪泛即使利用跳数来限制,也会出现成倍爆炸

解决方法:受控制的泛洪(每个路由器进行有选择的泛洪)

序号控制泛洪逆向路径转发

④生成树(spanning tree)

源节点向所有属于该生成树的特定链路发送分组改进了逆向路径转发没有环路最佳使用带宽最少副本,消除了冗余分组一个路由器可以不必知道整颗树,只需要知道在一颗树中的邻居即可

在这里插入图片描述

5.Internet路由协议 5.1 路由选择协议RIP

概述

路由选择协议RIP( Routing Information Protocol)是基于距离矢量算法的协议使用跳数衡量到达目的网络的距离 RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”RIP 允许一条路径最多只能包含 15 个路由器 RIP协议的基本思想 仅和相邻路由器交换信息路由器交换的内容是自己的路由表周期性更新:30s

工作过程

初始化

在这里插入图片描述

周期性更新 在这里插入图片描述

小结

RIP协议的特点

算法简单,易于实现收敛慢需要交换的信息量较大

RIP协议的适用场合

中小型网络

RIP协议的防环路机制

触发更新毒性反转水平分割其他 5.2 BGP-外部网关路由协议

路由协议

内部网关协议 IGP: 有 RIP 和、OSPF、ISIS 等多种具体的协议外部网关协议 EGP:目前使用的协议就是 BGP

边界网关协议BGP (Border Gateway Protocol)

目前互联网中唯一实际运行的自治域间的路由协议

BGP功能

eBGP:从相邻的AS获得网络可达信息iBGP: 将网络可达信息传播给AS内的路由器基于网络可达信息和策略决定到其他网络的“最优”路由

BGP会话: 两个BGP路由器通过TCP连接交换BGP报文

通告到不同网络前缀的路径,即路径向量协议

BGP路径通告 在这里插入图片描述

AS2的路由器2c从AS3的路由器3a接收到路径AS3, X根据AS2的策略,AS2的路由器2c接受路径AS3, X,通过iBGP传播给AS2的所有路由器根据AS2策略,AS2的路由器2a通过eBGP向AS1的路由器1c通告从AS3的路由器3a接收到路径AS2, AS3, X

在这里插入图片描述

路由器可能会学到多条到达目的网络的路径:

AS1的路由器1c从2a学到路径AS2, AS3, XAS1的路由器1c从3a学到路径AS3, X 由策略,AS1路由器1c可能选择路径AS3, X, 并在AS1中通过iBGP通告路径 6.路由器的工作原理 6.1 路由器概述

路由器是互联网最主要的网络设备,包含2个核心功能

控制层:运行各种路由协议:BGP、OSPF、RIP,学习去往不同目的的转发路径:路由表数据层:根据上述路由表,将收到的IP分组转发到正确的下一跳链路

在这里插入图片描述

6.2 路由器控制层 路由器可同时运行多个路由协议路由器也可不运行任何路由协议,只使用静态路由和直连路由路由管理根据路由优先级,选择最佳路由,形成核心路由表控制层将核心路由表下发到数据层,形成转发表(FIB)若存在多个“去往同一目的IP前缀”的不同类型路由,路由器根据优先级选择最佳路由优先级数值越小,优先级越高 在这里插入图片描述 6.3 路由器数据层

路由器中IP报文转发核心功能

链路层解封装,IP头部校验获取报文目的IP地址用目的IP地址,基于最长前缀匹配规则查询转发表查询失败,丢弃报文查询成功 获取转发出接口和下一跳IP地址IP头部“TTL”字段值减1,重新计算IP头部“校验和”重新进行链路层封装,发送报文

注:普通IP报文转发过程中,路由器不查看传输层及以上层协议的内容

IP报文在路由器转发前后的变化

链路层封装更新,IP头部“TTL”减1,IP头部“校验和”更新

数据报在不同硬件单元的处理

报文输入的接口卡 链路层解封装转发表查询(该工作在输入接口卡处理)通过交换结构将报文排队发往目的接口卡(发送过快将产生拥塞) 交换结构 从输入接口卡发往输出接口卡 报文输出的接口卡 从交换结构接收报文(排队进行后续处理,到达太快将产生拥塞)链路层封装从输出接口发送报文

3种典型的交换结构

在这里插入图片描述

7.拥塞控制算法 7.1 概述

拥塞 网络中存在太多的数据包导致数据包传输延迟或丢失,从而导致网络吞吐量下降

拥塞控制(congestion control) 需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器等多种因素

产生拥塞的原因

主机发送到网络的数据包数量过多,超过了网络的承载能力突发的流量填满了路由器的缓冲区,造成某些数据包会被丢弃

拥塞控制的基本策略

开环控制----事先对通信流参数进行协商,协商后,不管网络是拥塞还是带宽充足,参数不能动态改变 开环控制属于预防性拥塞控制,它竭力使网络总是处于无拥塞状态运行。开环控制的方法包括决定什么时候接受新流量,什么时候丢弃数据包和丢弃哪些数据包。其缺点是没有考虑网络的当前状态 闭环控制—根据网络状态进行动态控制,包括两部分:反馈机制和控制机制。闭环控制方法分为两个子类:显式反馈与隐式反馈 7.2 流量调节 抑制包(Choke Packets):用于通知发送方减小发送量,路由器选择一个被拥塞的数据包,给该数据包的源主机返回一个抑制包,抑制包中的目的地址取自该拥塞数据包。源主机收到抑制包后,减少发向特定目的地址的流量逐跳的抑制包(Hop-by-Hop Choke Packets):在高速或长距离网络中,由于源主机响应太慢,抑制包算法对拥塞控制的效果并不好,可采用逐跳抑制方法;其核心思想是抑制包对它经过的每个路由器都起作用,能够迅速缓解发生拥塞处的拥塞,但要求上游路由器有更大的缓冲区显式拥塞通告(ECN,Explicit Congestion Notification),在IP包头中记录数据包是否经历了拥塞。在数据包转发过程中,路由器可以在包头中标记为经历拥塞,然后接收方在它的下一个应答数据包里显示该标记作为显式拥塞信号RFC2474中重新定义TOS域为包含一个6位的区分服务码点(DSCP) 和2位未使用位;RFC3168重新定义RFC2474中TOS域未使用的两位为ECN域,包含如下值: 00:发送主机不支持ECN 01或者10:发送主机支持ECN 11:路由器正在经历拥塞 7.3 随机早期检测RED (Random Early Detection) 使路由器的队列维持两个参数,即队列长度最小门限 THmin 和最大门限 THmaxRED 对每一个到达的数据报都先计算平均队列长度 LAV若平均队列长度小于最小门限 THmin ,则将新到达的数据报放入队列进行排队若平均队列长度超过最大门限 THmax,则将新到达的数据报丢弃若平均队列长度在最小门限 THmin 和最大门限THmax 之间,则按照某一概率 p 将新到达的数据报丢弃RED 将路由器的到达队列划分成为三个区域 在这里插入图片描述

丢弃概率 p 与 THmin 和 Thmax 的关系

当 LAV Thmax 时,丢弃概率 p = 1当 THmin < LAV < THmax时, 0  p  1 例如,按线性规律变化,从 0 变到 pmax 8.服务质量 8.1概述

问题的提出

互联网本身只能提供“尽力而为的服务”或称“尽最大努力交付的服务”当互联网越来越多的用于传输多媒体信息时,由于这些实时业务对网络的传输延时、延时抖动等特性较为敏感,这样网络的传输质量就难以保障了IP网络不能保证特定业务的QoS要求,已经成为IP网络发展的巨大障碍网络的服务质量越来越多的引起人们的关注,甚至成为网络技术研究的热点问题

什么是网络服务质量?(QoS, Quality of Service)

QoS是网络在传输数据流时要满足一系列服务请求,具体可以量化为带宽、时延、抖动、丢包率等性能指标

8.2 流量整形

流量整形(traffic shaping):其作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送

①漏桶算法 到达的数据包(网络层的PDU)被放置在底部具有漏孔的桶中(数据包缓存)漏桶最多可以排队b个字节,漏桶的这个尺寸受限于内存。如果数据包到达的时候漏桶已经满了,那么数据包应被丢弃数据包从漏桶中漏出,以常量速率(r字节/秒)注入网络,因此平滑了突发流量

在这里插入图片描述

②令牌桶算法 产生令牌:周期性的以速率r向令牌桶中增加令牌,桶中的令牌不断增多。如果桶中令牌数已到达上限,则丢弃多余令牌消耗令牌:输入数据包会消耗桶中的令牌。在网络传输中,数据包的大小通常不一致。大的数据包相较于小的数据包消耗的令牌要多判断是否通过:输入数据包经过令牌桶时存在两种可能:输出该数据包或者被丢弃。当桶中的令牌数量可以满足数据包对令牌的需求,则将数据包输出,否则将其丢弃

注:漏桶算法和令牌桶算法的区别在于漏桶算法输出的流量永远不可能超过一定限制,而令牌桶算法可以容忍短时间内的高流量输出,对于一些突发流量的需求比较友好

8.3 数据包调度

在同一个流的数据包之间以及在竞争流之间分配路由器资源的算法称为包调度算法,它负责分配带宽和其他路由器资源,负责确定把缓冲区中的哪些数据包发送到输出链路上

先来先服务FCFS(First-Come First-Serve)公平队列算法(Fair Queueing/Round Robin)加权公平队列算法(Weighted Fair Queueing)优先级调度(Priority Scheduling) 9.三层交换 9.1 三层交换的技术背景 二层交换网络中的广播,限制了网络规模的扩展 交换机对目标地址无法匹配的数据帧进行广播转发交换机对目标地址为广播地址的数据帧进行广播转发交换机为维护生成树状态产生大量的桥协议数据单元(Bridge Protocol Data Unit,BPDU)这些广播帧会大量消耗网络资源,并频繁影响用户的数据通信 VLAN虽然可以将广播的影响限定在一定范围内,但同时也隔离了正常的用户间数据通信传统路由器致力于解决VLAN间互联互通,但是其转发效率和拓扑复杂性带来的网络通信瓶颈无法有效应对规模扩展 9.2 三层交换的动机 利用第三层协议中的信息来加强第二层交换功能,形成带有路由功能的交换融合VLAN 间的二层隔离和三层互通,消除大规模网络中广播对性能的影响简化网络配置,简化网络拓扑,优化网络管理,降低网络部署成本

在这里插入图片描述

9.3 三层交换机的工作原理

在这里插入图片描述

10.虚拟专用网VPN (Virtual Private Network) 10.1 VPN的技术背景 计算机网络按用途分类 专用、公用 专用网络的实现方式 使用专用链路:铺设、租用(费用高,不灵活)使用公共链路:不安全 虚拟专用网VPN (Virtual Private Network) 专用网络的经济、可靠、灵活的解决方案利用安全隧道技术将专用网络在公共网络上扩展 VPN的设计原则 安全性、隧道与加密、数据验证、用户验证、防火墙与攻击检测 10.2 VPN的原理 VPN指利用公用网络架设专用网络的远程访问技术VPN通过隧道技术在公共网络上模拟出一条点到点的逻辑专线,从而达到安全数据传输的目的

在这里插入图片描述

在这里插入图片描述

VPN对数据机密性和完整性的保护 在这里插入图片描述 10.3 VPN的实现方式

用VPN连接合作伙伴 在这里插入图片描述

用VPN实现专用网络的远程访问 在这里插入图片描述

11.IPv6协议

初始动机:应付“32-bit地址空间耗尽”问题(CIDR和NAT都无法从根本上解决地址短缺问题),增加地址空间 IPv6 地址

地址长度为128bit,是IPv4地址长度的4倍IPv6地址空间数量约为3*1038IPv6地址表示法,冒分十六进制,x : x : x : x : x : x : x : x 简化方法:每个x前面的0可省略,可把连续的值为0的x表示为“::”, 且“::”只能出现1次简化前地址,2001:0DA8:0000:0000:200C:0000:0000:00A5简化后地址,2001:DA8:0000:0000:200C::A5 五、传输层 1.传输层概述 传输层位于应用层和网络层之间: 基于网络层提供的服务,向分布式应用程序提供通信服务 按照因特网的“端到端”设计原则: 应用程序只运行在终端上,即不需要为网络设备编写程序 站在应用程序的角度: 传输层应提供进程之间本地通信的抽象:即运行在不同终端上的应用进程仿佛是直接连在一起的 1.1 套接字 设想在应用程序和网络之间存在一扇“门”: 需要发送报文时:发送进程将报文推到门外门外的运输设施(因特网)将报文送到接收进程的门口需要接收报文时:接收进程打开门,即可收到报文 在TCP/IP网络中,这扇“门”称为套接字(socket),是应用层和传输层的接口,也是应用程序和网络之间的API 1.2 传输层提供的服务 因特网的网络层提供“尽力而为”的服务: 网络层尽最大努力在终端间交付分组,但不提供任何承诺具体来说,不保证交付,不保证按序交付,不保证数据完整,不保证延迟,不保证带宽等 传输层的有所为、有所不为: 传输层可以通过差错恢复、重排序等手段提供可靠、按序的交付服务但传输层无法提供延迟保证、带宽保证等服务 1.3 因特网传输层提供的服务 最低限度的传输服务: 将终端-终端的数据交付扩展到进程-进程的数据交付报文检错 增强服务: 可靠数据传输流量控制拥塞控制 因特网传输层通过UDP协议和TCP协议,向应用层提供两种不同的传输服务: UDP协议:仅提供最低限度的传输服务TCP协议:提供基础服务和增强服务 2.传输层基本服务——复用和分用 2.1 复用和分用概述

传输层基本服务:将主机间交付扩展到进程间交付,通过复用和分用实现 在这里插入图片描述

复用: 发送方传输层将套接字标识置于报文段中,交给网络层分用: 接收方传输层根据报文段中的套接字标识,将报文段交付到正确的套接字 2.2 套接字标识与端口号 端口号是套接字标识的一部分: 每个套接字在本地关联一个端口号端口号是一个16比特的数 端口号的分类: 熟知端口:0~1023,由公共域协议使用注册端口:1024~49151,需要向IANA注册才能使用动态和/或私有端口:49152~65535,一般程序使用 报文段中有两个字段携带端口号 源端口号:与发送进程关联的本地端口号目的端口号:与接收进程关联的本地端口号 在这里插入图片描述 2.3 TCP/UDP套接字(复用和分用)

UDP套接字

使用二元组标识UDP套接字服务器使用一个套接字服务所有客户 TCP套接字使用 四元组标识连接套接字服务器使用一个监听套接字和多个连接套接字服务多个客户,每个连接套接字服务一个客户 3.无连接传输:UDP 3.1 UDP报文段结构 UDP报文: 报头:携带协议处理需要的信息载荷(payload):携带上层数据 用于复用和分用的字段: 源端口号目的端口号 用于检测报文错误的字段: 报文总长度校验和(checksum)

在这里插入图片描述

3.2 UDP校验和(checksum)

校验和字段的作用: 对传输的报文段进行检错 以下是报文段的字段

keyhumanhexSource192.168.1.106c0a8 016aDestination11.111.111.1110b6f 6f6fProtocolUDP(17)11Length1711Source Port63549f83dDestination Port123453039Length1711Checksum0xb12db12dDatahello UDP6865 6c6c 6f20 5544 5000

将上表中所有的 16 进制数加起来,之后取反码。有一点需要注意的是,如果遇到最高位进位,那么需要对结果进行回卷,意思是

在这里插入图片描述

求出来的即是校验和。

3.3 为什么需要UDP?

为什么需要UDP?

应用可以尽可能快地发送报文: 无建立连接的延迟不限制发送速率(不进行拥塞控制和流量控制) 报头开销小协议处理简单

UDP适合哪些应用?

容忍丢包但对延迟敏感的应用: 如流媒体以单次请求/响应为主的应用: 如DNS若应用要求基于UDP进行可靠传输: 由应用层实现可靠性 4.面向连接的传输:TCP 4.1 可靠传输

数据包有序、无差错到达接收端

如何实现可靠传输,基本原则是什么?

利用ACK确认重传机制差错检测

可靠传输实现举例-Stop and Wait

注:该实现俗称tcp的三次握手和四次挥手。三次挥手我们也常称为“请求 -> 应答 -> 应答之应答”的三个回合,主要就是为了建立连接

建立一条TCP连接需要确定两件事:

双方都同意建立连接(知晓另一方想建立连接)初始化连接参数(序号,MSS等) 在这里插入图片描述

四次挥手:目的就是确保断开连接时双方都是确认结束的状态

在这里插入图片描述

4.2 流水线技术

由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。 在这里插入图片描述

①GBN 协议(回退 N 步协议)

发送窗口 发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。 发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。 在这里插入图片描述

累积确认

接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。优点:容易实现,即使确认丢失也不必重传。缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。 这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。 可见当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。

②SR 协议(选择重传协议)

SR 协议在 GBN 协议的基础上进行了改进,它通过让发送方仅重传那些它怀疑在接收方出错(即丢失或受损)的分组而避免了不必要的重传。选择重传协议只重传真正丢失的分组。

选择重传的接收窗口与发送窗口一样大选择重传协议允许与接收窗口一样多的分组失序到达,并保存这些失序到达的分组,直到连续的一组分组被交付给应用层。标记发出分组,当ACK=Sf 时,将窗口滑过所有连续的已确认的分组 如果还有未确认的分组,则重发所有检测到的未被确认的分组并重启计时器如果所有分组都被确认了则停止计时器 确认,确认号(ACK)只定义完好接收的那一个分组的序号,并不反馈任何其他分组的信息

注:SR协议ack确认和GBN的累计确认不同,是一个一个确认

计时器 理论上选择重传协议要为每个分组使用一个计时器。当某个计时器超时后,只有相应的分组被重传。换而言之,返回N协议将所有的分组当做一个整体对待,而选择重传协议则分别对待每一个分组。但是大多数SR的运输层仅使用了一个计时器.。注意只使用一个计时器而做到跟踪所有发出去的分组的情况的做法是:标记发出分组,当ACK=Sf 时,将窗口滑过所有连续的已确认的分组,如果还有未确认的分组,则重发所有检测到的未被确认的分组并重启计时器,如果所有分组都被确认了则停止计时器。

快速重传

仅靠超时重发丢失的报文段,恢复太慢!

发送方可利用重复ACK检测报文段丢失:

发送方通常连续发送许多报文段若仅有个别报文段丢失,发送方将收到多个重复序号的ACK多数情况下IP按序交付分组,重复ACK极有可能因丢包产生

TCP协议规定: 当发送方收到对同一序号的3次重复确认时,立即重发包含该序号的报文段

所谓快速重传,就是在定时器到期前重发丢失的报文段

③TCP 可靠通信的具体实现 TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。TCP 两端的四个窗口经常处于动态变化之中。TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间 GBN、SR和TCP小结

Go-Back-N协议 接收方:

使用累积确认不缓存失序的分组对失序分组发送重复ACK

发送方:

超时后重传从基序号开始的所有分组

SR 接收方:

缓存失序的分组单独确认每个正确收到的分组

发送方:

每个分组使用一个定时器仅重传未被确认的分组

TCP协议

接收方:

使用累积确认缓存失序的报文段对失序报文段发送重复ACK增加了推迟确认

发送方:

超时后仅重传最早未确认的报文段增加了快速重传 4.3 TCP报文段结构

在这里插入图片描述

最大段长度(MSS): TCP段中可以携带的最大数据字节数建立连接时,每个主机可声明自己能够接受的MSS,缺省为536字节 窗口比例因子(window scale): 建立连接时,双方可以协商一个窗口比例因子实际接收窗口大小 = window size * 2^window scale 选择确认(SACK): 最初的TCP协议只使用累积确认改进的TCP协议引入选择确认,允许接收端指出缺失的数据字节 发送序号和确认序号的含义 在这里插入图片描述 5.TCP流量控制

TCP接收端

使用显式的窗口通告,告知发送方可用的缓存空间大小在接收窗口较小时,推迟发送确认仅当接收窗口显著增加时,通告新的窗口大小

TCP发送端

使用Nagle算法确定发送时机使用接收窗口限制发送的数据量,已发送未确认的字节数不超过接收窗口的大小

Nagle算法的解决方法:

在新建连接上,当应用数据到来时,组成一个TCP段发送(那怕只有一个字节)在收到确认之前,后续到来的数据放在发送缓存中当数据量达到一个MSS或上一次传输的确认到来(取两者的较小时间),用一个TCP段将缓存的字节全部发走

Nagle算法的优点:

适应网络延时、MSS长度及应用速度的各种组合 常规情况下不会降低网络的吞吐量 6.拥塞控制

发送方根据自己感知的网络拥塞程度,限制其发送速率

6.1 拥塞控制的类型 网络辅助的拥塞控制 路由器向端系统提供显式的反馈,例如: 设置拥塞指示比特给出发送速率指示 ATM、X.25采用此类方法 端到端拥塞控制 网络层不向端系统提供反馈端系统通过观察丢包和延迟,自行推断拥塞的发生TCP采用此类方法 6.2 TCP拥塞控制要解决的问题

发送方如何感知网络拥塞?

发送方利用丢包事件感知拥塞: 拥塞造成丢包和分组延迟增大 -无论是丢包还是分组延迟过大,对于发送端来说都是丢包了 丢包事件包括: -重传定时器超时 -发送端收到3个重复的ACK

发送方采用什么机制限制发送速率?

发送方使用拥塞窗口cwnd限制已发送未确认的数据量: LastByteSent-LastByteAcked



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3