计算机网络学习笔记 - 第一章

第1章 引言

计算机网络(computer networks)

一组通过单一技术相互连接的自主计算机集合。 用户看到的是实际的机器。如果机器有不同的硬件或者不同的操作系统,那么这些差异对于用户来说是完全可见的。

分布式系统(distributed system)

由一组独立计算机组成的分布式系统呈现给用户的是一个关联系统。 一般来说,在用户看来,分布式系统只是一个模型或范型。通常在操作系统之上有层软件负责实现这个模型,这个软件就称为中间件(middleware)。

计算机网络的组成

1.1 使用计算机网络

1.1.1 商业应用

客户机-服务器模型(client-server model)

1.1.2 家庭应用

对等(peer-to-peer)

1.1.3 移动用户

无线和移动的组合

1.2 网络硬件

从传输技术分类

广播(boradcasting)

在一个广播网络上,通信信道被网络上的所有机器所共享;任何一台机器发出的数据包能被所有其他任何机器收到。每个数据包的地址字段指定了预期的接收方。当台机器收到一个数据包时,它要检地址字段。如果包的目的地就是接收机器,则该机器要处理此数据包:如果包的目的地址是某台其他机器,则该机器就忽略此数据包。

组播(multicasting)

有些广播系统还支持给一组机器发送数据包的模式,这种传输模式称为组播(multicasting)

互联网络(internetwork)

两个或多个网络的连接称为互联网络(internetwork)

点到点(point-to-point)/单播(unicasting)

点到点(point-to-point)链路将一对单独的机器连接起来。在一个由点到点链路组成的网络中,为了从源端到达接收方,短消息必须首先访问一个或多个中间机器,这种短消息在某些情况下称为数据包或包(packet)。

从距离尺度分类

1.2.1 个域网

个域网(PAN, Personal Area Network)

1.2.2 局域网

局域网(LAN, Local Area Network)

1.2.3 城域网

城域网(MAN, Metropolitan Area Network)

1.2.4 广域网

广域网(WAN, Wide Area Network)

通信子网(communication subnet)

我们将按照传统的说法把这些机器称为主机(host),然后把连接这些主机的网络其余部分称为通信子网(communication subnet),或简称为子网(subnet)。子网的工作是把信息从一个主机携带到另一个主机。 在大多数广域网中,子网由两个不同部分组成:传输线路和交换元素。传输线路(transmission line)负责在机器之间移动比特交换元素(switching element)或简称为交换机(switch)是专用的计算机,负责连接两条或两条以上的传输线路。

LAN和WAN的比较

1.2.5 互联网络

子网(subnet)

术语"子网"通常在广域网的上下文中オ有意义,它指网络运营商所拥有的一组路由器和通信线路。

网络(network)

一个子网和它的主机结合在一起就形成了一个网络。 如果要将网络与其他安排区分开来,我们将坚持网络最初的定义,即由一种单一技术相互连接在一起的计算机集合。

互联网络(Internetwork)

当不同的网络相互连接在一起时就形成了互联网。从这样的观点来看,一个局域网和一个广域网相连,或者把两个局域网连接起来是构成互联网络的惯常做法,但在行业内针对该领域的术语很难达成一致意见。 两个经验原则很有用。第一,如果不同的组织出资构建了网络的不同部分,并且各自维持自己出资构建的那部分网络的运营,那么我们就说这是一个互联网络,而不是单个网络第二,如果씨络的不同部分采用了不同的底层技术(例如,广播技术与点到点链路及有线与无线),那么我们就说这是一个互联网络。

网关(gateway)

将两个或多个网络连接起来并提供必要转换的机器,其硬件和软件方面的总称是网关(gateway)。

1.3 网络软件

1.3.1 协议层次结构

层次栈(a stack of layer)

每一层的目的是向上一层提供特定的服务,而把如何实现这些服务的细节对上一层加以屏蔽。

协议(protocol)

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

对等体(peer)

不同机器上构成相应层次的实体称为对等体(peer)

物理介质(physical medium)

数据并不是从一台机器的第n层直接传递到另一台机器的第n层。相反,每一层都将数据和控制信息传递给它的下层,这样一直传递到最低层。第1层下面是物理介质(physical medium),通过它进行实际的通信。

接口(interface)

在每一对相邻层次之间的是接口(interface)。接口定义了下层向上层提供哪些原语操作和服务

网络体系结构(network architecture)

层和协议的集合称为网络体系结构(network architecture)。 实现细节和接口规范不属于网络体系结构的内容,因为它们隐藏在机器内部,对于外界是不可见的。甚至,一个网络中所有机器上的接口也不必都一样,只要每台机器能够正确地使用所有的协议即可。一个特定的系统所使用的一组协议,即每一层一个协议,称为协议栈(protocol stack)。

