计算机网络原理(04741)

2023-11-05 05:59

本文主要是介绍计算机网络原理(04741),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.网络协议的定义及协议三要素

2.网络拓扑结构分类

3.数据交换技术

4.时延的概念及分类

5.OSI参考模型

6.TCP/IP参考模型

7.Cookie

8.电子邮件系统结构

9.电子邮件读取协议

10.可靠数据传输措施

11.用户数据报协议(UDP)

12.TCP可靠数据传输

13.TCP的流量控制

14.TCP的拥塞控制

15.网络层拥塞控制

16.局域网冲突域概念

17.网络安全的概念及其基本属性

18.网络主要面临安全威胁

19.防火墙的概念及分类

20.信号噪声

21.差错控制

22.路由器的概念

23.路由器的交换结构

24.地址解析协议(ARP)

25.DNS域名解析

26.对称密钥加密

27.虚电路网络

28.安全电子邮件

29.HTTP连接

30.HTTP报文

31.计算机网络结构

32.快速重传算法的基本思想

33.简述TCP拥塞控制中快速恢复算法


1.网络协议的定义及协议三要素

        协议是计算机网络通信实体之间在数据交换过程中需要遵循的规则或约定,是计算机网络有序运行的重要保证。任何一个协议都会显式或隐式地定义三个基本的要素:语法、语义和时序,称为协议三要素。
        1)语法:语法定义实体之间交换信息的格式与结构,或者定义实体之间传输信号的电平等。
        2)语义:语义定义实体之间交换信息中需要包含哪些控制信息,这些信息的具体含义,以及针对不同含义的控制信息,接收信息端应如何相应。还需要定义彼此采用何种差错编码以及采取何种差错处理机制等。
        3)时序:时序也称为同步,定义实体之间交换信息的顺序以及如何匹配或适应彼此的速度。

2.网络拓扑结构分类

 1)星形拓扑结构:比较多见于局域网、个域网中。
优点:易于监控与管理,故障诊断与隔离容易。
 缺点:中央节点是网络的瓶颈,一旦瘫痪,全网瘫痪,网络规模受限于中央节点的端口数量。

2)总线型拓扑结构:在早期网络中比较多见。
优点:结构简单,所需电缆数量少,易于扩展。
缺点:通信范围受限,故障诊断与隔离较困难,容易产生冲突。

3)环形拓扑结构:多见于早期的局域网、园区网和城域网中。
优点:所需电缆长度短,可以使用光纤,易于避免冲突。
缺点:某节点的故障容易引起全网瘫痪,新节点的加入或撤出过程比较麻烦,存在等待问题。

4)网状拓扑结构:比较多见于广域网、核心网络等。
优点:网络可靠性高,一条或多条链路故障时络仍然可联通;
缺点:网络结构复杂,造价成本高,选路协议复杂。

5)树形拓扑结构:很多局域网采用这种拓扑结构。
优点:易于扩展,故障隔离容易;
缺点:对根结点的可靠性要求高,一旦根结点故障,则可能导致网络大范围无法通信。

6)混合拓扑结构:绝大多数实际网络的拓扑都属于混合拓扑结构,比如Internet。
优点:易于扩展,可以构建不同规模网络,并可根据需要优选网络结构;
缺点:网络结构复杂,管理与维护复杂。

3.数据交换技术

        数据交换是实现在大规模网络核心上进行数据传输的技术基础。常见的数据交换技术包括电路交换、报文交换和分组交换。基于不同交换技术构建的网络分别称之为电路交换网络、报文交换网络和分组交换网络。
         3.1电路交换
        电路交换是最早出现的一种交换方式,而电话网络则是最早、最大的电路交换网络。利用电路交换进行通信包括3个阶段:
        1)建立电路:传输数据之前,必须建立一条端对端的电路,这个电路建立过程实际上就是一个个交换结点的接续过程。
        2)传输数据:被传输的数据可以是数字数据也可以是模拟数据,数据的传输可以是单工也可以是全双工。
        3)拆除电路:数据传输结束后,要释放(拆除)该物理链路。该释放动作可由两个通信主机之间任何一方发起并完成。释放信号必须传送到电路所经过的各个结点,以便重新分配资源。
        电路交换的特点是有连接的,在通信时需要先建立电路连接,在通信过程中独占一个信道,通信结束后拆除电路连接。电路交换的优点是实时性高,时延和时延抖动都较小;缺点是对于突发性数据传输,信道利用率低,且传输速率单一。电路交换主要适用于语音和视频这类实时性强的业务。

        3.2报文交换
        当主机间交换的数据具有随机性和突发性时,采用电路交换方法的缺点是信道容量和有效时间的浪费,于是提出了报文交换的方法。
        报文交换也称为消息交换,其工作过程为:发送方把要发送的信息附加上发送/接收主机的地址及其他控制信息,构成一个完整的报文。然后以报文为单位在交换网络的各结点之间以存储-转发的方式传送,直至送达目的主机。
        优点:无需事先建立连接;线路利用率高。
        缺点:时延较长并且不固定;存储空间不够或者输出链路被占用不能及时转发时,就不得不丢弃报文。

        3.3分组交换
        分组交换需要将待传输数据(即报文)分割成较小的数据块,每个数据块附加上地址、序号等控制信息构成数据分组,每个分组独立传输到目的地,目的地将收到的分组重新组装,还原为报文。分组传输过程通常也采用存储一转发交换方式。
        分组交换是报文交换的一种改进,它将一个完整报文拆分成若干个分组,每个分组的长度有一个上限,有限长度的分组使得每个结点所需的存储能力降低,分组可以存储到内存中,提高了交换速度。分组交换是计算机网络使用最广泛的一种数据交换技术。
        优点:
        1)交换设备的存储容量要求低
        2)交换速度快
        3)可靠传输效率高
        4)更加公平

4.时延的概念及分类

        时延(也叫延迟)是指数据从网络中的一个结点(主机或交换设备等)到达另一结点所需要的时间。计算机网络中,通常将连接两个结点的直接链路称为一个“跳步”,简称“跳”。
        分组的每跳传输过程主要产生4类时延:
        1)结点处理时延(验证差错、修改控制信息);
        2)排队时延(在交换节点暂存的时间);
        3)传输时延(发送完全部数据)——分组长度除以带宽;
        4)传播时延(传播)——链路长度除以信号传播速度;

