马轩

个人主页

欢迎来到我的个人站~


计算机网络笔记

计算机网第一节

有线通讯通讯介质:双绞线、同轴电缆、光纤

无线通讯介质:无线电波、微波、红外线和激光

双绞线:由绞合在一起的一对导线所组成,这样做可以减少各导线之间的干扰,并且具有抗外界电磁干扰的能力。

双绞线:反接线一段使用568A一段使用568B其中12、45、36、78分别交换位置

硬件带宽:是数据传输的能力,指单位时间内能传输的比特数目。

硬件波特率:表示传输速度的工作效率,也就是每秒中硬件产生的电信号变化的次数。

比特率:每秒传送的比特(bit)数。

为什么RS-232两侧硬件波特率必须相同:如果发送和接受方为能设置成使用同样的波特率,接收器中的计时器就不会对每一位等待正确的时间长度,将会导致错误的发生。即:帧对齐差错。

RS-232串行异步通信:它是涉及用来与诸如调制解调器或终端等这些设备通信的,所以它规定用于7位字符传输。当然也能用于传输8位字符。

1.当发送方不再发送时,它是导线处在一个负电压的状态,对应位值1。

2.发送方在传输字符的数据位置之前先传输一位额外的位值0。这个额外的位置被称为起始位。在每一个字符后面会跟着一个比特1,这个比特1就被称为终止位。

一个字符如果有7位的话,加上起始位,再加上终止位,整个传输就需要9位,所以来说,如果字符有8位的话(比如ASC2)那么一个字符就有10位bit。

常用的数字编码技术:

  • 不归零编码
    • 用不归零编码时,一个时钟周期可以表示两个bit,所以它是编码效率最高的编码,但是它不能携带时钟信号,且无法表示数据传输。
  • 曼彻斯特编码
    • 一个时钟周期只可以表示一个bit,并且必须通过两次采样来表示一个bit(因为它是通过电平的变化来1表示一个bit所以必须采样两次),但是它携带有时钟信号,且可以表示没有数据传输。
    • bit中间有信号由低到高表示0,bit中间有信号由高到低可以表示1
  • 差分曼彻斯特编码
    • 差分曼彻斯特与曼彻斯特基本一致只是将电平变化的位置给改变了,从原来的bit中间,变到了bit与bit之间。
    • 如果bit与bit之间有电平变动,那么下一个bit表示0,如果没有电平变化则表示下一个bit为1
    • 同时为了传递时钟信号,每个bit中间都会有一个电平变化
  • 4B/5B编码
    • 这种编码是不归零编码的一种变种,数据流中每4个bit组成一个组合,并且对应5个bit的编码
    • 5B编码中至少都有两个1,就是为了保证在传输过程中信号码元至少发生两个跳变,这是在接受端提取时钟信号所必需的。(也就是改进了不归零编码不能携带时钟信号的不足)
    • 发送信号时,我们采用5B的编码规则,然后在接受端将其翻译为4B的编码信息。

以上四种编码的比较:

  • 不归零编码的编码密度是最高的,接受端一次采样可以得到一个bit,即是波特率的等于比特率,但是不能携带时钟信号。

  • 曼彻斯特编码的编码密度最低,接收端二次采样才能得到一个bit,即波特率是比特率的两倍。但是每个bit中间都有信号跳动携带了时钟信号
  • 差分曼彻斯特编码是bit与bit之间的信号跳动表示下一个bit,相同的是如果出现由低电平到高电平表示0,由高电平到低电平表示1.并且每个bit中间都携带了信号变动,因此携带了时钟信号。
  • 4B/5B的编码密度略低于不归零编码,但是高于曼彻斯特编码密度,即波特率是比特率的1.25倍。并且携带了时钟信号。

ps:波特率是电信号每秒变化的次数。比特率是每秒传输的有效bit数目。

为检测错误接收器多次测量同一位的电压,并比较测量结果。若电压不一致或者停止位不在期待的时刻出现,接收器将报告出错。这种错误检测称为桢对齐差错。

带宽:硬件改善信号的最大速率。

奈奎斯特采样定理说明了带宽和系统每秒能传输的最大位数之间的基本关系。 \(D = 2Blog_{2} K\) K代表传输系统使用K种不同电压进行数据编码。B为带宽,D为最大数据传输率。这个2表示的就是不归零中的编码方式带来的。其中带宽的单位为Hz。

但是香农定理指出那是一个无法达到的理论数值, \(C = Blog_2(1+S/N)\) S/N表示信噪比。

第二讲 远距离传输和分组传输

远距离传输:

首先是电信号由于消损的缘故,电流不能沿导线传输任意长的距离。但是一个连续震荡信号能比其他信号传播到更远的地方。这种震荡信号,通常是正弦波,被称为载波。为了发送信号,发送器要略微的修改其载波,这种修改被称为调制。在接收端相反转化称为解调。 image-20191102141641935

通信中的复用技术:

为了充分利用传输系统,通常利用多路复用技术来同时携带多路信号来高效率地使用传输介质。主要是两种:

  1. 频分多路复用技术
    • 传输介质的可用带宽必须超过各路给顶信号所需带宽的总和。
    • 多个载波信号可以在单一介质上同时传输互不干扰。
  2. 时分多路复用技术
    • 各个发送源轮流使用共享的通信介质,每个信号按时间信后轮流交替的使用单一信道,那么,多个数字信号在宏观上可认为是同时进行传输,对单一信道的交替使用可以按位、字节或块等为单位来进行。
    • 同步时分多路复用技术,时间片与输入装置一一对应,即为同步。在这中情况下传输介质的速率不能低于各个输入信号的速率之和。
    • 异步(统计)时分多路复用技术,时间片语输入装置之间没有任何关系,任何时间片都可以被用于传输任何一路输入信号。在传输的数据单元中必须包含地址信息。以便寻找地址的目的节点。传输介质的传输速率只要不低于各个输入信号的平均数据传输速率即可。
    • 一般来说同步主要用在主干网络上,异步主要用在末节网络上。

