计算机网络笔记

computer-network

第一章 引言

1,“计算机网络”来表示一组通过单一技术相互连接的自主计算机集合。如果两台计算机能够交换信息, 则称这两台计算机是相互连接的(interconnected)。

2,计算机网络和分布式系统(distributed system)这两个概念容易使人混淆。两者的关键差别在于:

由一组独立计算机组成的分布式系统呈现给用户的是一个关联系统。一般来说,在用户看来,分布式系统只是一个模型或范型。通常在操作系统之上有一层软件负责实现这个模型,这个软件就称为中间件(middleware)。最著名的分布式系统例子是万维网(World Wide Web)。万维网运行在Internet 之上,这个模型的所有一切都表现得像是一个文档(Web 页面)一样。

在计算机网络中,这种一致性、模型以及软件都不存在。用户看到的是实际的机器,系统并没有努力使这些机器看起来一样,或者试图使它们的行为保持一致。如果机器有不同的硬件或者不同的操作系统,那么这些差异对于用户来说是完全可见的。如果一个用户希望在一台远程机器上运行一个程序,则他必须首先登录到远程机器上,然后在那台机器上运行该程序。

实际上,分布式系统是建立在网络之上的软件系统。这个软件给予分布式系统以高度的凝聚力和透明性。因此,网络与分布式系统之间的区别在于软件(特别是操作系统),而不是硬件。然而,这两个主题之间有相当多的重叠。例如,分布式系统和计算机网络都需要移动
文件。不同之处在于由谁来发起移动行为,是系统还是用户?

3, 虚拟专用网络(VPN,Virtual Private Networks)的网络技术可以将不同地点的单个网络联结成一个扩展的网络。概括地来说,VPN 的目标是试图终结“地理位置的束缚”。

4, 关于计算机网络,没有一种被普遍接受的分类方法,但是有两个维度非常重要:传输技术和网络尺度:

从广义上讲,目前普遍使用的传输技术有两种,分别是广播式链路和点到点链路:见正文13页(27/753)

5,个域网(PAN,Personal Area Network):蓝牙,RFID;

局域网(LAN,Local Area Network):在这些系统中,每台计算机都有一个无线调制解调器和一个天线,用来与其他计算机通信。在大多数情况下,每台计算机与安装在天花板上的一个设备通信,这个设备,称为接入点(AP,Access Point)、无线路由器(wireless router)或者基站(base station),它主要负责中继无线计算机之间的数据包,还负责中继无线计算机和Internet 之间的数据包。无线局域网的一个标准称为IEEE 802.11,俗称为WiFi,已经被非常广泛地使用。它在任何地方可以从11 Mbps 到几百个Mbps 的速率运行(我们在本书中将沿用传统的线路测量速率:1 Mbps(兆比特/秒)等于1 000 000 比特/秒;1 Gbps(吉比特/秒)等于1 000 000 000
比特/秒。

以太网(Ethernet)的IEEE802.3 是迄今为止最常见的一种有线局域网。

城域网(MAN,Metropolitan Area Network)的范围可覆盖一个城市。最有名的城域网例子是许多城市都有的有线电视网.最近发展的高速无线 Internet 接入催生了另一种城域网,并且已经被标准化为IEEE 802.16,这就是所谓的WiMAX。

6,一个交换机有多个端口(port),每个端口连接一台计算机。交换机的工作是中继与之连接的计算机之间的数据包,根据每个数据包中的地址来确定这个数据包要发送给哪台计算机。

7,每个办事处都有专门运行用户(即应用)程序的计算机。我们将按照传统的说法把这些机器称为主机(host),然后把连接这些主机的网络其余部分称为通信子网
(communication subnet),或简称为子网(subnet)。子网的工作是把信息从一个主机携带到另一个主机,就像电话系统把说话者的话(实际上是声音)传递给接听者一样。

8,一组相互连接的网络称为互联网络(internetwork)或互联网(internet)。这些术语一般具有通用意义,而全球范围的因特网(Internet)则通常用首字母大写来表示(这是一个特殊的互联网络)

9,为了降低网络设计的复杂性,绝大多数网络都组织成一个层次栈(a stack of layer)或分级栈(a stack of level),每一层都建立在其下一层的基础之上。层的个数、每一层的名字、每一层的内容以及每一层的功能各个网络不尽相同。每一层的目的是向上一层提供特定的服务,而把如何实现这些服务的细节对上一层加以屏蔽。从某种意义上讲,每一层都是一种虚拟机,它向上一层提供特定的服务。

10,一台机器上的第 n 层与另一台机器上的第n 层进行对话,该对话中使用的规则和约定统称为第n 层协议。基本上,所谓协议(protocol)是指通信双方就如何进行通信的一种约定。

11,在每一对相邻层次之间的是接口(interface)。接口定义了下层向上层提供哪些原语操作和服务。当网络设计者在决定一个网络中应该包含多少层,以及每一层应该提供哪些功能时,其中最重要的一个考虑是必须定义清楚层与层之间的接口。为了做到这一点,要求每一层完成一组特定的有明确含义的功能。除了尽可能地减少层与层之间必须要传递的信息量外,层与层之间清晰的接口使得同层协议的替换更加容易,即某一层的当前协议或实现替换成另一个完全不同的协议或者实现(比如说,所有的电话线路被替换成卫星信道);因为对于新协议或新实现来说,它所要做的仅仅是向紧邻的上层提供与旧协议或者旧实现完全相同的服务。一般来说,对于同一个协议不同的主机使用了不同的实现(经常由不同的公司编写代码)。事实上,某个层次的协议本身是可以改变的,无需通知上层和下层。

12,层和协议的集合称为网络体系结构(network architecture)。一个特定的系统所使用的一组协议,即每一层一个协议,称为协议栈(protocol stack)。网络体系结构、协议栈以及协议本身是本书的主要内容。

13,从接收到的信息中发现错误所用的一种机制是检错(error detection)编码;然后重新传输接收到的不正确信息,直到它被正确接收为止。更强大的编码不仅能检错,还能纠错(error correction),即从最初收到的可能不正确的比特中恢复正确的消息。这两种机制的工作都需要在被传的信息中添加冗余信息。这些冗余信息被较低层次用来保障数据包在个别链路上的正确传输,也可被较高层次用来检测接收到的数据包是否包含了正确的内容。

14,由于网络上有许多计算机,每一层在特定的消息中都需要一种机制来标识发送方和接收方。这种机制在下层和高层分别称为寻址(addressing)和命名(naming)。

15,下层可以向上层提供两种不同类型的服务:面向连接的服务和无连接的服务。面向连接的服务(connection-oriented service)是按照电话系统建模的。与面向连接服务相对应的是无连接服务(conncetionless service),这是按照邮政系统建模的。

16,服务原语(操作):6种,见原文29(43/753)

17,服务与协议的关系:见原文(31 45/753)

18,常用的OSI五层模型:从物理层往上穿过链路层、网络层和传输层到应用层

物理层规定了如何在不同的介质上以电气(或其他模拟)信号传输比特。

链路层关注的是如何在两台直接相连的计算机之间发送有限长度的消息,并具有指定级别的可靠性。以太网和802.11是链路层协议的例子。

网络层主要处理如何把多条链路结合到网络中,以及如何把网络与网络联结成互联网络,以便使我们可以在两个相隔遥远的计算机之间发送数据包。网络层的任务包括找到传递数据包所走的路径。IP 是我们将要学习的网络层主要协议案例。

传输层增强了网络层的传递保证,通常具有更高的可靠性,而且提供了数据交付的抽象,比如满足不同应用需求的可靠字节流。TCP 是传输层协议的一个重要实例。

最后,应用层包含了使用网络的应用程序。许多网络应用程序都有用户界面,比如Web 浏览器,但也不是所有的应用程序都有用户界面。然而,我们关心的是应用程序中使用网络的那部分程序。在Web 浏览器的情况下就是HTTP 协议。应用层也有重要的支撑程序供许多其他应用程序使用,比如DNS。

19,OSI 模型的核心是如下3 个概念:(1)服务。(2)接口。(3)协议。

或许 OSI 模型的最大贡献在于明确区分了这3个概念。每一层都为它的上一层执行某些服务。服务定义说明了该层是做什么的,而不是上一层实体如何访问这一层,或这一层是如何工作的。它定义了这一层的语义。

每一层的接口告诉它上面的进程如何访问本层。它规定了有哪些参数,以及结果是什么。但它没有说明本层内部是如何工作。

最后,每一层用到的对等协议是本层自己内部的事情。它可以使用任何协议,只要它能够完成任务就行(也就是说提供所承诺的服务)。它也可以随意地改变协议,而不会影响它上面的各层。

这些思想与现代面向对象的程序设计思想非常吻合。一个对象就如同一个层一样,它有一组方法(或者称为操作)供对象之外的过程调用。这些方法的语义定义了该对象所提供的服务集合。方法的参数和结果构成了对象的接口。对象的内部代码是它的协议,对于外部而言是不可见的,也不需要被外界关心。

20, OSI 模型中的协议比TCP/IP 模型中的协议有更好的隐蔽性,当技术发生变化时OSI 模型中的协议相对更容易被新协议所替换。这种技术改变的透明性就是最初采用分层协议的主要目的之一。

OSI 参考模型在协议发明之前就已经产生了。这种顺序关系意味着OSI 模型不会偏向于任何一组特定的协议,这个事实使得OSI 模型更具有通用性。但这种做法也有缺点,那就是设计者在这方面没有太多的经验,因此对于每一层应该设置哪些功能没有特别好的主意。

而 TCP/IP 却正好相反:先有协议,TCP/IP 模型只是已有协议的一个描述而已。所以,毫无疑问,协议与模型高度吻合,而且两者结合得非常完美。唯一的问题在于,TCP/IP 模型并不适合任何其他协议栈。

另一个区别在于无连接和面向连接的通信领域有所不同。OSI 模型的网络层同时支持无连接和面向连接的通信,但是传输层只支持面向连接的通信,这是由该层的特点所决定的(因为传输服务对于用户是可见的)。TCP/IP 模型在网络层只支持一种模式(无连接),但是在传输层同时支持两种通信模式,这样可以给用户一个选择的机会。这种选择机会对于简单的“请求-应答”协议特别重要。

21,当有入境呼叫(即来电)时如何找到一个移动用户。每个移动电话网络在核心网络中维持一个归属用户服务器(HSS,Home Subscriber Server),该服务器知道每个用户的位置,以及其他用于身份验证和授权的个人资料信息。在这种方式中,可以通过联系HSS 来找到每个移动用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值