1.概述
1.1因特网概述
1.1.1 网络、互联网、因特网的联系
首先,什么是网络呢?
由上面的图我们就可以知道,网络就是由若干节点和链路连接构成的,而互联网就是若干网络和路由器连接构成,
其中因特网就是最大的互联网
注意:对于我们平常所说的互联网其实就是因特网,只是我们没有将其明确区分
对于internet 和 Internet之间的区别:
internet(互联网) | Internet(因特网) |
---|---|
通用名词 | 专有名词 |
任意通讯协议 | tip/ip族协议 |
1.1.2 因特网概述
1.1.2.1因特网发展的三个阶段
- 因特网发展主要分为三个阶段:Arpanet向互联网发展、三级结构互联网、多层次ISP结构的因特网
- 现在,我们主要使用的网络就是有ISP(Internet Service Provider)提供给的,其实就是我们所熟知的移动、电信、联通运营商们
- 因特网已经发展成为多层次ISP·结构的互联网
- 有人可能就不理解了,在上面明明只有三层ISP,为什么是多层次结构的互联网呢? 这是因为ISP不仅仅可以是我吗所熟知的移动之类的运营商,我们个人也可以购买设备为他人提供联网服务,也就可以被称为ISP
1.1.2.2 因特网的标准化的工作
- 因特网标准化的工作是面向大众的,任何一个标准文档在确定之前都会发表在RFC官方文档
- RFC(Request FOR Comments),即”请求评论“, 任何人都可以在官网上下载RFC文档并进行意见的发表和建议
- 具体标准执行顺序从 因特网草案—> 建议标准 —> 草案标准—> 因特网标准
- 为了区分 因特网草案 和 草案标准,后来取消草案标准这一步骤
1.1.2.3 因特网的组织
1.1.2.4 因特网的组成
- 按照工作方式分,因特网主要由 核心部分 和 边缘部分 构成
- 按照组成部分分,因特网主要由硬件、软件、协议三大部分
- 按照功能组成分,因特网主要由通信子网 和 资源子网构成
1.2 电路交换、分组交换、报文交换
1.1 电路交换
- 电路交换主要分为 三部:建立连接、通话、释放连接
- 在建立连接之前首先我们要 申请资源分配, 当我们得到资源使用权之后,进行通话,且在这个过程中 发送端和接收端 被分配的线路将一直被占用,当就是通话之后进行释放资源,且释放连接
- 优缺点:使用电路交换我们会一直占用通信资源,降低了资源利用率,且无法响应 “突发式” 的通讯,且连接时延大。 优点就是数据传输不会有时延,适用于大型数据的传输
1.2 分组交换
- 分组交换在进行数据传输时,不需要进行提前的通讯资源分配
- 为什么叫分组交换呢? 使因为在进行数据传输的时候发送端会将 数据报文(把这里的数据叫做数据报文)分成一组一组来进行发送,但是这样的数据有怎么发送到 接收端呢?
- 为了能让数据能够发送到接受段,在每组的数据中加上一个 首部,起就是存储发送端和接受段的信息以确保数据能够通过交换节点精确转发接受段
- 当发送端发送数据组之后,路由器通过转发表将对于的数据进行转发直至发送到接受端,在此期间未必占用的链路即是空闲的,还可以进行数据的转发
发送方 | 交换节点 | 接受方 |
---|---|---|
发送数据 | 缓存分组 | 接受分组 |
构造分组 | 转发分组 | 还原报文 |
1.3 报文交换
- 报文交换就是不对报文进行分组的“分组交换”,但是其他步骤和分组交换一致,同样不会进行提前资源申请, 这种方式造成的效果就是会比分组交换有更大的时延,且交换节点需要有更大的缓存.
1.4 三种交换形式对比
- 若要长时间连续传输大量数据,且数据传输时间远大建立连接时间, 使用电路交换方法可以有效的提高效率. 但是计算机中大多数都是突发式的数据交换,这样做则会降低线路的利用率.
- 分组交换和报文交换都不用建立连接(提前申请资源),相对于电路交换来说提高了线路利用率
- 分组交换相对于报文交换的时延更低,所占据链路的时间更短,更具有灵活性
1.3 计算机网络的定义、分类和功能
1.3.1 计算机网络的定义
- 早期的定义为:相互连接的具有自治功能的计算机的集合
- 现在比较好的定义:计算机网络主要是由通用的、可编程的(简单理解为含有逻辑运算单元CPU)硬件互连构成,且这些硬件并非用来实现某一目的
1.3.2 计算机网络的分类
- 按交换方式分:电路交换、分组交换、报文交换
- 按使用者分:公用网(因特网)、专用网
- 按传输介质分:有线网络(双绞线网络、同轴电缆网络)、无线网络(蓝牙、微波、无线电)等
- 按覆盖范围分:广域网(WAN)、城域网(MAN)、局域网(LAN)、个人区域网(PAN)
- 按拓扑结构分: 总线型、星型、环型、网状型
1.3.3 计算机网络的功能
- 数据通信: 是计算机网络最基本和重要的功能,用来控制联网计算机的数据传输
- 资源共享:可以是软件共享、数据共享,也可以是硬件共享
- 分布式处理:当计算机负载过重时,可以通过计算机网络将任务分配给其他计算机
- 提高可靠性:计算机网络中计算机可以互为替换机
- 负载均衡:将任务负载均衡的配给其他计算机
1.4 计算机网络的性能指标
- 关于描述计算机网络的性能指标主要由八种:速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率以及丢包率
1.4.1 速率
- 指数据的传输速率,通常单位为 b/s,同时也叫比特率、数据率
- 注意其单位的换算与我们通常使用的数据量并不同 K: 10^3 M:10^6 G:10^9 T:10^12
时间单位转换:
- 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)
1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s)
1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s)
1秒=1,000,000,000,000 皮秒(ps) 1皮秒=1/1,000,000,000,000秒(s)
1.4.2 带宽
- 带宽在模拟电路和计算机网络中的含义有不同的解释
- 模拟电路:带宽是指不同频率的信号所组成的频率范围,通常单位为Hz
- 计算机网络:带宽是指网络通信电路能传输数据的能力,即就是两点间传输数据的最大速率 通常单位为 b/s
注意:在计算数据传输速率时,我们要以短的速率为计算的速率(即就是木桶效应)
数据传输效率 = Min(主机接口速率、线路带宽、交换机或者路由器的接口速率)
1.4.3 吞吐量
- 吞吐量是指单位时间内通过网络或者接口的实际数据量,其受带宽的影响
1.4.4 时延
1.4.1 时延介绍
- 在进行数据传输的过程中会有数据发送的时间差( 即数据无法直接有发送端 到 接收端),这就是时延
- 通常在进行电路交换是有四种时延:发送时延、传播时延、处理时延、排队时延
- 发送时延:就是发送端 进行分组发送所耗费的时间,其大小为 分组长度 / 发送速率
- 传播时延:就是在通信链路上所消耗的时间,其大小为 通道长度 / 信号传播速率,需要记住上面三种介质的传播速率
- 有个问题 ?为什么光纤的传播速率明明是最慢的,我们使用光纤上网却感觉到很快呢 ? 这是因为光纤的带宽比较大,所以我们使用就感觉到很快
- 排队时延:分组数据被转发到 路由器时,需要进行排队进行排队转发,排队消耗的时间就叫做排队时延,而由于不同的转发节点的队列长度不同,转发速率不同,所以这种时延的时间也不好计算, 而且若出现排队溢出就会造成丢包现象
- 处理时延:当分组数据进入路由器之后,其会对分组数据进行一系列的操作,这些操作所消耗的时间就是处理时延,同样的这种时延也不好进行计算
1.4.2 时延的计算
- 在忽略处理时延和排队时延的情况下,有n个分组、m个链路的总时延计算
- 总时延 = n个分组发送时延 + 1个分组的发送时延 * (m - 1) + 一个链路的传播时延 * m
- 当然,具体还是要看具体问题
例题:
这个题中并没有传播时延的计算(没有给出线路的具体长度和线路的类型),套用上面的公式 n分分组的发送时延 + 一个分组的发送时延 * (m - 1) ,这里的m链路数为3,所以乘2,还要要注意的是一个分组文件的大小并不是1000B, 而是要减去对于的首部然后进行n的计算
1.4.5 (传播)时延带宽积
- 顾名思义,就是传播时延和带宽的乘积
- 要理解 时延带宽积就是 以比特为单位的链路长度
- 光纤链路1km,信号传播速率就是5us
1.4.6 往返时间
- 往返时间:就是从发送端发送数据 到 发送端接收到接收端传回的确认信息,中间所消耗的时间
- 在众多传输数据方式中,卫星链路的传播时延是最大的
1.4.7 利用率
-
利用率分为 链路利用率 和 网络利用率,链路利用率是指当前链路中有多少链路正在被使用,而网络利用率就是所以链路利用率的加权之和
-
需要注意的是,利用率并不是越大越好,因为利用率代表当前正在被使用的资源量,当利用率过大是我们的时延就会非常大
-
令D_0 为空闲网络时延,D为当前网络时延,U为网络利用率,就有 D = (D_0) / 1 - U;
1.4.8 丢包率
- 丢包率就是 被丢包分组数量 / 总分组数量
- 丢包率主要有:接口丢包率、节点丢包率、链路丢包率、路径丢包率、网络丢包率
- 丢包的情况举两个例子: 1. 分组包在经过一个路由器之后出现误码,在下一个路由器处被发现并丢弃 2.分组包传输到路由器后,路由器队列达到阈值,路由器根据丢包策略进行丢包
- 正常请款下丢包率为0,轻微网络堵塞丢包率为1% ~ 5% , 严重网络堵塞丢包率为5% ~ 15%
1.5 计算机网络的结构
1.5.1 三种计算机网络体系结构
- 常见的计算机体系结构有 OSI参考模型、TCP/IP参考模型、原理参考模型(主要用于教学)
1.5.1.1 OSI模型与TCP/IP模型
- OSI模型有国际标准化组织制定,(从低层向上分别有) 物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
- TCP/IP模型主要有 网络接口层(物理层和数据链路层的合并),网际层、运输层、应用层(表示层和应用层的合并),由于OSI模型过于关注理立化,TCP/IP早已占据市场,所有后来的网络都是TCP/IP模型
1.5.1.2 TCP/IP模型
- TCP/IP模型中,转发数据的路由器只需要实现网络接口层和网际层即可
- 由于TCP/IO模型中网络接口层并未规定使用介质,所以TCP/IP模型其实只有三层,且我们还可以使用各种网络接口层的传输介质
- IP协议是网际层的核心协议,传输控制协议TCP和用户数据报协议UDP是运输层的重要协议,超文本传输协议HTTP、简单邮件传输协议SMTP、域名系统DNS和实时运输协议RTP是应用层的主要协议
1.5.3 三种模型的对应关系
- 前面说了OSI参考协议和TCP/IP参考协议的对应关系,而现在出现的原理参考协议是为了方便教学而出现的,在TCP/IP参考协议的基础上,将网络接口层划分成物理层和数据链路层
1.5.2 计算机网络分成的必要型
- 我们可与将计算机网络中的问题分到原理体系结构中
1.5.2.1 物理层
- 当我们要在两个主机之间传输数据时,首先要面对的是选择什么样的传输媒介,例如 光缆、光纤、电缆
- 然后就是选择什么样的物理媒介,例如 电脑上的以太网接口
- 最后就是使用什么信号表示0和1,决定了我们传输数据的信号类型,例如在数字电路中的高低电平
最后:当我们解决了上面的问题之后就可以将数据通过媒介发送
1.5.2.2 数据链路层
- 当我们解决了数据的传输形式之后,就可以主机之间进行数据传输
1.5.2.2.1 主机编址问题 和 数据封装问题
- 在这个总线型网络中,我们需要知道数据的发送方和接受方(即就是一些必要的识别信息),所以我们需要解决主机识别问题(使用MAC地址,即主机编址)
- 当然,还要关注数据该如何进行封装,是以怎样的形式进行封装(数据封装格式)
1.5.2.2.2 总线竞争问题 与 以太网交换机解决问题
- 当我们有两台或者多台主机同时进行数据的发送时,就会操作数据表包在总线上碰撞的问题,即就是总线竞争问题(媒体控制接入),当然现在我们已经不在使用这种总线模式的网络,而是改用以太网交换机的形式
- 那么以太网交换机的形式又是怎么解决的(自学习、转发帧)
1.5.2.2.3 误码与传输出错问题
- 在我使用有线网络交换机时,误码情况很少,但是在无线网络中却经常出现误码,那又是怎么查出出现误码呢?(误码检测)
- 同时在出现传输差错又要怎么解决?(可靠传输和不可靠传输)
1.5.2.2.4 接受方流量问题
当发送方的数据已到达接受方时,单数此时接收方缓存不足,无法进行接受数据,此时就会出现接受方流量接受问题(即流量控制)
最后:当我们解决了数据链路上的问题之后,就可以实现单网路多主机之间的数据通信
1.5.2.3 网络层
- 网络号:IPv4地址中前三位代表网络号,最后一位代表主机号,网络号相同代表主机在同一网络中
- 当进行多网络数据包发送也会单网路多主机一样存在一个问题,就是网络间的识别问题(网络和主机进行对于的网络编址,如ip地址)
- 同时当数据在发送到路由器后,路由器需要选择进行如何,通过那个链路更好(路由选择协议、路由表和转发表)
最后:在解决网络层的问题之后,就可以进行多网络间数据包的发送了
1.5.2.4 传输层
- 此处在主机H3有两个进程QQ 和 浏览器,在服务器H2处需要发送给浏览器进程,那么该如何识别同台主机上的不同进行进程?(即就是进程的识别,例端口号),其问题就是进程之间基于网络的通信
- 在之前丢包率中,讲到了丢包的情况,那么当出现传输差错(例: 丢包)是该如何处理,是该丢弃包还是告知发送端重新发送(可靠传输和不可靠传输)
最后:当解决传输层之后就可以进行基于网络的进程间通信
1.5.2.5 应用层
- 在解决下层的通信问题之后,我们就可以进行基于网络通信的网络应用的使用,同时也要注意会话管理和数据的表示(即就是数据在对应应用中应该有同一标准)
1.5.2.6 总结
- 为了实现对于功能我们需要解决各种问题,而如果不进行分层问题的处理,各种问题将会比较混乱,为了解决问题,实现"高内聚,低耦合",我们也该将计算机网络这个庞大的体系进行分层处理
- 其实就类似与我们在开发项目的分组一样,进行自己对应的工作,这样就会 "又快又好"
1.5.3 计算机网络分层思想的举例
- 分别在N1网络上的主机需要在N2网络上的服务器发送数据包,接受数据包的浏览器进程进行对于浏览器的解析和渲染工作
- 其本质就是两个进程间基于网络的通信,可以以五层原理模型进行解释
1.5.3.1 应用层到物理层(主机)
- 首先,应用层生产含有HTTP请求的数据包,并传给下一层
- 然后,运输层在此基础上加上TCP报文首部,并传给下一层
- 然后,网络层在此基础之上在加上IP数据端首部,并传给下一层
- 然后,数据链路层在加上以太网帧首部和尾部,并传给下一层
- 最后,由物理层将上面的数据包转化成01电信号
1.5.3.2 路由器转发到不同网络的主机
- 上述数据包转化成01信号之后,就需要路由器根据网络转发表和数据包中的目的地址转发数据包,其中在路由器中也会对数据包进行拆分和封装(例:在数据链路层拆分MAC以太网帧,在网络层识别IP数据报的IP地址进行网络识别)
- 首先,路由器物理层就收到主机在通信链路上的01信号,并加上前导码,然后传给上一层
- 接受到数据链路层后,将01信号在转化成整体数据包,并传输给上一层
- 最后,在将数据包从网络一直到物理层进行封装,进行对于转发,当服务器就收到对于数据包后再讲数据包向上逐级解包,到应用层就只剩HTTP报文端,服务器的应用层识别请求之后再次向主机发送数据包,其实就是重复刚才的操作
1.5.3.3 主机间的传输过程
- 最终,一个数据包在五层原理模型中的传输就完成了,在向上进行解分,向下的时候进行封装
- 效率为:400B / (400B + 20B + 20B + 20B + 20B + 20B) = 80%
- 注意:数据链路层在加以太网帧时,通常会加上首部和尾部,但是具体题目具体分析
1.5.4 计算机网络体系中的专业术语
- 其中专业术语有三种:实体、协议、服务
1.5.4.1 实体
- 实体,是指能够发送和接受信号的硬件或者软件进程
- 在同一层中的实体叫做对等实体
1.5.4.2 协议
- 协议,只指对等实体在 "水平方向" 上进行 "逻辑通信" 的规则的集合 ,需要注意的是逻辑通信只是我们假想出来的而已
- 协议的三大要素:语法、语义、时序
- 语法:定义交换信息的格式,例如上图的IPv4地址的格式
- 语义:定义通信双发要进行的操作,例如上图中主机发送HTTP求请报文,Web服务器接收报文后识别信息并进行响应报文的发送,这个操作就是协议的语义
- 时序:定义通信双发的时序关系,例如上图中,只有主机发送求请报文之后,服务器接收到报文才会进行发送响应报文
1.5.4.2 服务
- 在协议的控制下,对等实体可以在水平方向上的逻辑通信为上一层提供服务,同时协议的实现还依靠着下一层的服务
- 注意:协议是水平的,而服务却是垂直,对于本层协议来说,下一层的服务是透明的,上次协议只会用到下次提供的服务而不不知道具体内容
1.服务访问点(SAP)
在相邻层的实体是实现逻辑通信的接口称服务访问点(SAP), 其用来区分服务类型,例如:帧的"类型"的字段、IP数据包的"协议"的字段、TCP报文段或者UDP用户数报的"端口号"字段都是SAP,例如途中的原点
2.服务原语
在进行服务时,上层和下层会进行一次命令的交换,这些命令就叫做服务原语
3.SDU和PDU
层与层之间进行交换的数据包叫做 服务数据单元(SDU)
对等层进行交换的数据包叫做 协议数据单元(PDU) ,常见的PDU有:比特流、帧、IP数据报或者分组、TCP报文段或者UDP用户数据报、应用报文
例题:
标签:1.5,第一章,发送,分组,时延,因特网,概述,数据包 From: https://www.cnblogs.com/yiqi17/p/17311012.html