5.OSI参考模型

        

        5.1物理层
        物理层的主要功能是在传输介质上实现无结构比特流传输。所谓无结构比特流是指不关心比特流实际代表的信息内容,只关心如何将0和1这些比特以合适的信号传送到目的地,因此,物理层要实现信号编码功能。物理层的另一项主要任务就是规定数据终端设备(DTE)与数据通信设备(DCE)之间接口的相关特性,主要包括机械、电气、功能和规程4个方面的特性。
        典型的物理层协议包括RS-232C、RS-449以及其他网络通信标准中有关物理层的协议等。

        5.2数据链路层
        数据链路层的主要功能是实现在相邻结点之间数据可靠而有效的传输。数据在物理介质内传输过程,不能保证没有任何错误发生。为了能实现有效的差错控制,就采用了一种以“帧”为单位的数据块传输方式。数据链路层通常提供的以下几点服务:
        1)组帧。数据链路层一般是将要传输的数据封装成帧,称为组帧或成帧。在组帧过程中,会在数据(例如网络层数据报)的基础上增加帧头(或称帧首)和帧尾,帧头中通常包含发送结点和接收结点的地址等信息,帧尾通常包含用于差错检测的差错编码。组帧过程增加的帧头和帧尾中还有一部分信息,用于帧定界。
         2)链路接入。物理链路可以分为点对点链路和广播链路两大类。在点对点链路中,发送结点和接收结点独占通信链路,只要链路处于空闲状态,随时可以使用链路发送和接收帧,因此链路的接入控制很简单(甚至可以说无须专门控制)。在广播链路中,通信链路被多个结点共享,任意两个结点同时通过链路发送帧,都会彼此干扰,导致帧传输的失败。因此,对于广播链路,各个结点必须运行媒介访问控制(Medium Access Control,MAC)协议,来协调各结点使用共享的物理传输媒介,实现帧的成功传输。
        3)可靠交付。数据链路层协议也可能提供可靠交付的服务,即在相邻结点间经数据链路实现数据报的可靠传输。
        4)差错控制。数据链路层帧在物理媒介上的传播过程中,可能会产生比特翻转的差错。在一段时间内,传输过程出现差错的比特数,占所传输比特总数的比率,称为误比特率。

        5.3网络层
        网络层的主要功能是数据转发与路由。和数据链路层类似,网络层也要具备寻址功能,确保分组()可以被正确传输到目的主机,比如Internet网络中的IP地址。

        5.4传输层
        传输层是第一个端到端的层次,也是进程-进程的层次。数据的通信表面上看是在两台主机之间进行,但实质上是发生在两个主机的进程之间。
        传输层的功能主要包括复用/分解(区分发送和接收主机上的进程)、端到端的可靠数据传输、连接控制、流量控制和拥塞控制机制等。

        5.5会话层
        会话层是指用户与用户的连接,通过在两台计算机间建立、管理和终止通信来完成对话。
        会话层的主要功能:在建立会话时核实双方身份是否有权参加会话;确定双方支付通信费用;双方在各种选择功能方面(如全双工还是半双工通信)取得一致;在会话建立以后,需要对进程间的对话进行管理与控制。

        5.6表示层
        表示层主要用于处理应用实体间交换数据的语法,其目的是解决格式和数据表示的差别,从而为应用层提供一个一致的数据格式,使字符、格式等有差异的设备之间相互通信。
        表示层还可以实现文本压缩/解压缩、数据加密/解密、字符编码的转换等功能。这一层的功能在某些实际数据通信网络中是由应用层来实现的,而且表示层不独立存在。

        5.7应用层
        应用层与提供给用户的网络服务相关,这些服务非常丰富,包括文件传送、电子邮件、P2P应用等。应用层为用户提供了一个使用网络应用的“接口”。

        OSI参考模型的7层中,1~3层主要是完成数据交换和数据传输,称之为网络低层;5~7层主要是完成信息处理服务的功能,称之为网络高层;低层与高层之间由第4层衔接。

6.TCP/IP参考模型

        TCP/IP参考模型包括4层,通常每一层封装的数据包采用不同的名称。
        1)应用层
        TCP/IP参考模型将OSI参考模型中会话层和表示层的功能合并到了应用层来实现。在Internet上常见的一些网络应用大多在这一层,用户通过应用层来使用Internet提供的各种服务,例如,WWW服务、文件传输、电子邮件等。
        每一个应用层协议一般都会使用到两个传输层协议之一进行数据传输:面向连接的传输控制协议TCP和无连接的用户数据报协议UDP。
        2)传输层
        当应用层的程序将用户数据按照特定应用层协议封装好后,接下来就由传输层的协议负责把这些数据传输到接收方主机上对等的应用层程序。传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制,之所以叫作逻辑通信,是因为两个进程之间的通信就像所在的两个主机存在直接连接一样。
        TCP/IP参考模型的传输层主要包括面向连接、提供可靠数据流传输的传输控制协议TCP和无连接不提供可靠数据传输的用户数据报协议UDP 。
        3)网络互联层
        网络互联层是整个TCP/IP参考模型的核心,主要解决把数据分组发往目的网络或主机的问题。在这个过程中,要为分组的传输选择相应的路径(路由选择),完成分组的转发,提供网络层寻址——IP地址。网络互联层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。
        网络互联层还包括互联网控制报文协议ICMP、互联网多播组管理协议IGMP以及路由协议,如BGP、OSPF和RIP等。
        4)网络接口层
        实际上,TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层——网络互联层一个访问接口,以便在其上传递IP分组。由于这一层未被定义,所以其具体的实现方法将随着网络类型的不同而不同。

7.Cookie

        Cookie中文名称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。Web应用引入了Cookie机制,用于用户跟踪。Cookie是由服务器端生成,发送给User-Agent(—般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用Cookie)。目前,主流的商业网站均使用Cookie技术。Cookie技术主要包括4部分内容。
        1)HTTP响应报文中的Cookie头行:Set-Cookie。
        2)用户浏览器在本地存储、维护和管理的Cookie文件。
        3)HTTP请求报文中的Cookie头行:Cookie。
        4)网站在后台数据库中存储、维护Cookie信息,包括已分配给用户ID、每个ID用户在本网站的访问特征等。

        Web网站利用Cookie技术进行用户跟踪,最常见的用途包括以下几点:
        1)网站可以利用Cookie的ID来准确统计网站的实际访问人数、新访问者和重复访问者的人数对比、访问者的访问频率等数据。
        2)网站可以利用Cookie限制某些特定用户的访问。
        3)网站可以存储用户访问过程中的操作习惯和偏好,对不同的用户呈现不同的显示内容、颜色、布局等界面元素,有针对性地为用户提供服务,提升用户体验感。
        4)记录用户登录网站使用的用户名、密码等信息,当用户多次登录时,无须每次都从键盘输入这些烦琐的字符和数字。
        5)电子商务网站利用Cookie可以实现“购物车”功能。对于同一个的用户,网站可以跟踪其向“购物车”中添加的不同商品,每个商品都会和ID—起存储在网站数据库中。当用户选择结账时,网站通过对数据库中该ID的检索,找到用户购买的所有商品,一起实现结账功能。

