计算机网络-1-基本概念

《计算机网络:自顶向下方法》的学习笔记。

网络的基本组成(硬件方面)

先来看下图:

网络网

像是计算机和服务器这种,处于计算机网络的末端的东西叫做端系统,一般来说称为主机(host)。一般而言,主机如果想要联网,需要经过路由器和调制解调器。

路由器是用来将你上网的信息转发到其他路由器或者主机。因为网络传输信息靠的是电信号(通过导线)或者电磁波(wifi网络),那么这些信号显然没有办法直接从一个地点直接传达到另一个地点(如果距离很远的话),所以在传输了一段长度之后,需要经过其他路由器再次传播。这就像快递一样,你的快递不能直接从北京到安徽,而是先从北京到蚌埠转运中心,再从蚌埠转运中心到重庆转运中心,然后再到安徽。这里的转运中心就相当于路由器了。

调制解调器是调制器和解调器所组合的机器,也就是即有调制的作用也有解调的作用。调制是将数字信号转化为模拟信号,解调是将模拟信号转化为数字信号。我们电脑发送的信息都是数字信号,但是数字信号不能以电形式或者电磁波形式借助介质传播,所以必须让调制解调器先将数字信号转化为模拟信号,然后发送给路由器,路由器转发信号,直到目的地,然后目的地的调制解调器再将模拟信号转化为数字信号,然后发给目的地电脑,这样就完成了一次信号传输。

有时候信号需要通过链路层交换机,它也是转发信号,但是和路由器不同的是,它转发的是链路层信号,也就是按MAC地址找到目的地的。但是路由器转发的是分组,是通过IP地址来找到目的地的(这些概念下面都会说)。

ISP则是网络服务提供商,简单来说就是提供你上网的机构。可以是学校,政府或者其他的。我小时候的时候还是拨号上网,那个时候ISP就是电话局,因为电话局在提供你拨打电话功能的同时也提供你上网功能。由于ISP可以有很多个,但是信号却要发送到世界各地,所以各个ISP也是互相连接的。这样在不同的硬件和机构的连接下,世界上各个地方的人才能找到对方,互联网才能叫做互联网。

网络的语言-协议

网络中不同的硬件需要相互传输信号,那么必然要相互通信,那么他们是怎么通信的呢?这就要使用协议。协议简单来说就是规定了网络上不同的硬件说同一种语言。如果我的电脑说中文,而你的电脑说英文,那我电脑将信号发送到你的电脑上,你的电脑就识别不了了。那这个时候我们就要定一个协议, 比如说我们都说中文,那么我们两个就可以相互通信了。网络协议也一样,只不过网络发送的是字节流,所以网络协议其实是规定这些字节流是如何排列表示信息的。

关于协议方面,《TCP/IP详解》三件套讲的非常详细,有需要的可以看看。

接入网

主机如何接入网络呢?

接入的方式

家庭接入

一般来说,家庭接入有如下几种:

  • DSL(数字用户线),这个我也不知道是什么,我印象中我家有网的时候用的是光纤。不过按照书上的解释,是在拨号上网的年代有的这个东西。拨号上网的线就是DSL,那个线可以同时传输电话信号和网络信号。具体做法是0~4kHz的频段当做电话信号,4kHz~1MHz当做网络信号传输。也就是说是分频段传输。
  • 电缆,这个也是拨号上网时候的东西,和DSL不同,这需要专门架设一条电缆来传输数据。一般都是电缆和光纤混合的导线。这种电缆不是双绞铜线,而是同轴铜线,也就是说不是两条线交织在一起的,而是一根线在另一根线里面。
  • FTTH(光纤入户),和上面的不一样,使用光作为传输信号,优点是速度快,抗干扰能力强,不易被破解和监听。
  • 卫星,这个听说是通过卫星上网,不过太高级了从未用过。
  • WIFI,这个是现在常用的方式。

企业接入

企业接入一般是以太网和WIFI。

物理媒体

传输信号的物理媒体一般分为两种:导引型媒体,指存在固体介质的,如导线,光缆。和非导引型媒体,如空气。

常见的导引型媒体如下:

  • 双绞铜线,顾名思义是将两股铜线绞在一起的导线。绞在一起而不是平行放置是为了防止产生的电磁干扰信号。其中有无屏蔽双绞铜线(UTP)
  • 同轴电缆,顾名思义两根电缆是同轴的,也就是说其中一根包裹在另一根外面。这种电缆更有效地减少了电磁干扰。
  • 光纤,通过不断反射光而以光为信号进行传输的导线。
  • 陆地无线电,也就是我们常说的WIFI。
  • 卫星无线电信道。通过卫星发射信号。

网络的核心

网络发送信息有两种核心方式:分组交换和电路交换。

分组交换

分组交换是一个重要的技术。

了解分组交换之前需要了解报文和分组的概念。

报文就是你要传输出去的一份信息,但是这份信息可能非常大,比如几个G。但是路由器的话可能只能一次性转发几百兆,那么这个时候就要对报文进行分段,分成一段一段的分组(fragment),然后将分组传输出去。

分组交换是由分组交换机和链路层交换机做的,其实就是指它们得到分组之后再转给另一台交换机的过程。

但是看起来很简单的分组交换机制中也有很多问题:

存储转发传输

指交换机在发送分组之前,必须接收到这个分组的所有字节。因为分组是以电或者光信号传播的,存储转发传输就告诉我们不能在接收到一半的分组之前就把信息传出去,而是要等到整个分组接收到之后再传出去。

排队时延和分组丢失

分组交换机一次能存储很多分组(存在缓冲区中),这些分组先到先发,后到的就只能排队等着。由于排队产生的延时就叫做排队时延。

那么如果分组交换机的缓冲区装满了,装不下分组了怎么办呢?那这个时候交换机就会丢弃新来的分组或者缓冲区里的分组。这个情况就是分组丢失。

转发表和路由选择协议

当一个分组到达路由器的时候,路由器怎么知道发到哪个地方去呢(要注意分组内部只记录最终的目标,所以下一次转发到什么地方是由路由器决定的)?很简单,路由器内部有一个转发表,它会查这个表来确定转发给哪一个路由器。但是路由器可能走弯路啊,就像快递一样,明明从北京直接到安徽就行了,它非得先到一下重庆。这个时候路由选择协议会帮助路由器选择最近的路线,并且使用这些路线来配置转发表,让路由器转发地更快(这一部分《TCP/IP详解:卷一》说的很详细)。

时延,丢包和吞吐量

时延

在分组经过由分组交换控制的交换机时,会经历四个时延:

  • 节点处理时延:这是分组刚刚到达时产生的时延,交换机需要分析分组信息,以找到目标地址,然后确定下一次转发的地址。
  • 排队时延:上面提到过了
  • 传输时延:指交换机将报文全部发送出去的时长
  • 传播时延:指报文通过介质从这个交换机传到另一个交换机/路由器的时延

这四个时延加起来就是总体时延了。

其实还有很多其他的时延,比如端系统时延:由于端系统传输而导致的时延;以及程序时延:应用程序处理信息而导致的时延。不过这些不在考虑范围内。

丢包

上面其实也提到过了,就是在路由器缓冲区满的时候,新来的分组会被丢弃这件事情就叫做丢包。

电路交换

电路交换和分组交换不一样,电路交换在主机通信会话的时候,会预留主机间沿路径通信所需要的资源(缓存,链路传输等),会话的报文按需使用这些资源。

这是什么意思呢?很简单,分组交换和电路交换其实就和你去小菜园吃饭一样,分组交换你是直接去餐馆,到了餐馆,如果有位置,你就坐下来消费,没位置你就得等。这就和报文一样:先进入缓冲队列,等着把你发送出去。

但是电路交换不一样,所有顾客是预约式服务,你要去你得先去预约,这个时候餐馆会记下你的信息(也就是预留主机间通信所需资源),然后等你去消费。如果你不预约直接去消费,那么餐馆即使有空位置你也不能坐,因为那些位置是被预约的。

这里很显然看出电路交换和分组交换的优缺点:

  • 分组交换:
    • 优点:多个主机可以同时通信
    • 缺点:通信不稳定(后来的分组可能被丢弃)
  • 电路交换:
    • 优点:通信稳定,不允许打扰
    • 缺点:不能多个注意同时通信,要通信得等电路空闲。显然电路交换还有静默期,也就是如果一个主机不发送信息了,但是没有断开连接,那么仍然不能将这个电路交给另一个主机使用。典型的就是打电话,你打电话的时候不说话,那另一个人也没办法打给和你通电话的那个人。

现在大多数都是使用分组交换。

复用

电路交换提出了时分复用频分复用的方式。顾名思义,时分复用就是将时间分成一块一块的,每一块时间专门服务一个主机。而频分复用则是将电信号和光信号的频率分段,每一段代表一个主机专门的信号。

Traceroute程序

想要看到你的分组中间经过了哪些路由器和传输的时间?Traceroute程序可以帮助你看到。Traceroute的实现原理使用了ICMP协议,具体可以看《TCP/IP详解:卷一》。

吞吐量

假设B在t时间内接受了一个大小为b的文件,那么在t时间内的吞吐量就是$\frac{b}{t}$。这个吞吐量就是平均吞吐量,如果非要给这个时间取极限,那就是瞬时吞吐量

计算机网络的层

计算机网络被分为五层:

  • 应用层:应用程序所在的层,不涉及硬件,一般的网页制作和socket编程就是应用层的,也是程序员编程时解出的层
  • 传输层:用于建立端到端连接的层,使用TCP和UDP协议。
  • 网络层:负责数据报的产生和传递转发。
  • 数据链路层:掌控数据链路的层。
  • 物理层:涉及物理硬件的层,像网卡等。

注意传输层和网络层的区别:网络层才是传输数据的层,而传输层则是建立连接的层。也就是说,传输层建立了传输的通道,然后网络层再传输数据。

updatedupdated2023-06-082023-06-08