奇偶校验:奇偶校验机制要求发送计算机在发送前对每一个字符都计算一个附加位置,叫做奇偶位置,并把它放在每一个符号后面。若是奇校验,那么发送计算机选择校验位置使得1的总数为奇数,若是偶校验则刚好相反。

“校验和方法”检测差错:

image-20191104003016390

在此处就是按照32位为一段进行运算的。

第三讲: 局域网技术于网络拓扑结构 硬件编织于帧类型识别

局域网:多台计算机共享通信介质的网络。

计算机访问的局部性:

  • 第一、计算机与附近的计算机通信的可能行比远离的计算机通信的可能行要大。
  • 第二,计算机很有可能于同一台计算机反复通信。

局域网的拓扑结构;

拓扑结构是一个关于空间的物理结构概念。

星形拓扑:

所有计算机都连在一个中心站点上,形成星形状拓扑。

  • 星形拓扑结的中心通常被称为集线器(hub)
    • 星形网络能保护网络不受一根电缆损害的影响,因此每根电缆只能连接一台计算机。
  • 环状拓扑:将计算机连城一个封闭的圆环的网络。
    • 环形拓扑结构使计算机容易协调使用以及容易检测网络是否正确运行。
    • 但是只要其中一根电缆断掉,整个环形网络就会坏掉。
  • 总线拓扑:用一根连接计算机的共享电缆连接的网络
    • 总线拓扑结构所需的布线比星形状拓扑少
    • 但是有和环状拓扑一样的缺点,如果某人偶然访问总线,网络就会失效。

多路访问协议:

静态分配:

如果有N个用户,把带宽或者时间分为N份,每个用户静态的占有一个,缺点是不能有效的处理突发数据,有的用户无通信量而白白的浪费资源。

动态分配:

随机访问:只要有数据,帧就可以直接发送,发生冲突后再采取措施解决冲突。适合于负载比较小的网络,当负载比较大的时候效率比较低。

控制访问:发送站点必须先获得发送的权利,在发送数据,不会发生冲突。在负载重的网络中湖的很高的信道利用率。主要有轮转和预约两种形式。

CSMA/CD

以太网要求每台计算在发送信号之前,先接听信道,如果没有被占用则可以发送信号,但在发送过程中仍然处于监听状态,通过监听来判断是否发生冲突。一旦发现冲突则立即停止发送。

CSMA/CD解决冲突方法

为了防止多次冲突,以太网要求每台计算机在冲突之后延迟一段实机才尝试传输。标准指定了最大延迟d,并且要求每台计算机选择一个小于d的随机延迟。在每次冲突后选择把延迟的随机范围加倍,这样无冲突发送的概率就会更大。

环形网络实例:使用环形拓扑结构的局域网把计算机连接成一个圆环。令牌传输的存取机制;这种网络叫做令牌环。令牌环运行在单个共享介质上,如果一个计算机需要发送数据,在存取网络之前必须等待许可。一旦得到许可,发送计算机完全控制整个令牌环–不会有其他传输同时发生。

FDDI:环形网络的另外一个实例:令牌环网的一个主要缺点就是它很容易失效。而且一旦一台机器失效能使整个网络都失效。

以太网:以太网是一种使用广泛的、采用总线拓扑结构的网络技术。使用同轴电缆将多台计算机连接起来。

一个以太网网段在长度上限制为500米,并且要求每一对连接之间最少相隔3米。通过调制过的载波进行交流。在桢的传输过程中发送计算机单独占据使用整个电缆,其他计算机必须等待。FDDI使用冗余来克服错误,一个FDDi网络包含两个完整的还你,当所有的器件都正常工作时,使用一个环发送数据,只有当第一个环失效时,才会用到另一个环。FDDI网中第二环中的数据流方向与主环中数据流的方向相反。

硬件编织和类型标示

局域网技术使用一种编织技术来提供直接通信,局域网上的每一个站点都分配了一个数值叫做硬件地址或者物理地址或者介质地址,MAC地址。在传输过程中桢中包含了接收方的物理地址,尽管共享允许所有的站点接收相同的副本,但是每个站点的局域网的硬件检测每个传入桢的地址来决定是否应当接收该桢。

局域网上传输的每一帧都包含这两个地址:一个指明了接收方,一个指明了发送方。

广播:指大量的观众都可以接收的传输。除了给每台激素啊分配一个地址,网络设计者还定义了一个特殊的地址,称为广播地址。让计算机的硬件不仅可以识别自己的硬件地址还可以识别广播地址。

组播:虽然可以配置网络上的任何一个站点:使之丢弃不需要的桢,但处理和丢弃一个桢也需要消耗计算资源。因此我们采用了组播技术。接口硬件必须进行编程:说明那些组播桢需要接受而那些需要丢弃,由接口硬件判断并直接收那些符合条件的桢。如果一个应用程序希望接受组播桢,它必须告诉网络接口使用哪个组播地址。

网络分析器或者网络控制器:

为了读取包分析器软件吧计算机的网络接口设置为混合模式,代替了传统的地址识别模式,当处于混合模式的时候,接口不去检查桢的目标地址,也不丢弃任何桢,相反的接口只是简单地将每一个桢的一个副本放入计算机内存中。

双绞线以太网:10Base-T,物理结构是星形但是逻辑结构确实总线型的。10Base-T要求每台计算机都有一块网络哦接口卡和一条从网卡到集线器的直接连接。集线器内部电子部件模拟物理电缆,使整个系统像一个传统的以太网一样工作。每台计算机必须使用CSMA/CD来取得网络控制以及以太网桢格式。

第四讲 局域网扩展技术

物理拓扑和逻辑拓扑结构

几乎任何一种网络接口都支持多种布线方式,而且逻辑结构可以与物理拓扑结构不同。

例如IBM令牌环中,每台计算机都连接在集线器上,但是从逻辑上讲,集线器管理着一个环,包括令牌环的传输细节,就像计算机连接到传统的环状布线上一样。

局域网拓展:光纤调制解调器、中继器、网桥及交换机。

限制局域网连接距离的主要有两个因素:

  1. 两个最常用的访问机制是CSMA/CD和令牌传递,他们的响应时间都和网络的大小成正比,为了达到较小的网络延迟,局域网的连接就是收到了限制。
  2. 硬件发射固定能量的电磁波。由于电信号在导线中传输时,信号会不断变弱,信号不可能被传输到无穷远。

光纤扩展:光纤具有延迟短,带宽高,这种机制使计算机能连接一个与远处网络相连接的收发器。在实际中有一个扩展硬件在计算机和收发器之间,每一个光纤调制器都有专门的硬件来完成两个功能,

  1. AUI信号与数字信号之间的相互转换。
  2. 数字信号与在光纤中传输的光脉冲之间的相互转换。

中继器:之前我们讲到了一个限制局域网连接距离的重要因素就是电子信号在传输过程中的信号衰弱。中继器就是检测到一根电缆中有信号传来的时候,中继器便转发一个放大的信号到另外一个电缆中。中继器直接连到以太网电缆上,并且把信号从一根电缆发送到另外一根电缆上,而不等到一个完整的帧。

但是有了中继器还是不能无限距离的传输,就是因为另一个限制的存在,由于以太网CSMA/CD协议要求短延迟,如果延迟过长,协议就不能工作,一次最多限制为连接四个中继器。实际上10Base-T布线中的一个以太网集线器也算作一个中继器。

中继器最大的缺点就是不了解一个完整的帧。当从一个网段接收吸纳后并转发到另外一个网段时,中继器不能区分该信号是否为一个有效帧或者其他信号。因此当在一个网段内发生冲突时,中继器就向另一个网段发送不正确的信号,即与冲突相关的重叠信号。

网桥:同中继器一样,网桥也是来连接两个网段的设备,但是和中继器不一样,网桥可以处理一个完整的帧,并使用和一般计算机相同的接口设备。网桥以一种混合方式(会接收虽有的帧)监听每个网段上的信号。当它从一个网段接收到一个帧是,网桥会检查并确认该桢是否已经完整的送达,然后如果需要的话就把该桢传输到其他网段。而且每个网段中的任何一台计算机都可以发送给任何其他连接着的两个网段的计算机。而且由于每个网段都支持标准的网络连接并使用标准的桢格式,极速那集并不知道他们连接在一个局域网内,还是通过网桥进行连接。

中继器和网桥的比较:

集线器和中继器工作原理相同:

  1. 信号放大
  2. 有位延迟

交换机和网桥工作原理相同:

  1. 可以检测桢是否完整
  2. 提高交通效率,AB通信,CD通信可以同时开展,并行通讯,中继器不行。(因此频繁交互的计算机应该安装在同一个网段上)
  3. 帧延迟。

卫星:在两个信号发射器和各个网段之间都应该有一个网桥。这是因为收到带宽的限制,在两个站点之间都要完成过滤帧的功能。

由于局域网网段传输帧的速度比微信发送快的多,所以网桥硬件上除了过滤功能外还具有缓冲功能,缓冲功能意味着帧在发送之前必须储存在储存器中。本质上,网桥维护着一张等待发送的帧的列表。

网桥环:因为网桥能发送和接收帧,所以桥接网络能来哪许多网段。网桥可以有两个,不影响CSMA/CD协议。

分布生成树:为了防止无限循环的问题,桥接网必须保证以下两种情况不同时发生:

  1. 所有网桥转发所有的帧
  2. 桥接网包含有一个网桥环。

网桥会自动执行一个分布生成树的算法来决定哪些桥转发帧。

第五讲 远程数据技术、广域网技术与路由

同步通信:数据从网络一段中流入的速率与其从另一端流出的速率相等。接收设备利用附加信息来同步它的时钟,并保证数据输出网络的速率确实与其进入网络的速率相等。

反多路复用技术:允许在两点之间租用多条线路,并把它们当作单条较高容量的线路来使用。

区分局域网技术和广域网技术

  1. 网络的规模
  2. 必须使大规模网络的性能达到相当水平,否则不能称之为广域网技术。

因此通过网桥连接的局域网不能被看作广域网,因为带宽限制决定了桥接网不能连接任意多个站点

首先声明一点:现在提起广域网就是Internet网络,但是之前还存在其他广域网。

包交换:广域网中基本的电子交换机称为包交换机。包交换机有两种不同的接口,一种是具有较高速度,通过数字线路连接另一个包交换机。第二种具有较低速度,用来连接一台计算机。