8.电子邮件系统结构

        电子邮件系统主要包括邮件服务器、简单邮件传输协议(SMTP)、用户代理和邮件读取协议等。
        1)邮件服务器
        邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等),是电子邮件体系结构的核心。每个电子邮件用户在使用电子邮件系统之前,需要向某个邮件服务器申请注册一个邮箱,邮件服务器为每个邮箱分配一定的存储空间,用于存储发送给该用户的邮件。

        2)用户代理
        用户代理(User Agent)是电子邮件应用的客户端软件,为用户提供使用电子邮件的接口。用户代理的主要功能是支持用户撰写、显示、处理和收发邮件,为用户阅读、回复、转发、保存和撰写邮件等提供编辑与操作环境。

        3)简单邮件传输协议(SMTP)
        在发送邮件时,SMTP客户端首先请求与SMTP服务器端的25号端口建立TCP连接,连接一旦建立,便开始进行SMTP应用层交互,实现邮件的发送。当TCP连接建立成功后,SMTP通过3个阶段的应用层交互完成邮件的传输,分别是握手阶段、邮件传输阶段和关闭阶段。

        4)邮件读取协议
        邮件读取协议不是SMTP,而是支持接收邮件的用户主动连接服务器,对其邮箱中的邮件进行操作或申请向本地传输的应用层协议。典型的邮件读取协议有POP、IMAP等。

9.电子邮件读取协议

        邮件读取服务器的主要作用是用户身份鉴别(需要登录用户名和密码)、访问用户邮箱、根据用户请求对邮箱中的邮件进行操作等。目前Internet邮件系统中比较流行的邮件读取协议有第三版的邮局协议(Post Office Protoco-Version3,POP3)、互联网邮件访问协议(Internet Mail Access Protocol,IMAP)和HTTP。

        1)POP3
        POP3是一个简单的邮件读取协议,因此其功能很有限。为了保证读取邮件过程的可靠性,POP3协议使用传输层TCP。POP3客户端运行在用户代理中,POP3服务器运行在邮件服务器上,默认熟知端口号为110。授权(Authorization)、事务处理和更新。在授权阶段,用户代理需要向服务器发送用户名和口令(以明文形式,即非加密),服务器鉴别用户身份,授权用户访问邮箱。由于用户名和口令是明文传输的,所以其安全性并不高。在事务处理阶段,用户代理向服务器发送POP3命令,实现邮件读取、为邮件做删除标记、取消邮件删除标记以及获取邮件的统计信息等操作。在更新阶段,客户发出了quit命令,结束POP3会话,服务器删除那些被标记为删除的邮件。服务器的应答很简单也很简短,主要有两种:一种是+OK,表示前面的命令是正常的,服务器己完成相应操作;另一种是-ERR,表示前面的命令出现了某些差错。

        2)IMAP
        POP3协议不具备支持用户创建远程文件夹并为邮件指派文件夹的功能。互联网邮件访问协议(IMAP)支持这一特性。IMAP和POP3—样,都是邮件读取协议,但是IMAP比POP3具有更多的特性,也比POP3更复杂。IMAP服务器将每个邮件与一个文件夹进行关联,当邮件第一次到达服务器时,与收件人的INBOX文件夹相关联。通过IMAP,收件人可以在服务器上创建新的文件夹,并可以对邮件进行移动、查询、阅读、删除等操作。与POP3不同,IMAP服务器维护了IMAP会话的用户状态信息,例如,文件夹的名字以及哪些邮件与哪些文件夹相关联等。
        IMAP的另一个重要特性是允许用户代理只读取邮件的部分内容,例如,一个用户代理可以只读取一个邮件的首部等。当用户代理访问IMAP服务器的网络带宽比较低,或者想先看一下邮件主题然后再决定是否要下载整个邮件时,这个特性就非常有用。

        3)HTTP
        Web邮件的优点之一是用户代理就是普通的Web浏览器,用户无须为了使用邮件而安装专用的电子邮件用户代理软件,并且基于用户熟悉的Web操作方式收发邮件,用户体验更好。在Web邮件系统中,当收件人想从他的邮箱中读取一封邮件时,该电子邮件报文从其邮件服务器发送到浏览器的过程中,使用的是HTTP而不是POP3协议或者IMAP,即HTTP是Web邮件系统的邮件读取协议。另外,需要强调一点,当发件人要发送一封电子邮件时,在电子邮件报文从浏览器发送到邮件服务器的过程中,使用的也是HTTP,而不是SMTP。
        当然,Web邮件与普通电子邮件系统的主要区别在于用户代理与邮件服务器之间的邮件收发不同,而邮件服务器与其他邮件服务器之间的发送和接收过程并没有区别,仍然使用SMTP。

10.可靠数据传输措施

        不可靠传输信道的不可靠性主要表现:首先,不可靠传输信道在传输数据的过程中,可能发生比特差错。也就是说,交付给这样的信道传输的数据可能出现比特跳变,即0错成1或1错成0的现象。其次,不可靠传输信道在传输数据的过程中,可能出现乱序,即先发的数据包后到达,后发的数据包先到达。最后,不可靠传输信道在传输数据的过程中,可能出现数据丢失,即部分数据会在中途丢失,不能到达目的地。
        当基于不可靠传输信道设计可靠数据传输协议时,就需要采取一些措施来应对底层信道的不可靠性所带来的问题:

        1)差错检测:利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)。差错编码就是在数据上附加冗余信息(通常在数据后),这些冗余信息建立了数据(位)之间的某种逻辑关联。数据发送方对需要检测差错的数据,如协议数据单元,进行差错编码,然后将编码后的数据(包括差错编码附加的冗余信息)发送给接收方;接收方依据相同的差错编码规则(或算法),检验数据传输过程中是否发生比特差错。

        2)确认:接收方向发送方反馈接收状态。基于差错编码的差错检测结果,如果接收方接收到的数据未发生差错,并且是接收方期望接收的数据,则接收方向发送方发送ACK数据包,称为肯定确认(Positive Acknowledgment),表示已正确接收数据;否则发送NAK数据包,称为否定确认(Negative Acknowledgment),表示没有正确接收数据。

        3)重传:发送方重新发送接收方没有正确接收的数据。发送方如果收到接收方返回的ACK数据包,则可以确认接收方已正确接收数据,可以继续发送新的数据;如果收到NAK,表明接收方没有正确接收数据,则将出错的数据重新向接收方发送,纠正出错的数据传输。

        4)序号:确保数据按序提交。由于底层信道不可靠,可能出现数据乱序到达,因此对数据包进行编号,这样,即便数据包不是按序到达的,接收方也可以根据数据包的序号纠正数据顺序,实现向上层按序提交数据。另外,在数据包中引入序号,还可以避免由于重传可能引起的重复数据被提交的问题。

        5)计时器:解决数据丢失问题。虽然上述措施在应对数据差错时已经足够有效,但是却无法解决数据丢失问题。因为,当发生数据丢失时,接收方不会收到相应的数据包,自然也就不会对丢失的数据包进行确认,发送方也就不会重发丢失的数据包来纠正这一错误。引入计时器就可以解决这一问题,发送方在发送了数据包后就启动计时器,在计时器发生超时时还没有收到接收方的确认,就主动重发数据包,从而可以纠正数据丢失问题。当然,如果计时器的超时时间设置太短,则可能导致原本没有丢失的数据包也被重发了,从而可能导致接收方收到两份(甚至多份)相同的数据包副本。
        这种状况虽然不是理想状态(因为浪费了网络传输能力),但是接收方可以根据重复数据包的序号判断出是重复数据包,这样就可以将重复的数据包丢弃,只向其上层提交一份数据,因此可靠数据传输的目标并未被破坏。

