blog icon indicating copy to clipboard operation
blog copied to clipboard

计算机网络——概论

Open Pines-Cheng opened this issue 7 years ago • 0 comments

Internet 概览

局域网(local area network,LAN)。

广域网(wide area network,WAN)。

目前使用的两种典型的广域 网:点到点广域网和交换式广域网。

电路交换网络(circuit-switched network)中,两个端系统之间总是存在一条专用的连接(称 为电路),交换机只能使其变成活跃或非活跃状态。

分组交换网络:在一个计算机网络中,两个端点之间使用被称为分组(packet)的数据块进行通信。分组交换网络中的路由器具有能够存储和转发分组的队列。

协议分层

协议(protocol)定义了发送者、接收 者和所有中间设备为了高效通信需要遵循的规则。当通信简单时,我们可能只是需要一个简单的协 议;当通信复杂时,我们可能需要把任务划分到不同层,每层需要一个协议,也就是说需要协议分层(protocol layering)

原则:第一个原则就是如果想要双向通信,那么我们需要每一层能够 实现两个相反的任务,每个方向上一个。第二个原则是两端每一层中的两个对象应该相同。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)

TCP/IP 协议簇中的层次

应用层、传输层和网 络层的任务是端到端的(end-to-end)。但是,数据链路层和物理层的任务是点到点的(hop-to-hop), 其中一个跳步是一个主机或路由器。也就是说,高三层的任务范围是互联网,低两层的任务范围是 链路。

image

TCP/IP 各层描述

应用层

两个应用层之间的逻辑连接是端到端的。两个应用层之间仿佛存在一座桥梁一样相互交消息(message)。应用层的通信处于两个进程(该层正在运行的两个程序)之间。

  • 超级文本传输协议(Hypertext Transfer Protocol,HTTP)是访问万维网(World Wide Web, WWW)的载体。
  • 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是电子邮件(e-mail) 服务的主要协议。
  • 文件传输协议(File Transfer Protocol,FTP)用于将文件从一台主机传输到另一 台主机。
  • 远程登录(Terminal Network,TELNET)和安全外壳(Secure Shell,SSH)用于访问远端 的站点。
  • 管理员使用简单网络管理协议(Simple Network Management Protocol,SNMP)对 Internet 全局或局部进行管理。
  • 域名系统(Domain Name System,DNS)使其他的协议能够查询一台计算 机的网络层地址。
  • 因特网组管理协议(Internet Group Management Protocol,IGMP)用于管理一个 组的成员资格。

传输层

传输层的逻辑连接也是端到端的。源主机的传输层从应用层得到消息(message),封装成传输层的分组( TCP 中称为段(segment),在 UDP 中称为用户数据报(user datagram)),然后进行发送。通过逻辑(想象的)连接,分组到达目 的主机的传输层。传输层有多个协议,这意味着每个应用程序可以使用与它的需求最匹 配的协议。

传输层在有效载荷基础上增加传输层头部,其中包括了希望进行通信的源和目的应用程序的标识符和一些投递该消息需 要的更多信息,例如进行流量控制、差错控制和拥塞控制需要的信息

Internet 中有几个传输层协议,每个都是为一些特定的任务设计的。

  1. 传输控制协议(Transmission Control Protocol,TCP)是一个面向连接的协议,它在传输数据之前,首先在两台主机的传输层之间建立一条逻辑连接。TCP 协议在两个 TCP 层之间创建一个管道,以便传输字节流。TCP 协议提供流量控制(匹配源主机的发送数据速率与目的主机的接 收数据速率,以防止目的主机溢出)、差错控制(保证数据段无差错到达目的地和重新发送受损的 数据段)、拥塞控制(减少由于网络拥塞造成的数据段丢失)。
  2. 用户数据报协议(User Datagram Protocol,UDP)是一种无连接协议,它传输用户数据报之前不需要创建逻辑 连接。在 UDP 中,每个用户数据报是一个独立的实体,它和前一个或后一个用户数据报没有关系(无连接就是这个意思)。UDP 是一种比较简单的协议,它不提供流量控制、差错控制或拥塞控制。 它的简单性(意味着小的额外开销)对某些应用程序具有吸引力,这些应用程序发送较短的消息且 不能容忍 TCP 在分组损坏或丢失时使用重发机制。
  3. 流控制传输协议(Stream Control Transmission Protocol,SCTP)是一种新协议,它是为多媒体出现的新应用设计的。

网络层

网络层负责在源计算机和目的计算机之间创建一个连接。网络层的通信是主机到主机的。可是, 由于从源主机到目的主机可能存在多个路由器,因此路径上的路由器负责为每个分组选择最好的路径。我们可以说网络层负责主机到主机的通信,并且指挥分组通过合适的路由器

网络层把传输层分组作为数据或有效载荷,并且在该有效载荷上添加自己的头部。头部包 含源和目的主机的地址,以及用于头部差错检查、分片的信息等其他一些信息。其结果为一个称为 **数据报(datagram)**的网络层分组。

