计算机网络自顶向下方法.第6版(初学笔记)

简介

网络结构

基本组成

基本结构

处于网络终端的通信设备实体成为主机或端系统,端系统的作用主要是收集、创造或处理数据,故端系统又可以分为客户机(client)和服务器(server),从一个端系统到达另一个端系统需要通过路径,路径将端系统通过通信链路(线缆或电波)或分组交换机(常见的分组交换机有路由器(网络核心)和链路层交换机(接入网))连接在一起。各大小型端系统通过ISP(Internet Services Provider)维护的路径连接在一起。

在端系统内部存在多个分布式应用程序来处理特定信息,Application Programming Interface规定了应用程序与另一个端系统的应用程序交换数据的规则。端系统通过接入网与边缘路由器连接,边缘路由器是端系统在路径上的第一台路由器。常见的接入网通信链路有电话线、电缆线、光纤、无线电。

接入网

DSL接入:终端通过DSL调制解调器发送模拟信号并经过家庭的分频器,发送出的各种频率的模拟信号通过电话公司的复用器DSLAM转换为数字信号,数字信号通过路由器与局外网络通信。接收信号时路由器将数字信号转发至复用器,复用器将数字信号转为模拟信号,模拟信号通过分频器和DSL传输至目的终端。网络信号和电话信号以不同的频率传输,通过分频器和复用器合并或分离。

电缆接入:终端通过电缆调制解调器将发送的数字信号转为模拟信号,模拟信号通过同轴电缆传输至该地区枢纽的光纤结点,进而通过光缆传输至地区的电缆调制解调器端接系统(CMTS,Cable Modem Termination System,CMTS和路由器组成了电缆头端),CMTS将模拟信号转为数字信号并通过路由器与局外网络通信。混合的电缆光缆称为混合光纤同轴(HFC,Hybrid Fiber Coax),终端处的电缆调制解调器将HFC网络分为上行和下行两个信道,下行信道通常比上行信道的速率更高,电缆接入的特征是共享广播媒体,即人多时速率下降人少时速率较高。

光纤接入:主动光纤网络(AON,Active Optical Network,从本地中心局一根光纤到单户)和被动光纤网络(PON,Passive Optical Network,中心局光纤通过光纤分配器将到多户)。端系统经过路由器并通过光纤网络端接器(ONT,Optical Network Termination)将数字信号转为光模拟信号,光纤分配器将模拟信号传输至中心局的光纤线路端接器(OLT,Optical Line Termination),OLT再将模拟信号转为数字信号。

以太网接入:终端通过双绞铜线与一台以太网交换机直接相连

局域网接入:通过局域网将用户与边缘路由器相连

WIFI无线接入:WLAN

广域无线接入:基于基站的无线技术

物理媒体

物理媒体分为导引数据流向的导引型媒体和扩散传播的非导引型媒体。

双绞铜线。同轴电缆。光纤。陆地无线电通道。卫星无线电通道。

ISP

单一全球承载ISP接入所有区域ISP。多个全球承载ISP接入各个区域ISP。区域内划分各个区域ISP逐层接入。区域内或区域间依靠存在点、多宿、对等、IXP组成更为复杂的结构。

存在点POP是供应商网络中相同层级位置下的多个路由器组成的群组,通过租用POP能进行高速链接。多宿是接入多个供应商或区域ISP以增强容灾能力。对等是位于相同层级的ISP可以直接互相传输流量而不需要流向上级ISP,对等的顶层ISP不互相结算。IXP可以接入多个区域ISP并让它们共同对等。内容提供商网络是一个大型的局域网络结构,通过全球性的服务器布局和直接接入底层ISP并接入多个IXP可以减少向顶层供应商支付的网络费用。

数据交换

分组交换

报文的源端系统将报文划分并为每段加上首部字节以组成较小的数据块,称之为分组packet。分组从路由器一端传入,再由该路由器转发至另一条通信链路,转发的路径在不同的网络间有区别。通常,路由器会根据路由选择协议自动的配置一个转发表,保存可用的相邻路由器。分组交换提供了更好的宽带共享并且简单有效实现成本低,但不适合实时服务。

分组交换机在链路的输入端采用存储转发传输机制,即交换机在向输出链路传输分组的第一个比特前必须接收完整的分组。接收分组完毕后,分组交换机首先需要检查分组头部来决定从哪个输出端口转发,此种时延称为处理时延nodal processing delay。分组传入交换机后,如果某一输出链路正在传输其他分组,则后到达的分组需要在交换机中排队,这种时延称为排队时延queue delay。分组交换机对每条相连的链路提供输出缓存output buffer,如果输出缓存占满则会丢弃将到达的分组或排队中的分组,此种现象称为分组丢失pocket lost丢包。分组的第一个比特传入链路到最后一个比特传入链路需要的时间称为传输时延transmission delay。分组的第一个比特从传入链路到到达下一个分组交换机需要的时间称为传播时延propagation delay