11.用户数据报协议(UDP)

        用户数据报协议UDP是Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务。UDP是一种轻量级传输层协议,只做了传输层协议需要完成的最少功能的协议,除了复用/分解功能以及简单的差错检测外,几乎没有对网络层的IP增加任何功能。
        UDP优势:
        1)应用进程更容易控制发送什么数据以及何时发送。采用UDP时,只要应用进程将数据传递给UDP,UDP就会将此数据打包进UDP报文段并立即将其传递给网络层。实时性网络应用,如实时网络多媒体应用,通常要求端到端吞吐量大于等于某个最小发送速率,不希望过分地延迟报文段的传送,且能容忍一些数据丢失,TCP服务模型显然不是特别适合这类应用的需要,而UDP则适合这类应用。
        2)无需建立连接。与TCP需要三次握手建立连接过程不同(后面将要讨论),UDP不需要任何准备即可进行数据传输。因此,UDP不会引入建立连接(根本就无连接)的时延。这也许是DNS通常运行在UDP上的主要原因之一。
        3)无连接状态。TCP需要在端系统中维护连接状态,包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数等;而UDP是无连接的,因此也无需维护连接状态。因此,TCP系统资源开销大,UDP系统开销小。通常情况下,某些服务器当运行在UDP之上而不是TCP上时,一般都能支持更多的活跃客户。
        4)首部开销小。每个TCP报文段都至少有20字节的首部开销,而UDP仅有8字节的开销。

       需要说明的一点是,虽然UDP提供不可靠传输服务,但使用UDP的应用仍然可以实现可靠数据传输。这可以通过在应用程序自身中建立可靠传输机制来完成,如前面介绍的停-等协议或滑动窗口协议等。也就是说,应用进程可以使用UDP的同时进行可靠通信,只是需要在应用层设计可靠传输机制而已。

12.TCP可靠数据传输

        TCP在提供不可靠尽力服务的IP之上实现端到端的可靠数据传输。TCP的可靠数据传输服务确保了一个进程从其接收缓存中读出的数据流是无差错、无缺失、无冗余以及无乱序的字节流,该字节流与连接的另一方端系统发送出的字节流是完全相同的。
        TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等。
        TCP能够提供可靠的数据传输服务,是通过以下工作机制来实现的:
        1)应用数据被分割成TCP认为最适合发送的数据块(通常是MSS),封装成TCP段,传递给IP。
        2)当TCP发出一个段后,启动一个计时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,则认为该报文段丢失,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,将发送一个确认段。
        3)TCP首部中设有校验和字段,用于检测数据在传输过程中是否发生差错。如果收到的报文段通过校验和检测,发现有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发送端超时并重发),而将已连续接收到的应用层数据的最后一个字节的序号加1,作为确认序号,向发送方发送确认段。
        4)由于TCP报文段封装到IP数据报中传输,而IP数据报的到达可能会经过不同的路径从而造成顺序的错乱,因此TCP报文段的到达也可能会失序。如果必要,TCP将根据序号对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
        5)由于存在网络延迟和重传机制,TCP的接收端有可能会收到多个重复的报文段,这时接收端需要根据序号把重复的报文段丢弃。
        6)TCP能够提供流量控制。TCP连接的每一方都在建立连接时分配一定大小的接收缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这可以防止较快主机发送数据太快,致使较慢主机的缓冲区溢出。

13.TCP的流量控制

        流量控制(flow control)的目的是协调协议发送方与接收方的数据发送与接收速度,避免因发送方发送数据太快,超出接收方的数据接收和处理能力,导致接收方被数据“淹没”,即数据到达速度超出接收方的接收、缓存或处理能力,致使数据在接收方被丢弃。流量控制问题不仅存在于端到端的传输层,也存在于数据链路层。因此,某些传输层协议(比如TCP)和数据链路层协议都可能进行流量控制。实现流量控制的方法有很多,基本原理可以采用前面介绍的停-等协议或滑动窗口协议来实现。

14.TCP的拥塞控制

        拥塞是指太多主机以太快的速度向网络中发送太多的数据,超出了网络处理能力,导致大量数据分组“拥挤”在网络中间设备(如路由器)队列中等待转发,网络性能显著下降的现象。拥塞的直接后果是:数据分组通过网络的时延显著增加、由于队列满导致大量分组被丢弃。
        TCP的拥塞控制是从端到端的角度,推测网络是否发生拥塞,如果推断网络发生拥塞,则立即将数据发送速率降下来,以便缓解网络拥塞。TCP的拥塞控制采用的也是窗口机制,通过调节窗口的大小实现对发送数据速率的调整。
        TCP拥塞控制窗口的调节,分为慢启动(slow start)阶段和拥塞避免(congestion avoidance)阶段,慢启动阶段窗口从一个MSS快速增长,达到某个阈值后转为拥塞避免阶段;拥塞避免阶段的窗口增长放慢。

