目录
第一章 引言
1.1商业运用
1.1.1虚拟专用网络(VPN)
1.1.2客户机-服务器模型(C/S模型)
1.1.3公司构建计算机网络的目的
1.2家庭应用
1.2.1对等通信(peer-to-peer)
1.2.2访问远程信息
1.2.3人与人的通信
1.2.4广义电子商务
1.3移动用户
1.3.1无线网络
1.4网络硬件
1.4.1传输技术
1.4.2网络尺寸分类
1.4.3个域网
1.4.4局域网
1.4.5城域网
1.4.6广域网
1.5网络软件
1.5.1协议层次结构
1.5.2层次设计中的问题
1.5.3服务原语
1.5.4服务与协议
1.6参考模型
1.6.1OSI参考模型
1.6.2TCP/IP模型
1.7网络实例
1.7.1Internet的体系结构
1.7.2无线网络802.11
1.7.3RFID和传感器网络
1.8国际标准领域有有影响力的组织
功能:将不同地点的单个网络链接成一个扩展网络,VPN的目标是试图终结地理位置的束缚。
客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户机同时访问服务器。
这种安排方式最广泛运用于Web应用
1.实现资源共享(VPN)
2.为员工提供功能强大的通信媒介(IP电话,IP语音,桌面共享)
3.发展电子商务
peer-to-peer模型可以说是一种客户和服务器可以互换的特殊的C/S模型
在线阅读
即时消息(如“推特”)
如家庭购物
标记 | 全称 | 例子 |
---|---|---|
B2C | 企业对消费者 | 在线购书 |
B2B | 企业对企业 | 汽车制造商向供应商订购轮胎 |
G2C | 政府对消费者 | 政府分发电子税收表单 |
C2C | 消费者对消费者 | 在线拍卖二手物品 |
P2P | 对等 | 音乐共享 |
1.2.5普适计算
有线安全系统,联网传感器,火警报警器直接报警
1,电话公司经营的蜂窝网络
2,基于802.11标准的无线热点
目前普遍使用的传输技术 广播式链路和点到点链路
点到点链路只有一个发送方和接收方,有时也称为单播
广播系统将一个数据包发送给所有目标机器的传输方式叫做广播
有些广播系统支持向一组目标发送数据包的传输模式叫做组播
缩写
个域网 PAN
局域网 LAN
城域网 MAN
广域网 WAN
蓝牙
无线局域网中与各种设备进行通信的设备称为接入点(AP),无线路由器或者基站。
俗称以太网的IEEE802.3是至今最常见的有线局域网。
经典以太网在最初的以太网设计中,所有的数据包在一条线性电缆上广播,因而一次至多只有一台机器能够成功发送,为此,需要一个分布式仲裁机制来解决冲突问题。分布式仲裁机制的算法非常简单:只要电缆空闲计算机就可以传输;如果两个或两个以上的数据包发生冲突,每台计算机只是等待一个随机时间后再次试图发送。
虚拟局域网VLAN。
有线电视系统
第一种
组成:通信子网,主机
通信子网的组成:传输线路和交换元素
交换元素或简称交换机,现在常称路由器
第二种
此广域网中,子网由不同的公司负责运营,子网经营者称为网络服务提供商。
子网运营商称为Internet 服务提供商ISP,相应的子网称为ISP网络
网络如何决定使用哪条路径的策略称为路由算法(routing algorithm)。
每个路由器如何决定把一个数据包发送到哪个位置的策略称为转发算法(forwarding algorithm)。
为了降低网络设计的复杂性,绝大多数网络都组织成一个层次栈(a stack of layer)或分级栈(a stack of level),每一层都建立在其下一层的基础之上。层的个数、每一层的名字、每一层的内容以及每一层的功能各个网络不尽相同。每一层的目的是向上一层提供特定的服务,而把如何实现这些服务的细节对上一层加以屏蔽。从某种意义上讲,每一层都是一种虚拟机,它向上一层提供特定的服务。
一台机器上的第n层与另一台机器上的第n层进行对话,该对话中使用的规则和约定统称为第n层协议。所谓协议(protocol)是指通信双方就如何进行通信的一种约定。
图1-13显示了一个5层网络。不同机器上构成相应层次的实体称为对等体(peer)。这些对等体可能是软件过程、硬件设备,或者甚至是人类。换句话说,正是这些对等体为了实现彼此沟通才使用协议来进行通信。
上图实线表示物理通信,虚线表示虚拟通信。 在每一对相邻层次之间的是接口(interface)。接口定义了下层向上层提供哪些原语操作和服务。
层和协议的集合称为网络体系结构(network architecture)。
第一个问题是网络传输过程会存在错误,从接收到的信息中发现错误所用的一种机制是检错(error detection)编码;然后重新专输接收到的不正确信息,直到它被正确接收为止。更强大的编码不仅能检错,还能纠错error correction),即从最初收到的可能不正确的比特中恢复正确的消息。
第二个可靠性问题是找到通过网络的工作路径。在源和目的地之间经常存在多条路径,而且在一个大型网络中可能有一些链路或路由器偶尔发生故障。假设德国的网络出现了故障,那么从伦敦发送到罗马的数据包如果选择一条经过德国的路径将注定无法通过,但我们可以把从巴黎发往罗马的数据包改道经过伦敦到达罗马。网络应该能自动做出这种路由决策。这个主题就是所谓的路由(routing)。由于网络上有许多计算机,每一层在特定的消息中都需要一种机制来标识发送方和接收方。这种机制在下层和高层分别称为寻址(addressing)和命名(naming)。
第三个设计问题是资源分配。网络基于其底层的资源(比如传输线路的容量)向主机提供服务。要做好这些工作,它们需要一些分配资源的机制,使得一台主机不会太多地干扰到另一台主机。许多网络设计根据主机的短期需求变化动态共享网络带宽,而不是给每个主机分配可能用也可能不会用的固定比例带宽。这种设计称为统计复用(statistical multiplexing)。
在每一层都会发生的一个分配问题是如何保持快速发送方不会用数据把慢速接收方淹没。这个问题的解决经常使用了从接收方到发送方的反馈机制。这个主题就是流量控制(flow control)。有的时候还会出现网络超载问题,因为太多的计算机要发送太多的流量,而网络又没有能力传递所有的数据包。这样的网络超载称为拥塞(congestion)。一种策略是当发生拥塞时,每台计算机都减少其对网络的带宽需求。这种策略可用于所有层次。有趣的是我们可以观察到网络已经不单只有简单的带宽,它可以提供更多的资源。对于诸如传递视频直播的应用来说,传递的及时性非常重要。大多数网络必须为那些需要这种实时(real-time)传递的应用程序提供服务,与此同时,它们还必须为那些要求高吞吐量的应用程序提供服务。服务质量(Queality of service)是给予调和这些竞争需求机制的名称。
一个服务由一组原语(primitive)正式说明,用户进程通过这些原语(操作)来访问该服务。原语告诉服务要执行某个动作,或者将对等实体所执行的动作报告给用户。
原语 | 含义 |
---|---|
LISTEN | 阻塞操作,等待入境连接请求 |
CONNECT | 与等待中的对等实体建立连接 |
ACCEPT | 接受来自对等实体的人境连接请求 |
RECEIVE | 阻塞操作,等待人境报文 |
SEND | 给对等实体发送一个报文 |
DISCONNECT | 终止一个连接 |
服务和协议是两个截然不同的概念,它们之间的区别非常重要,我们有必要在这里再次强调。服务是指某一层向它上一层提供的一组原语(操作)。服务定义了该层准备代表其用户执行哪些操作,但是它并不涉及如何实现这些操作。服务与两层之间的接口有关,低层是服务提供者,而上层是服务用户。
与此不同的是,协议是一组规则,规定了同一层上对等实体之间所交换的数据包或者报文的格式和含义。对等实体利用协议来实现它们的服务定义,它们可以自由地改变协议,只要不改变呈现给它们用户的服务即可。按照这种方式,服务和协议是完全相分离的,这是任何一个网络设计者应该很好理解的关键概念。
OSI模型有7层。适用于这7层的基本原则简要概括如下:
(1)应该在需要一个不同抽象体的地方创建层。
(2)每一层都应该执行一个明确定义的功能。
(3)每一层功能的选择应该向定义国际标准化协议的目标看齐。
(4)层与层边界的选择应该使跨越接口的信息流最小。
(5)层数应该足够多,保证不同的功能不会被混杂在同一层中,但同时层数又不能太多,以免体系结构变得过于庞大。
物理层(physical layer)关注在一条通信信道上传输原始比特
数据链路层(data link layer)的主要任务是将一个原始的传输设施转变成一条没有漏检传输错误的线路。数据链路层完成这项任务的做法是将真实的错误掩盖起来,使得网络层看不到。为此,发送方将输入的数据拆分成数据帧(data frame),然后顺序发送这些数据帧。一个数据帧通常为几百个或者几千个字节长。如果服务是可靠的,则接收方必须确认正确收到的每一帧,即给发送方发回一个确认帧(acknowledgement frame)。
数据链路层(和大多数高层都存在)的另一个问题是如何避免一个快速发送方用数据“淹没”一个慢速接收方。所以,往往需要一种流量调节机制(前面讲到的流量控制),以便让发送方知道接收方何时可以接收更多的数据。广播式网络的数据链路层还有另一个问题:如何控制对共享信道的访问。数据链路层的一个特殊子层,即介质访问控制子层,就是专门处理这个问题的。
网络层(network layer)的主要功能是控制子网的运行。
传输层(transport layer)的基本功能是接收米自上一层的数据,在必要的时候把这些数据分割成较小的单元,然后把这些数据单元传递给网络层,并且确保这些数据单元正确地到达另一端。
会话层(session layer)允许不同机器上的用户建立会话。会话通常提供各种服务,包括对话控制(dialog control)(记录该由谁来传递数据)、令牌管理(token management)(禁止双方同时执行同一个关键操作),以及同步功能(synchronization)(在一个长传输过程中设置一些断点,以便在系统崩溃之后还能恢复到崩溃前的状态继续运行)。
表示层(presentation layer)表示层以下的各层最关注的是如何传递数据位,而表示层关注的是所传递信息的语法和语义。不同的计算机可能有不同的内部数据表示法,为了让这些计算机能够进行通信,它们所交换的数据结构必须以一种抽象的方式来定义,同时还应该定义一种“线上”使用的标准编码方法。表示层管理这些抽象的数据结构,并允许定义和交换更高层的数据结构(比如银行账户记录)。
应用层(application layer)包含了用户通常需要的各种各样的协议。一个得到广泛使用的应用协议是超文本传输协议(HTTP,Hyper Text Transfer Protocol),它是万维网(wwW,World Wide Web)的基础。当浏览器需要一个Web页面时,它通过HTTP将所要页面的名字发送给服务器,然后服务器将页面发回给浏览器。其他一些应用协议可用于文件传输、电子邮件以及网络新闻等。
链路层
TCP/IP模型中的最低层是链路层(link layer),该层描述了链路必须完成什么功能才能满足无连接的互联网络层的需求,比如串行线和经典以太网链路。这不是真正意义上的一个层,而是主机与传输线路之间的一个接口。TCP/IP模型的早期文档很少提到这点。
互联网层
互联网层(internet layer)是将整个网络体系结构贯穿在一起的关键层。它大致对应于OSI的网络层。该层的任务是允许主机将数据包注入到任何网络,并且让这些数据包独立地到达接收方(接收方可能在不同的网络上)。甚至数据包的到达顺序与它们被发送的顺序不同,在这种情况下,如果需要按序递交数据,那么重新排列这些数据包的任务由高层来负责完成。请注意,虽然在因特网(Internet)中也包含了互联网层,但这里的“互联网”(internet)是指一般意义上的互联网络。
互联网层定义了官方的数据包格式和协议,该协议称为因特网协议(IP,Internet Protocol),与之相伴的还有一个辅助协议,称为因特网控制报文协议(ICMP,Internet Control Message Protocol)。互联网层的任务是将IP分组投递到它们该去的地方。很显然,数据包的路由是这里最主要的问题,同时该层还要考虑拥塞控制问题(尽管没有证据表明IP能有效地避免拥塞)。
传输层
在TCP/IP模型中位于互联网层之上的那一层现在通常称为传输层(transport layer)。它的设计目标是允许源主机和目标主机上的对等实体进行对话,犹如OSI的传输层一样。这里定义了两个端到端的传输协议。
第一个是传输控制协议(TCP,Transport Control Protocol),它是一个可靠的、面向连接的协议,允许从一台机器发出的字节流正确无误地交付到互联网上的另一台机器。它把输入的字节流分割成离散的报文,并把每个报文传递给互联网层。在目标机器,接收TCP进程把收到的报文重新装配到输出流中。TCP还负责处理流量控制,以便确保一个快速的发送方不会因发送太多的报文而淹没掉一个处理能力跟不上的慢速接收方。
第二个协议是户数据报协议(UDP,User Datagram Protocol),它是一个不可靠的、无连接协议,适用于那些不想要TCP的有序性或流量控制功能,而宁可自己提供这些功能的应用程序。UDP被广泛应用于那些一次性的基于客户机-服务器类型的“请求-应答”查询应用,以及那些及时交付比精确交付更加重要的应用,比如传输语音或者视频。IP、TCP和UDP三者之间的关系如图1-22所示。自从这个模型被开发以后,许多其他的网络也都陆续实现了IP。
应用层
TCP/IP模型并没有会话层和表示层,因为当时感觉并不需要这两层。相反,应用层简单包含了所需的任何会话和表示功能。来自OSI模型的经验已经证明这种观点是正确的:对于大多数应用来说这两层并没有多大用处。在传输层之上是应用层(application layer),它包含了所有的高层协议。最早的高层协议包括虚拟终端协议(TELNET)、文件传输协议(FTP)和电子邮件协议(SMTP)等。经过了这么多年的发展以后,许多其他协议被加入到了应用层。其中我们将要学习的重要协议如图1-22所示,包括将主机名字映射到它们网络地址的域名系统(DNS,Domain Name System)、用于获取万维网页面的HTTP以及用于传送诸如语音或者电影等实时媒体的RTP等。
计算机为了上网必须连到的Internet服务提供商简称为ISP。
连接到ISP的几种常见方法使用家里的电话线,拨号上网,通过有线电视系统发送信号。
DSL是数字用户线(Digital Subscriber Line)的简称,它重复使用连到各家的电话线进行数字数据的传输。计算机与一个称为DSL调制解调器的设备连接。该设备将数字数据包转换成可以畅通无阻地通过电话线传递的模拟信号。在另一端,一台称为数字用户线接入复用器(DSLAM,Digital Subscriber Line Access Multiplexer)的设备负责模拟信号和数字数据包之间的转换。
以高于拨号速率接入Internet就被称为宽带(broadband)。宽带是指更快网络所用的更宽的带宽,而不是指任何特定的速度。
802.11网络由客户(比如笔记本电脑和移动电话)和称为接入点(AP,Access Point)的基础设施组成。通常AP被安装在建筑物内,有时也称为基站(base station)。接入点连接到有线网络上,所有客户之间的通信都要通过接入点进行。
客户也可以与位于无线电范围内的其他客户直接交谈,比如在一个没有接入点的办公室内,两台计算机直接进行通信。这种通信方式称为自组织网络(ad hoc network)。这种模式的使用比接入点模式的使用往往少得多
多径衰落:无线电信号因为各种各样的原因导致波动的现象叫做多径衰落,克服这种现象可以采用路径多样化的方式。
由于无线本质上是一种广播介质,802.11无线电还必须处理多个传输同时进行发生而导致的冲突问题,因为同时传输可能会干扰信号的接收。为了解决这个问题,802.11采用了载波侦听多路访问(CSMA,Carrier Sense Multiple Access),该方案借鉴了经典有线以太网的设计思想。具有讽刺意义的是,以太网的设计吸取了一个在夏威夷开发的早期无线网络思想,该网络称ALOHA。计算机在发送前等待一个随机时间间隔,如果它们听到别人已经在发送则推迟自己的发送。这个方案使得两台计算机在同一时间发送的可能性比较小。
无线射频识别(RFID,Radio Frequency IDentification)技术让日常物品也成为计算机网络的一部分。
国际标准化组织(ISO,International Standards Organization)
美国国家标准和技术协会(NIST,National Institute of Standards and Technology)
电气和电子工程师协会(IEEE,Institute of Electrical and Electronics Engineers)