本学习笔记仅供个人学习研究使用
第一章 概述
(1) 计算机网络向用户提供的最重要的功能有两个,即:连通性和共享。
(2) 网络把许多计算机连接在一起,而因特网把许多网络连接在一起。
(3) 因特网交换点IXP的主要作用是允许两个网络直接相连并交换分组,而不需要通过第三个网络来转发分组。
(4) 因特网从工作方式上看可以分为边缘部分和核心部分:
(5) 处在因特网边缘的部分就是连接在因特网上所有的主机,又称端系统,通信方式可以划分为C/S方式(客户-服务器方式)和P2P方式(对等方式)。两者区别在于在对等连接中的每一个主机即是客户又同时是服务器。
(6) 网络核心部分为边缘部分大量主机提供连通性。有三种数据交换方式:电路交换——整个报文的比特流连续地从源点直达终点;报文交换——整个报文先传送到相邻结点,分组交换——单个分组(报文的一部分)传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。后两者提高了网络信道利用率,时延小,同时也具有更好的灵活性。
(7) 计算机网络最简单的定义是:一些互相连接的、自治的计算机的集合。按网络作用范围可以分为广域网WAN、城域网MAN、局域网LAN、个人区域网PAN。
(8) 计算机网络的性能指标有:速率、带宽、吞吐量、时延(总时延=发送时延+传播时延+处理时延+排队时延)、时延带宽积(传播时延*带宽)、往返时间RTT(从发送方发送数据开始,到发送方接收来自接收方的确认经历的时间)、利用率(信道或网络利用率过高会产生非常大的时延,因为在网络结点排队时间长)。
(9) 网络协议主要由语法、语义和同步组成。语法,即数据与控制信息的结构或格式,语义,即需要发出何种控制信息,完成何种动作以及做出何种响应,同步,即事件实现顺序的详细说明。
(10) 计算网络体系结构如图。
在五层协议的体系结构中,各层主要功能有:
l 应用层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。传送的数据单元是报文。
l 运输层。运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。主要使用TCP和UDP协议。
l 网络层。网络层主要负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文或用户数据报封装成分组或包(IP数据报)进行传送。
l 数据链路层。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点的链路上传送帧。
l 物理层。物理层负责传输比特流。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。物理媒体不属于物理层。
TCP/IP协议表示方法:
第二章 物理层
2.1 物理层的基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。通信方式有
· 单向通信
· 双向交替通信:又称半双工通信,一方发送一方接收,过一段时间后再反过来
· 双向同时通信:又称全双工通信,通信的双方可以同时发送和接收消息
数字信号常用编码方式有不归零制,归零制,曼彻斯特编码,差分曼彻斯特编码;基本的带通调制方法有调幅AM,调频FM,调相PM。
香农公式指出:
说明信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。
2.2 物理层下面的传输媒体
·
双绞线:把两根互相绝缘的铜导线绞合起来。可减少相邻导线的电磁干扰,常用于电话系统。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几到几十公里。屏蔽双绞线STP,无屏蔽双绞线UTP。
· 同轴电缆:具有很好的抗干扰特性,被广泛用于传输较高速率的数据。随着技术的进步被双绞线取代。
· 光缆:原理是光的全反射。单模光纤像一根波导,可使光线一直向前传播,而不会产生多次反射。多模光纤可以存在多条不同角度入射的光线在一条光纤中传播。
· 微波接力通信
2.3 信道复用技术
·频分复用、时分复用
· 频分复用FDM的所有用户在相同的时间占用不同的频率带宽资源;时分复用的所有用户在不同的时间占用相同的频率带宽资源。
·
· 统计时分复用
使用STDM帧来传送复用的数据。按需动态分配时隙(异步)。要加上用户的地址信息。
· 波分复用
WDM,就是光的频分复用,用同一根光纤来同时传输多个频率很接近的光载波信号。
· 码分复用
CDM,每一个用户可以在同样的时间使用同样的平台进行通讯,由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
2.4 宽带接入技术
· 非对称数字用户线ADSL
用数字技术对现有的模拟电话用户进行改造,使它能够承载宽带数字业务。ADSL在用户线的两端各安装一个ADSL调制解调器,主要采用DMT离散多音调调制技术(频分复用)。
ADSL是借助于在用户线两端安装的调制解调器对数字信号进行了调制,使调制后的数字信号的频谱适合在原来的用户线上传输,而不需要重新布线。
· 光纤同轴混合网(HFC)网
除可传送电视节目外,还能提供电话、数据和其他宽带交互型业务。HFC网把原有线电视网中的同轴电缆主干部分改换成光纤。光纤从头端连接到光纤结点,在光纤结点光信号被转换为电信号,然后通过同轴电缆传送到每个用户家庭。
· FTTx技术
光纤到户FTTH就是把光纤一直铺设到用户家庭,只有在光纤进入用户的家门后,才把光信号转换为电信号,这样做就可以使用户获得最高的上网速率。FTTB指光纤到大楼,FTTF指光纤到楼层。
第三章 数据链路层
3.1 使用点对点信道的数据链路层
数据链路层把网络交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
3.1.1 三个基本问题
l 封装成帧:给IP数据报添加首部和尾部,用于标记帧的开始和结束。其中MTU是指帧的数据部分长度上限——最大传送单元。
l 透明传输。透明表示一个实际存在的事物看起来好像不存在一样。帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符,如果出现转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
l 差错检测。在数据链路层广泛使用了循环冗余校验CRC的检错技术。差错分为比特差错和传输差错(帧丢失、帧重复和帧失序),使用CRC检验能实现无比特差错的传输,但这还不是可靠传输。
3.2 点对点协议PPP
互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议,其内容是接收方每收到一个帧,就进行CRC检验,如果CRC检验正确就收下这个帧,反之就丢弃这个帧,其他什么也不做。
PPP协议不需要纠错,也不需要流量控制。PPP协议只支持点对点的链路通信,只支持全双工链路。
LCP:链路控制协议,简称LCP(LinkControl Protocol)。它是PPP协议的一个子集,在PPP通信中,发送端和接收端通过发送LCP包来确定那些在数据传输中的必要信息。
NCP:网络控制协议。NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。NCP的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINSServer IP地址等。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段
3.3 使用广播信道的数据链路层
3.3.1 局域网的数据链路层
局域网按照网络拓扑可分为星形网,环形网和总线网
共享信道在技术上有两种方法:(1)静态划分信道:频分复用、时分复用、波分复用和码分复用等。(2)动态媒体接入控制:随机接入,所有用户可随机地发送信息,会产生碰撞,和受控接入用户不能随机发送消息,必须服从一定的控制,如令牌环网和轮询(polling)。
IEEE802委员会最开始把局域网 的数据链路层拆成两个子层,即逻辑链路控制LLC子层和媒体接入控制MAC子层。与接入到传输媒体有关的内容都放在MAC子层,与LLC层无关。后来以太网在局域网市场取得了垄断地位,LLC层的作用就逐渐消失了。
计算机与外界局域网的连接是通过通信适配器。
CSMA/CD协议(载波监听多点接入/碰撞检测)
为了通信的简便,以太网采取了以下两种措施:
(1) 采用无连接的工作方式。因此以太网提供的服务是尽最大努力的交付,即不可靠交付。虽然采用最简单的随机接入,但是CSMA/CD协议能协调好总线上各计算机的工作,其工作模式就像没有会议主持人的讨论会,任何人都可以随意发言,但是不能打断其他人,若碰巧多个人同时发言,则大家都立即停止,等待一段时间再发言。
(2) 以太网发送的数据都使用曼彻斯特编码的信号。
CSMA/CD协议的要点有:
(1) 多点接入/准备发送。以太网是总线型网络。发送过程是:适配器聪从网络层获得一个分组,加上以太网的首部和尾部组成以太网帧,放入适配器的缓存中。以太网美发送完一帧,一定要把已发送的帧暂时保留一下。
(2) 载波监听。不管是在发送前,还是在发送中,每个站都必须不停地检测信道。
(3) 碰撞检测。 冲突检测,边发送边监听。发生冲突后,适配器会立即停止发送,然后等待一段随机时间后再次发送。以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。若重传达16次仍不成功,则停止重传而向上报错。
(4) 强化碰撞。当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。
3.4 使用广播信道的以太网
3.4.1 使用集线器的星形拓扑
集线器有一些特点:
(1) 使用集线器的以太网在逻辑上仍是一个总线网(星形总线),各站共享逻辑上的总线,使用的还是CSMA/CD协议。
(2) 一个集线器有许多接口。
(3) 集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测(发生碰撞,所有接口都收不到正确的帧)
3.4.2 以太网的MAC层
局域网的地址是每一个站的名字或标识符。当路由器通过适配器连接到局域网时,,适配器的硬件地址就用来标志路由器的某个接口。路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。
适配器每从网络上收到一个MAC帧(不小于64字节)就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧(单播帧,广播帧,多播帧)就收下,否则丢弃。
以太网适配器的混杂方式:只要听到有帧在以太网上传输就都悄悄地接收下来(窃听)。有利于网络维护和管理人员分析以太网上的流量,学习理解各种网络协议的工作原理。
MAC帧的格式(假定使用IP协议)
插入的8字节是为了使接收端迅速实现位同步。它由两个字段构成,第一个字段是7个字节的前同步码,作用是调整接收端时钟频率,第二个字段是1字节的帧开始定界符。
以太网传输数据以帧为单位,各帧之间必须有一定的间隙。因此,接收端只需要只要找到帧开始定界符,后面的连续到达的比特流就都属于同一个MAC帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。(区别在于PPP帧是连续发送)
3.5 扩展的以太网
3.5.1 在物理层扩展以太网
扩展主机和集线器之间的距离的一种简单方法是使用一对光纤和一对光纤调制解调器(光信号与电信号的转换),可以使主机和几公里以外的集线器相连接。
使用多个集线器可以连接成覆盖更大范围的多级星形结构的以太网。
缺点:(1) 三个碰撞域合为一个。最大吞吐量还是原来一个系的。
(2) 如果不同的系使用不同的以太网技术,那么就不可能用集线器将它们互连起来。
3.5.2 在数据链路层扩展以太网
使用网桥:根据MAC帧的目的地址对收到的帧进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,再确定将该帧转发到哪一个接口(转发表)或丢弃。
网桥优点:(1)过滤通信量,增大吞吐量。不同网段上的通信不会互相干扰,吞吐量变为各网段吞吐量之和。
(2)扩大物理范围
(3)提高可靠性 当网络出现故障时,一般只影响个别网段。
(4)可互联不同的物理层、不同MAC子层和不同速率的以太网.因为只负责数据转发。
缺点:(1)转发和执行 CSMA/CD算法增加时延
(2)在MAC子层没有流量控制功能
(3)用户太多时会因传播过多的广播消息产生网络风暴
l 透明网桥:以太网上的站点并不知道所发送的帧将经过哪几个网桥,还是种即插即用设备。按照自学习算法建立转发表。要点:转发表中没有站点的地址时,将地址和收到此帧的接口号写入转发表,并将此帧发送给该接口以外的所有接口。若查表发现目的地址的端口就是接收此帧的端口,则丢弃。为避免转发产生的帧在网络中不断地兜圈子,透明网桥使用了生成树算法。
l 源路由网桥:在发送帧时,把详细的路由信息放在帧的首部中。为了发现合适的路由,源站以广播方式向欲通信的目的站发送一个发现帧作为探测之用。可以获得最佳路由。
l 多接口网桥——以太网交换机
以太网交换机的每个接口都直接与一个单个主机或另一个集线器相连,并且一般都工作在全双工方式。每一对相互通信的主机都能像独占传输媒体那样,无碰撞地传输数据。
利用以太网交换机可以很方便地实现虚拟局域网(VLAN):由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。虚拟局域网限制了接收广播信息的工作站数,使得网络不会因为传播过多的广播信息而引起性能恶化。在以太网的帧格式中插入一个4字节的标识符,用来指明发送该帧的工作站属于哪一个虚拟局域网。
3.6高速以太网
3.6.1 100BASE-T以太网
100BASE-T是在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议,又称快速以太网。用户只需要更换一个适配器,再配上一个100Mb/s的集线器,就可以很方便地由10BASE-T以太网直接升级到100MB/s。可以在全双工方式下工作而无冲突发生,因此CSMA/CD协议对全双工方式工作的快速以太网是不起作用的。MAC帧使用IEEE802.3协议规定的帧格。
3.6.2 吉比特以太网
特点:
(1) 允许在1Gb/s下全双工和半双工(使用CSMA/CD)两种工作方式。
(2) 使用IEEE802.3协议规定的帧格式。
(3) 与10BASE-T和100BASE-T技术向后兼容。
物理层使用两种成熟的技术:一种来自现有的以太网,另一种则是光纤通道FC。
在半双工工作模式下,就必须进行碰撞检测,不同的是采用了载波延伸和分组突发的方法。
l 10吉比特和100吉比特以太网
10GE帧格式与10Mb/s,100Mb/s和1Gb/s以太网的帧格式完全相同。只工作在全双工方式,因此不存在争用问题,当然也不使用CSMA/CD协议。
l 使用以太网进行宽带接入
PPPoE(PPP over Ethernet):把PPP帧再封装到以太网中来
modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。PPPoE的目标就是解决上述问题,通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。
第四章 网络层
4.1 网络层提供的两种服务
类似于电话网的面向连接的通信方式——虚电路
简单灵活的、无连接的、尽最大努力交付的数据报服务。不提供服务质量的承诺。
4.2 网际协议IP
与IP协议配套使用的还有3个协议:
l 地址解析协议ARP
l 网际控制报文协议ICMP
l 网际组管理协议IGMP
4.2.1 虚拟互连网络
网络的中间设备
l 物理层——转发器
l 数据链路层——网桥或桥接器
l 网络层——路由器
l 网络层以上——网关,用网关连接两个不兼容的系统需要在高层进行协议的转换。
所谓虚拟互连网络就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络,它们称为IP网。使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节。
分类的IP地址
IP地址就是给因特网上的每一个主机的每一个接口分配一个在全世界范围是唯一的32位标识符。IP地址=网络号+主机号。
由于CIDR的广泛使用,A,B,C类地址的区分已成为历史。
常用的三种类别的IP地址
l A类地址:可指派的网络号是126个(128-2),减2的原因是:第一,网络号字段全为0的IP地址是保留地址,意思是本网络。第二,网络号为01111111保留位本地软件环回测试本主机的进程之间的通信之用。若主机发送一个目的地址为环回地址的IP数据报,本主机的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。可指派的主机号也要减2:全0的主机号字段表示该IP地址是本主机所连接到的单个网络地址,全1表示该网络上的所有主机。
l B类地址:128.0.0.0不指派,故网络数减1。主机数减2。
l C类地址:192.0.0.0不指派,故网络数减1。主机数减2。
IP地址有一些重要特点:
1. 主机号由得到网络号的单位自行分配。路由器仅根据目的主机所连接的网络号来转发分组。
2. 多归属主机:当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。
3. 用转发器或网桥连接起来的若干个局域网仍为一个网络。
IP地址与硬件
地址解析协议ARP
每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表。
ARP协议的步骤是:
l ARP进程在本局域网上广播发送一个ARP请求分组。
l 本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
l 主机B的IP地址与ARP请求分组 中要查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组(单播),并在这个ARP响应分组中写入自己的硬件地址。
l 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入B的IP地址到硬件地址的映射。
为什么不使用硬件地址通信?因为全世界各式各样的网络使用不同的硬件地址,要使这些异构网络能够相互通信就必须进行非常复杂的硬件地址转换工作。但是连接到因特网的主机只需要拥有统一的IP地址,它们之间的通信就像在一个网络上那样简便,因为计算机软件自动调用ARP协议。
IP数据报的格式
IP层转发分组的流程
在路由表中,对每一条路由最主要的是以下两个信息:目的网络地址+下一跳地址。分组转发算法如下:
4.3 划分子网和构造超网
划分子网的基本思路如下:
(1) 将物理网络划分为若干个子网纯属一个单位内部的事情,对外仍表现为一个网络。
(2) 划分子网的方法是从网络的主机号借用若干位作为子网号,IP地址变为网络号+子网号+主机号。
(3) 其他网络给本单位某主机发IP数据报,先发给本单位的路由器,路由器再按照目的网络和子网号找到目的子网,进行交付。
把三级IP地址和收到的数据报的目的IP地址逐位相与,就得到子网的网络地址。
不划分子网时使用默认子网掩码(网络号字段全1)。
划分子网增加了灵活性,却介绍了能连接在网络上的主机总数。
划分子网后,路由器转发分组的算法如下:
无分类域间路由选择CIDR,使IP地址变为网络前缀+主机号。采用斜线记法,在IP地址后面加上斜线,然后写上网络前缀所占的位数。网络前缀都相同的连续的IP地址组成了一个CIDR地址块。
最长前缀匹配:在查找路由表时可能会得到不止一个匹配结果,应当从结果中选择具有最长网络前缀的路由。
4.4 网际控制报文协议ICMP
允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报。
ICMP差错报告报文有:终点不可达、源点抑制、时间超过、参数问题、改变路由(重定向)。
4.5 因特网的路由选择协议
分为内部网关协议IGP(RIP、OSPF)和外部网关协议EGP(BGP)。
4.5.1 内部网关协议RIP
RIP(路由信息协议)是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议。特点如下:
(1) 仅和相邻路由器交换信息。
(2) 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
(3) 按固定的时间间隔交换路由信息。
路由表中最主要的信息就是:到某个网络的距离,以及应经过的下一跳地址。路由表更新的原则是找出到每个目的网络的最短距离。使用距离向量算法。
RIP协议使用UDP进行传送。
RIP协议存在的一个问题是当网络故障时,要经过较长的时间才能将此信息传送到所有的路由器。
4.5.2 内部网关协议OSPF
开放最短路径优先协议,使用了最短路径算法SPF。主要特征是使用分布式的链路状态协议。直接用IP数据包传送。其特点是:
(1) 使用洪泛法向本自治系统中的所有路由器发送信息。
(2) 发送的是与本路由器相邻的所有路由器的链路状态。
(3) 只有当链路状态发生变化时,才与其他路由表交换信息。
OSPF划分区域,好处是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,减少了网络上的通信量。
4.5.3 外部网关协议BGP
边界网关协议BGP并非要寻找一条最佳路由。采用了路径向量选择协议。
在配置BGP的时候,每个自治系统要选择至少一个路由器作为该自治系统的BGP发言人。发言人直接通过TCP建立BGP会话,交换路由信息。
4.5.4 路由器的构成
整个路由器结构可划分为两大部分:路由选择部分和分组转发部分。路由选择部分的核心是路由选择处理机,能根据路由选择协议构造并维护路由表;分组转发部分由交换结构、一组输入端口、一组输出端口组成。
在网络层处理模块,若接收的是路由信息的分组,就送往路由选择处理机;若接收到的是数据分组,则按照分组首部中的目的地址查找转发表,送往对应的输出端口。为了使交换功能分散化,往往把复制的转发表放在每一个输入端口中,路由选择处理机负责对各转发表的副本进行更新。
交换结构主要有三种:
4.6 IP多播
当多播组的主机数很大时,采用多播方式就可以明显地减轻网络中各种资源的消耗(依靠多播路由器)。在多播数据报的目的地址写入的是多播组的标识符(每一个D类地址标志一个多播组),然后设法让加入到这个多播组的主机的IP地址与多播组的标识符关联起来。
IP多播可以分为以下两种:
4.6.1 在局域网上进行硬件多播
以太网硬件地址字段中的第1字节的最低位为1时即为多播地址。
4.6.2 在因特网上进行多播
IGMP协议让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。还需要使用多播路由选择协议。多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。
网际组管理协议IGMP的工作可分为两个阶段:
1. 当某个主机加入新的多播组时,该主机发送一个IGMP报文,声明自己要成为该组的成员,本地的多播路由器收到IGMP报文后,还要利用多播路由器选择协议把这种组成员关系转发给其他多播路由器。
2. 组成员关系是动态的。只要有一个主机对某个组响应,那么多播路由器就认为这个组是活跃的。
4.7 虚拟专用网VPN
RFC1918指明了一些专用地址,这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
数据报从R1传送到R2可能要经过因特网中的很多个网络和路由器。但从逻辑上看,两者之间好像是一条直通的点对点链路。
4.8 网络地址转换NAT
解决专用网内部的一些主机本来已经分配到了本地IP地址,但又想和因特网上的主机通信的问题。
第五章 运输层
5.1 运输层协议概述
运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。只有主机的协议栈才有运输层。
可以看出,网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。
5.2 用户数据报协议UDP
UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。UDP的主要特点是:
1. UDP是无连接的
2. UDP尽最大努力交付(不保证可靠交付)
3. UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分。一次交付一个完整的报文。
4. UDP没有拥塞控制
5. UDP支持一对一、一对多、多对一和多对多的交互通信
6. UDP首部开销小,只有8个字节
如果接收方UDP发现收到的报文中的目的端口号不正确,就丢弃该报文,并由ICMP协议发送“端口不可达”差错报文给发送方。
IP数据报的检验和只检验IP数据报的首部,但UDP的检验和把首部和数据部分一起检验。
5.3 传输控制协议TCP
TCP最主要的特点 :
1. TCP是面向连接的运输层协议
2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
3. TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。
4. TCP提供全双工通信。TCP两端都设有发送缓存和接收缓存。
5. 面向字节流。TCP中的流指的是流入到进程或从进程流出的字节序列。
6. TCP把连接作为最基本的抽象。每一条TCP连接唯一地被通信两端的两个套接字(IP地址+端口号)所确定。
5.4 可靠传输的工作原理
TCP下面的IP层提供的是不可靠的传输,因此,TCP必须采用适当的措施才能使得两个运输层之间的通信变得可靠。
5.4.1 停止等待协议
“停止等待”就是每发送完一个分组就停止发送,等待对方的确认,收到确认后再发送下一个分组。四种情况:
5.4.2 连续ARQ协议
发送方首先将发送窗口内的所有分组连续发送出去,而不用等待确认。接收方采用累计确认的方式,在收到几个分组后,对按序到达的最后一个分组发送确认,表明这个分组之前的所有分组都已经正确收到了。发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
若发送方发送了5个分组,但是中间第三个丢失了,接收方就只能对前两个分组发回确认。发送方重发后3个分组,这叫做“回退N”,表示需要退回来重传已发送的N个分组。
5.5 TCP报文段的首部格式
5.6 TCP可靠传输的实现
TCP的滑动窗口是以字节为单位的。发送窗口里的序号表示允许发送的序号。后沿的部分表示已发送且已收到了确认。接收窗口里的序号表示允许接收的序号,后沿的部分表示已发送确认并交付主机。没有按序到达的数据存在接受缓存里面。
超时重传时间根据Karn算法确定。
选择确认SACK能实现只传送缺少的数据而不重传已经正确到达接收方的数据。
5.7 TCP的流量控制
所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
5.8 TCP的拥塞控制
所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。四种算法:慢开始、拥塞避免、快重传和快恢复。
5.9 TCP的运输连接管理
TCP的连接建立
三次握手建立连接:A运行客户程序,B运行TCP服务器程序,A主动打开连接,而B被动打开连接。
B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN状态,等待客户的连接请求。
A的TCP客户进程也是首先创建传输控制模块TCB,然后向B发出连接请求报文段。
A最后还要发送一次确认,是为了防止已失
效的连接请求报文段(在网络节点中滞留,延迟到达)突然又传送到了B,产生错误。
TCP的连接释放
数据传输结束后,通信的双方都可释放连接。假设A的进程先发出释放连接报文段,停止发送数据,主动关闭连接。
为什么A在TIME-WAIT状态必须等待2MSL时间?一个原因是保证A发送的最后一个ACK报文段能够到达B,另一个是防止前面提到的已失效的连接请求报文段出现在本连接中。
TCP还设置有一个保活计时器。客户端主机故障时,服务器收不到消息,保活计时器使得服务器不会再白白等待下去,方法是隔一段时间发送一个探测报文段,连续发送多个报文段后无响应,即认为客户端故障,关闭连接。
TCP的有限状态机
方框表示TCP可能具有的状态。粗实线箭头表示对客户进程的正常变迁,粗虚线箭头表示对服务器进程的正常变迁,细线箭头表示异常变迁。
第六章 应用层
6.1 域名系统DNS
因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采用客户-服务器方式。DNS使大多数名字都在本地进行解析。
一个服务器所负责的管辖的范围叫做区。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。“区”是域的子集。
因特网上的DNS服务器是按照层次安排的,每一个域名服务器都只对域名体系中的一部分进行管辖。可分为四种类型:
l 根域名服务器
根域名服务器采用了任播技术,当DNS客户向某个根域名服务器进行查询时,因特网上的路由器就能找到离这个DNS客户最近的一个根域名服务器。
在许多情况下,根域名服务器并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应该找哪一个顶级域名服务器进行查询。
l 顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应回答。
l 权限域名服务器:负责一个区的域名服务器,当一个权限域名服务器不能给出回答时,会指向其他的权限域名服务器。
l 本地域名服务器:当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为他的IP地址。
域名解析过程:
第一,主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,代替该主机继续查询。
第二,本地域名服务器向根域名服务器是查询通常是采用迭代查询。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所查询的IP地址,要么告诉本地域名服务器:你下一步应当向哪一个域名服务器进行查询。然后让本地域名服务器进行后续的查询。
域名服务器广泛地使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
6.2 文件传送协议
6.2.1 FTP的基本工作原
建立了两个并行的TCP连接:控制连接和数据连接。
6.3 远程终端协议TELNET
能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕,让用户感觉到好像键盘和显示器是直接连接在远地主机上。
6.4 万维网WWW
6.4.1 万维网概述
万维网是一个大规模的、联机式的信息储藏所。万维网文档所驻留的主机则运行服务器程序,因此这个主机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
6.4.2 统一资源定位符
<协议>://<主机>:<端口>/<路径>
6.4.3 超文本传送协议HTTP
HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务的应用层协议。
请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间RTT:一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档。
HTTP/1.0的主要缺点,就是每请求一个文档就要有两倍RTT的开销。另一种开销就是万维网客户和服务器为每一次建立新的TCP连接都要分配缓存和变量,特别是万维网服务器往往要同时服务于大量客户的请求,这种非持续连接会使万维网服务器的负担很重。
HTTP/1.1协议较好地解决了这个问题,它使用了持续连接。所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接。这种持续连接分为流水线方式和非流水线方式。
代理服务器是一种网络实体,它又称为万维网高速缓存。代理服务器把最近的一些请求和响应暂存在本地磁盘中,有时候作为服务器,有时候作为客户。
HTTP有两类报文:请求报文和响应报文。请求报文的第一行指定了HTTP方法,有如下几种:
HTTP响应报文中重要的是状态码。
HTTP协议是无状态的,但在实际工作中,一些万维网站点希望识别用户,故使用了Cookie来跟踪用户。Cookie表示在HTTP服务器和客户之间传递的状态信息。工作流程是:用户A浏览网站时,该网站服务器会给A一个唯一的识别码,添加在响应报文中发给用户。浏览器从而在自己的Cookie文件中添加这一行。当A继续浏览网站时,每发送一个HTTP请求报文,其浏览器就会在Cookie首部行中加入识别码,网站就可以跟踪用户在网站的活动了。
6.4.4 万维网的文档
HTML是超文本标记语言。XML是可扩展标记语言,宗旨是传输数据而不是像HTML一样显示数据。XML将用户界面与结构化数据分隔开来。
CGI是一个标准,它定义了活动文档该如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。Cgi程序又称cgi-bin脚本。使用了CGI的web服务器如下图。
6.5 电子邮件
一个电子邮件系统应由用户代理、邮件服务器以及邮件发送协议(“推”——如SMTP)和邮件读取协议(“拉”——如POP3)。
6.6 动态主机配置协议DHCP
DHCP省去了手动给计算机配置IP地址的麻烦。当运行客户软件的计算机移至一个新的网络时,就可以使用DHCP获取其配置信息(IP地址、子网掩码、默认路由器的IP地址、域名路由器的IP地址),不需要手工干预。
DHCP使用客户-服务器方式。主机在启动时广播一个发现报文(目的地址为全1),由DHCP服务器进行回答。中间还存在着DHCP中继代理的角色。
DHCP服务器分配给客户的IP地址是临时的,因此客户只能在一段有限的时间内使用这个分配到的IP地址,这个时间称为租用期。
6.7 简单网络管理协议SNMP
SNMP是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。
SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个主要部分组成,分别是管理信息结构SMI(StructureofManagement Information)、管理信息库MIB和管理协议SNMP。
6.8 应用进程跨越网络的通信
第九章 无线网络和移动网络
9.1 无线局域网WLAN
9.1.1 无线局域网的组成
IEEE 802.11是无线以太网的标准,采用此协议的无线局域网称为Wi-Fi。它使用星形拓扑,其中心叫做接入点AP,在MAC层使用CSMA/CA协议。802.11规定无线局域网的最小构件是基本服务集BSS,包括一个基站和若干个移动站,所有的站在本BSS内都可以直接通信。
一个BSS内可以有多个AP,移动站只能在多个AP中选择一个建立关联,通常选择信号最强的那个。此后,这个移动站就和选定的AP互相使用802.11关联协议进行对话,之后通过DHCP协议获取IP地址。
移动站与AP建立关联的方法有两种。一种是被动扫描,另一种是主动扫描。
9.1.2 802.11局域网的物理层
根据物理层的不同,802.11无线局域网可再细分为不同的类型。
9.1.3 802.11局域网的MAC层协议
CSMA/CD协议不能用于无线局域网,因为碰撞检测(CD)在无线环境下不能使用,无线局域网不需要进行碰撞检测。
802.11标准设计了独特的MAC层。它通过协调功能来确定在基本服务集BSS中的移动站,在什么时候能发送数据或接收数据。
分布协调功能DCF向上提供争用服务器,在每一个结点使用CSMA机制的分布式接入算法,让各个站通过争用信道来获取发送权。点协调功能PCF是选项,是用接入点AP集中控制整个BSS内的活动。
为避免碰撞,802.11规定,所有的站在完成发送后,必须再等待一段很短的时间继续监听才能发送下一帧。这段时间称为帧间间隔IFS。
帧间间隔有两种:SIFS,短帧间间隔,用来分割属于一次对话的帧;DIFS,分布协调功能帧间间隔,用来发送数据帧和管理帧。
CSMA/CA算法归纳如下:
9.1.4 802.11局域网的MAC帧
802.11共有三种类型的帧:控制帧、数据帧和管理帧。