存储转发:不像共享局域网在一个给定的时间内只允许一对计算机交换帧,广域网可以允许许多计算机同时发送包。广域网交换系统的基本模式是存储转发交换。类似于网桥哈,这样的存储转发机制可以使包以硬件课容许的最快速度在网络中传送。

广域网的物理编址:当发送到另外一台计算机时,发送着必须给出目的地的计算机的地址。很多广域网使用层次地址方案,层次地址把一个地址分为几个部分。最简单的层次地址分配方案就是分为两层,第一层为包交换机、第二层为表示连到该交换机上的计算机。

下一站转发:一个给定的包交换机仅包含为使该包最终到达目的地所应发送的下一站的信息。其中通过路由器中的路由表。

源地址独立性:在到达某一特定的交换机之前,下一站转发并不依赖包的源地址,也不依赖所走的路径。下一站仅仅依赖于包的目的地址。这个概念被称为源地址独立性。

层次地址与路由的关系:储存下一站信息的表通常称为路由表,转发一个包到下一站的过程为路由。

当转发包时,包交换机仅需检查层次地址的第一部分。这样有两个重要的意义:1.因为路由表可用检索建立而不用搜素列表,从而减少了转发包所需要的时间。2.这个路由表可用目的交换机而不用目的计算机表示,从而大大缩小了路由表的规模。(规模的缩小对一个有许多计算机连接到包交换机的大型广域网而言具有实际意义)

除了最后的包交换机外,两层式层次地址方案使得转发时仅使用第一部分地址。当包到达目的就三级所连的包交换机时,交换机才检查第二部分地址并选择目的的计算机。

缺省路由的使用:这种方法用一个项来代替路由表中许多具有相同下一站值的项,称为缺省路由。缺省最多的那一项。

路由表计算:有两种方式:

  1. 静态路由:包交换机启动时计算和设置路由,伺候路由不再改变。
  2. 动态路由:包交换机启动时建立初始路由,当网络变化时,随时更新。

在核心网络使用静态路由,但是应用领域十分小。大多数网络采用动态路由,因为它能使网络自动适应变化。

最短路径计算:矢量距离路由:从一个包交换机发到另一交换机的信息中包含了一对目标和目标距离的值,包交换机周期性地通过网络向邻居机发送路由信息,每条信息包括(目的地,路径,距离),当信息丛邻机到达包交换机时,包交换机就检查信息中的每一项,如果邻机到某目的地有比原来更短的路径,就更新路由表。最多不能通过15个路由器。

第六讲 网络所有权、服务模式和性能

虚拟私有网络:为了建立一个VPN,公司要为其每个站点购买一个特别硬件和软件系统该系统安放在公司的私有网络和公用网络之间。

工作过程:当一个站点的一台计算机发送包到另一个站点的另一台计算机时,该包被路由到本地VPN系统,该VPN系统检查目的地址,加密包,然后通过公用网络将包发送到目标地址的VPN系统,当包到达时,接收方VPN系统验证该包来自合法地址,解密内容后将包转发到目的地。

服务模式:所有的网络接口可以分为两大类:

  • 面向连接的服务(TCP):
    • 大多数的面相连接网络的运行与电话系统相似
    • 两台计算机在通信过程之前必须通过网络建立一条联系。
  • 无连接服务
    • 无连接与邮箱系统相似,当计算机要发送数据时,只要将数据装入适当的帧格式并附上母的计算机的地址,然后将帧送入网络。

面相连接和无连接的服务模式的区别:

面相连接的优点:1. 可以方便记账而且在连接中断时能立即告诉通信的计算机。 2. 向顾客提供网络服务的公用网络偏爱面相连接的服务,因为计算连接时间比计算包的数目要来的轻松。 3. 及时获知网络故障对使用网络的应用程序很有用。 4. 虽然应用程序不能消除故障,但可通知用户或者管理者。

无连接系统中的特点:1. 无连接系统中的故障可能不被发现。计算机在网络故障发生后仍然继续发送包。

  1. 无连接服务模式的主要优点是初始开销小–无连接网络允许计算机直接发送数据,而不必等待连接。虽然大多数网络可以在几毫秒内完成连接,但它建立和终止连接所费时间比发送数据长。

延迟:可以定量衡量的最重要的网络特征是延迟。延迟可以说明一个网络在计算机之间传送一位数据需要花费多少时间用秒来衡量。

延迟的种类:

1.传播延迟:网络中的一些延迟是由于信号通过网线或者光纤传送时需要时间,这部分延迟被称为传播延迟,通常与所传播的距离成正比。

2.交换延迟:电子设备在发送包之间还需要一段时间来选择下一站,等其他电子设备引入所导致的时间增加。这段时间被称为交换延迟。

3.访问延迟:由于大多数局域网使用共享介质,计算机只有在通信介质空闲的时候才能进行通信。例如以太网使用CSMA/CD,令牌环网络则要求发送者等待一个令牌,这种延迟通常并不长,称为访问延迟。

4.排队延迟:作为存储转发过程中的一部分,每个交换机将传来的排成队列,如果队列中已有包,则新到的包需要等候,直到交换机发送完先到的包。

吞吐量:

可以定量衡量的第二个网络特征。吞吐量是数据通过网络传输的速率来表示(虽然吞吐量的单位和网速单位一致,但是我们要清楚吞吐量是个容量单位bits per second)。硬件的吞吐容量称为带宽。

理论上吞吐量和延迟是两个独立的东西,但是实际还是那个他们是相关。延迟和拥塞的关系: \(D = \frac{D_0}{1-U}\) D0表示网络空闲时的延迟,U是0到1之间的一个数字,表示当前网络容量的使用量,有效延迟D

延迟-吞吐量的乘积可以表示网络中可容纳的数据量。

第七讲 互联网络(网络分层、互联网概念、结构、IP地址)

ISO定义了七层参考模型:

第一层 物理层:对应于基本网络硬件,实现比特流的透明传输。

第二层 数据链路层:将比特组合成字节进而组合成帧,用MAC地址访问介质。

第三层 网络层:增加IP地址。

第四层 传输层:该层由TCP(三次握手) UDP,数据流的可靠传输即发送方发出的数据被接收方正确接收到。是最复杂的协议之一。

第五层 会话层 规定怎样与远程系统建立一个通信会话。

第六层 表示层 规定了怎样表示数据。

第七层 应用层 规定了一个特带的应用程序怎样使用网络 HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

多层嵌套头部:每一层在把数据传送到低一层之前都往头部加入一些附加信息,因此在网络中传输的帧包含了一系列嵌套的头部。

  1. 无需传递的排列

一个可变路由的无连接网络可能以乱序方式传递包,假如这一序列的第i个包被发送之后,马上有一个新的路径可用了,网络将按这一较短的路径发送第i+1个包,使得它比第i个包先到。

为了解决乱序问题,传输层使用了排序。发送方为每一个包指定一个序列号,接收方保存当前按顺序收到的最后一个包的序列号,同时保存一个乱序到达的包的链表。每接收一个包,接收方检查其序列号以决定怎么样去处理。如果是所期待的下一个包,协议软件将包发送到上一层并检查乱序链表是否有合适的包可存取出发到上一层。

  1. 排序消除重复包

接收软件在检查到达包的序列时验证重复性,如果这个序列号,已经向上传送或与链表中等待的包1匹配,接收软件就丢弃新的副本。

  1. 重发丢失的包

在计算机网络中,包的丢失是一个基本问题,因为传输错误可能导致位串破坏,使帧失效。如接收方检测到这种错误,将丢弃掉整个帧。为了保证可靠传输,协议使用了带有重发的确认。当一个帧完好无损地到达的时候,接收方协议软件都将返回一个小的消息,报告接收成功。

当发出一个包之后,发送方就会启动一个计时器,如果确认在计时器超时之前到达,软件便取消计时器。(计时器的时间是一个自适应的方式确定的,利用往返延迟并加上一些余量)如果计时器超时了,软件将会发出该包的另外一个副本,并且重新启动计时器。当重发次数达到最大重发次数的时候,协议停止重发并宣布无法通信。同时重发也要解决潜在的重复问题。

4, 避免过量延迟1导致的重播

在特殊情况下,延迟可能导致重播错误,重播意味着一个老的、延迟的包影响力后面的通信。如果不细心设计协议,一个早期会话发送的包可能在后面的会话中被接收,而正确的包被当作重复包丢弃了。

为了避免重播,协议用一个唯一的标识符标记每一次会话,并需要把这个唯一的标识符放在每一个包中,协议软件将丢弃任何不正确标识符到达包。为了避免重播,一个标识符必须在相当长一段时间内不会再次被使用。

  1. 控制流量防止数据过载

一台计算机发送速度通过网络发送数据的速度比目的计算机接收数据的速度快时,就出现了数据过载,结果导致了数据丢失。

解决方法有两种:

  • 停止等待协议
    • 每发一个包便进入等待状态,等待接收方的确定,虽然可以避免数据过载,但是却降低了网络的利用效率,而且没有充分利用接收方的接收能力。
  • 滑动窗口的流量控制技术
    • 程序设定发送方和接收方使用固定的窗口尺寸,在接收确认前可以发送的最大的数据量。在确认到达之后,发送发丢弃已经被确认的副本并发送下一个包。
    • 滑动窗口可以显著提高吞吐量
  1. 避免网络拥塞的机制
  • 当到达的包比能发送的要多,队伍增大,有效延迟增加,这种情况被称为爱拥塞。如果这情况持续下去,包交换机内存溢出,开始丢弃包。
  • 解决方法
    • 当拥塞出现的时候,让包交换机通知发送发。这种方法是不可行的,因为处于拥塞状态下,路由器本身就十分繁忙,这种方法只会增加路由器的压力。
    • 将包丢失作为拥塞的估计,如果发送方使用超时和重发策略,包丢失是很容易测量的,每个重发事件意味着拥塞的出现。对拥塞的响应包括减少包的传递速率。滑动窗口协议的枪框下可以暂时减少窗口的大小。

协议机制可能以预料不到的方式相互作用:流量控制机制中使用滑动窗口技术来提高传输速度,在拥塞机制时,方案倾向于减少插入包的数量来避免网络崩溃。

网络互联:概念、结构与协议

通用网络:现代计算机通信系统允许在任意两台计算机之间通信。

尽管网络技术互不兼容,研究人员仍然设计出一套方案,能在异构网络之间提供通用服务。并且用于连接异构网络的基本硬件是路由器(router)。

路由器在物理上类似于桥接器,每一个路由器是一台完成网络互联工作的专用计算机,有常规的处理器和内存,并对所连接的每个网络都有一个单独的输入和输出接口。网络会像对待别的计算机那样对待路由器。(路由器的工作原理在此和包交换机和网桥的工作原理相似,进行包交换)

