有状态协议
⑴ 为什么说HTTP是无状态协议
Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环专境进行解析,除了应用属本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。
自己的理解,在asp.NET里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.Net中保存页面信息的基本单位,应用时就是保存在控件隐藏域等中的数据
协议的状态是指下一次传输可以“记住”这次传输信息的能力.
⑵ HTTP是一个无状态的协议.这句话里的无状态是什么意思
HTTP无状态协议是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理回需要前面的信息,则它答必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
无状态协议是指比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登陆该网站,但是服务器并不知道客户关闭了一次浏览器。
⑶ 为什么http是无状态协议,什么是有状态协议,都是什么意思呢
协议的状态是指下一次传输可以“记住”这次传输信息的能力.
http是不会为了下一次连接而维护这次连接所传输的信息.
所以是无状态协议
而DNS是由状态协议
⑷ http协议是无状态的协议是什么意思
HTTP无状态协议是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了。
Cookie是通过客户端保持状态的解决方案。从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。让我们说得更具体一些:当用户使用浏览器访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,当然这些信息并不是存放在HTTP响应体(Response Body)中的,而是存放于HTTP响应头(Response Header);当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置,对于Windows操作系统而言,我们可以从: [系统盘]:\Documents and Settings\[用户名]\Cookies目录中找到存储的Cookie;自此,客户端再向服务器发送请求的时候,都会把相应的Cookie再次发回至服务器。而这次,Cookie信息则存放在HTTP请求头(Request Header)了。
⑸ 请问链路状态路由协议和距离矢量路由协议都有哪些具体区别呢
不擅长画对照表,所以只能像上次那样靠打比方乱讲一气了...
距离矢量路由协议相当于是不带地图的自驾游。比如从北京到新疆,用的是边走打听的方法。每到一个村(子网络)就要找个人(路由)打听到下个村(子网络)怎么走,因为路上的人都不知道从北京到新疆具体怎么走(路由只和邻居路由交换数据,所以不知道整个网络的拓扑细节)。
你能打听到的信息(更新)只包括下个村在哪儿(矢量)以及距离(度量值),如果问出的道不止一条,那你自然而然会选择最优路径。但这种道听途说式的路由协议可想而知会有一堆隐患,因为每个人了解的路况都是从别人那儿听来的。比如你打听到的方向和距离可能是错的,又或者前方某个村的路坏掉了但消息还没传到这里...
所以,为了避免死在半路上,就要折腾出各种完善措施:抑制计时器、路由失效计时器、毒性逆转、RIP水平分割、传说中的16跳(计数到无穷大)、触发更新、异步更新等等听起来很华丽的技术其实不过是距离矢量路由协议身上打的补丁而已。
链路状态路由协议则相当于车载GPS,而且还是默认半小时更新一次全国路况的。每个村的每个人兜里都揣着一份自己写的路况报告(LSA/链路状态报告),而且上传给每个村的每个人(黑话叫“泛洪LSA”),直到每个村的每个人都知道其他每个村的每个人的LSA为止(不好好看教材的下场就是看我写的恶心句子...)。
两相一比较区别就很明显了,最大的区别就是钱和可靠性呗...前者只需要更新到下个村的路况,而且还是道听途说不保证对错的,后者更新的那是全国路况啊。CPU、内存乃至带宽都是后者消耗得多,连高帅富都用不起更新时间更短的豪华版,所以前者默认更新周期30秒,后者默认更新周期30分钟。
应该还有很多别的令人头大的具体区别。但偶的美德之一就是不求甚解<_<
个人赶脚嘛,不差钱又追求收敛速度就选后者。前者那些破补丁(各种计时器各种分割各种逆转各种更新方式各种16跳)忒恶心人了。
⑹ 常见的http协议的状态消息有哪些
一、http协议
概述:
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user
agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
特点:
支持客户/服务器模式。
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
总结:以上就是http协议最基本的概述和特点,内容较多,且都比较难理解,以后的随笔会随之更新和http协议相关的技术内容。
二、状态码
众所周知,做web开发,常见的几种状态码是必须要了解的,而且几个状态码在面试中也有可能要考。
在这其中,200,304,403,404,500,是必须要知道的,且在爬虫工程师这个职位,这些所有状态码都是必须要知道的。
⑺ http协议无状态是什么意思让web应用有状态的机制
http协议无状态的意思如下:
1、协议对于事务处理没有记忆能力【事物处理】【记忆能力】
2、对同一个url请求没有上下文关系【上下文关系】
3、每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况【无直接联系】【受直接影响】
4、服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器【状态】
Web应用=http协议+session、cookies等状态机制+其他辅助的机制。
其实,应用程序(软件通信)的有状态与否是一个非常通用的概念。我们可知,在网络协议中,我们称TCP为一个有状态的传输层通信协议,而UDP则不是;IP是无状态的。
要明白这种有状态与否的判定,是指你这一协议栈层次所要实现的功能——是否由上下文决定——来判定的(是否受之前的通信过程直接影响、是否直接影响之后的通信过程)。
(7)有状态协议扩展阅读
关于网络应用层次中的各层次的有无状态情况。可以知道,支持协议(下层)的有无状态,消费协议(上层)的有无状态,没有直接的关系。每层协议的有无状态与它的本身功能执行的时候的有无状态的特点有关。
(1)IP是无状态的,它只负责将一个IP包发送到指定的IP地址上去。它不会考虑这个包与前面已经发送的包和后面的包的联系。(可能是重发包、可能是不连续包,它不管)。
(2)TCP是有状态的,它通过包头中的一些控制字段(序列编码等)来表明各个包之间的关系(前后关系,重包与否等等)。所以,通过这个协议你可以做到一个可靠的传输。其实这里的面向连接其实就是“三次握手”。
三次握手,首先可以保证对方的存在,其次握手的所交换的内容是为将来进行有状态的传输做准备。
(3)UDP是无状态的,它仅仅是在IP上加了Port,其他的事情什么也不干。这样它不可能做到可靠的传输,同样也不需要连接。
(4)HTTP是无状态的,它的底层协议是由状态的TCP,但是HTTP的一次完整协议动作,里面是使用有状态的TCP协议来完成的。
而每次协议动作之间没有任何关系。例如:第7次请求HTTP协议包,它或许是因为上次没有请求成功而重传,或许是上次的后续请求,或许是其他的,这些HTTP自身都不知道。
(5)www应用,很多时候,www应用是需要每个HTTP请求或应答动作之间是有关联的,那就是使应用有状态。这样才能提供给用户最好的用户体验。
⑻ HTTP协议是无状态协议,怎么理解
自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控件隐藏域等中的数据 协议的状态是指下一次传输可以“记住”这次传输信息的能力. http是不会为了下一次连接而维护这次连接所传输的信息的. 无状态是指,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器,简单地说,就是服务器不会去记得你,所以是无状态协议。 而DNS是有状态协议 。 HTTP是一个属于应用层的面向对象的协议,HTTP协议一共有五大特点,1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接;5、无状态;“无状态”是HTTP协议的主要特点之一,以下为“无状态”的解释。 无状态:是指 协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 既然HTTP协议的目的在于支持超文本的传输,更加广义一些就是支持资源的传输,那么在客户端浏览器向HTTP服务器发送请求,继而HTTP服务器将相应的资源发回给客户端这样一个过程中,无论对于客户端还是服务器,都没有必要记录这个过程,因为每一次请求和响应都是相对独立的,就好像你在自动售货机前投下硬币购买商品一样,谁都不会也不需要记住这样一个交易过程。一般而言,一个URL对应着唯一的超文本,而HTTP服务器也绝对公平公正,不管你是Michael,还是Jordon,它都会根据接收到的URL请求返回相同的超文本。正是因为这样的唯一性,使得记录用户的行为状态变得毫无意义,所以,HTTP协议被设计为无状态的连接协议符合它本身的需求。 然而,随着时间的推移,人们发现静态的HTML着实无聊而乏味,增加动态生成的内容才会令Web应用程序变得更加有用。于是乎,HTML的语法在不断膨胀,其中最重要的是增加了表单(Form);客户端也增加了诸如脚本处理、DOM处理等功能;对于服务器,则相应的出现了CGI(Common Gateway Interface)以处理包含表单提交在内的动态请求。在这种客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。 Cookie是通过客户端保持状态的解决方案。从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。让我们说得更具体一些:当用户使用浏览器访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,当然这些信息并不是存放在HTTP响应体(Response Body)中的,而是存放于HTTP响应头(Response Header);当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置,对于Windows操作系统而言,我们可以从:[系统盘]:\Documents and Settings\[用户名]\Cookies目录中找到存储的Cookie;自此,客户端再向服务器发送请求的时候,都会把相应的Cookie再次发回至服务器。而这次,Cookie信息则存放在HTTP请求头(Request Header)了。 有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。通常,我们可以从很多网站的登录界面中看到“请记住我”这样的选项,如果你勾选了它之后再登录,那么在下一次访问该网站的时候就不需要进行重复而繁琐的登录动作了,而这个功能就是通过Cookie实现的。 与Cookie相对的一个解决方案是Session,它是通过服务器来保持状态的。由于Session这个词汇包含的语义很多,因此需要在这里明确一下Session的含义。首先,我们通常都会把Session翻译成会话,因此我们可以把客户端浏览器与服务器之间一系列交互的动作称为一个Session。从这个语义出发,我们会提到Session持续的时间,会提到在Session过程中进行了什么操作等等;其次,Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。从这个语义出发,我们则会提到往Session中存放什么内容,如何根据键值从Session中获取匹配的内容等。 要使用Session,第一步当然是创建Session了。那么Session在何时创建呢?当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServletRequest的getSession方法(使用true作为参数)创建的。在创建了Session的同时,服务器会为该Session生成唯一的Session id,而这个Session id在随后的请求中会被用来重新获得已经创建的Session;在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,从而再次使用之。正式这样一个过程,用户的状态也就得以保持了。有关Session的内容还比较多,在以后的Post中,我还将继续讲述。
⑼ arp是无状态协议吗
在以太抄网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
这是网络的,其实就是根据IP知道MAC,然后才可以在以太网(局域网)中传输数据。
⑽ 常见的网络协议有哪些
第一章 概述
电信网、计算机网和有线电视网 三网合一
TCP/IP是当前的因特网协议簇的总称,TCP和 IP是其中的两个最重要的协议。
RFC标准轨迹由3个成熟级构成:提案标准、草案标准和标准。
第二章 计算机网络与因特网体系结构
根据拓扑结构:计算机网络可以分为总线型网、环型网、星型网和格状网。
根据覆盖范围:计算机网络可以分为广域网、城域网、局域网和个域网。
网络可以划分成:资源子网和通信子网两个部分。
网络协议是通信双方共同遵守的规则和约定的集合。网络协议包括三个要素,即语法、语义和同步规则。
通信双方对等层中完成相同协议功能的实体称为对等实体 ,对等实体按协议进行通信。
有线接入技术分为铜线接入、光纤接入和混合光纤同轴接入技术。
无线接入技术主要有卫星接入技术、无线本地环路接入和本地多点分配业务。
网关实现不同网络协议之间的转换。
因特网采用了网络级互联技术,网络级的协议转换不仅增加了系统的灵活性,而且简化了网络互联设备。
因特网对用户隐藏了底层网络技术和结构,在用户看来,因特网是一个统一的网络。
因特网将任何一个能传输数据分组的通信系统都视为网络,这些网络受到网络协议的平等对待。
TCP/IP 协议分为 4 个协议层 :网络接口层、网络层、传输层和应用层。
IP 协议既是网络层的核心协议 ,也是 TCP/IP 协议簇中的核心协议。
第四章 地址解析
建立逻辑地址与物理地址之间 映射的方法 通常有静态映射和动态映射。动态映射是在需要获得地址映射关系时利用网络通信协议直接从其他主机上获得映射信息。 因特网采用了动态映射的方法进行地址映射。
获得逻辑地址与物理地址之间的映射关系称为地址解析 。
地址解析协议 ARP 是将逻辑地址( IP 地址)映射到物理地址的动态映射协议。
ARP 高速缓存中含有最近使用过的 IP 地址与物理地址的映射列表。
在 ARP 高速缓存中创建的静态表项是永不超时的地址映射表项。
反向地址解析协议 RARP 是将给定的物理地址映射到逻辑地址( IP地址)的动态映射。RARP需要有RARP 服务器帮助完成解析。
ARP请求和 RARP请求,都是采用本地物理网络广播实现的。
在代理ARP中,当主机请求对隐藏在路由器后面的子网中的某一主机 IP 地址进行解析时,代理 ARP路由器将用自己的物理地址作为解析结果进行响应。
第五章 IP协议
IP是不可靠的无连接数据报协议,提供尽力而为的传输服务。
TCP/IP 协议的网络层称为IP层.
IP数据报在经过路由器进行转发时一般要进行三个方面的处理:首部校验、路由选择、数据分片
IP层通过IP地址实现了物理地址的统一,通过IP数据报实现了物理数据帧的统一。 IP 层通过这两个方面的统一屏蔽了底层的差异,向上层提供了统一的服务。
IP 数据报由首部和数据两部分构成 。首部分为定长部分和变长部分。选项是数据报首部的变长部分。定长部分 20 字节,选项不超过40字节。
IP 数据报中首部长度以 32 位字为单位 ,数据报总长度以字节为单位,片偏移以 8 字节( 64 比特)为单位。数据报中的数据长度 =数据报总长度-首部长度× 4。
IP 协议支持动态分片 ,控制分片和重组的字段是标识、标志和片偏移, 影响分片的因素是网络的最大传输单元 MTU ,MTU 是物理网络帧可以封装的最大数据字节数。通常不同协议的物理网络具有不同的MTU 。分片的重组只能在信宿机进行。
生存时间TTL是 IP 数据报在网络上传输时可以生存的最大时间,每经过一个路由器,数据报的TTL值减 1。
IP数据报只对首部进行校验 ,不对数据进行校验。
IP选项用于网络控制和测试 ,重要包括严格源路由、宽松源路由、记录路由和时间戳。
IP协议的主要功能 包括封装 IP 数据报,对数据报进行分片和重组,处理数据环回、IP选项、校验码和TTL值,进行路由选择等。
在IP 数据报中与分片相关的字段是标识字段、标志字段和片偏移字段。
数据报标识是分片所属数据报的关键信息,是分片重组的依据
分片必须满足两个条件: 分片尽可能大,但必须能为帧所封装 ;片中数据的大小必须为 8 字节的整数倍 ,否则 IP 无法表达其偏移量。
分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行片重组的控制主要根据 数据报首部中的标识、标志和片偏移字段
IP选项是IP数据报首部中的变长部分,用于网络控制和测试目的 (如源路由、记录路由、时间戳等 ),IP选项的最大长度 不能超过40字节。
1、IP 层不对数据进行校验。
原因:上层传输层是端到端的协议,进行端到端的校验比进行点到点的校验开销小得多,在通信线路较好的情况下尤其如此。另外,上层协议可以根据对于数据可靠性的要求, 选择进行校验或不进行校验,甚至可以考虑采用不同的校验方法,这给系统带来很大的灵活性。
2、IP协议对IP数据报首部进行校验。
原因: IP 首部属于 IP 层协议的内容,不可能由上层协议处理。
IP 首部中的部分字段在点到点的传递过程中是不断变化的,只能在每个中间点重新形成校验数据,在相邻点之间完成校验。
3、分片必须满足两个条件:
分片尽可能大,但必须能为帧所封装 ;
片中数据的大小必须为8字节的整数倍,否则IP无法表达其偏移量。
第六章 差错与控制报文协议(ICMP)
ICMP 协议是 IP 协议的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。
ICMP既不向信宿报告差错,也不向中间的路由器报告差错,而是 向信源报告差错 。
ICMP与 IP协议位于同一个层次,但 ICMP报文被封装在IP数据报的数据部分进行传输。
ICMP 报文可以分为三大类:差错报告、控制报文和请求 /应答报文。
ICMP 差错报告分为三种 :信宿不可达报告、数据报超时报告和数据报参数错报告。数据报超时报告包括 TTL 超时和分片重组超时。
数据报参数错包括数据报首部中的某个字段的值有错和数据报首部中缺少某一选项所必须具有的部分参数。
ICMP控制报文包括源抑制报文和重定向报文。
拥塞是无连接传输时缺乏流量控制机制而带来的问题。ICMP 利用源抑制的方法进行拥塞控制 ,通过源抑制减缓信源发出数据报的速率。
源抑制包括三个阶段 :发现拥塞阶段、解决拥塞阶段和恢复阶段。
ICMP 重定向报文由位于同一网络的路由器发送给主机,完成对主机的路由表的刷新。
ICMP 回应请求与应答不仅可以被用来测试主机或路由器的可达性,还可以被用来测试 IP 协议的工作情况。
ICMP时间戳请求与应答报文用于设备间进行时钟同步 。
主机利用 ICMP 路由器请求和通告报文不仅可以获得默认路由器的 IP 地址,还可以知道路由器是否处于活动状态。
第七章 IP 路由
数据传递分为直接传递和间接传递 ,直接传递是指直接传到最终信宿的传输过程。间接传递是指在信
源和信宿位于不同物理网络时,所经过的一些中间传递过程。
TCP/IP 采用 表驱动的方式 进行路由选择。在每台主机和路由器中都有一个反映网络拓扑结构的路由表,主机和路由器能够根据 路由表 所反映的拓扑信息找到去往信宿机的正确路径。
通常路由表中的 信宿地址采用网络地址 。路径信息采用去往信宿的路径中的下一跳路由器的地址表示。
路由表中的两个特殊表目是特定主机路由和默认路由表目。
路由表的建立和刷新可以采用两种不同 的方式:静态路由和动态路由。
自治系统 是由独立管理机构所管理的一组网络和路由器组成的系统。
路由器自动获取路径信息的两种基本方法是向量—距离算法和链路 —状态算法。
1、向量 — 距离 (Vector-Distance,简称 V—D)算法的基本思想 :路由器周期性地向与它相邻的路由器广播路径刷新报文,报文的主要内容是一组从本路由器出发去往信宿网络的最短距离,在报文中一般用(V,D)序偶表示,这里的 V 代表向量,标识从该路由器可以到达的信宿 (网络或主机 ),D 代表距离,指出从该路由器去往信宿 V 的距离, 距离 D 按照去往信宿的跳数计。 各个路由器根据收到的 (V ,D)报文,按照最短路径优先原则对各自的路由表进行刷新。
向量 —距离算法的优点是简单,易于实现。
缺点是收敛速度慢和信息交换量较大。
2、链路 — 状态 (Link-Status,简称 L-S)算法的基本思想 :系统中的每个路由器通过从其他路由器获得的信息,构造出当前网络的拓扑结构,根据这一拓扑结构,并利用 Dijkstra 算法形成一棵以本路由器为根的最短路径优先树, 由于这棵树反映了从本节点出发去往各路由节点的最短路径, 所以本节点就可以根据这棵最短路径优先树形成路由表。
动态路由所使用的路由协议包括用于自治系统内部的 内部网关协 议和用于自治系统之间的外部网关协议。
RIP协议在基本的向量 —距离算法的基础上 ,增加了对路由环路、相同距离路径、失效路径以及慢收敛问题的处理。 RIP 协议以路径上的跳数作为该路径的距离。 RIP 规定,一条有效路径的距离不能超过
RIP不适合大型网络。
RIP报文被封装在 UDP 数据报中传输。RIP使用 UDP 的 520 端口号。
3、RIP 协议的三个要点
仅和相邻路由器交换信息。
交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
按固定的时间间隔交换路由信息,例如,每隔30秒。
4、RIP 协议的优缺点
RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
RIP 协议最大的优点就是实现简单,开销较小。
RIP 限制了网络的规模,它能使用的最大距离为15(16表示不可达)。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
5、为了防止计数到无穷问题,可以采用以下三种技术。
1)水平 分割 法(Split Horizon) 水平分割法的基本思想:路由器从某个接口接收到的更新信息不允许再从这个接口发回去。在图 7-9 所示的例子中, R2 向 R1 发送 V-D 报文时,不能包含经过 R1 去往 NET1的路径。因为这一信息本身就是 R1 所产生的。
2) 保持法 (Hold Down) 保持法要求路由器在得知某网络不可到达后的一段时间内,保持此信息不变,这段时间称为保持时间,路由器在保持时间内不接受关于此网络的任何可达性信息。
3) 毒性逆转法 (Poison Reverse)毒性逆转法是水平分割法的一种变化。当从某一接口发出信息时,凡是从这一接口进来的信息改变了路由表表项的, V-D 报文中对应这些表目的距离值都设为无穷 (16)。
OSPF 将自治系统进一步划分为区域,每个区域由位于同一自治系统中的一组网络、主机和路由器构成。区域的划分不仅使得广播得到了更好的管理,而且使 OSPF能够支持大规模的网络。
OSPF是一个链路 —状态协议。当网络处于收敛状态时, 每个 OSPF路由器利用 Dijkstra 算法为每个网络和路由器计算最短路径,形成一棵以本路由器为根的最短路径优先 (SPF)树,并根据最短路径优先树构造路由表。
OSPF直接使用 IP。在IP首部的协议字段, OSPF协议的值为 89。
BGP 是采用路径 —向量算法的外部网关协议 , BGP 支持基于策略的路由,路由选择策略与政治、经济或安全等因素有关。
BGP 报文分为打开、更新、保持活动和通告 4 类。BGP 报文被封装在 TCP 段中传输,使用TCP的179 号端口 。
第八章 传输层协议
传输层承上启下,屏蔽通信子网的细节,向上提供通用的进程通信服务。传输层是对网络层的加强与弥补。 TCP 和 UDP 是传输层 的两大协议。
端口分配有两种基本的方式:全局端口分配和本地端口分配。
在因特网中采用一个 三元组 (协议,主机地址,端口号)来全局惟一地标识一个进程。用一个五元组(协议 ,本地主机地址 ,本地端口号 ,远地主机地址 ,远地端口号)来描述两个进程的关联。
TCP 和 UDP 都是提供进程通信能力的传输层协议。它们各有一套端口号,两套端口号相互独立,都是从0到 65535。
TCP 和 UDP 在计算校验和时引入伪首部的目的是为了能够验证数据是否传送到了正确的信宿端。
为了实现数据的可靠传输, TCP 在应用进程间 建立传输连接 。TCP 在建立连接时采用 三次握手方法解决重复连接的问题。在拆除连接时采用 四次握手 方法解决数据丢失问题。
建立连接前,服务器端首先被动打开其熟知的端口,对端口进行监听。当客户端要和服务器建立连接时,发出一个主动打开端口的请求,客户端一般使用临时端口。
TCP 采用的最基本的可靠性技术 包括流量控制、拥塞控制和差错控制。
TCP 采用 滑动窗口协议 实现流量控制,滑动窗口协议通过发送方窗口和接收方窗口的配合来完成传输控制。
TCP 的 拥塞控制 利用发送方的窗口来控制注入网络的数据流的速度。发送窗口的大小取通告窗口和拥塞窗口中小的一个。
TCP通过差错控制解决 数据的毁坏、重复、失序和丢失等问题。
UDP 在 IP 协议上增加了进程通信能力。此外 UDP 通过可选的校验和提供简单的差错控制。但UDP不提供流量控制和数据报确认 。
1、传输层( Transport Layer)的任务 是向用户提供可靠的、透明的端到端的数据传输,以及差错控制和流量控制机制。
2 “传输层提供应用进程间的逻辑通信 ”。“逻辑通信 ”的意思是:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。
TCP 提供的可靠传输服务有如下五个特征 :
面向数据流 ; 虚电路连接 ; 有缓冲的传输 ; 无结构的数据流 ; 全双工连接 .
3、TCP 采用一种名为 “带重传功能的肯定确认 ( positive acknowledge with retransmission ) ”的技术作为提供可靠数据传输服务的基础。
第九章 域名系统
字符型的名字系统为用户提供了非常直观、便于理解和记忆的方法,非常符合用户的命名习惯。
因特网采用层次型命名机制 ,层次型命名机制将名字空间分成若干子空间,每个机构负责一个子空间的管理。 授权管理机构可以将其管理的子名字空间进一步划分, 授权给下一级机构管理。名字空间呈一种树形结构。
域名由圆点 “.”分开的标号序列构成 。若域名包含从树叶到树根的完整标号串并以圆点结束,则称该域名为完全合格域名FQDN。
常用的三块顶级域名 为通用顶级域名、国家代码顶级域名和反向域的顶级域名。
TCP/IP 的域名系统是一个有效的、可靠的、通用的、分布式的名字 —地址映射系统。区域是 DNS 服务器的管理单元,通常是指一个 DNS 服务器所管理的名字空间 。区域和域是不同的概念,域是一个完整的子树,而区域可以是子树中的任何一部分。
名字服务器的三种主要类型是 主名字服务器、次名字服务器和惟高速缓存名字服务器。主名字服务器拥有一个区域文件的原始版本,次名字服务器从主名字服务器那里获得区域文件的拷贝,次名字服务器通过区域传输同主名字服务器保持同步。
DNS 服务器和客户端属于 TCP/IP 模型的应用层, DNS 既可以使用 UDP,也可以使用 TCP 来进行通信。 DNS 服务器使用 UDP 和 TCP 的 53 号熟知端口。
DNS 服务器能够使用两种类型的解析: 递归解析和反复解析 。
DNS 响应报文中的回答部分、授权部分和附加信息部分由资源记录构成,资源记录存放在名字服务器的数据库中。
顶级域 cn 次级域 e.cn 子域 njust.e.cn 主机 sery.njust.e.cn
TFTP :普通文件传送协议( Trivial File Transfer Protocol )
RIP: 路由信息协议 (Routing Information Protocol)
OSPF 开放最短路径优先 (Open Shortest Path First)协议。
EGP 外部网关协议 (Exterior Gateway Protocol)
BGP 边界网关协议 (Border Gateway Protocol)
DHCP 动态主机配置协议( Dynamic Host Configuration Protocol)
Telnet工作原理 : 远程主机连接服务
FTP 文件传输工作原理 File Transfer Protocol
SMTP 邮件传输模型 Simple Message Transfer Protocol
HTTP 工作原理