分层的好处

利用对等进程的思想,在设计整个网络时,可以把难以管理的任务分解成几个较小的、易于处理的设计问题,这就是分层设计。

5层协议栈

1.3.2 层次设计问题

检错(error detection)/纠错(error correction)

从接收到的信息中发现错误所用的一种机制是检错(error detection)编码;然后重新传输接收到的不正确信息,直到它被正确接收为止。更强大的编码不仅能检错,还能纠错(error correction),即从最初收到的可能不正确的比特中恢复正确的消息。

路由(routing)

找到通过网络的工作路径

寻址(addressing)和命名(naming)

每一层在特定的消息中都需要一种机制来标识发送方和接收方。这种机制在下层和高层分别称为寻址(addressing)和命名(naming)。

网络互联(internetworking)

并非所有的通信信道都能维持在其上发送消息的顺序,这个问题导致了对消息进行编号的一些解决方案。另一个例子是网络能够传输的消息的最大长度差异,这又导致了分段机制的出现,对消息进行拆分、传输,然后重组。所有这些主题综合起来就是所谓的网络互联(internetworking)。

可扩展的(scalable)

网络规模变大时仍能工作良好的设计被说成是可扩展的(scalable).

统计复用(statistical multiplexing)

许多网络设计根据主机的短期需求变化动态共享网络带宽,而不是给每个主机分配可能用也可能不会用的固定比例带宽。这种设计称为统计复用(statistical multiplexing),

流量控制(flow control)

如何保持快速发送方不会用数据把慢速接收方淹没。这个问题的解决经常使用了从接收方到发送方的反馈机制。这个主题就是流量控制(flow control)。

拥塞(congestion)

因为太多的计算机要发送太多的流量,而网络又没有能力传递所有的数据包。这样的网络超载称为拥塞(congestion)。

服务质量(Queality of service, QoS)
保密性(confidentiality)
完整性(integrity)

1.3.3 面向连接与无连接服务

面向连接的服务(connection- oriented service)

这种连接最本质的方面在于它像一个管道:发送方把对象(数据位)压入管道的一端,接收方在管道的另一端将它们取出来。在绝大多数情况下,数据位保持原来的顺序,所以数据位都会按照发送的顺序到达。 在有些情况下,当建立一个连接时,发送方、接收方和子网一起协商(negotiation)一组将要使用的参数,比如最大的消息长度、所要求的服务质量以及其他一些问题。一般情况下,一方提出一个建议,另一方接受或拒绝该建议,甚至提出相反的建议

无连接服务(conncetionless service)

每个报文(信件)都携带了完整的目标地址,每个报文都由系统中的中间节点路由,而且路由独立于后续报文。报文(message)在不同的上下文中有不同的称呼;数据包/包(packet)是网络层的报文

存储-转发交换(store-and-forward switching)

如果中间节点只能在收到报文的全部内容之后再将该报文发送给下一个节点,那么我们就称这种处理方式为存储-转发交换(store-and-forward switching)

直通式交换(cut-through switching)

有別于此的另一种处理方式是在报文还没有被全部接收完毕之前就向下一个节点传输,这种处理方式称为直通式交换(cut-through switching)

可靠的(reliable)

有些服务是可靠的,意味着它们从来不丢失数据。 一般情况下,一个可靠服务是这样实现的:接收方向发送方确认收到的每个报文,因而发送方可以据此保证报文己经到达接收方。

报文序列和字节流

可靠的面向连接服务有两个细微的变异形式:报文序列和字节流。在前一种变异中报文的边界始终得到保持。在后一种变异中,该连接只是一个字节流,没有任何报文边界。

数据报服务(datagram service)

不可靠(意味着没有被确认)的无连接服务通常称为数据报服务(datagram service)

请求-应答服务(request-reply service)

在这种服务中,发送方传输一个包含了某个请求的数据报;接受方以一个包含了请求结果的应答数据报作为反馈

1.3.4 服务原语

原语(primitive)

一个服务由一组原语(primitive)正式说明,用户进程通过这些原语(操作)来访问该服务。原语告诉服务要执行某个动作,或者将对等实体所执行的动作报告给用户。

服务原语例

1.3.5 服务与协议的关系

服务是指某一层向它上一层提供的一组原语(操作)。服务定义了该层准各代表其用户执行哪些操作,但是它并不涉及如何实现这些操作。服务与两层之间的接口有关,低层是服务提供者,而上层是服务用户与此不同的是,协议是一组规则,规定了同一层上对等实体之间所交换的数据包或者报文的格式和含义。对等实体利用协议来实现它们的服务定义,它们可以自由地改变协议,只要不改变呈现给它们用户的服务即可。

1.4 参考模型

1.4.1 OSI参考模型

物理层(physical layer)

物理层(physical layer)关注在一条通信信道上传输原始比特。这些设计问题主要涉及机械、电子和时序接口,以及物理层之下的物理传输介质等。

数据链路层(data link layer)的主要任务是将一个原始的传输设施转变成一条没有漏检传输错误的线路。数据链路层完成这项任务的做法是将真实的错误掩盖起来,使得网络层看不到。为此,发送方将输入的数据拆分成数据帧(data frame),然后顺序发送这些数据帧。 如果服务是可靠的,则接收方必须确认正确收到的每一帧,即给发送方发回一个确认帧(acknowledgement frame)。 流量调节 共享信道

网络层(network layer)

网络层(network layer)的主要功能是控制子网的运行。一个关键的设计问题是如何将数据包从源端路由到接收方 处理拥塞 网络所提供的服务质量(延迟、传输时间、抖动等) 允许异构网络相互连接成为互联网络

传输层(tanspom layer)

传输层(transport layer)的基本功能是接收来自上一层的数据,在必要的时候把这些数据分割成较小的单元,然后把这些数据单元传递给网络层,并且确保这些数据单元正确地到达另一端。 传输层还决定了向会话层,因而是实际的最终网络用户提供哪种类型的服务。 传输层是真正的端到端的层,它自始至终将数据从源端携带到接收方。换句话说,源机器上的一个程序利用报文头和控制信息与日标机器上的一个类似程序进行会话。在其下面的各层,每个协议涉及一台机器与它的直接邻居,而不涉及最终的源机器和目标机器,即源机器和目标机器可能被多个中间路由器隔离了。

会话层(session layer)

会话层(session layer)允许不同机器上的用户建立会话。 对话控制(dialogcontol)(记录该由谁来传递数据)、令牌管理(token management)(禁止双方同时执行同一个关键操作),以及同步功能(swchmnimtion)(在一个长传输过程中设置一些断点,以便在系统崩潰之后还能恢复到崩潰前的状态继续运行)

表示层(presentation layer)

表示层(presentation layer)关注的是所传递信息的语法和语义。 表示层管理这些抽象的数据结构,并允许定义和交换更高层的数据结构(比如银行账户记录)。

应用层(application layer)

应用层(application layer)包含了用户通常需要的各种各样的协议。

1.4.2 TCP/IP参考模型

模型中的最低层是链路层(link layer),该层描述了链路必须完成什么功能才能满足无连接的互联网络层的需求,比如串行线和经典以太网链路。这不是真正意义上的一个层,而是主机与传输线路之间的一个接口

互联网层(internet layer)

互联网层(internet layer)是将整个网络体系结构贯穿在一起的关键层。它大致对应于OSI的网络层,如图1-21所示。该层的任务是允许主机将数据包注入到任何网络,并且让这些数据包独立地到达接收方(接收方可能在不同的网络上) 互联网层定义了官方的数据包格式和协议,该协议称为因特网协议(IP, Internet Protocol),与之相伴的还有一个辅助协议,称为因特网控制报文协议(ICMP, Internet Control sage Protocol) 无连接不可靠

传输层(transport layer)

它的设计目标是允许源主机和目标主机上的对等实体进行对话,犹如OSI的传输层一样。 这里定义了两个端到端的传输协议。第一个是传输控制协议(TCP, Transport Control Protocol),它是一个可靠的、面向连接的协议,允许从一台机器发出的字节流正确无误地交付到互联网上的另一台机器。它把输入的字节流分割成离散的报文,并把每个报文传递给互联网层。在目标机器,接收TCP进程把收到的报文重新装配到输出流中。TCP还负责处理流量控制,以便确保一个快速的发送方不会因发送太多的报文而淹没掉一个处理能力跟不上的慢速接收方。 用户数据报协议(UDP, User Datagram Protocol),它是一个不可靠的、无连接协议,适用于那些不想要TCP的有序性或流量控制功能,而宁可自己提供这些功能的应用程序。UDP被广泛应用于那些一次性的基于客户机-服务器类型的"请求-应答"査询应用,以及那些及时交付比精确交付更加重要的应用。

应用层(application layer)

1.6 网络标准化

网络标准化

单位

作者

xqmmcqs

发布于

2021-07-19

更新于

2021-07-21

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×