互联网体系结构:路由器把所有的网络连接成一个单个的因特网,但是很少有组织使用单个路由器连接所有网络。原因有二:

  • 路由器可以理解为带有CPU、内存和多个网卡的一个计算机,但是单个路由器中的处理器不足以处理任意数量网络中的通信量。
  • 冗余提高了互联网的可靠性,协议软件一直监视者互联网的连接情况,在一个网络或者路由器发生故障时,只是路由器沿着另一条可替换路径发出信息。

虚拟网络:我们讲互联网是一个虚拟网络,因为通信系统是一个抽象,也就是说,虽然硬件和软件联合提供了一个单一网络的错觉,但是实际上这样的单一网络是不存在的。

TCP/IP协议与ISO的协议相对对应,其中TCP/IP协议中的第五层对应,IP协议中的第五、六、七层。

IP:互联网协议地址

IP编址方案:IP标准规定每台主机分配一个32位二进制数,作为该主机的互联网协议地址。每个32位IP被分割为两部分:前缀和后缀。前缀部分用来确定计算机从属的物理网络,后缀部分用来确定该网络上的一台计算机。

IP地址的分类:

  • A类: 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。32位中第一位为0
  • B类:在IP地址的四段号码中,前两段号码为网络号码,剩余的可以去表示主机号码。32位中前两位为01.
  • C类:在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。32位中前三位为110
  • D类:组播地址,允许发送到一类计算机。组播地址的最高位必须是“1110”。
  • E类:E类IP地址中是以“11110”开头,E类IP地址都保留用于将来和实验使用。

image-20191103190222355

特殊的IP:

  • 网络地址:让一个地址用来表示整个网络,IP保留主机地址为0的IP来表示整个网络,比如128.211.0.0可以表示一个分配了B类前缀128.211网络
  • 直接广播地址:在网络前缀之后增加一个所有位都是1的后缀便形成了网络的直接广播地址。比如128.211.255.255
  • 回送地址:127.0.0.1

第八讲 互联网络(协议地址联编、IP数据包和数据报转发)

IP地址是由软件维护的,因此他们只是些虚的地址,局域网或者广域网并不知道一个IP地址前缀与一个网络的关系,也不知道一个IP后缀和与一台计算机的关系,因此,软件在发送一个包之前,必须先将IP地址翻译成等价的硬件地址。

地址解析:将一台计算机的协议地址翻译成等价的硬件地址的过程叫做地址解析,即协议地址被翻译为正确的硬件地址。但是地址解析被局限在一个网络内,即一台计算机能够解析另外一台计算机的条件是这两台计算机都连在同一物理网络上。

地址解析有三种方法:

  • 查表:地址联编或者映射信息储存在内存当中的一个表中,当软件要解析一个地址时候,可在其中找到所需要的结果。
    • 查表的方法需要一张包含地址联编信息的表,表中的每一项是一个二元组(P,H),P是协议地址,H是等价的物理地址。在具体体现当中,可通过省略相同的前缀来省略空间。
    • 查表法的主要优点就是通用:一张表可以能存储特定网络的任意一组计算机的地址联编,特别是一个协议地址能映射到任意任意一个硬件地址。
  • 相近形式计算:每台计算机挑选协议地址,使得每台计算机的硬件地址可以通过简单的布尔运算得出它的协议地址。
    • 使用一定的数学函数,将一个IP地址解析为物理地址。运算量很小,无需维护任何表,计算的效率很高
  • 消息交换:计算机通过网络交换消息来解析一个地址,一台计算机发出某个地址联编的请求消息后,另外一台计算机返回一个包所含所需信息的应答消息。
    • 但是这种请求消息可以有两种不同的发送位置:
      • 第一种在网络中设置一个或者多个服务器,它们专门用来应答地址解析的请求。
      • 网上的每一个都需要参与地址的解析,负责应答对本机地址的解析请求,当一台计算机需要解析1一个地址的时候,它会向全网发出他的请求,然后所有的计算机都会收到这一个请求,并检测请求解析的地址,如果请求的地址与自己的地址相同时,则负责应答。

ARP协议中需要在局域网中工作。

IP数据报和数据报转发

在一个互联网上传统的帧的格式不适合作为互联网上的包格式。这是因为路由器能够连接异构网络,而不同类型的帧格式是不同的,因此路由器不能直接将包从一个网络传输到另外一个网络。IP数据报与硬件帧有同样的格式,IP数据报也是一个以头部开始后跟数据的格式。数据包的头部包含的信息是为了在互联网中寻找。数据报包含的是IP地址,而帧包含的是硬件地址。

一个数据报沿着从源地址到目的地的一条路径穿过互联网,中间会经过很多路由器。路径上会经过很多路由器。路径上的每个路由器收到这个数据报时,先从头部取出目的地址,根据这个地址决定数据报该发送给下一站,根据这个地址决定数据报该发往的1下一站。如果是最终的路由器,就通过主机号进行传递。

IP数据报的转发:路由表中列出来的每一个目的地都是一个网络,而不是一个单独的主机。

IP地址与路由表项

首先:实际的路由表中每一项的目的地的低于只含有目的地网络的网络前缀。

第二,每一项中有一个附加域包含了一个地址屏蔽码,这个屏蔽码决定了目的地中的哪些位对应着网络前缀。

image-20191103230631459

第三,当下一站区域指的是一个路由表时,将使用一个IP地址。

屏蔽码域和数据报转发:使用路由表为数据报选择下一站的过程,称为路由,或者转发。将目标IP地址与屏蔽码进行布尔运算,可以得到网络地址。此外数据报在整个过程中是保持不变的。

尽力传输:除了定义互联网数据报格式,IP还定义了通信的语言,并使用”尽力传输”。

第9讲 网络互联(IP封装、分段与重组、IPv6)

数据报与帧:当主机或路由器处理一个数据报时,IP软件首先选择数据报发往的下一站N,然后通过物理网络将数据报传送给N。每种硬件技术定义了自己的帧格式和物理寻址方案,硬件只接受和传输那些符合特定帧格式的以及使用特定的物理寻址方案的包。另外,由于一个互联网可能包含异构网络技术,穿过当前网络的帧格式与前一个网络的帧格式可能是不同的。

封装:一个IP数据报被封装进一个帧中时,整个数据报被封装进了帧的数据区,网络硬件会像处理一个普通的帧一样去处理一个数据报的帧。

帧的结构:发送方和接收方必须就帧的类型域中的值达成一致,当发送方将一个数据报放到帧中的时候,就必须在帧类型域中放入代表IP数据报的特定值。封装出了将数据报放入帧的数据区,还要将发送方提供的下一站的计算机的物理地址。为了得到这个物理地址,发送方机器上软件就要进行ARP地追联编过程。

在互联网上的传输:在通过互联网的整个过程中,帧头并没有积累,只是在通过不同的网络时,不断变化。数据包只有在通过网络的时候才会被封装。到达下一站时,数据包1将被从输入帧中取出来,然后才被路由和重新封装到一个输入帧中,因而,当数据包到达它的最终目的地的时候,携带数据报的帧被丢弃,使得数据包的大小与其最初被发送的数据报是一样的。

第四层(传输层)看不到中间传输过程:只能知道目标计算机和本地计算机,保证数据流的可靠传输。

TCP可靠传输协议,就是在基层不可靠传输的基础上,实现了数据流的可靠传输。

MTU(最大传输单位)、数据包长度和封装:

在不同的网络上可能存在不同的最大数据量的问题,如果事先知道MTU的话可以提高传输效率,但是如果不知道也不影响.

封装:在数据报前面加上一个头部,如果数据报过大,会将数据报分割开来,后面会在目标计算机中将其组装起来。

分段:

1.分段之后的头部跟原来的不同之处为第一、表示出来这是一个分段的数据报、第二偏移量来表示该段在原来中的位置。

2.分段技术本身支持在分段

3.分段的数据报在传输过程,路由器都是直接传输。

重组:

1.只有到目标计算机之后才进行重组

2.数据段在传输到目标计算机的过程中也可能面临着重复、丢失、乱序等等问题,在重组过程中如何去解决的问题。使用偏移量排序的方式去解决。

丢失怎么解决:采用的是全部抛弃的策略。为什么这么去做,是因为发送方并不知道段是怎么分的。最后的一段会告诉你一个结束的信号。

为什么要用IPv6:

1.因为地址不够用了

2.解决服务质量问题

3.IPv6提供一些特有的服务

第十讲 差错报告机制、TCP可靠传输服务

差错报文机制:

我们前面讲到了帧头部校验和的方法去检验帧是否正确,为了验证校验和,计算机对接收到的数据报的整个头部重新来计算校验和。当无法通过校验的时候接收者除了将被损坏的数据包丢弃之外没有别的方法。

TCP/IP协议中还包含了一个专门用于发送差错报文的协议,这一个协议就叫做互联网控制报文协议。IP在网络层提供尽力服务,当分组由于各种原因无法投递而遭到丢弃时,就用互联网控制报文协议发送错误报告,尽管ICMP互联网控制报文协议发送错误报告,尽管ICMP也是网络层协议但是它也需要IP协议封装,同时ICMP也不能保证可靠传输。

ping程序就是用的ICMP回应请求和恢复应答报文来实现。

TCP可靠传输协议:

TCP提供的服务:1.面相连接,TCP提供的是面相连接的服务,一个应用必须首先请求一个到目的地的连接,然后使用这一连接来传输数据。2.点对点通信,每个TCP连接都有两个端口。3.完全可靠性,TCP确保通过一个连接发送的数据按发送时一样正确地送到,且不会发生数据丢失或乱序。4.全双工通信:一个TCP连接允许数据在任何一个方向流动,并允许任何一个数据程序在任何时刻发送数据。TCP能够在两个方向上缓冲输入和输出的数据,这就使得一个应用在发送数据的时候继续自己的计算工作。5.流接口,TCP提供了一个流接口,一个应用利用它可以发送一个连续的字节流穿过接口。6.可靠的连接建立,TCP要求两个应用创建一个连接时,两端必须遵从新的连接。前一个连接所用的重复的包是非法的,也不会影响到新的连接。7.友好的连接终止,TCP确保在关闭之前传递的所有数据的可靠性。

端对端服务和数据报:

TCP被称为一种端对端协议,这是因为它提供一个直接从一台计算机上的应用到另一远程计算机上的应用的连接。由TCP提供的连接叫做虚连接,这是因为它们是由软件实现的。事实上,底层的互联网系统并不对连接硬件或软件支持,只是两台机器上的TCP软件模块通过交换消息来实现连接的幻象。

TCP使用IP数据报,来携带消息,每一个TCP消息封装在一个IP数据报后通过互联网传输。IP数据包的结构1我们之前讲过了包括IP数据包头部和数据部分。当数据报到达目标计算机的时候,IP数据报将内容传给TCP。

第四层(传输层)看不到中间传输过程:只能知道目标计算机和本地计算机,保证数据流的可靠传输。

TCP可靠传输协议,就是在基层不可靠传输的基础上,实现了数据流的可靠传输。

IP一层传输不可靠,TCP从高层协议提供可靠传输服务。

因此在路由器上面安装IP协议就可以了。

包丢失与重发:当TCP发送数据时,发送发通过一种重发方案来补偿包的丢失,且通讯的双方都要参与,当接收方TCP收到数据时,它要回发给发送方一个确认,当发送发发送数据时,TCP就启动了一个定时器,在定时器到点之前,如果没有收到一个确认,则发送方重发数据。这个等待时间的确定是一个自适应的过程,一般是双方通信延迟的二倍加上一些余量。调整等待时间的最终目的就是为了使等待的时间长度刚好足够1确定一个包的丢失。

缓冲、流控与窗口

TCP使用窗口机制来控制数据流:当一个连接建立起来时,连接的每一端分配一个缓冲区来保存输入的数据,并将缓冲区的尺寸发送给另一端。当数据到达时,接收方发送确认,其中包中就含有自己剩余的缓冲区尺寸。剩余的缓冲区空间的大小被称为窗口。如果发送方操作的速度快于接收方,接收到的数据最终将充满接收方的缓冲区,导致接收方通告一个零窗口。发送方收到零窗口通告后,必须停止发送,直到接收方重新通告一个新的窗口。

三次握手:为了确保连接的建立和终止都是可靠的,TCP使用三次握手的方式,其中交换了三次消息。使用SYN来创建一个连接的消息,使用FIN来关闭一个连接的三次握手。

延迟问题的解决方法:创建一个连接的三次握手中要求每一端产生一个随机的32位序列号。短期内不能重复,因为每一个新的连接用的是一个新的随机序列号,一对应用程序就能通过TCP进行通信,关闭连接1,然后创建一个新的连接,而不受老连接的重复或者延迟包的影响。

拥塞控制:当消息丢失的时候,TCP开始拥塞机制,TCP不会重发大量的数据以致于充满接收方的缓冲区,相反,一旦检测到包丢失,则TCP降低它重发数据的速率。

同时拥塞控制是通过降低发送速率,然而流量控制是为了尽可能增大速率,因此我们使用当发现数据报丢失时,发送速率而后线性增加和滑动窗口协议两者来协调两者的平衡。

第十一讲 Internet基本协议栈

image-20191104144728062

ARP协议是用来地址解析的。

IP地址和MAC地址:MAC地址物理地址,只具有局部意义,随时可以获取,48位。IP地址逻辑地址,具有全局意义,上级分配,32位。

第十二讲 计算机网络应用

通信与分层:

网络体系结构解决异质性问题采用的是分层方法,把复杂的网络互联问题划分为若干个较小的、单一的问题,在不同层上予以解决。

OSI七层参考模型:

通信实体的对层之间不能直接通信,只有物理层之间才能通过介质连接通信。

各层之间严格单项依赖:

  • 上层使用下层提供的服务
  • 下层向上层提供服务

OSI各层使用协议简介:

应用层:

  • 远程登录协议Telnet
  • 文本传输协议FTP
  • 超文本传输协议HTTP
  • 域名服务DNS
  • 简单邮件传输协议

传输层

  • 传输控制协议TCP:面相连接的可靠的传输协议。
  • 用户数据报协议UDP:是无连接的,不可靠的传输协议。

网络层

  • 国际协议:IP
  • Internet互联网控制报文协议:ICMP

TCP/IP模型的分层:

image-20191104151400404

端口是一种抽象的软件结构。应用程序通过系统调用与某个端口建立连接后,传输层传给该端口的数据都被相应的进程所接收,相应进程发送给传输层的数据都通过该端口输出。此外TCP和UDP的端口是相互独立的,即使TCP和UDP的端口号码是一样的,但是也不是一个端口。

SOCKET连接方式

当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“SOCKET”,以便把网络通讯所需的系统资源分配给该进程。操作系统为这些资源的总和用一个号码来表示,并把此号码返回给应用程序。应用程序所进行的网络操作都必须使用这个号码。通讯完毕后,应用进程通过一个关闭socket的系统调用通知操作系统收回与该“号码”相关的所有资源。

在socket以上的进程是受应用程序控制的,而在socket以下的TCP协议软件以及TCP使用的缓存和一些必要的变量。应用程序的开发者对socket以上的应用程序具有完全的开发权,但对socket以下的运输层却只有少量的控制权。

进程通过系统调要接口进行通信的过程

无连接循环服务器:

image-20191104153043031

面向连接并发服务器:

image-20191104153118854

基于TCP/IP协议的网络编程:

IP层作为通信子网的最高层,提供无连接的数据报传输机制。IP协议主要解决的问题是路由选择。

在传输层中具有两个并列的协议:TCP和UDP

TCP协议是建立在IP协议之上的,IP不提供任何可靠性机制,所以TCP可靠性完全由自己实现

  • 在数据传输之前,通信双方必须建立一条连接
  • 过程中,每个报文需要进行接收确认,等一系列手段进行保证传输。

UDP协议几乎是直接在IP协议上增加了一个端口,以保证进程通信。

地址分为三类:物理地址(MAC地址、网络接口层)、逻辑地址(IP地址、网络层)、端口地址(PORT端口、传输层)

地址解析只能在本地网络中使用。

不同主机上的两个进程之间进行交流需要两个计算机的IP地址和端口号。

域名系统DNS许多应用层软件经常直接使用域名系统DNS,但是计算机的用户只是简洁而不是直接使用域名系统。任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。因特网的域名结构:因特网采用层次树状结构的命名方法:域名的结构由若干个分量组成,各分量之间用点隔开

image-20191104155716352

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