计算机网络基础

    xiaoxiao2021-03-25  84

    一、网络互连

    1.       交换和路由

    网桥:数据链路层互连的设备,用于连接那些采用相同或者类似数据链路层协议的链路。

           路由器:网络层互连的设备,用于连接各种不同类型的链路。

    交换机:本质上工作模式与网桥相同,但是内部的交换电路允许同一时刻将多个输入端口来的帧转发到不同的输出端口上,大大提高了转发速度。

    网络互连设备一般都具有端口隔离功能(一个端口上的传输不会干扰另外一个端口上的传输)和缓冲功能(可能存在多个输入端口同时向一个输出端口转发)

    网络互连设备一般包括两个平面的工作:一个是数据平面,负责如何转发分组。通过查找转发表来决定向哪个输出端口转发数据。另外一个是控制平面,负责构建数据平面的转发功能所需要的转发表。

    采用交换机连接的互联网,节点通过唯一的48比特的MAC地址标识,采用路由器连接的互联网,通过统一的32比特的IP地址进行标识。

    1.1 虚电路和数据报

    通过网络互连设备连接的互联网根据其何时决定路由可以分为虚电路和数据报两种方式。

    虚电路方式中,源和目的节点必须首先建立一条逻辑连接,然后才能进行数据传输,最后传输结束时释放连接,因此也称为面向连接的方式。

    在数据报方式中不需要预先建立连接,也称为无连接方式。每个分组中包含了源地址和目的地址等字段,节点根据分组头部的目的地址等控制信息来决定路由。

    延时方面,数据报在传输时在每个节点都需要进行路由查找,因此分组转发延迟更高,虚电路则需要预先构建电路时间,构建完成后,分组转发延迟较低;路由选择上,数据报每个分组单独选择路由,而虚电路在构建电路时选择路由,以后每个分组都采用该路由;状态上,数据报每个分组需要保存信息,但节点内部无状态,而虚电路每个节点都要有虚电路表,每个分组内部有虚电路号。

    1.2 源路由

    路由选择分为源路由和逐跳路由。源路由指由发送方决定途中经过的节点,然后在其发送的分组中给出要经过的节点的列表。逐跳路由即每个节点只根据其维护的转发表来决定下一条节点,不需要知道途中所有的节点列表。

           源路由分为严格源路由和松散源路由。严格源路由要求发送方要给出到接收方所途经的每个节点列表,而松散源路由则仅需要给出部分节点列表,在转发的过程中,经过这些给出的节点即可。

    1.3 逐跳路由

    可根据目的节点的个数不同,将路由分为单播路由和多播路由。

    静态路由是指在一开始就根据实际测量或者估计的网络负载和拓扑结构,确定好路由选择,如何节点出现故障,静态路由无法做出及时的响应,适合于规模较小拓扑简单的网络。而动态路由则根据网络当前状态进行路由选择。

    2.       透明网桥

    目前大部分的网桥都是透明网桥。节点只需要填充帧的源MAC地址和目的MAC地址后将封装好的帧发送到局域网上,透明网桥可以负责处理不同局域网之间的帧的转发,因此称为透明网桥。

    实现上,网桥内部需要维护一个转发表,转发表的表项给出了MAC地址以及对应的节点可以通过那个端口到达。

    3.       Internet网络层

    3.1 Internet设计原则

    Internet将无连接方式的不可靠的网际协议(IP,Internet Protocol)作为核心部分,提供尽力而为的数据传输服务。网际协议IP给出了IP分组头部的格式,各个字段的含义以及主机和路由器如何处理IP分组。

           Internet的设计采用端到端的设计原则,端系统提供面向连接的可靠的、按序递交的TCP数据传输服务,以及不可靠的、无连接方式的用户数据报协议(UDP)数据传输服务。

           Internet同样可以分为数据平面和控制平面两个逻辑层面。数据平面负责完成IP分组的转发,控制平面主要对转发表进行维护。

    3.2 IP(网际协议)

    IP提供的是无连接方式尽力而为的数据传输服务,支持各种异构网络,通过全局的IP地址唯一标识网络中的节点,每个分组包括源地址和目的地址,源和路由器通过这些字段查找路由表来进行转发。

           由于动态选择路由,网络可能出现回路,因此需要为每个IP分组设置一个生命期字段,分组达到生命期就丢弃该分组。

           物理链路上允许通过的最大用户数据长度称为最大传输单元(MTU),比如一个以太网帧最多可以携带1500字节的数据,那么MTU为1500字节。当需要进行传输的IP分组的长度超过了该网络的MTU,那么就需要对IP分组进行分段,分段后的分组都包含源地址和目的地址,独立地通过物理网络进行传输,由接收方主机负责重组。

    3.2.1 IP分组格式

    IP分组的格式如下图所示,版本字段区分IPV4或者IPV6。TCP/IP分组格式采用大端模式,使用头部长度字段和总长度字段区分固定部分和用户数据,头部长度为4比特,即长度最大值为2^4 - 1=15 byte。总长度为16 bit,总长度最大值为2^16 – 1 = 65535byte。

    IP头部还包含了服务类型字段(Tos),生命期字段(TTL),协议字段(TCP,UDP,ICMP等),头部校验和(检查消息是否出错)。可选字段中一般有记录路由选项、源路由选项和时间戳选项。

    3.2.2 分段和重组

    分段和重组需要解决三个问题:

    n  源端和目的端之间要发送多少IP分组,如何确定哪个分组属于哪个原始IP分组?

    n  分段是原始IP分组的哪个部分?

    n  接收方如何知道所有的分段都已经到来?

    IP分组的标识字段(16比特)可用于解决第一个第一个问题,它与源地址和目的地址共同标识一个原始的IP分组,每个IP分组分段后,都需要复制此标识字段。分段偏移(13比特)用于说明该分组携带数据在原始IP分组中携带的用户数据所处位置的偏移量。由于分组偏移为13比特,因此每个IP分组最多有2^13 = 8192个分段。

    标志字段共有3比特,第一位没有使用,第二位称为DF,用于控制途中是否允许进行分段,第三位称为MF,前面的分段MF为1,表示后面还有分段,最后一个分段的MF为0.

    3.2.3 IP地址

    IP地址唯一地标识了一台主机或者路由器,IP地址包括网络号和主机号,其中网络号标识该网络,主机号标识网络中的主机。由于物理网络可能具有不同的规模,为了合理利用地址空间,引入了IP地址类的概念。

    n  A类地址可用于支持大规模物理网络,前8比特表示网络号部分(第一个比特固定为0),后24比特表示主机号部分,A类网络最大支持2^24 – 2台主机,IP地址范围为0.0.0.0~127.255.255.255(其中0.0.0.0和127.0.0.1留作特殊用途);

    n  B类地址用于支持中规模物理网络,前16比特为网络号部分(前两个比特固定为10),后16比特作为主机号部分,因此B类网络可支持2^16-2台主机,IP地址范围为128.0.0.0~191.255.255.255;

    n  C类地址用于支持小规模网络,前三字节为网络号部分(前三个比特固定为110),最后一个字节为主机号部分,一个C类网络最多支持254台主机。

    n  D类地址为组播地址(前四个比特为1110),组播地址范围为224.0.0.0~239.255.255.255

    n  E类地址的前五个比特为11110,保留将来使用,IP地址范围为240.0.0.0~247.255.255.255

    A、B、C类IP地址的主机部分有两个取值具有特殊的含义:

    一个是主机号部分全0,用于表示本网络,例如192.168.1.0;一个是主机号部分全1是一个广播地址,用于表示IP网络中的所有主机,例如192.168.1.255。对于32比特全部都为1的地址称为本地网络广播地址,受到目的地址为255.255.255.255的IP地址时表示要将该分组转发到链路上所有的TCP/IP主机中。127.0.0.0(localhost)被保留做回环地址,该回环地址可用于测试TCP/IP协议簇是否正常工作,也可用于不同进程间的通信。引入地址类以后,路由器可由IP分组中目的地址知道其是哪一类地址,从而只需要了解其他网络的位置,而不必了解每一台主机在互联网中的位置。

    3.2.4 子网和CIDR

    一般一个较大的物理网络不可能同时连接非常多的主机,于是我们往往会采取将该物理网络B划分为多个小规模的物理网络,然后再把小规模物理网络连接在一起形成一个较大的互联网,从而按照所希望的方式对IP地址的主机号部分进行进一步划分,形成多个IP子网。一般IP子网对于B网络以外的主机是透明的,只有B网络内部的本地路由器知道IP子网的存在。也就是说,当外部Internet发送一个IP分组到连接B内部网络的路由器时,路由器可以依据IP分组的高位主机号确定子网编号,从而将相应IP分组发送到对应的IP子网。

    有了子网技术以后,IP地址就由原来的网络号+主机号变成了三层结构,网络号+子网号+主机号。通常我们用网络掩码来对IP地址中的子网标识进行区分。网络掩码与IP地址一样,也是一个32比特的整数,主机号部分比特取0,其他部分比特取1。在引入子网以后,主机号部分全0或者全1表示子网对应的网络和子网中的所有主机。

    IP地址而言,最后的连续几个比特一般都是主机号部分,因此子网掩码也可以用/n来描述,其中n表示前n比特都是网络号部分,剩余比特表示主机号部分,例如255.0.0.0也可以记作/8。

    进行子网划分时,主要分为固定长度的子网划分(所有子网支持的网络规模相同,容易造成IP地址空间的浪费)和变长子网划分两种方法。

    由于A、B、C类地址的引入,C类地址的个数大约有200万个,如果Internet的主干路由都需要保存相应的路由表项,那么路由表将变得非常庞大,针对路由表的膨胀问题,提出了无类别域记路由的技术(CIDR,classless interdomainrouting)。其主要的思想在于把多个连续的地址块汇集成一个大的地址块,从而把原来的多个路由表项用一个路由表项来代替,从而缩小路由表的规模。例如,某公司申请了四个C类IP地址,192.60.128.0,192.60.129.0,192.60.130.0,192.60.131.0,192.60.132.0,192.60.133.0,由于这4个IP地址的前22比特都一致,那么可将其划分为22比特的网络号部分和10比特的主机号部分,网络掩码为255.255.252.0(/22),引入CIDR的概念后,IP地址可以认为形式上从三段(网络号+子网号+主机号)又变为两段(网络号+主机号)。

    3.2.5 IP转发

                  转发指接受一个分组,然后根据转发表把该分组送到相应的外出接口中。

    路由指交换路由信息以建立路由表的过程。

    主机和路由器的转发表项通常包括以下4个部分,即目的网络、网络掩码、下一跳路由器和网络接口。目的网路和网络掩码结合在一起给出了该转发表项是针对哪个具体的网络或者主机的,如果网络掩码为255.255.255.255,该转发表项一般称为主机路由,给出了该转发表项如何到达某个具体的主机;如果网络掩码为0.0.0.0,则被称为缺省路由,由缺省路由器转发;其他转发表项称为网络路由。在同一网络中的主机通信,IP分组不需要中间路由器转发,因此也称为直接路由;不在同一网络中的主机,IP分组需要中间路由器转发,也称为间接路由。

    IP分组时如何知道路由器的哪个表项与IP分组匹配呢?如果转发表表项的目的网络的网络号部分与IP分组的目的地址的对应比特给出的网络号部分相同,那么表示通过该表项中给出的下一跳路由可以达到目的地。由于缺省路由的网络掩码为0,那么任意IP分组都能与缺省路由的表项相匹配,于是也就存在多个与IP分组相匹配的表项,此时IP分组就应该选择网络掩码长度最长的表项,即最长前缀匹配。算法上可以通过Trie前缀树进行快速地查找。

    3.3 ARP(address resolutionprotocal)

    网络层的一个IP分组想要递交给链路上的另一台IP主机,按照分层体系结构,应该通过数据链路层协议来传输。IP分组作为链路层的服务数据单元,通过添加相应的协议头部(链路层的帧头)组成一个链路层的协议数据单元(帧),然后传输到媒体上。在添加帧头部时必须要知道帧的源地址和目的地址,在数据链路层就对应着网卡的MAC地址,于是就产生了如何从网络层IP地址到数据链路层MAC地址转换的问题。ARP(address resolution protocal,地址解析协议)在广播链路中用来动态寻找IP地址对应的MAC地址。

    ARP的工作模式为,主机A在发送一个IP分组给主机B时,先广播一个ARP请求,链路上的所有主机都会收到该请求,并对比自身IP地址与ARP请求中的协议目的地址,主机B在发现自身是被请求的主机时,会回复一个ARP响应给主机A(单播),A更新自身的IP地址—MAC地址映射缓存表项,然后填充相应MAC地址到数据链路帧头,最后把数据帧通过网卡发送出去。

    ARP分组格式如上所示,ARP分组共长28字节,硬件类型指出网络传送硬件类型(如以太网),协议类型是由于ARP可能会处理其他网络层到数据链路层的地址映射,一般是IP地址(取值0x0800),硬件地址长度一般为6,表示48比特MAC地址,协议地址长度一般为4,表示32比特IP地址,操作字段表示(1:请求,2:响应,3:RARP请求,4:RARP响应)

    APR还可以用于检测IP地址是否可用,将IP地址存入ARP请求中的协议目的地址发送出去,如果接收到响应表示IP地址不可用。

    ARP伪装攻击是指,可以在接收到ARP广播请求以后,伪装一个ARP响应,将ARP响应中的目的MAC地址设置为攻击者自身的MAC地址,从而就可以窃取发送方准备发送的信息。ARP伪装攻击可以通过在主机设置静态映射避免。

    RARP用于在已知MAC地址的情况下寻找对应IP地址,可用于局域网内主机的IP地址自动分配,但是无法分配网络掩码和域名服务器等信息,RARP基本被DHCP替代。

    3.4 ICMP(Internet control message protocal)

    ICMP是Internet网络层的一部分,所有IP主机和路由器都应该实现ICMP。ICMP可用于IP分组转发过程中出错时,主机或路由器向源端发送差错报告,同时也可以用于网络管理和端系统配置。

    ICMP消息本身也可以路由,一般将ICMP消息封装在IP分组的用户数据里,通过制定IP分组头部协议字段取值为1来指明是ICMP消息。对于广播的IP分组,转发出错不会发送ICMP消息,多个IP分段只有第一个分段出错才会发送ICMP消息。

    ICMP消息类型只要分为两大类,一个是查询类消息,一个是差错报告消息。通过第一个字节的类型字段和第二个字节的代码字段可以判断ICMP消息类型。

    TYPE

    CODE

    Description

    Query

    Error

    0

    0

    Echo Reply——回显应答(Ping应答)

    x

    3

    0

    Network Unreachable——网络不可达

    x

    3

    1

    Host Unreachable——主机不可达

    x

    3

    2

    Protocol Unreachable——协议不可达

    x

    3

    3

    Port Unreachable——端口不可达

    x

    3

    4

    Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特

    x

    3

    5

    Source routing failed——源站选路失败

    x

    3

    6

    Destination network unknown——目的网络未知

    x

    3

    7

    Destination host unknown——目的主机未知

    x

    3

    8

    Source host isolated (obsolete)——源主机被隔离(作废不用)

    x

    3

    9

    Destination network administratively prohibited——目的网络被强制禁止

    x

    3

    10

    Destination host administratively prohibited——目的主机被强制禁止

    x

    3

    11

    Network unreachable for TOS——由于服务类型TOS,网络不可达

    x

    3

    12

    Host unreachable for TOS——由于服务类型TOS,主机不可达

    x

    3

    13

    Communication administratively prohibited by filtering——由于过滤,通信被强制禁止

    x

    3

    14

    Host precedence violation——主机越权

    x

    3

    15

    Precedence cutoff in effect——优先中止生效

    x

    4

    0

    Source quench——源端被关闭(基本流控制)

    5

    0

    Redirect for network——对网络重定向

    5

    1

    Redirect for host——对主机重定向

    5

    2

    Redirect for TOS and network——对服务类型和网络重定向

    5

    3

    Redirect for TOS and host——对服务类型和主机重定向

    8

    0

    Echo request——回显请求(Ping请求)

    x

    9

    0

    Router advertisement——路由器通告

    10

    0

    Route solicitation——路由器请求

    11

    0

    TTL equals 0 during transit——传输期间生存时间为0

    x

    11

    1

    TTL equals 0 during reassembly——在数据报组装期间生存时间为0

    x

    12

    0

    IP header bad (catchall error)——坏的IP首部(包括各种差错)

    x

    12

    1

    Required options missing——缺少必需的选项

    x

    13

    0

    Timestamp request (obsolete)——时间戳请求(作废不用)

    x

    14

    Timestamp reply (obsolete)——时间戳应答(作废不用)

    x

    15

    0

    Information request (obsolete)——信息请求(作废不用)

    x

    16

    0

    Information reply (obsolete)——信息应答(作废不用)

    x

    17

    0

    Address mask request——地址掩码请求

    x

    18

    0

    Address mask reply——地址掩码应答

    网络不可达是指路由表中无法找到目的网络的路由;目的主机不可达是指通过ARP寻找目的主机所对应的MAC地址时没有收到响应;协议不可达是指IP模块检查其协议字段发现对应的高层协议没有实现;端口不可达是指高层协议已经接收到IP分组,但是没有应用程序在相应的端口监听。

    ping指令是通过源端向目的端发送ICMP Echo请求消息,并由目的端回复ICMP Echo消息来实现的。

    traceroute指令的实现是利用源端发送一个带有TTL(生命期字段,详情见IP分组格式)的ICMP Echo消息,TTL逐步从1增加,直到源端收到ICMP Echo响应消息位置,此时TTL的值就是中间经过的路由数目。

    IP分段往往对网络来说是不好的(占用更多的带宽),为了避免IP分组,可以利用ICMP检测源端到目的端的最小MTU,也称为路径MTU发现。其思想是,源端先发送一个MTU较大的IP分组,设置DF为1(可分段,详情见IP分组格式),如果链路上检测到一个较小的MTU,那么就向源端发送差错消息,源端接着发送一个更小的MTU,直到不再收到差错消息。

    3.5 DHCP(dynamic host configurationprotocal)

    每台主机的IP地址、子网掩码等信息手动配置会带来管理的开销,可以采用动态主机配置协议。

    DHCP采用C/S架构,DHCP消息通过不可靠的数据传输服务UDP来传输,客户端和服务器端分别使用端口号68和67.

                  DHCP共支持3种IP分配方法:

    Ø  自动分配方法,DHCP根据客户端发送过来的MAC地址分配固定IP

    Ø  动态分配方法,DHCP分配一个IP地址池,DHCP用户可以租用一个尚未被分配的IP地址,租期到期时可以通过续租来延长租期。

    Ø  手工分配方法,IP地址通过第三方方式分配,DHCP配置其他信息

    DHCP的工作模式:客户端先发送一个目的地址为255.255.255.255的DHCPDISCOVER消息;该消息被DHCP接收到后,广播一个DHCPOFFER消息告诉主机分配的IP地址以及其他参数;主机发送一个DHCPREQUEST消息决定是否使用该IP地址。

           续租:DHCP租期过了一半以后,主机(单播)发送DHCPREQUEST消息给服务器,一旦收到DHCPACK即续租成功;如果没收到回应,那么租期到了7/8后再次续租,如果收到DHCPNAK则续租失败,重新申请动态IP。

           多个物理网络中为了避免设置多个DHCP服务器,可以采用中继代理的方式。中继代理接收到DHCP消息以后转发给DHCP服务器,消息中带有中继代理的IP地址,DHCP根据IP地址判断其所属物理网络,然后分配合适IP地址。

           DHCP消息格式如上,操作码指明消息为请求消息或者响应消息,硬件类型和硬件长度给出物理网络参数,跳段数初始为0,每次经过一个中继代理加1. 交易ID用于匹配响应和请求字段。

    3.6 NAT(network addresstranslation)

           为了解决IP地址不足的问题,一方面可以采用NAT技术,另一方面可以采用IPV6协议。NAT技术的出发点在于一个内部网络的主机不会要求在同一时刻全部链接进Internet,这样可以只为一个内部网络分配少量的合法IP地址,在内部网络主机访问Internet时对IP分组的源地址和目的地址作相应的转发,以合法的IP代替。

           NAT设备位于内部网络和外部网络之间,负责在内部网络和外部网络之间进行地址转换。

    NAT转换有两种类型。一是基本NAT,将内部网络IP转换为唯一的公共IP地址;二是基于端口的网络地址转换(NAPT),一个公共的IP地址可以有65535个端口号对应6万多条TCP连接。

    NAT设备可以修改NAT转发表,从而将来自Internet的主机请求发送到另一台服务器,实现负载均衡和内容过滤等操作。

    4.       路由协议

     

     

    二、端到端的运输协议

    1.       运输服务

    1.1 运输层服务

           运输层是第一个端到端的层次(主机进程到主机进程)。完成运输层功能的部件称为运输实体。通信处理的基本信息单元称为运输协议数据单元(transport protocol data unit,TPDU)。

    1.2 运输服务与服务质量

           与网络层相似,运输层同样提供两种类型的服务:面向连接的运输服务和无连接的运输服务。由于网络层(IP网络层)提供的是无连接方式尽力而为的数据传输服务,用户无法对通信子网进行控制,因此需要运输层来进行差错控制,崩溃恢复等服务。

           对于运输层而言,服务质量(quality ofservice,QoS)是个重要的概念,可以由以下参数进行衡量:

    Ø  连接建立延迟

    Ø  连接建立失败概率

    Ø  吞吐量:一定时间内在一条运输连接上传输的用户数据的字节数,一条运输连接上可以有两个方向的吞吐量,单位为B/s

    Ø  传输延迟

    Ø  残差差错率:运输连接上错误的数据传输量占全部传输的数据量的比例

    Ø  保护性:提供安全数据传输的能力

    Ø  优先权:不同的运输连接之间可以设定优先传输的能力

    Ø  回弹率:由于某种原因导致自发终止运输连接的可能性

    目前大多数运输协议(如TCP),并没有提供对付服务质量的支持。

    1.3 复用

           运输层多路复用有两种情况,对于网络服务而言,多条运输连接复用一条网络连接,这种情况称为向上复用;一条运输连接使用多条网络连接,这种称为向下复用。向上复用的使用往往是方便网络收费,向下复用则是为了提供对单一网络失效的恢复能力以及提高吞吐量。

    2.       TCP

    2.1 TCP概述

    TCP和UDP是两个主要的运输层协议,其中TCP可靠性高但是代价较大,UDP不可靠但是传输效率较高。

    传输控制协议(transmissioncontrol protocol,TCP)主要作用是在不可靠的网络服务上为应用层提供面向连接的、端到端的可靠的字节流服务。

    TCP的通信流程上,可以分为建立连接,数据传输和释放连接三个步骤。

    为了能够标识一条运输连接,TCP引入了套接字(Socket)的寻址机制。一个套接字的标识包括两个部分,即IP地址和一个16比特的端口号,端口号的取值范围为0~65535,其中0~1023保留给标准服务使用。

    一条TCP连接是由发送实体套接字和接受实体套接字来唯一标识的,TCP连接可以用四元组<源端IP地址,源端口号,目的IP地址,目的端口号>来标识。

    TCP是全双工的数据传输服务;其数据传输存在于两个进程之间,是点到点的;TCP不支持组播和广播;TCP是面向字节流的,用户数据大小没有边界。

    2.2 TCP格式

    TCP中,一般通过TCP报文段来交换数据,TPDU也就是报文段。一般TCP报文段封装在IP分组中,一个TCP报文段携带用户数据的大小限制成为最大分段大小(maximumsegment size, MSS).

    TCP报文段格式如下,

    2.3 TCP连接管理

    TCP使用三次握手来建立连接:

    1,  客户端发送一个TCP报文段给服务方,该报文段不包含任何用户数据,只把SYN置1,ACK置0并选择一个顺序号SEQ = x,一般称为SYN段;

    2,  服务端收到连接建立请求并检查是否有相应的端口监听,若有,则回复一个TCP报文段,此时SYN置1,ACK置1,并且选择一个服务方初始顺序号SEQ = y,确认号为 x+1,该TCP报文段称为SYN ACK段;

    3,  客户方发送TCP报文段确认对方初始顺序号,连接建立。该TCP报文段SYN置0,ACK置1,顺序号SEQ = x+1,确认号为y+1,该报文段称为ACK段;

    3.       UDP和RTP

    3.1 UDP

           UDP与TCP不同,是一种无连接方式的、不可靠的运输协议,不需要建立连接与释放连接,不支持流量控制、拥塞控制。UDP支持广播和组播。

           UDP头部只有8字节。UDP数据包长度包括头部长度+用户数据长度,因此取值在8~65515.

    3.2 RTP(real-time transport protocol)

    3.2.1RTP概述

    RTP为实时运输协议,通常包含两个协议,RTP用于交换多媒体信息,RTCP用于定期发送对应该多媒体流的控制信息。RTP一般运行于UDP之上,这时RTP数据流和相应的RTCP控制流利用相邻的运输层端口来传输。RTP只定义了一个实时多媒体应用的框架,一个新类型的多媒体应用常常要求定义相应的脚本和相应的格式,脚本保证这种类型的应用对RTP头部字段有统一的理解,格式给出了实时多媒体信息是如何通过RTP报文传递的。

           RTP会话(RTP session)的每个多媒体源都被分配了一个32比特的同步源标志(SSRC,synchronizationsource),该标志在RTP会话中是唯一的,来自于这个多媒体源的RTP报文都包含该SSRC标志,属于同一个RTP流,并且采用相同的时钟和顺序号空间。

           RTP支持点到点和组播通信。可利用网管对RTP流进行混合,形成一个单一的RTP流,该网关称为RTP混合器。

    3.2.2RTP报文格式

    V

    P

    X

    CC

    M

    PT

    序列号

    时戳

    同步信源(SSRC)标识符

    特约信源(CSRC)标识符

    ···

           CSRC标志列表给出了RTP报文中携带的负载在合成前的多媒体流的SSRC标志列表,CSRC标志列表中携带的个数在前面的CC字段指定,最多可以携带15个SSRC。

     

     

    三、网络应用

    1.       域名服务(domainname service)

    域名服务也称为域名系统,用于TCP/IP网络中将域名解析为IP地址。

    1.1 主机名和域名

           在域名树中,叶子用来标明主机,除叶子以外的节点用来标识域。域名的书写从当前节点一直到根结束,用.隔开的段组成。域名采用分层、分级的命名方式,便于扩展和管理。

    1.2 域名解析服务

           客户端应用程序递交域名,服务器端返回域名对应的IP地址,这个服务过程称为域名解析服务。

           一般域名解析过程会涉及多个DNS服务器进行配合、使用递归查找或者迭代查找实现分布式处理过程。

           两者的区别在于,递归查找中,本地DNS服务器如果不能解析域名,则向其父DNS服务器提交域名解析请求,并等待父DNS解析服务器返回结果,若父DNS服务器仍不能解析,重复上述过程知道根DNS服务器,并由根DNS服务器向子域DNS服务器发出域名解析请求,直到解析完成后再逐层次返回。迭代查找中,本地DNS服务器如果不能解析域名,向其父DNS服务器提交域名解析请求,如果父DNS服务器仍不能解析,则父DNS服务器不再负责返回域名解析结果,而是返回更接近结果的DNS管理服务器的IP地址指引,并由本地DNS服务器向该DNS管理服务器发出域名解析请求。

           在实际域名解析服务实现中,DNS服务器往往使用DNS缓存以提高解析服务效率并实现分布式的域名解析服务。

    2.       传统应用

    2.1 电子邮件

           C/S方式的邮件递交和访问时基于TCP连接进行的,邮件的发送过程中主要使用STMP进行邮件递交,而用户在接收邮件时,则使用POP3进行邮件的收取。

           简单邮件传送协议(simple mailtransfer protocol,SMTP)基于TCP连接和C/S方式,SMTP作为接收方在25号端口等待从发送方来的消息,客户机向服务器发出连接要求,一旦连接成功就进行邮件信息的交换,邮件传递结束后释放连接。SMTP以命令-应答来实现C/S交互。

           邮局协议(post office protocol,POP)同样基于TCP连接和命令-应答方式。POP3的一个特点是只要用户从POP3服务器读取了邮件,POP3服务器就把该邮件删除,于是用户离开了原来的客户机就不能使用已收到的邮件。

           网际报文访问协议(Internet messageaccess protocol,IMAP)同样用于收取邮件,相对POP3更加复杂,IMAP客户端可与服务器建立TCP连接,用户在自己的主机上就可以操作IMAP邮件服务器的邮箱,IMAP是一个联机协议。IMAP客户程序在检索邮件时,服务器只是将邮件首部信息传送到客户端,打开邮件时才传送完整的邮件。在用户未发出删除邮件的命令之前,IMAP服务器邮箱中的邮件会一直保存。

           Web Mail方式中,不再使用SMTP/POP3或IMAP等邮件访问协议,而是使用Web服务器来代替。Web服务器和用户浏览器之间使用的是HTTP。

    2.2 HTTP

    2.2.1HTTP概述

    HTTP使用TCP作为运输协议。HTTP本身是无连接性的,这也决定了HTTP是无状态的,即HTTP的每个请求-响应会话之间是相互独立的,服务器不保留以前的请求或会话的历史纪录。

           HTTP有三类请求-响应链。第一类是基本的,服务器监听连接上的请求,对于每一个请求,服务器启动一个线程或进程来对它进行服务,请求处理结束后,服务器将响应送回给浏览器。第二类是通过代理服务器,浏览器和代理服务器建立连接并发送请求,代理服务器再想服务器发送请求。第三类是隧道,隧道仅仅是浏览器向服务器发送请求以及回复响应的通道,不执行其他任何功能。

    2.2.2HTTP报文格式

           HTTP请求报文可以分为三个部分。

    Ø  请求行

    请求行包括HTTP方法,请求的URI以及HTTP版本。不同内容之间用空格分隔。

    Ø  头部行

    头部行的每一行都有头部字段名和它的值组成,中间用”:”加空格分开。头部行包括三种类型头部字段。通用头部用于指明请求的时间以及其他与具体实现有关的信息;请求头部给出有关请求、客户机等的附加信息;实体头部主要用于定义后面的实体主体。

    Ø  实体主体

    HTTP响应报文也分为三个部分。

    Ø  状态行

    状态行包括HTTP版本,状态码,解释状态码原因短语。

    Ø  头部行

    包括通用头部,响应头部和实体头部。

    Ø  实体主体

    3.       内容递交

    3.1 Web代理

    HTTP和浏览器都支持Web页面的本地缓存,但是一般本地缓存会带来一定的存储开销,另外用户不太会重复访问相同的页面,因此使缓存更有效的策略之一是在多个用户之间共享缓存。

    Web代理就是这样一个能被多个用户共享的高速缓存。之所以称其为代理,是因为在运行过程中,它总是代表浏览器去获取页面。Web代理可以减少对外访问的流量,可以控制用户对外部Internet的访问等。

    3.2 DNS重定向

    用户在HTTP请求服务器页面前,会先请求DNS服务器解析网站域名,此时DNS服务器会根据这些不同IP地址的循环列表返回其中一个服务器的IP地址。这样就让不同的用户浏览器使用不同的IP地址依次访问不同的服务器。另外还要将域名资源记录的TTL设置为一个较小的值,以使DNS缓存中的记录快速无效。这就称为DNS重定向。

    3.3 P2P网络

           P2P网络也称为对等网络,是一个完全分布的文件共享系统,其基本思路是将多台主机链接到一起并且把它们的资源集中起来形成一个内容分发系统。P2P网络给予了每个普通用户很大的自主权,每个用户都能为网络的扩展做出贡献。

     

    转载请注明原文地址: https://ju.6miu.com/read-27485.html

    最新回复(0)