15.网络层拥塞控制

        在分组交换网中,由于众多的用户随机地将信息送入网络,使网络中需要传输的信息总量经常大于其传输能力,以至于某些网络结点(如路由器)因缓冲区已满,无法接收新到达的分组,此时就发生了所谓的拥塞现象。拥塞是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的总需求超过了网络固有的容量。
        发生拥塞的原因主要有如下4种:
        1)缓冲区容量有限。
        2)传输线路的带宽有限。
        3)网络结点的处理能力有限。
        4)网络中某些部分发生了故障。

        网络出现拥塞就意味着负载暂时大于网络资源的处理能力,因此对于拥塞的解决一般可从两个方面进行:增加网络资源或者是减小网络负载。增加网络资源,就是在网络出现拥塞前为网络中的各个结点分配更多可用的资源,从而降低拥塞出现的可能性,即拥塞预防;而减小网络负载,一般是指在网络中已经出现负载大于资源的情况下(即拥塞),通过减小当前网络的负载来实现对拥塞的消除,这种策略一般被称作拥塞消除。

       在网络层常采用的拥塞控制措施:
        1)流量感知路由:流量感知路由是一种拥塞预防措施,能够根据网络负载情况,将网络流量引导到不同的链路上,均衡网络负载,可以在一定程度上缓解或预防拥塞的发生。
        2)准入控制:准入控制是一种广泛应用于虚电路网络的拥塞预防技术。准入控制的基本思想是对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路。
        3)流量调节:当路由器感知到网络发生了拥塞时,应该如何将这个拥塞信息通知到其上游结点,从而使之降低发送速率。解决这个问题的方法有几种:
  a)抑制分组:通知拥塞上游的最直接的方式是直接告知发送方。感知到拥塞的路由器选择一个被拥塞的数据报,然后给他的源主机发送一个抑制分组。
  b)背压:就是让抑制分组在从拥塞结点到源结点的路径上的每一跳都发挥抑制作用。当抑制分组从拥塞结点传输到上游的第一跳时,接收到抑制分组的结点便会立即降低其向拥塞结点发送分组的速率,从而在极短的时间内使得拥塞结点的拥塞状况得到缓解。使抑制分组逐跳发挥作用的背压方式,可以使拥塞结点的拥塞状况很快得到缓解,但其代价是抑制分组途径的每一跳都需要分配更大的缓冲区。
        4)负载脱落:负载脱落是消除拥塞的另一种方法,即通过有选择地主动丢弃一些数据报,来减轻网络负载,从而缓解或消除拥塞。当路由器中的数据报得不到及时处理,可能面临被丢弃的危险时,路由器就主动将该数据报丢弃掉。

16.局域网冲突域概念

        冲突域是指在一个局域网内,如果任意两个结点同时向物理介质中发送信号(数据),这两路信号一定会在物理介质中相互叠加或干扰,从而导致数据发送的失败,那么,这两个结点位于同一个冲突域。在以太网中,CSMA/CD 协议的冲突检测范围就是一个冲突域。

17.网络安全的概念及其基本属性

        网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

        网络安全通信所需要的基本属性包括机密性、消息完整性、可访问与可用性及身份认证:
         1)机密性(confidentiality)。只有发送方与预定接收方能够理解报文内容。发送方发送前将报文加密,防止入侵者截获窃取,接收方接收到报文后对报文解密。
        2)消息完整性(message integrity)。发送方与接收方希望确保消息未被篡改(传输途中或者后期),发生篡改一定会被检测到。考虑到即使接收方能够与发送方相互鉴别,还需要检测报文在传输过程中是否被篡改。
        3)可访问与可用性(access and availability)。可访问与可用性是网络信息可被授权实体访问并按需求使用的特性,即网络信息服务在需要时,允许授权用户或实体使用的特性,或者是网络部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性。
        4)身份认证(authentication)。发送方与接收方希望确认彼此的真实身份。身份认证是对数据的来源进行确认,比如用户A和用户B通过网络传输数据,他们都希望自己收到的数据是来自B和A,而不是由其他人伪造的。

18.网络主要面临安全威胁

        1)报文传输方面,主要有窃听、插入、假冒、劫持等安全威胁。
  √窃听指的是在报文传输过程中窃听信息,获取报文信息,获取报文信息。
  √插入威胁指的是攻击者主动在连接中插入信息,混淆信息,让接收信息者收到虚假信息。
  √假冒指的是可以伪造分组中的源地址(或者分组的任意其他字段)。
  √劫持指的是通过移除/取代发送方或者接收方“接管”连接。

        2)常见的网络攻击还包括拒绝服务DoS以及分布式拒绝服务DDoS等。拒绝服务是指阻止服务器为其他用户提供服务,例如,通过向接收方恶意泛洪分组,淹没接收方,导致带宽耗尽,资源耗尽等过载资源情况。分布式拒绝服务DDoS是指利用多个源主机协同淹没接收方 。

        3)映射安全威胁,攻击原理如下:在发起攻击前先“探路”,找出网络上在运行什么服务,然后利用ping命令确定网络上的主机的地址,最后使用端口扫描的方法依次尝试与每个端口建立TCP连接。Nmap就是国外广为使用的端口扫描工具之一。

        4)分组“嗅探”安全威胁。“嗅探”通常发生在共享式以太网或者无线网络中,“嗅探”主机通过混杂模式网络接口卡,可以接收或记录所有广播介质上的分组/帧,可以读到所有未加密数据,例如,口令等。当然,“嗅探”也并非都是安全威胁,“嗅探”也是协议分析或网络管理等所采用的技术手段,例如,Wireshark就是一个典型的分组嗅探软件。

        5)IP欺骗安全威胁,它可以直接由应用生成“原始”IP分组,设置分组的源IP地址字段为任意值,接收方无法判断源地址是否被欺骗,可能导致错误数据的接收,或者隐藏网络安全攻击身份。

19.防火墙的概念及分类

        防火墙是能够隔离组织内部网络与公共互联网,允许某些分组通过,而阻止其他分组进入或离开内部网络的软件、硬件或者软件硬件结合的一种设施。
        防火墙大致可以分无状态分组过滤器、有状态分组过滤器、应用网关三类:
        1)无状态分组过滤器(stateless packet filters):无状态分组过滤器是典型的部署在内部网络和网络边缘路由器上的防火墙。一个机构网络通常都会有至少一个将其内部网络与外部Internet相连的网关路由器。所有进入和离开内部网络的流量都会经过网关路由器。分组过滤是网关路由器的重要功能之一,路由器逐个检查数据报,然后基于特定的规则对分组是通过还是丢弃进行决策。
    进行过滤时通常基于以下参数进行决策:
  a)IP数据报的源IP地址和目的IP地址。
  b)TCP/UDP报文段的源端口号和目的端口号。
  c)ICMP报文类型。
  d)TCP报文段的SYN和ACK标志位等。

        2)有状态分组过滤器(stateful packet filters):无状态分组过滤器弊不加区分的放行所有满足条件的分组,而有状态分组过滤器会使用连接表跟踪每个TCP连接。分组过滤器跟踪连接建立(SYN),拆除(FIN),根据状态确定是否放行进入或者外出的分组。对于超时的非活动连接,则不再允许分组通过。

        3)应用网关(application gateway):分组过滤器可以实现根据IP的内容和TCP/UDP首部信息执行粗粒度的过滤,但它们都无法鉴别用户身份或针对授权用户开放特定服务,因为有关用户身份的信息都是应用层数据,都不在TCP/UDP传输层数据头部中。因此,为了进一步提高防火墙的安全性,防火墙还必须把分组过滤器和应用程序网关结合起来,应用网关实现授权用户通过网关访问外部网络的Telnet服务。