高速路由器的处理时延通常是微秒或更低的数量级,排队时延取决于拥塞程度但实际上通常是毫秒或微妙量级,输出时延取决于分组长度和链路传输速率通常是毫秒微秒量级对于低俗链路时延较大,传播时延取决于物理媒体和链路长度通常是毫秒量级有几微妙到几百毫秒。传输时延是源端开始发送数据到传输媒体,传输媒体接收完毕所需要的时间,通常是分组交换机推出分组所需要的时间,它是分组长度和链路传输速率的函数。传播时延是一台分组交换机传播到另一台分组交换机所需要的时间,它是两台路由器之间距离的函数。以上四种时延总和为结点总时延total nodal delay。某些特定的服务协议还会设定其他时延。

假定分组长度为L,分组传入交换机的平均速率为a,分组交换机的链路传输速率为R,则比率La/R称为流量强度,如果流量强度大于1则排队时延将无穷大,因此流量工程需要控制流量强度。对于小于1的流量强度,如果(L/R)n秒同时到达n个分组,则第n个分组具有(n-1)L/R的排队时延。

对于一个分组数量为P的报文,如果分组比特大小为L传输速率为R链路数量N,则传输总时延包括最后一个分组前其他分组的总第一次传输时延和最后一个分组端到端的总传输时延(忽略传播时延),即传输时延为:(P-1+N)(L/R)

电路交换

端系统通话前和期间,会建立和维护一个保持连接状态的连接,并为该连接预留缓存或恒定的传输速率,这种稳定的连接称为电路。电路交换实时且速率稳定但是具有静默期占用空闲网络。

一个通信链路可能有多个电路,划分电路的方式称为复用,主要有频分复用(FDM,Frequency Division Multiplexing)和时分复用(TDM,Time Division Multiplexing)。电话网络中的频段通常为4kHz,这种频段称为带宽。时分复用中,链路首先分段为不同的帧,帧再分为不同时隙,每个帧中的特定时隙组成一个电路,该电路的传输速率等于帧速率乘以时隙内比特数。

对于电路交换,首先需要电路创建时间,其次需要传输时间,最后考虑传播时间,通常,传输速率等于文件大小除以该电路的传输速率。

吞吐量

端到端传输一定比特大小的文件花去一定时间,其平均传输速率为平均吞吐量average throughput,瞬时速率是瞬时吞吐量。路径的吞吐量取决于瓶颈链路,对于具有多个连接的共享链路,单个连接的吞吐量平均计算,因此共享链路中的干扰流量会影响吞吐量。

分层模型

由于报文不能直接在物理媒体中传输,因此需要划分多种功能的传输媒介,再根据相同的功能来划分则可以将整个网络分层,根据传输单元数据类型的不同可以选择在不同层次上使用网络传输信息。对于分层的结构,每层具有不同的任务或功能,上层直接使用下层服务,在不影响预定的输入输出规则情况下改变层次内的实现规则不会影响系统内其他组件。但是,实际的分层实现中高层可能冗余底层功能,某层功能需要依靠其它层的特征数据来实现。

协议

协议是一套标准,网络协议是网络中数据交换的规则、标准或约定,定义和控制了两个或多个通信实体之间交换数据的报文语法、语义和事件顺序。

分层的协议称为协议 栈,因特网根据应用层、传输层、网络层、数据链路层、物理层划分,OSI七层参考模型还将应用层再分为应用层、表示层、会话层。

OSI参考模型

应用层Application负责应用程序之间交换数据的形式,提供为应用软件而设的界面、以设置与另一应用软件之间的通信。位于应用层的数据类型(分组)称为报文message

DHCP DNS FTP Gopher HTTP HTTPS IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP · SDP · SOAP · GTP · STUN · NTP · SSDP

表示层Presentation把数据转换为能与接收者的系统格式兼容并适合传输的格式,即使应用程序能解释交换数据的含义,包括数据压缩、数据加密、数据描述等。

会话层Session负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接,提供了数据交换定界和同步功能,包括建立检查点和恢复方案。

传输层Transport提供应用程序端点之间的数据交换,具体实现为把传输表头(TH)加至数据以形成数据包,传输表头包含了所使用的协议等发送信息。传输层分组称为报文段segment

TCP · UDP · TLS · DCCP · SCTP RSVP · PPTP

网络层Network提供了主机间的数据交换,决定了数据的路径选择和转寄,它网络表头(NH)加至数据包,以形成分组,网络表头包含了网络数据。网络层的数据分组称为数据报datagram包Packet

IP (IPv4 · IPv6) · ICMP · ICMPv6 · IGMP · IS-IS · IPsec · BGP · RIP · OSPF