需要这一层的原因之一是在不同的层次之间分割不同的任务。原因之二是路由器不需要应用层和传输层。 分割任务允许我们在路由器上加载较少的协议。

nternet 的网络层包括其主要协议:因特网协议(Internet Protocol,IP),因特网协议定义了在 网络层称为数据报的分组格式。IP 同时定义了在这一层使用的地址格式和结构。与此同时,IP 负 责从源主机把一个分组路由到目的主机。这种功能主要是通过每个路由器都将数据报转发到路径上 的下一个路由器而实现的。

IP 是一个无连接的协议,不提供流量控制、差错控制和拥塞控制服务。这意味着如果一个应 用需要这些服务,那么应用需要依赖于传输层协议。网络层也包括单播(一对一)多播(一对多) 路由协议。虽然路由协议不参加路由(路由是 IP 的责任),但是它为路由器创建转发路由表,为转 发处理提供帮助。

网络层也包含一些帮助 IP 转发和进行路由工作的辅助协议。在路由一个分组时,因特网控制 报文协议(Internet Control Message Protocol,ICMP)帮助 IP 报告遇到的问题。因特网组管理协议 (Internet Group Management Protocol,IGMP)协助 IP 进行多任务处理。动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)帮助 IP 获取一台主机的网络层地址。在网络层地址已知时, 地址解析协议(Address Resolution Protocol,ARP)帮助 IP 寻找一台主机或一台路由器的链路层地址。

数据链路层

我们已经知道一个互联网是多个链路(LAN 和 WAN)通过路由器连接而构成的。从主机传输 数据报到目的地可能存在多个交叠的链路集。路由器负责选择最好的链路进行传输。

数据链路层把网络层分组作为数据或有效载荷,并且添加上自己的头部。该头部包含主机或下一跳步(路由器)的链路层地址。其结果为一个称为**帧(frame)**的链路层分组。该帧被传递 到物理层进行传输。

TCP/IP 没有为数据链路层定义任何特定的协议。它支持所有标准的和私有的协议。能够接管数据报并携带它穿过链路的任何协议都能满足网络层的要求。数据链路层接管一个数据报并将它封 装在一个称为**帧(frame)**的分组中。每个链路层协议可能提供不同的服务。有些链路层协议提供完整的检查和纠错,有些只提供纠 错。

物理层

我们可以说物理层负责携带一个帧中单独的比特穿过链路。尽管物理层位于 TCP/IP 协议簇的 最底层,但是由于在物理层之下存在另外一个隐藏的传输介质层,因此两个设备物理层之间的通信 仍然是逻辑通信数据链路层接收的一个帧的比特需要被变换,然后通过传输介质传输。但是我们可以认为两个设备物理层之间的逻辑单元是一个比特(bit)。将一个比特变换成一个信号存在多种协议。

地址

层次、地址与分组名之间存在一定的关系。

image

  • 在应用层,我们通常使用一个像someorg.com 的名字定义提供服务的站点,或者使用像 [email protected] 一样的电子邮件地 址。
  • 在传输层,地址称为端口号,这些端口号指 定源和目的地的应用层程序。端口号是本地地址, 用于区分同一时间运行的几个程序。
  • 网络层地址是全局的,其范围涵盖了整个 Internet。
  • 链路层地址有时叫做 MAC 地址(MAC address),是本地定义的地址。每个链路层地址用于在网络(LAN 或 WAN)中定义一个特定的主机或路由器。

多路复用与多路分解

由于 TCP/IP 协议簇在一些层次使用多个协议,因此我们在源端需要进行多路复用 (multiplexing),在目的端需要进行多路分解(demultiplexing)。在这种情况下,多路复用的意思是一个协议能够封装来自多个上层协议的分组(一次一个);多路分解的意思是一个协议能够进行解封装, 并且将分组投递到多个上层协议(一次一个)。

为了进行多路复用和多路分解,协议需要一个用于标识被封装的分组属于哪种协议的头部字段。

标准和管理

Internet 标准是一个彻底通过测试的规范,该规范对从事互联网工作的人员非常有用。Internet 标准是一个必须遵循的正式的规则。经过严格的过程,一个规范才能达到 Internet 标准的某一状态。 规范开始于 Internet 草案。一个 Internet 草案(Internet draft)是一个工作文档(该项工作正在进行中),没有官方的状态,具有 6 个月的生命周期。在 Internet 管理机构建议下,草案可以作为请求评论(Request for Comment,RFC)文档发布。

在一个 RFC 生命周期中,它会处于 6 个成熟阶段(maturity levels)之一:建议标准(proposed standard)草案标准(draft standard)Internet 标准(Internet standard)历史的(historic)实验性 的(experimental)信息性的(informational)

RFC 分为 5 个要求的级别(requirement level):要求的(required)推荐的(recommended)可选的(elective)限制使用的(limited use)和不推荐的(not recommended)

Pines-Cheng avatar Sep 06 '17 12:09 Pines-Cheng