20.信号噪声

        信号在信道传输过程中,会受到各种噪声的干扰,从而导致传输差错。噪声可以大致分为随机噪声和冲击噪声两大类。随机噪声包括热噪声、传输介质引起的噪声等,具有典型的随机特征;冲击噪声是指突然发生的噪声,如雷击、电机启停等,具有很强的突发性,并且容易造成一段时间的传输差错。

21.差错控制

        差错控制就是通过差错编码技术,实现对信息传输差错的检测,并基于某种机制进行差错纠正和处理,是计算机网络中实现可靠传输的重要技术手段,并在许多数据链路层协议中应用。
信号在信道传输过程中,会受到各种噪声的干扰,从而导致传输差错。典型的差错控制方式包括检错重发、前向纠错、反馈校验和检错丢弃4种基本方式:
        1)检错重发
        检错重发是一种典型的差错控制方式,在计算机网络中应用广泛。在检错重发方式中,发送端对待发送数据进行差错编码,编码后的数据通过信道传输,接收端利用差错编码检测数据是否出错,对于出错的数据,接收端请求发送端重发数据加以纠正,直到接收端接收到正确数据为止。第三章介绍的停-等协议和滑动窗口协议实现的都是这类差错控制方式。
        2)前向纠错
        前向纠错(Forward Error Correction,FEC)是接收端进行差错纠正的一种差错控制方法。前向纠错机制需要利用纠错编码,即这类编码不仅可以检测数据传输过程中是否发生了错误,而且还可以定位错误位置并直接加以纠正。
        3)反馈校验
        反馈校验方式的接收端将收到的数据原封不动发回发送端,发送端通过比对接收端反馈的数据与发送的数据可以确认接收端是否正确无误接收了已发送的数据。
        4)检错丢弃
        不同网络应用对可靠性的要求不同,某些应用(如实时多媒体播报应用)可以采用一种简单的差错控制策略,不纠正出错的数据,而是直接丢弃错误数据,这种差错控制方式就是检错丢弃。显然,这种差错控制方式通常适用于容许一定比例的差错存在,只适用于实时性要求较高的系统。

22.路由器的概念

        路由器是一种具有多个输入端口和多个输出端口的专用计算机,主要任务是获取与维护路由信息以及转发分组。路由器是最典型的网络层设备。路由器从功能体系结构角度,可以分为输入端口、交换结构、输出端口与路由处理器。
        1)输入端口
        输入端口负责从物理接口接收信号,还原数据链路层帧,提取IP数据报(或其他网络层协议分组),根据IP数据报的目的IP地址检索路由表,决策需要将该IP数据报交换到哪个输出端口。
        2)交换结构
        当分组到达路由器后,通过在输入端口上的处理,分组将会被转发至哪个输出端口上已经确定,具体的转发工作则是由交换结构来完成。
        3)输出端口
        输出端口首先提供一个缓存排队功能,排队交换到该端口的待发送分组,并从队列中不断取出分组进行数据链路层数据帧的封装,通过物理线路端接发送出去。
        4)路由处理器
        路由处理器就是路由器的CPU,负责执行路由器的各种指令,包括路由协议的运行、路由计算以及路由表的更新维护等。

23.路由器的交换结构

        交换结构完成将输入端口的IP数据报交换到指定的输出端口。主要包括基于内存交换、基于总线交换和基于网络交换的3种交换结构。
        1)基于内存交换。最早期的路由器就像传统的计算机,在路由处理器的直接控制下,输入端口和输出端口就像操作系统中的I/O设备。当分组到达输入端口时,通过中断方式将分组由输入端口送至内存,路由处理器对内存中的分组首部进行解析,获取其目的地址,并根据目的地址查找转发表,确定将该分组转发至哪个端口,进而将分组由内存复制到相应的输出端口。
        2)基于总线交换。在基于总线交换的交换结构中,路由器的输入端口与输出端口同时连接到一条数据总线上,到达输入端口的分组首先经过查询转发表,确定要转发到的输出端口,然后分组经由数据总线传输至指定输出端口,这类似于计算机I/O中的DMA方式,无须路由处理器介入即可实现交换功能。由于总线具有独占性特征,因此,当多个输入端口有分组到达时,只有一个分组能够通过总线传输到相应输出端口,而其他输入端口的分组只能排队等待。
        3)基于网络交换。在基于总线交换的交换结构中,同一时刻只能有一个分组通过总线进行传输,这显然会影响分组交换的效率。因此,为了克服单一、独占式的总线所带来的限制,可以使用一个复杂的互联网络来实现交换结构。相比于基于总线交换,基于网络交换可以实现并行交换传输,使得交换效率得到了较大的提高。需要注意的是,若两个分组经由不同的输入端口到达,且均需要转发到相同的输出端口,则在同一时刻只能转发其中一个分组,而另一个需要等待。

        交换结构的性能在很大程度上决定了路由器的性能,上述3种交换结构中,基于内存交换的交换结构性能最低,相应的路由器通常价格也最便宜,基于网络交换的交换结构性能最好,通常这类路由器价格也比较昂贵。

24.地址解析协议(ARP)

        地址解析协议(Address Resolution Protocol,ARP),用于根据本网内目的主机或默认网关的IP地址获取其MAC地址。ARP的基本思想:在每一台主机中设置专用内存区域,称为ARP高速缓存(也称为ARP表),存储该主机所在局域网中其他主机和路由器(即默认网关)的IP地址与MAC地址的映射关系,并且这个映射表要经常更新。ARP通过广播ARP查询报文,来询问某目的IP地址对应的MAC地址,即知道本网内某主机的IP地址,可以查询得到其MAC地址。
        ARP与DNS类似,但是,两者之间有明显的区别:首先,解析内容不同,DNS将主机域名解析为对应的IP地址;而ARP将IP地址解析为对应的MAC地址。其次,解析范围不同,DNS可以解析Internet内任何位置的主机域名;而ARP只为在同一个子网上的主机和路由器接口解析IP地址。最后,实现机制不同,DNS是一个分布式数据库,DNS的解析需要在层次结构的DNS服务器之间进行查询;而ARP通过在局域网内广播ARP查询,维护ARP表,获取同一子网内主机或路由器接口的IP地址与MAC地址映射关系。

25.DNS域名解析

        DNS为了实现域名解析,需要建立分布式数据库,存储网络中域名与IP地址的映射关系数据,这些数据库存储在域名服务器上,域名服务器根据用户的请求提供域名解析服务。DNS作为分布式数据库,域名服务器分布在整个互联网上,每个域名服务器只存储了部分域名信息。为了完成域名解析,通常需要在多个域名服务器之间进行查询。
        DNS为了实现域名的有效管理与高效查询,DNS服务器按层次结构进行组织,并且该层次结构与域名的结构相对应。
        域名解析分为递归解析和迭代解析。提供递归查询服务的域名服务器,可以代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器;提供迭代查询的服务器,不会代替查询主机或其他域名服务器,进行进一步的查询,只是将下一步要查询的服务器告知查询主机或服务器(当然,如果该服务器拥有最终解析结果,则直接响应解析结果)。
        一般情况下主机与本地域名服务器之间是递归解析,本地域名服务器和其他域名服务器之间是迭代解析。
        整个互联网上的根域名服务器数量有限,如果每次都去查询根域名服务器,则根域名服务器的压力很大,会严重影响查询响应时间和查询效率。所以需要一些策略和方案来改进域名系统的查询效率。典型策略之一是域名服务器增加缓存机制,即在为客户做出响应的同时,每个域名服务器会将在域名解析过程中解析到的结果存储到域名数据库中,当再次收到相同域名信息的查询请求时,便可利用缓存的信息直接做查询响应,从而缩短域名查询响应时间。

26.对称密钥加密

        1)DES加密算法
        DES是典型的分组密码,使用56位的密钥,明文为64位分组序列,共进行16轮的加密,每轮加密都会进行复杂的替代和置换操作,并且每轮加密都会使用一个由56位密钥导出的48位子密钥,最终输出与明文等长的64位密文。

       2)三重DES
        由于DES密钥只有56位,易于遭受穷举式攻击。作为一种替代加密方案,Tuchman提出使用两个密钥的三重DES加密方法,并在1985年成为美国的一个商用加密标准。该方法使用两个密钥,执行三次DES算法。加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。

        3)AES加密算法
        随着DES逐渐不能适应现代密码安全性需求,就连三重DES也无法适应,于是,美国国家标准及技术委员会,提出美国政府需要一种新的密码标准。
        AES加密过程涉及4种操作:字节替代、行移位、列混淆和轮密钥加。解密过程分别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的密钥分别由初始密钥扩展得到。
        AES加密算法特点:
  ●分组长度和密钥长度均可变。
  ●循环次数允许在一定范围内根据安全要求进行修正。
  ●汇聚了安全、效率、易用、灵活等优点。
  ●抗线性攻击和抗差分攻击的能力大大增强。
  ●如果1s暴力破解DES,则需要149万亿年破解AES。

        4)IDEA加密算法
        国际数据加密算法(IDEA)是1992年由Lai和Massey提出的一个非常成功的分组密码,并且广泛应用在安全电子邮件PGP中。
        IDEA加密算法是一个分组长度为64位的分组密码算法,密钥长度为128位,同一个算法即可用于加密,也可用于解密。算法运用硬件与软件实现都很容易,而且比DES算法在实现上快得多。IDEA自问世以来,已经经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。

27.虚电路网络

        虚电路网络在网络层提供面向连接的分组交换服务。通信之前,双方需要先建立虚电路,通信结束后再拆除虚电路。虚电路是在源主机到目的主机的一条路径上建立的一条网络层逻辑连接,为区别于电路交换中的电路,称之为虚电路。虚电路网络是一种分组交换网络,虚电路只是标识了从源到目的的一条网络层逻辑连接,并不需要为每条虚电路分配独享资源。

        每条虚电路都有虚电路号,称为虚电路标识(VCID),沿某条虚电路传输的分组中包含所属虚电路的VCID。虚电路网络设备根据分组所携带的VCID判断其所属的虚电路,从而决策如何转发分组,并确保分组沿对应的虚电路送达目的。

一条虚电路由 3 个要素构成:
(1)从源主机到目的主机之间的一条路径;
(2)该路径上的每条链路各有一个虚电路标识(VCID);
(3)该路径上每台分组交换机的转发表中记录虚电路标识的接续关系。

        虚电路交换与数据报交换的主要差别表现为:是将顺序控制、差错控制和流量控制等功能交由网络来完成,还是由端系统来完成。虚电路网络(如ATM网络)通常由网络完成这些功能,向端系统提供无差错数据传送服务,而端系统则可以很简单;数据报网络(如Internet)通常网络实现的功能很简单,如基本的路由与转发,顺序控制、差错控制和流量控制等功能则由端系统来完成。


28.安全电子邮件

        电子邮件安全性问题例如:
        1)常见的垃圾邮件;
        2)诈骗邮件;
        3)网络蠕虫和病毒邮件等。

        作为一个网络应用,电子邮件对网络安全的需求有:
        1)机密性:传输过程中不被第三方阅读到邮件内容,只有真正的接收方才可以阅读邮件。
        2)完整性:支持在邮件传输过程中不被篡改,若发生篡改,通过完整性验证可以判断出该邮件被篡改过。
        3)身份认证性:电子邮件的发送方不能被假冒,接收方能够确认发送方的身份。
        4)抗抵赖性:发送方无法对发送的邮件进行抵赖。接收方能够预防发送方抵赖自己发送过的事实。

29.HTTP连接

        1)非持久连接的HTTP
        非持久连接的HTTP/1.0协议每请求传输一个对象(Web页或图像文件),都需要新建立一条TCP连接,对象传输结束,马上断开连接。这种串行方式请求每个对象时,每次都要新建立TCP连接,因此都要经历TCP拥塞控制的慢启动阶段,使得TCP连接工作在较低的吞吐量状态,延迟会更加明显。
        为了提高或改善HTTP的性能,需要对HTTP/1.0的这种默认的非持久连接使用方式进行优化,典型的优化技术包括以下两种:
        ①并行连接,通过建立多条并行的TCP连接,并行发送HTTP请求和并行接收HTTP响应。(不存在复用)
        ②持久连接,重用已建立的TCP连接发送新的HTTP请求和接收HTTP响应,从而消除新建TCP连接的时间开销。(存在复用)


       2)并行连接
        通过并行连接加速或优化HTTP是比较典型的技术手段,目前几乎所有的浏览器都支持并行连接,当然支持的并行连接数是有限制的。通常情况下,并行连接可以有效提高HTTP性能,减少Web页加载时间。
        并行连接并不一定总能减小延迟,加快网页加载速度,例如,客户主机接入链路带宽受限。另外,并行连接会增加客户端主机的资源开销,如内存开销,因此系统通常对同时建立的并行TCP连接数有限制。同样,服务器通常也会对来自同一客户的并行TCP连接数有所限制。

        3)持久连接
        客户端请求了Web页后,继续传输引用的图像文件,这些图像文件多数情况下位于与Web页所在的服务器相同的服务器,即具有站点局部性特点。这种情况下,可以不断开已建立的TCP连接,而是利用该连接继续请求传输后续的JPEG小图像,这种TCP连接称为持久连接。进一步,根据使用持久连接传输多个对象的策略不同,持久连接又分为两种工作方式:非流水方式持久连接和流水方式持久连接。
        ①非流水方式持久连接:也称为非管道方式持久连接,客户端在通过持久连接收到前一个响应报文后,才能发出对下一个对象的请求报文。与非持久连接相比,连续请求多个对象时(例如,Web页内引用多个图像),只需建立一次TCP连接,这样,每获取一个对象只需1个RTT时间。
客户端请求了Web页后,继续传输引用的图像文件,这些图像文件多数情况下位于与Web页所在的服务器相同的服务器,即具有站点局部性特点。这种情况下,可以不断开已建立的TCP连接,而是利用该连接继续请求传输后续的JPEG小图像,这种TCP连接称为持久连接。进一步,根据使用持久连接传输多个对象的策略不同,持久连接又分为两种工作方式:非流水方式持久连接和流水方式持久连接。
        ②流水方式持久连接:也称为管道方式持久连接,客户端在通过持久连接收到前一个对象的响应报文之前,连续依次发送对后续对象的请求报文,然后再通过该连接依次接收服务器发回的响应报文。使用流水方式持久连接时,获取一个对象平均时间远小于1个RTT时间,如果忽略对象传输时间,连续请求的多个对象只需1个RTT时间。HTTP/1.1默认情况下使用流水方式持久连接。

        HTTP/1.1的持久连接默认是激活的,除非特别声明,否则HTTP/1.1假定所有连接均是持久的。如果希望结束持久连接,可以在报文中显式地添加connection:close首部行。也就是说,HTTP/1.1客户端在收到的响应报文中没有包含connection:close首部行,则继续维持连接为打开状态。当然,不在响应报文中发送connection:close首部行,并不意味着服务器就承诺永久将连接保持在打开状态,比如超过一定时间,就可能主动关闭。HTTP/1.1使用持久连接的主要约束与规则如下:
        a)如果客户端不期望在连接上发送其他请求,则应该在最后一条请求报文中包含connection:close首部行。
        b)如果客户端在收到的响应报文中包含connection:close首部行,则客户端不能再在这条连接上发送更多的请求。
        c)每个持久连接只适用于一跳传输,HTTP/1.1代理必须能够分别管理与客户端和服务器的持久连接。
        d)HTTP/1.1代理服务器不应该与HTTP/1.0客户端建立持久连接。

30.HTTP报文

        HTTP报文由4部分组成:起始行(startline)、首部行(headerlines)、空白行(blankline)和实体主体(entitybody),起始行与首部是行分隔的ASCII文本,每行由CRLF(回车换行)终止,空白行中只有CRLF,主体(或称报文主体)可以是文本或二进制数据。HTTP报文起始行和空白行不可缺少,首部行可以是零行或多行,实体主体则根据报文类型、功能等可有可无。

        HTTP典型的请求方法有GET、HEAD、POST、OPTION、PUT等:
        1)GET:请求读取由URL所标识的信息,是最常见的方法。
        2)HEAD:请求读取由URL所标识的信息的首部,即无须在响应报文中包含对象。
        3)POST:给服务器添加信息(例如,注释)。
        4)OPTION:请求一些选项的信息。
        5)PUT:在指明的URL下存储一个文档。

31.计算机网络结构

        1)网络边缘:所有使用到互联网服务的终端。

        2)接入网络:是实现网络边缘的端系统与网络核心连接与接入的网络。
        常见有以下几类:
        a)电话拨号接入:这类接入方式在早期接入网络中主要用于家庭接入,利用了电话网络覆盖广泛的优点,能够方便地实现分散的家庭用户接入网络。但是这种接入方式的接入链路带宽有限,最大带宽通常为56kbit/s,对于现代Internet网络用户来说,显然带宽太低。
        b)非对称数字用户线路ADSL(也是电话):电话机连接电话端局的线路称为用户线路。ADSL是目前家庭用户接入网络中比较常见的一种接入方式。ADSL技术基于频分多路复用技术(FDA)。
        c)混合光纤同轴电缆HFC接入网络(有线电视网):HFC接入网络也称为电缆调制解调器接入,是利用有线电视网络实现网络接入的技术。HFC接入是共享式接入,即连接到同一段同轴电缆上(比如同一栋住宅楼内)的用户共享上行和下行带宽。
        d)局域网(光纤到户、学校、企业):典型的局域网技术是以太网、Wi-Fi等。
        e)移动接入网络(3G/4G/5G):个人设备接入网络的首选途径。

        3)网络核心:ISP通过数据交换实现中继和转发。
        网络核心是由通信链路互连的分组交换设备构成的网络,作用是实现网络边缘中主机之间的数据中继与转发。比较典型的分组交换设备是路由器和交换机等。

32.快速重传算法的基本思想

        算法的基本思想是:接收端每收到一个失序的报文段后就立即发出重复确认,以便更早地通知发送端有丢包情况发生。发送端会在收到三次重复确认段后立即重传丢失的报文段,而不需要等待计时器超时。

33.简述TCP拥塞控制中快速恢复算法

        快速恢复是配合快速重传所使用的算法,具体做法是,当发送端连续收到三次重复确认时,将阈值Threshold减半,并将拥塞窗口的CongWin值置为减半后的Threshold。然后开始执行拥塞避免算法,使CongWin缓慢地线性增长。快速恢复算法是TCP推荐的算法而不是必须的,一种称为TCP Tahoe的TCP早期版本,不管是发生超时还是三次重复ACK指示的丢包事件,都将拥塞窗口减至一个MSS。并重新进入慢启动阶段。TCP的较新版本TCP Reno则综合了快速恢复,区别对待计时器超时和三次重复确认。

这篇关于计算机网络原理(04741)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347886

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

Smarty模板执行原理

为了实现程序的业务逻辑和内容表现页面的分离从而提高开发速度,php 引入了模板引擎的概念,php 模板引擎里面最流行的可以说是smarty了,smarty因其功能强大而且速度快而被广大php web开发者所认可。本文将记录一下smarty模板引擎的工作执行原理,算是加深一下理解。 其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者

Restful API 原理以及实现

先说说API 再说啥是RESRFUL API之前,咱先说说啥是API吧。API大家应该都知道吧,简称接口嘛。随着现在移动互联网的火爆,手机软件,也就是APP几乎快爆棚了。几乎任何一个网站或者应用都会出一款iOS或者Android APP,相比网页版的体验,APP确实各方面性能要好很多。 那么现在问题来了。比如QQ空间网站,如果我想获取一个用户发的说说列表。 QQ空间网站里面需要这个功能。

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控