数据链路层Data link负责网络层路由间结点的数据交换,负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。路径中可能存在多个不同物理媒体的链路,即一个数据报可能经过不同链路层协议的不同服务。链路层分组称为帧Frame

Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ARP · RARP · ATM · DTM · 令牌环 · 以太网 · FDDI · 帧中继 · GPRS · EVDO · HSPA · HDLC · PPP · L2TP · ISDN ·STP

物理层Physical负责结点之间的数据交换,将帧中的比特传送至下一个结点,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。数据单元Bit位

以太网 · 调制解调器 · 电力线通信 (PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线

封装

报文传出后,逐层传输时被转换并附加该层特征信息(首部字段),由于应用层位于顶部是被附加首部字段的,物理层位于底部用于处理数据传输的最基本单元所以没有附加信息。除去首部字段的剩余数据称为有效载荷字段,存储了上一层的分组。运输层首部字段包含了允许接收端运输层向特定应用程序传输的特定信息。网络层首部字段包含了源和端系统的地址等信息。链路层除了首部字段还有尾部字段,详见数据链路层。

其他模型

TCP/IP四层模型将应用层、表示层、会话层统一为一个应用层,数据链路层和物理层统一为网络接口层,但实际上为定义网络接口层的协议,综合来看,主流的网络分为五层。

应用层

协议原理

简介

应用层的服务目标是应用程序,用于定义应用间交换数据的规则,而不需要再额外关注端系统间通信线路的实现。对于多个交换数据的端系统,存在目前主流的两种交互数据的结构,CS架构采用一对多的形式,客户机之间不会直接通信,为了加强CS架构的服务能力会建造配置大量主机的数据中心。P2P架构采用多对多的形式,对服务器没有或依赖较小,客户机亦是服务器,统称为对等方,数据直接在用户主机间传输,这种结构不但不需要庞大的服务器设备和带宽,还能通过数据分发增强整个系统的服务能力。

应用程序通过进程通信,进程通过套接字(socket)软件接口向网络发送和接收报文,套接字是应用层和传输层之间的接口,也称为API。主机间寻址通过IP实现,进程间寻址通过端口号实现。应用程序必须指定一种具体的传输层协议来作为数据交换的形式载体以及某些特定的服务匹配应用要求,常用的服务有数据可靠性、吞吐量要求、传输定时、安全。

服务

TCP是面向连接的可靠数据传输服务,通常用于电子邮件、文件传输、远程主机访问、Web文档传输以及金融服务等数据交付要求较高的应用。UDP不面向连接且不可靠,通常用于多媒体等容忍数据丢失的应用。

对于某些带宽敏感的应用,需要传输层能确保以指定的吞吐量传输,通常多媒体应用是带宽敏感的,而电子邮件、文件传输、Web传送等弹性应用可以自适应当前吞吐量。

对于交互式实时应用如网络电话、虚拟环境、多方游戏等,需要确保源端应用注入套接字的比特到达终端套接字接收该比特的时间不能小于一定的数值以保证数据传输的有效性。

对于某些机密性服务,运输层加密发送进程的所有数据并在数据交付给接收进程前解密数据,此外,数据完整性校验和端口鉴别也属于安全服务。无论TCP还是UDP,传输前后都没有加密处理,在应用层实现安全套接字SSL,可以对TCP进行强化,提供加密、数据完整性、端口鉴别的服务。

TCP可以提供可靠安全的数据传输,但TCP或UDP目前都没有设计提供带宽或定时的服务。

定义

实现一个应用层协议需要定义以下规则:交换的报文类型、报文类型的语法、字段的语义、发送和响应报文的规则。

最常见的网络应用服务有基于HTTP的Web服务、基于FTP的文件传输服务、基于SMTP的电子邮件服务、基于DNS的目录服务、P2P共享服务等。

HTTP协议

万维网是最为广泛的Web,Web的特点是能灵活的传输各种类型的文件。Web的应用层协议是HTTP超文本传输协议,HTTP定义了客户端和服务端交换的报文结构和交换报文的方式,Web页面中的文件对象通过URL寻址,URL通过两部分组成,服务器的主机名称和对象的路径名称。HTTP使用TCP作为支撑协议,请求前需要建立连接,发送的数据能可靠的传输至终端,终端不保存请求的状态信息,所以HTTP属于无状态协议。

对于需要多次请求的应用,如果每个请求使用不同的TCP连接则称为非持续连接,如果使用同一个TCP连接则称为持续连接,持续连接默认提供,但可以配置使用非持续连接。非持续连接可以配置为串行还是并行,使用并行能减少响应时间。HTTP请求前的连接建立过程为主机发送小TCP报文段到服务器询问,服务器再用小TCP报文段响应,主机再向服务器正式HTTP请求,服务器则正式响应。定义往返时间(RTT Round-Trip Time)包括处理时延、排队时延、传播时延,则单个HTTP请求包括两次RRT以及端到端的传输时间。可见,非持续连接不但加大了服务器负担还增加了交付延时。通常,HTTP使用持续的连接并配置一个的超时间隔,如果时间内未访问则断开连接。

报文格式

请求报文的第一行为请求行,后继的行叫首部行,请求行包括三个字段:方法字段、URL字段、HTTP协议版本字段。请求行使用空行与后续的实体主体(entity body)分隔。常见的首部行有Host指明主机、Connection要求请求后是否关闭连接、User-agent指明客户浏览器类型、Accept-language表示希望的响应语言版本。

响应报文的第一行是初始状态行,后续的是首部行,然后是实体主体,状态行包括三个字段:协议版本字段、状态码、状态信息。

方法 作用
GET 请求指定的页面信息,并返回实体主体
HEAD 类似get响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)数据被包含在请求体中,可能导致建立或修改资源
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面
CONNECT 预留给将连接改为管道的代理服务器
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求用于测试或诊断
PATCH 应用于资源修改

