若是说计算机把咱们从工业时代带到了信息时代,那么计算机网络就能够说把咱们带到了网络时代。随着使用计算机人数的不断增长,计算机也经历了一系列的发展,从大型通用计算机 -> 超级计算机 -> 小型机 -> 我的电脑 -> 工做站 -> 便携式电脑 -> 智能手机终端等都是这一过程的产物。计算机网络也逐渐从独立模式演变为了 网络互联模式 。程序员
能够看到,在独立模式下,每一个人都须要排队等待其余人在一个机器上完成工做后,其余用户才能使用。这样的数据是单独管理的。数据库
如今切换到了网络互联模式,在这种模式下,每一个人都能独立的使用计算机,甚至还会有一个服务器,来为老大哥、cxuan 和 sonsong 提供服务。这样的数据是集中管理的。编程
计算机网络按规模进行划分,有 WAN(Wide Area Network, 广域网) 和 LAN(Local area Network, 局域网)。以下图所示segmentfault
上面是局域网,通常用在狭小区域内的网络,一个社区、一栋楼、办公室常用局域网。缓存
距离较远的地方组成的网络通常是广域网。安全
最初,只是固定的几台计算机相连在一块儿造成计算机网络。这种网络通常是私有的,这几台计算机以外的计算机没法访问。随着时代的发展,人们开始尝试在私有网络上搭建更大的私有网络,逐渐又发展演变为互联网,如今咱们每一个人几乎都可以享有互联网带来的便利。服务器
就和早期的计算机操做系统同样,最开始都要先经历批处理(atch Processing)阶段,批处理的目的也是为了能让更多的人使用计算机。微信
批处理就是事先将数据装入卡带或者磁带,而且由计算机按照必定的顺序进行读入。网络
当时这种计算机的价格比较昂贵,并非每一个人都可以使用的,这也就客观暗示着,只有专门的操做员才能使用计算机,用户把程序提交给操做员,由操做员排队执行程序,等一段时间后,用户再来提取结果。数据结构
这种计算机的高效性并无很好的体现,甚至不如手动运算快。
在批处理以后出现的就是分时系统了,分时系统指的是多个终端与同一个计算机链接,容许多个用户同时使用一台计算机。分时系统的出现实现了一人一机的目的,让用户感受像是本身在使用计算机,实际上这是一种 独占性 的特性。
分时系统出现以来,计算机的可用性获得了极大的改善。分时系统的出现意味着计算机愈来愈贴近咱们的生活。
还有一点须要注意:分时系统的出现促进了像是 BASIC 这种人机交互语言的诞生。
分时系统的出现,同时促进者计算机网络的出现。
在分时系统中,每一个终端与计算机相连,这种独占性的方式并非计算机之间的通讯,由于每一个人仍是在独立的使用计算机。
到了 20 世纪 70 年代,计算机性能有了高速发展,同时体积也变得愈来愈小,使用计算机的门槛变得更低,愈来愈多的用户可使用计算机。
没有一个计算机是信息孤岛促使着计算机网络的出现和发展。
20 世纪 80 年代,一种可以互连多种计算机的网络随之诞生。它可以让各式各样的计算机相连,从大型的超级计算机或主机到小型电脑。
20 世纪 90 年代,真正实现了一人一机的环境,可是这种环境的搭建仍然价格不菲。与此同时,诸如电子邮件(E-mail)、万维网(WWW,World Wide Web) 等信息传播方式如雨后春笋般迎来了史无前例的发展,使得互联网从大到整个公司小到每一个家庭内部,都得以普遍普及。
计算机网络的高速发展
现现在,愈来愈多的终端设备接入互联网,使互联网经历了史无前例的高潮,近年来 3G、4G、5G 通讯技术的发展更是互联网高速发展的产物。
许多发展道路各不相同的网络技术也都正在向互联网靠拢。例如,曾经一直做为通讯基础设施、支撑通讯网络的电话网。随着互联网的发展,其地位也随着时间的推移被 IP(Internet Protocol) 网所取代,IP 也是互联网发展的产物。
正如互联网也具备两面性,互联网的出现方便了用户,同时也方便了一些不法分子。互联网的便捷也带来了一些负面影响,计算机病毒的侵害、信息泄漏、网络诈骗层出不穷。
在现实生活中,一般状况下咱们挨揍了会予以反击,可是在互联网中,你被不法分子攻击一般状况下是无力还击的,只能防护,由于还击须要你精通计算机和互联网,这一般状况下不少人办不到。
一般状况下公司和企业容易被做为不法分子获利的对象,因此,做为公司或者企业,要想不受攻击或者防护攻击,须要创建安全的互联网链接。
协议这个名词不只局限于互联网范畴,也体如今平常生活中,好比情侣双方约定好在哪一个地点吃饭,这个约定也是一种协议,好比你应聘成功了,企业会和你签定劳动合同,这种双方的雇佣关系也是一种 协议。注意本身一我的对本身的约定不能成为协议,协议的前提条件必须是多人约定。
那么网络协议是什么呢?
网络协议就是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是须要遵循必定的规矩同样,计算机之间的相互通讯须要共同遵照必定的规则,这些规则就称为网络协议。
没有网络协议的互联网是混乱的,就和人类社会同样,人不能想怎么样就怎么样,你的行为约束是受到法律的约束的;那么互联网中的端系统也不能本身想发什么发什么,也是须要受到通讯协议约束的。
咱们通常都了解过 HTTP 协议, HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
可是互联网又不仅有 HTTP 协议,它还有不少其余的好比 IP、TCP、UDP、DNS 协议等。下面是一些协议的汇总和介绍
ISO 在制定标准化的 OSI 以前,对网络体系结构相关的问题进行了充分的探讨,最终提出了做为通讯协议设计指标的 OSI 参考模型。这一模型将通讯协议中必要的功能分为了 7 层。经过这 7 层分层,使那些比较复杂的协议简单化。
在 OSI 标准模型中,每一层协议都接收由它下一层所提供的特定服务,而且负责为上一层提供服务,上层协议和下层协议之间一般会开放 接口,同一层之间的交互所遵照的约定叫作 协议。
上图只是简单的介绍了一下层与层之间的通讯规范和上层与下层的通讯规范,并未介绍具体的网络协议分层,实际上,OSI 标准模型将复杂的协议整理并分为了易于理解的 7 层。以下图所示
互联网的通讯协议都对应了 7 层中的某一层,经过这一点,能够了解协议在整个网络模型中的做用,通常来讲,各个分层的主要做用以下
应用层:应用层是 OSI 标准模型的最顶层,是直接为应用进程提供服务的。其做用是在实现多个系统应用进程相互通讯的同时,完成一系列业务处理所需的服务。包括文件传输、电子邮件远程登陆和远端接口调用等协议。
表示层: 表示层向上对应用进程服务,向下接收会话层提供的服务,表示层位于 OSI 标准模型的第六层,表示层的主要做用就是将设备的固有数据格式转换为网络标准传输格式。
会话层:会话层位于 OSI 标准模型的第五层,它是创建在传输层之上,利用传输层提供的服务创建和维持会话。
传输层:传输层位于 OSI 标准模型的第四层,它在整个 OSI 标准模型中起到了相当重要的做用。传输层涉及到两个节点之间的数据传输,向上层提供可靠的数据传输服务。传输层的服务通常要经历传输链接创建阶段,数据传输阶段,传输链接释放阶段 3 个阶段才算完成一个完整的服务过程。
网络层:网络层位于 OSI 标准模型的第三层,它位于传输层和数据链路层的中间,将数据设法从源端通过若干个中间节点传送到另外一端,从而向运输层提供最基本的端到端的数据传送服务。
数据链路层:数据链路层位于物理层和网络层中间,数据链路层定义了在单个链路上如何传输数据。
物理层:物理层是 OSI 标准模型中最低的一层,物理层是整个 OSI 协议的基础,就如同房屋的地基同样,物理层为设备之间的数据通讯提供传输媒体及互连设备,为数据传输提供可靠的环境。
TCP/IP 协议是咱们程序员接触最多的协议,实际上,TCP/IP 又被称为 TCP/IP 协议簇,它并不特指单纯的 TCP 和 IP 协议,而是容纳了许许多多的网络协议。
OSI 模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。可是这显然是有些复杂的,因此在TCP/IP协议中,它们被简化为了四个层次
和 OSI 七层网络协议的主要区别以下
应用层、表示层、会话层三个层次提供的服务相差不是很大,因此在 TCP/IP 协议中,它们被合并为应用层一个层次。
因为数据链路层和物理层的内容很类似,因此在 TCP/IP 协议中它们被归并在网络接口层一个层次里。
咱们的主要研究对象就是 TCP/IP 的四层协议。
下面 cxuan 和你聊一聊 TCP/IP 协议簇中都有哪些具体的协议
IP 是 互联网协议(Internet Protocol) ,位于网络层。IP是整个 TCP/IP 协议族的核心,也是构成互联网的基础。IP 可以为运输层提供数据分发,同时也可以组装数据供运输层使用。它将多个单个网络链接成为一个互联网,这样可以提升网络的可扩展性,实现大规模的网络互联。二是分割顶层网络和底层网络之间的耦合关系。
ICMP 协议是 Internet Control Message Protocol, ICMP 协议主要用于在 IP 主机、路由器之间传递控制消息。ICMP 属于网络层的协议,当遇到 IP 没法访问目标、IP 路由器没法按照当前传输速率转发数据包时,会自动发送 ICMP 消息,从这个角度来讲,ICMP 协议能够看做是 错误侦测与回报机制,让咱们检查网络情况、也可以确保连线的准确性。
ARP 协议是 地址解析协议,即 Address Resolution Protocol,它可以根据 IP 地址获取物理地址。主机发送信息时会将包含目标 IP 的 ARP 请求广播到局域网络上的全部主机,并接受返回消息,以此来肯定物理地址。收到消息后的物理地址和 IP 地址会在 ARP 中缓存一段时间,下次查询的时候直接从 ARP 中查询便可。
TCP 就是 传输控制协议,也就是 Transmission Control Protocol,它是一种面向链接的、可靠的、基于字节流的传输协议,TCP 协议位于传输层,TCP 协议是 TCP/IP 协议簇中的核心协议,它最大的特色就是提供可靠的数据交付。
TCP 的主要特色有 慢启动、拥塞控制、快速重传、可恢复。
UDP 协议就是 用户数据报协议,也就是 User Datagram Protocol,UDP 也是一种传输层的协议,与 TCP 相比,UDP 提供一种不可靠的数据交付,也就是说,UDP 协议不保证数据是否到达目标节点,也就是说,当报文发送以后,是没法得知其是否安全完整到达的。UDP 是一种无链接的协议,传输数据以前源端和终端无需创建链接,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失、重复、乱序等现象。可是 UDP 具备较好的实时性,工做效率较 TCP 协议高。
FTP 协议是 文件传输协议,英文全称是 File Transfer Protocol,应用层协议之一,是 TCP/IP 协议的重要组成之一,FTP 协议分为服务器和客户端两部分,FTP 服务器用来存储文件,FTP 客户端用来访问 FTP 服务器上的文件,FTP 的传输效率比较高,因此通常使用 FTP 来传输大文件。
DNS 协议是 域名系统协议,英文全称是 Domain Name System,它也是应用层的协议之一,DNS 协议是一个将域名和 IP 相互映射的分布式数据库系统。DNS 缓存可以加快网络资源的访问。
SMTP 协议是 简单邮件传输协议,英文全称是 Simple Mail Transfer Protocol,应用层协议之一,SMTP 主要是用做邮件收发协议,SMTP 服务器是遵循 SMTP 协议的发送邮件服务器,用来发送或中转用户发出的电子邮件
SLIP 协议是指串行线路网际协议(Serial Line Internet Protocol) ,是在串行通讯线路上支持 TCP/IP 协议的一种点对点(Point-to-Point)式的链路层通讯协议。
PPP 协议是 Point to Point Protocol,即点对点协议,是一种链路层协议,是在为同等单元之间传输数据包而设计的。设计目的主要是用来经过拨号或专线方式创建点对点链接发送数据,使其成为各类主机、网桥和路由器之间简单链接的一种共通的解决方案。
网络根据传输方式能够进行分类,通常分红两种 面向链接型和面向无链接型。
面向链接型中,在发送数据以前,须要在主机之间创建一条通讯线路。
面向无链接型则不要求创建和断开链接,发送方可用于任什么时候候发送数据。接收端也不知道本身什么时候从哪里接收到数据。
在互联网应用中,每一个终端系统均可以彼此交换信息,这种信息也被称为 报文(Message),报文是一个集大成者,它能够包括你想要的任何东西,好比文字、数据、电子邮件、音频、视频等。为了从源目的地向端系统发送报文,须要把长报文切分为一个个小的数据块,这种数据块称为分组(Packets),也就是说,报文是由一个个小块的分组组成。在端系统和目的地之间,每一个分组都要通过通讯链路(communication links) 和分组交换机(switch packets) ,分组要在端系统之间交互须要通过必定的时间,若是两个端系统之间须要交互的分组为 L 比特,链路的传输速率问 R 比特/秒,那么传输时间就是 L / R秒。
一个端系统须要通过交换机给其余端系统发送分组,当分组到达交换机时,交换机就可以直接进行转发吗?不是的,交换机可没有这么无私,你想让我帮你转发分组?好,首先你须要先把整个分组数据都给我,我再考虑给你发送的问题,这就是存储转发传输
存储转发传输指的就是交换机再转发分组的第一个比特前,必需要接受到整个分组,下面是一个存储转发传输的示意图,能够从图中窥出端倪
由图能够看出,分组 一、二、3 向交换器进行分组传输,而且交换机已经收到了分组1 发送的比特,此时交换机会直接进行转发吗?答案是不会的,交换机会把你的分组先缓存在本地。这就和考试做弊同样,一个学霸要通过学渣 A 给学渣 B 传答案,学渣 A 说,学渣 A 在收到答案后,它可能直接把卷子传过去吗?学渣A 说,等我先把答案抄完(保存功能)后再把卷子给你。
什么?你认为交换机只能和一条通讯链路进行相连?那你就大错特错了,这但是交换机啊,怎么可能只有一条通讯链路呢?
因此我相信你必定能想到这个问题,多个端系统同时给交换器发送分组,必定存在顺序到达和排队的问题。事实上,对于每条相连的链路,该分组交换机会有一个输出缓存(output buffer) 和 输出队列(output queue) 与之对应,它用于存储路由器准备发往每条链路的分组。若是到达的分组发现路由器正在接收其余分组,那么新到达的分组就会在输出队列中进行排队,这种等待分组转发所耗费的时间也被称为 排队时延,上面提到分组交换器在转发分组时会进行等待,这种等待被称为 存储转发时延,因此咱们如今了解到的有两种时延,可是实际上是有四种时延。这些时延不是一成不变的,其变化程序取决于网络的拥塞程度。
由于队列是有容量限制的,当多条链路同时发送分组致使输出缓存没法接受超额的分组后,这些分组会丢失,这种状况被称为 丢包(packet loss),到达的分组或者已排队的分组将会被丢弃。
下图说明了一个简单的分组交换网络
在上图中,分组由三位数据平板展现,平板的宽度表示着分组数据的大小。全部的分组都有相同的宽度,所以也就有相同的数据包大小。下面来一个情景模拟: 假定主机 A 和 主机 B 要向主机 E 发送分组,主机 A 和 B 首先经过100 Mbps以太网链路将其数据包发送到第一台路由器,而后路由器将这些数据包定向到15 Mbps 的链路。若是在较短的时间间隔内,数据包到达路由器的速率(转换为每秒比特数)超过15 Mbps,则在数据包在链路输出缓冲区中排队以前,路由器上会发生拥塞,而后再传输到链路上。例如,若是主机 A 和主机 B 背靠背同时发了5包数据,那么这些数据包中的大多数将花费一些时间在队列中等待。实际上,这种状况与许多普通状况彻底类似,例如,当咱们排队等候银行出纳员或在收费站前等候时。
咱们刚刚讲过,路由器和多个通讯线路进行相连,若是每条通讯链路同时发送分组的话,可能会形成排队和丢包的状况,而后分组在队列中等待发送,如今我就有一个问题问你,队列中的分组发向哪里?这是由什么机制决定的?
换个角度想问题,路由的做用是什么?把不一样端系统中的数据包进行存储和转发 。在因特网中,每一个端系统都会有一个 IP 地址,当原主机发送一个分组时,在分组的首部都会加上原主机的 IP 地址。每一台路由器都会有一个 转发表(forwarding table),当一个分组到达路由器后,路由器会检查分组的目的地址的一部分,并用目的地址搜索转发表,以找出适当的传送链路,而后映射成为输出链路进行转发。
那么问题来了,路由器内部是怎样设置转发表的呢?详细的咱们后面会讲到,这里只是说个大概,路由器内部也是具备路由选择协议的,用于自动设置转发表。
在计算机网络中,另外一种经过网络链路和路由进行数据传输的另一种方式就是 电路交换(circuit switching)。电路交换在资源预留上与分组交换不一样,什么意思呢?就是分组交换不会预留每次端系统之间交互分组的缓存和链路传输速率,因此每次都会进行排队传输;而电路交换会预留这些信息。一个简单的例子帮助你理解:这就比如有两家餐馆,餐馆 A 须要预约而餐馆 B 不须要预约,对于能够预约的餐馆 A,咱们必须先提早与其进行联系,可是当咱们到达目的地时,咱们可以马上入座并选菜。而对于不须要预约的那家餐馆来讲,你可能不须要提早联系,可是你必须承受到达目的地后须要排队的风险。
下面显示了一个电路交换网络
在这个网络中,4条链路用于4台电路交换机。这些链路中的每一条都有4条电路,所以每条链路能支持4条并行的连接。每台主机都与一台交换机直接相连,当两台主机须要通讯时,该网络在两台主机之间建立一条专用的 端到端的连接(end-to-end connection)。
分组交换的支持者常常说分组交换不适合实时服务,由于它的端到端时延时不可预测的。而分组交换的支持者却认为分组交换提供了比电路交换更好的带宽共享;它比电路交换更加简单、更有效,实现成本更低。可是如今的趋势更多的是朝着分组交换的方向发展。
因特网能够当作是一种基础设施,该基础设施为运行在端系统上的分布式应用提供服务。咱们但愿在计算机网络中任意两个端系统之间传递数据都不会形成数据丢失,然而这是一个极高的目标,实践中难以达到。因此,在实践中必需要限制端系统之间的 吞吐量 用来控制数据丢失。若是在端系统之间引入时延,也不能保证不会丢失分组问题。因此咱们从时延、丢包和吞吐量三个层面来看一下计算机网络
计算机网络中的分组从一台主机(源)出发,通过一系列路由器传输,在另外一个端系统中结束它的历程。在这整个传输历程中,分组会涉及到四种最主要的时延:节点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(total nodal delay)和传播时延(propagation delay)。这四种时延加起来就是 节点总时延(total nodal delay)。
若是用 dproc dqueue dtrans dpop 分别表示处理时延、排队时延、传输时延和传播时延,则节点的总时延由如下公式决定: dnodal = dproc + dqueue + dtrans + dpop。
下面是一副典型的时延分布图,让咱们从图中进行分析一下不一样的时延类型
分组由端系统通过通讯链路传输到路由器 A,路由器A 检查分组头部以映射出适当的传输链路,并将分组送入该链路。仅当该链路没有其余分组正在传输而且没有其余分组排在该该分组前面时,才能在这条链路上自由的传输该分组。若是该链路当前繁忙或者已经有其余分组排在该分组前面时,新到达的分组将会加入排队。下面咱们分开讨论一下这四种时延
节点处理时延
节点处理时延分为两部分,第一部分是路由器会检查分组的首部信息;第二部分是决定将分组传输到哪条通讯链路所须要的时间。通常高速网络的节点处理时延都在微妙级和更低的数量级。在这种处理时延完成后,分组会发往路由器的转发队列中
排队时延
在队列排队转发过程当中,分组须要在队列中等待发送,分组在等待发送过程当中消耗的时间被称为排队时延。排队时延的长短取决于先于该分组到达正在队列中排队的分组数量。若是该队列是空的,而且当前没有正在传输的分组,那么该分组的排队时延就是 0。若是处于网络高发时段,那么链路中传输的分组比较多,那么分组的排队时延将延长。实际的排队时延也能够到达微秒级。
传输时延
队列 是路由器所用的主要的数据结构。队列的特征就是先进先出,先到达食堂的先打饭。传输时延是理论状况下单位时间内的传输比特所消耗的时间。好比分组的长度是 L 比特,R 表示从路由器 A 到路由器 B 的传输速率。那么传输时延就是 L / R 。这是将全部分组推向该链路所须要的时间。正是状况下传输时延一般也在毫秒到微妙级
传播时延
从链路的起点到路由器 B 传播所须要的时间就是 传播时延。该比特以该链路的传播速率传播。该传播速率取决于链路的物理介质(双绞线、同轴电缆、光纤)。若是用公式来计算一下的话,该传播时延等于两台路由器之间的距离 / 传播速率。即传播速率是 d/s ,其中 d 是路由器 A 和 路由器 B 之间的距离,s 是该链路的传播速率。
计算机网络中的传输时延和传播时延有时候难以区分,在这里解释一下,传输时延是路由器推出分组所须要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。而传播时延是一个比特从一台路由器传播到另外一台路由器所须要的时间,它是两台路由器之间距离的倒数,而与分组长度和链路传输速率无关。从公式也能够看出来,传输时延是 L/R,也就是分组的长度 / 路由器之间传输速率。传播时延的公式是 d/s,也就是路由器之间的距离 / 传播速率。
在这四种时延中,人们最感兴趣的时延或许就是排队时延了 dqueue。与其余三种时延(dproc、dtrans、dpop)不一样的是,排队时延对不一样的分组多是不一样的。例如,若是10个分组同时到达某个队列,第一个到达队列的分组没有排队时延,而最后到达的分组却要经受最大的排队时延(须要等待其余九个时延被传输)。
那么如何描述排队时延呢?或许能够从三个方面来考虑:流量到达队列的速率、链路的传输速率和到达流量的性质。即流量是周期性到达仍是突发性到达,若是用 a 表示分组到达队列的平均速率( a 的单位是分组/秒,即 pkt/s)前面说过 R 表示的是传输速率,因此可以从队列中推出比特的速率(以 bps 即 b/s 位单位)。假设全部的分组都是由 L 比特组成的,那么比特到达队列的平均速率是 La bps。那么比率 La/R 被称为流量强度(traffic intensity),若是 La/R > 1,则比特到达队列的平均速率超过从队列传输出去的速率,这种状况下队列趋向于无限增长。因此,设计系统时流量强度不能大于1。
如今考虑 La / R <= 1 时的状况。流量到达的性质将影响排队时延。若是流量是周期性到达的,即每 L / R 秒到达一个分组,则每一个分组将到达一个空队列中,不会有排队时延。若是流量是 突发性 到达的,则可能会有很大的平均排队时延。通常能够用下面这幅图表示平均排队时延与流量强度的关系
横轴是 La/R 流量强度,纵轴是平均排队时延。
咱们在上述的讨论过程当中描绘了一个公式那就是 La/R 不能大于1,若是 La/R 大于1,那么到达的排队将会无穷大,并且路由器中的排队队列所容纳的分组是有限的,因此等到路由器队列堆满后,新到达的分组就没法被容纳,致使路由器 丢弃(drop) 该分组,即分组会 丢失(lost)。
除了丢包和时延外,衡量计算机另外一个相当重要的性能测度是端到端的吞吐量。假如从主机 A 向主机 B 传送一个大文件,那么在任什么时候刻主机 B 接收到该文件的速率就是 瞬时吞吐量(instantaneous throughput)。若是该文件由 F 比特组成,主机 B 接收到全部 F 比特用去 T 秒,则文件的传送平均吞吐量(average throughput) 是 F / T bps。
在网络通讯中,能够根据目标地址的数量对通讯进行分类,能够分为 单播、广播、多播和任播
单播(Unicast)
单播最大的特色就是 1 对 1,早期的固定电话就是单播的一个例子,单播示意图以下
广播(Broadcast)
咱们通常小时候常常会跳广播体操,这就是广播的一个事例,主机和与他链接的全部端系统相连,主机将信号发送给全部的端系统。
多播(Multicast)
多播与广播很相似,也是将消息发送给多个接收主机,不一样之处在于多播须要限定在某一组主机做为接收端。
任播(Anycast)
任播是在特定的多台主机中选出一个接收端的通讯方式。虽然和多播很类似,可是行为与多播不一样,任播是从许多目标机群中选出一台最符合网络条件的主机做为目标主机发送消息。而后被选中的特定主机将返回一个单播信号,而后再与目标主机进行通讯。
网络的传输是须要介质的。一个比特数据包从一个端系统开始传输,通过一系列的链路和路由器,从而到达另一个端系统。这个比特会被转发了不少次,那么这个比特通过传输的过程所跨越的媒介就被称为物理媒介(phhysical medium),物理媒介有不少种,好比双绞铜线、同轴电缆、多模光纤榄、陆地无线电频谱和卫星无线电频谱。其实大体分为两种:引导性媒介和非引导性媒介。
最便宜且最经常使用的引导性传输媒介就是双绞铜线,多年以来,它一直应用于电话网。从电话机到本地电话交换机的连线超过 99% 都是使用的双绞铜线,例以下面就是双绞铜线的实物图
双绞铜线由两根绝缘的铜线组成,每根大约 1cm 粗,以规则的螺旋形状排列,一般许多双绞线捆扎在一块儿造成电缆,并在双绞馅的外面套上保护层。一对电缆构成了一个通讯链路。无屏蔽双绞线通常经常使用在局域网(LAN)中。
与双绞线相似,同轴电缆也是由两个铜导体组成,下面是实物图
借助于这种结构以及特殊的绝缘体和保护层,同轴电缆可以达到较高的传输速率,同轴电缆广泛应用在在电缆电视系统中。同轴电缆常被用户引导型共享媒介。
光纤是一种细而柔软的、可以引导光脉冲的媒介,每一个脉冲表示一个比特。一根光纤可以支持极高的比特率,高达数十甚至数百 Gbps。它们不受电磁干扰。光纤是一种引导型物理媒介,下面是光纤的实物图
通常长途电话网络全面使用光纤,光纤也普遍应用于因特网的主干。
陆地无线电信道
无线电信道承载电磁频谱中的信号。它不须要安装物理线路,并具备穿透墙壁、提供与移动用户的链接以及长距离承载信号的能力。
卫星无线电信道
一颗卫星电信道链接地球上的两个或多个微博发射器/接收器,它们称为地面站。通讯中常用两类卫星:同步卫星和近地卫星。
这是计算机网络的第一篇文章,也是属于基础前置知识,后面会陆续更新计算机网络的内容。
若是文章还不错,但愿小伙伴们能够点赞、留言、分享,但愿对你们有帮助!
原文连接:https://segmentfault.com/a/1190000037538113
另外若是你想更好的提高你的编程能力,学好C语言C++编程!弯道超车,快人一步!
C语言C++编程学习交流圈子,QQ群1095293493【点击进入】微信公众号:C语言编程学习基地
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!
编程学习书籍分享:
编程学习视频分享: