美文网首页
网络连接

网络连接

作者: 0e234f032049 | 来源:发表于2016-08-18 14:42 被阅读77次

说起网络,它给我们的第一印象是丰富的网络应用。这里从网络最高层——应用层——出发,介绍网络应用层的构成与网络数据是如何在Internet上传输的。

网络应用

我们大多通过网络应用了解互联网,例如

  • 万维网 World Wide Web
  • 在线游戏
  • 电子邮件
  • ……

在应用层上运行了一些协议,例如

  • URL(uniform resource locator)
  • HTTP(hypertext transfer protocol), HTTP可以看作是网络架构第四层的协议,它能够提供可靠的服务
  • TCP(transmission control protocol)

以URL为例,在网络上为了发送一个URL请求,我们需要发送多达17条信息:

  1. 6条用于寻找IP地址
  2. 3条用于建立TCP连接
  3. 4条用于发送HTTP请求与确认
  4. 4条用于结束TCP连接

术语

为了进一步了解网络连接,了解一些常用术语必不可少。

link: 设备之间的“连接”,可以是无线的,也可以是有线的
node: 设备节点
point-to-point: 点对点
multiple access: 在一个multiple access的网络里,每个设备都可以接受发送的资讯
switched network: 交换网络,switch是交换机的意思。在这样的网络中,设备通过交换机建立连接。又可以细分为circuit switched(例如,两个电话之间由交换机建立了线路)与packet switched(将资料切成封包,丢进网络)
store-and-forward: 路由器、交换机处理网络封包的一种技术,在推送消息之前将消息储存起来

下面的图展现了由交换机连接的网络与由路由器连接的子网络。

由路由器连接子网络 由交换机连接的局域网络

在图中,不同的主机(hosts)通过交换机(switches)连接成一个局域网络,然后通过路由器(router/gateway)多个局域网串联成一个大的网络(internetwork)。

注意在一个网络中,一份消息从一个主机传送到另外一个主机的路径有很多条,具体如何传送是路由器根据网络情况自动为消息分配的(routing)。

发送消息的手段有多种,通常可以分为

  • unicast: 将消息发给特定的对象
  • multicast: 将消息发送给一群对象
  • broadcast: 将消息发送给所有对象

通常路由器会过滤掉broadcast请求,以保证大网络的稳定。

网络根据规模由小到大可以分为:

  • LAN: Local Area Networks
  • MAN: Metropolitan Area Networks
  • WAN: Wide Area Networks

封包在网络上的传输

封包从一个主机传送到另外一个主机的过程如上图所示。左上角的设备将多个封包丢进局域网(LAN),通过路由器的计算,为封包设计一个合适的路径。

但是由于网络情况会不断变化,会导致封包被丢弃。例如有些路由器会阻塞,这样就导致封包被派遣到其它路径。每次封包进入一个路由器,该封包的一个特定的计数器就会减1,当计数器变为0时,该封包就会被丢弃。另外一种情况是信息进入路由器与出路由器的速度不匹配,进的快出的慢,导致封包被丢弃。

另一个需要注意的是,不同的路由器会有不同的“最大信息长度”。如果一个超大封包进入一个路由器,该路由器会将封包的信息分割成小块,并为每个子信息复制一份header。这些子信息不一定会同时到达终点,因此需要有一些组装(assemble)的机制。

因此,Internet是一个不稳定(unreliable)的服务。

在网络上共享资源

网络上的资源指link与node。

比如现在有交换机A直接连着a1,a2,a3,交换机B直接连着b1,b2,b3,ai与bj(i,j=1,2,3)之间没有直接连接,只有A与B之间有连接。现在的问题是ai,bi如何共享A与B之间的link资源。

A收集来自ai信息的过程叫做multiplexing,B接收来自A的信息并分发的过程叫做de-multiplexing

主要有三个方法:

FDM: Frequency Division Multiplexing

交换机将link资源的频率段分割成多分,每个使用者使用特定的频段。这种方法很类似电台的频道(channel)。

TDM: Synchronous Time-division Multiplexing

这种方式将时间分割成多份,每个使用者轮流使用,但是可以使用整个频率段。

Statistical Multiplexing
虽然上面的两种方式可以达到公平的目的,但是并不是很高效。有些用户可能有大流量需求,而某些用户几乎没有流量需求,使用上面两种方法可能导致资源的浪费。

Statistical Multiplexing根据传输的流量(flow)来确定服务的分配。常见的一些方法如:

  • FIFO: 首先传输先到的传输请求
  • Round-Robin: 每次传输队列中每个传输请求的一个封包,然后循环。
  • Priorities(Quality-of-Serverce(QoS)): 先服务重要的请求

网络稳定性

前面谈到了internet是一个不稳定的服务,它面临的一些稳定性问题诸如:

  • bit error: 例如0变为1,少量的此类错误可以通过纠正码勘测与纠正
  • burst errors: 大量的bit error
  • 封包丢失
  • 节点与连接失效
  • 信息延迟
  • 封包接收顺序不是发送顺序
  • 第三方可能篡改信息

相关文章

网友评论

      本文标题:网络连接

      本文链接:https://www.haomeiwen.com/subject/rouvsttx.html