统一资源标识符(Uniform Resource Identifiers, URI)用于标识资源,统一资源定位符(Uniform Resource Locator,URL)是常用的URI。URL协议语法为:protocol😕/authority :port path query fragment

交互管理

cookie用于记录用户的访问状态,cookie技术组件:响应报文的cookie首部行、请求报文的cookie首部行、用户端cookie管理、服务器数据库。首次请求响应返回cookie并存入服务器数据库,后续携带cookie的访问会查询数据库cookie并管理响应。

session机制采用的是在服务器端保持状态的方案。由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。有时Cookie被人为的禁止,所以出现了其他机制以便在Cookie被禁止时仍然能够把SessionID传递回服务器。这种技术叫做URL重写,就是把SessionID直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。

对session来说,除非程序通知服务器删除一个session,否则服务器会一直保留。由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。

缓存器

Web缓存器是代表初始服务器来满足请求的网络实体,位于客户机和原始服务器之间,客户机的请求会在缓存器中缓存,后续访问直接返回,如果访问没有缓存则请求原始服务器。缓存器可以降低响应时间以及减少网络流量以增强应用性能。CDN公司通过安装大量缓存器形成内容分发网络CDN使大量流量实现本地化。

缓存器向初始服务器请求缓存对象时,响应信息通常会包含Last-modify首部行,在后续的用户请求时,缓存器会通过If-modify-since首部行请求初始服务器来判断缓存对象是否为最新对象,如果是则初始服务器返回给缓存器的响应为304 Not Modified告诉缓存器可以将缓存的对象返回给用户。

FTP

FTP使用并行的控制连接和数据连接传输文件,控制连接用于在主机间传输控制信息如用户标识、口令、目录文件操作命令等,数据连接用于文件的实际传送。FTP是有状态的,服务器需要绑定用户账户和控制连接,需要追踪用户当前目录位置。

分离的控制信息称为带外传送如FTP,控制信息与文件信息一起称为带内传送,如HTTP。

电子邮件

DNS

域名系统(Domain Name System)用于域名和IP地址转换,组件为:DNS分布式数据库、查询的应用层协议之上,端口号53。

传输层

运输层在端系统中实现,为源终端系统上的进程提供逻辑通信,运输层将应用报文分隔为小块并分别加上运输存首部以生成运输层报文段segment。运输层位于网络层之上,网络层提供主机间的逻辑通信,运输层的服务受网络层影响。网络层协议有IP网络协议,IP的服务模型是尽力而为的交付,不保证服务完整性,即不可靠服务。

运输层的基本职责是将多路复用和多路分解,多路复用是指将源端上不同套接字的数据封装首部信息生成报文段并传递给网络层。多路分解是将封装的报文段交付给正确的套接字。

UDP时轻量级传输协议,无连接没有握手过程、不保证数据可靠性、没有拥塞控制。UDP报文通过携带目的IP和目的端口号的二元组标识,用于定向目的主机的目的端口。

TCP面向连接且可靠的数据传输服务,面向连接用于传输前的准备、可靠意值能确保传输过程没有字节的丢失或冗余。TCP的拥塞控制可以在网络拥塞时平等的抑制发送进程。不同于UDP,TCP通过源IP、源端口、目的IP、目的端口的四元组标识,不但定向了目的端口还标识了源端口。

网络层

网络层核心是路由选择和分组转发,路由选择用于在所有路由器中选择最佳路径,分组转发用于路径中的分组传输。

功能

转发

路由

链路层

posted @ 2019-10-09 13:52  Hen9  阅读(1115)  评论(0编辑  收藏  举报