| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络基础学习第一天 -> 正文阅读 |
|
[网络协议]网络基础学习第一天 |
知识点1.概述网络是指“三网”,即电信网络、有线电视网络和计算机网络。 在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类: 客户-服务器方式(C/S 方式),即Client/Server方式。 对等方式(P2P 方式),即 Peer-to-Peer方式。 在网络核心部分起特殊作用的是路由器(router)。 路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。 在路由器中的输入和输出端口之间没有直接连线。 路由器处理分组的过程是: ????????把收到的分组先放入缓存(暂时存储); ????????查找转发表,找出到某个目的地址应从哪个端口转发; ????????把分组送到适当的端口转发出去。 主机和路由器的作用不同: ????????主机是为用户进行信息处理的,并向网络发送分组,从网络接收分组。 ????????路由器对分组进行存储转发,最后把分组交付目的主机。 电路交换必定是面向连接的。 电路交换的三个阶段: ????????建立连接 ????????通信 ????????释放连接 当电话机的数量增多时,就要使用交换机来完成全网的交换任务。 电路交换传送计算机数据效率低 分组交换的过程 在发送端,先把较长的报文划分成较短的、固定长度的数据段。 每一个数据段前面添加上首部构成分组。 分组交换网以“分组”作为数据传输单元。依次把各分组发送到接收端 接收端收到分组后剥去首部还原成报文。 最后,在接收端把收到的数据恢复成为原来的报文。 分组在各结点存储转发时需要排队,这就会造成一定的时延。 因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。 速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等 “带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。 现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)。??? 吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。 吞吐量受网络的带宽或网络的额定速率的限制。? 发送时延是指发送数据时,数据帧从结点进入到传输媒体所需要的时间 传播时延是指电磁波在信道中需要传播一定的距离而花费的时间。 处理时延是指交换结点为存储转发而进行一些必要的处理所花费的时间。 排队时延是指结点缓存队列中分组排队所经历的时延。 排队时延的长短往往取决于网络中当时的通信量。 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。 信道利用率并非越高越好。 网络利用率则是全网络的信道利用率的加权平均值。 法律上的国际标准OSI并没有得到市场的认可。 是非国际标准TCP/IP现在获得了最广泛的应用。 网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定 TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。 ? ? 2.物理层单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。 基带信号(即基本频带信号)——来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。 基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制(modulation)。?? 带通信号——把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。 最基本的二元制调制方法有以下几种: ????????调幅(AM):载波的振幅随基带数字信号而变化。 ????????调频(FM):载波的频率随基带数字信号而变化。 ????????调相(PM) :载波的初始相位随基带数字信号而变化。? 香农公式 信道的极限信息传输速率 C 可表达为 ??????????????????????? C = W log2(1+S/N )? ?b/s ????????W 为信道的带宽(以 Hz 为单位); ????????S 为信道内所传信号的平均功率; ????????N 为信道内部的高斯噪声功率。? 频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。 时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。 使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。 波分复用就是光的频分复用。 码分复用CDM常用的名词是码分多址CDMA(Code Division Multiple Access)。各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。 每个站分配的码片序列不仅必须各不相同,并且还必须互相正交(orthogonal)。 在实用的系统中是使用伪随机码序列。 我看不懂但是我大受震撼 3.数据链路层数据链路层使用的信道主要有以下两种类型: ????????点对点信道。这种信道使用一对一的点对点通信方式。 ????????广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。 首部和尾部的一个重要作用就是进行帧定界。? ? ? 在传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。 在数据后面添加上的冗余码称为帧检验序列FCS(Frame Check Sequence)。 现在全世界使用得最多的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。 控制字段 C 通常置为 0x03。 PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。???? PPP 有一个 2 个字节的协议字段。 ????????当协议字段为0x0021时,PPP帧的信息字段就是IP 数据报。 ????????若为0xC021,则信息字段是PPP链路控制数据。 ????????若为0x8021,则表示这是网络控制数据。? 当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。 PPP协议的工作状态 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。 PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。 这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机。 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。??? 局域网的数据链路层拆成两个子层: ????????逻辑链路控制LLC(Logical Link Control)子层 ????????媒体接入控制MAC(Medium Access Control)子层。 与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关,不管采用何种协议的局域网对LLC子层来说都是透明的 集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线。 集线器很像一个多接口的转发器,工作在物理层。 在局域网中,硬件地址又称为物理地址,或MAC地址。 常用的以太网MAC帧格式有两种标准 : ????????DIX Ethernet V2 标准 ????????IEEE 的 802.3 标准 最常用的 MAC 帧是以太网 V2 的格式。 在数据链路层扩展局域网是使用网桥。 网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发。 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口 集线器在转发帧时,不对传输媒体进行检测。 网桥在转发帧之前必须执行 CSMA/CD 算法。 以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。 交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。 以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。 以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。??? 以太网交换机独占传输媒体的带宽。 虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组。 ????????这些网段具有某些共同的需求。 ????????每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个VLAN。 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。 虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为VLAN标记(tag),用来指明发送该帧的工作站属于哪一个虚拟局域网。 吉比特以太网(千兆以太网) 允许在1Gb/s下全双工和半双工两种方式工作。 使用802.3协议规定的帧格式。 在半双工方式下使用CSMA/CD协议(全双工方式不需要使用CSMA/CD协议)。 与10BASE-T和100BASE-T技术向后兼容。 4.网络层电信网 面向连接的通信方式 建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。 因特网 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。 网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套使用的还有三个协议: ????????地址解析协议 ARP(Address Resolution Protocol) ????????网际控制报文协议 ICMP(Internet Control Message Protocol) ????????网际组管理协议 IGMP(Internet Group Management Protocol) IP地址,每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。 ? ? IP地址是一种分等级的地址结构。分两个等级的好处是: ????????第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。 ????????第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。 由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。 地址解析协议ARP 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。 当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。? IP数据报的格式 一个IP数据报由首部和数据两部分组成。 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。 IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”。 当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。 网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。? 从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。 使用子网掩码(subnet mask)可以找出IP地址中的子网部分。? CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。 CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP地址从三级编址(使用子网掩码)又回到了两级编址。? 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位) 选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。 为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。 ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP不是高层协议,而是IP层的协议。 ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。?? ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。 ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有关。 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。? 内部网关协议RIP 路由信息协议RIP是内部网关协议IG中最先得到广泛使用的协议。 RIP是一种分布式的基于距离向量的路由选择协议。 RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。 RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。 RIP协议最大的优点就是实现简单,开销较小。 RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。 内部网关协议OSPF(Open Shortest Path First)? “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。 ? 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。 OSPF不用UDP而是直接用IP数据报传送。 OSPF构成的数据报很短。这样做可减少路由信息的通信量。 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。 OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路由。 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。 所有在OSPF路由器之间交换的分组都具有鉴别的功能。 支持可变长度的子网划分和无分类编址CIDR。 每一个链路状态都带上一个32位的序号,序号越大状态就越新。 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。 IP多播 多播使用组地址—— IP 使用D类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。? 永久组地址——由因特网号码指派管理局IANA负责指派。 动态的组成员 使用硬件进行多播 因特网号码指派管理局IANA拥有的以太网地址块的高24位为 00-00-5E。 因此 TCP/IP 协议使用的以太网多播地址块的范围是:从00-00-5E-00-00-00到00-00-5E-FF-FF-FF D类IP地址可供分配的有28位,在这28位中的前5位不能用来构成以太网硬件地址。 IGMP是整个网际协议IP的一个组成部分 和ICMP相似,IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报),但它也向IP提供服务。 因此,我们不把IGMP看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。 IGMP可分为两个阶段 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他多播路由器。 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。 为了避免兜圈子,采用了叫做反向路径广播RPB(Reverse Path Broadcasting)的策略。 路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。 若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。 如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。 10.0.0.0 到 10.255.255.255 172.16.0.0 到 172.31.255.255 192.168.0.0 到 192.168.255.255 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。 问题1.分组交换的时候分组丢失怎么办?发送方等待合理时间(需要定时器) 若分组或ACK只是延迟而不是丢失,则会产生重复分组/ACK,序列号机制能够处理这种情况,在ACK志显示告知分组序列号。 PS:确认机制:ACK:显式地通知发送方分组已正确接收 2.冗余码计算计算冗余位的位数,即生成多项式的最高阶数 在信息位后补冗余位个数的0 将第二步的结果与生成多项式相除,这里采用的除法叫做模2除法,就是只要部分余数的高位为1,便可商1之后上下做的减法是异或 经过第三部不断计算后得到余数,将信息后面补的0换成余数 已知待发送数据为10110,除数为1001,求在CRC冗余检测算法中生成的冗余码FCS是多少? 3.同步传输和异步传输的定义和区别异步传输(Asynchronous Transmission): 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。 同步传输(Synchronous Transmission):同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。 同步与异步传输的区别 异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。 异步传输相对于同步传输效率较低。 PS:在异步通讯时,基本单位是字符,传输时字符间异步,字符内各位同步,双方不需要严格同步,即使有百分之几的差异也可以保证数据的可靠传输;同步通讯时,字符与字符间和字符内部的位与位之间都需要严格同步,所以发送双方要使用同一时钟源。其实,同步和异步的最大区别就是:字符与字符间的传送一个是异步,一个是同步;而在字符内的位与位之间,两者都是同步的。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:41:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |