OSI参考模型:
OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型。
计算机网络中各种英文术语的含义:
https://blog.csdn.net/ZripenYe/article/details/117386858
计算机网络概述和物理层:
- Bandwidth
带宽,分成物理带宽和数据带宽,物理带宽单位 hz 赫兹,表示一个信道的频率的范围(最高频率和最低频率之差)数据带宽单位 bps,表示信道的最高数据传输率,即每秒网络允许通过的最高数据量。 - ADSL
不对称数字订阅线路,用于宽带上网,使用电话线和频分复用技术,保证电话和计算机数据可以同时在电话线上传输,下载速度是上传的 8 倍。 - ISDN
ISDN 是综合数字电话网发展起来的一个网络(1 分),它提供端到端的数字连接以支持广泛的服务(1 分),包括声音和非声音的,用户的访问是通过少量用途用户网络接口标准实现的(2 分)
应用层
- FTP
ftp 称为文件传输协议,工作在应用层,用于因特网上的文件传输,其工作时使用 TCP 协议打开两条 TCP 连接,一条是控制连接,端口 21,一条数据连接端口是 20,属于维护状态的协议。 - HTML
HyperText Markup Language,超文本标记语言(1 分),是一种标记语言,一种描述了如何格式化文档的语言(2 分),它允许用户在 Web 页面中包含文本、图形和指向其他 Web 页面的指针。(2 分) - SMTP
The Simple Mail Transfer Protocol 简单邮件传输协议,(2 分)用于用户向邮件服务器发送邮件的协议和邮件服务器向邮件服务器发送的协议(2 分),只能传输 ASCII 码(1 分)。 - HTTP
HyperText Transfer Protocol 超文本传输协议(1 分),运行在应用层(1 分),网页传输使用的协议(1 分),包括 http1.0 版本,提供非流水线服务(1 分),和 http1.1 版本,提供流水线服务(1 分),默认端口号 80。 - URL
统一资源定位符(1 分),是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示(3 分)。一般形式为:<URL 的访问方式>://<主机>:<端口>/<路径>(1 分)
传输层
-
可靠数据传输
可靠的数据传输确保数据按序正确的到达对方(1 分),提供面向连接的服务(1 分),通常使用序号和确认机制(1 分),发送方超时重传机制(1 分),传输错误检验机制(1 分),TCP 是典型的可靠传输(1 分) -
GBN
回退 N 步的协议,是可靠数据传输中滑动窗口协议的一种(1 分),发送端通过发送窗口限制发送的数据数量,当收到某个数据的确认时,发送窗口向后移动一个单位,(2 分),接收端只接受按序到达的正确的数据,其它的丢弃,并发上一个正确到达的分组的序号的确认或当前分组的否认。(2 分) -
SR
选择性重传的协议,是可靠数据传输中滑动窗口协议的一种(1 分),发送端通过发送窗口限制发送的数据数量,当收到某个数据的确认时,发送窗口向后移动一个单位,某个分组只重传该分组(2 分),接收端对于接受窗口内乱序到达的分组会缓存直到按序才递交,其它的丢弃,确认针对某一个分组确认。(2 分) -
UDP
User Datagram Protocol 用户数据报协议(1 分),运行在运输层(1 分),提供无连接的服务(1分),是不可靠的数据传输(1 分)。
-
TCP
Transmission Control Protocol 传输控制协议(1 分),运行在运输层(1 分),提供面向连接的 服务(1 分),使用可靠数据传输(1 分),具有流量控制和拥塞控制(1 分)。
网络层
- VC
Virtual-Circuit 用于网络层的虚电路服务(1 分),提供面向连接的服务(1 分),通信时要有建立虚电路,通信,释放虚电路的过程(1 分),一个虚电路额所有的分组传输时都走同一条路。(1 分) - IP 分片
当路由器转发 IP 分组时发现 IP 分组超过了输出链路的 MTU 时,会将 IP 分组的数据部分进行分片(1 分)。每个分片添加新的 IP 首部形成新的 IP 数据报.(1 分),接收方会根据 IP 首部中的标识、标志、片偏移等字段重组分片还原成初始的 IP 分组(2 分) - CIDR
无类别域间路由的 IP 地址,取消了 ip 地址的分类限制,改善了 ip 地址的分配方式缓解了 ip地址危机,通过层次网络可以实现路由汇总,形成超网。 - 路由聚合
Routing aggressive 使用 CIDR 技术和无分类子网掩码,可以使用路由聚合(1 分),用一条路由 表 示 一 系 列 连 续 的 多 条 路 由 , 从 而 减 少 路 由 表 的 规 模 ( 2 分 ), 如192.168.0.0/26----192.168.192.0/26 可以聚合成 192.168.0.0/24(1 分),也成构成超网(1 分) - ICMP
因特网控制报文协议,(1 分)用于因特网的报文控制和差错报告,当路由器丢弃分组时会发送 ICMP 报文给源发送方,通知所出现的错误(2 分)。Ping 使用的是特殊的 ICMP 报文。(2 分) - NAT
Network address translation 网络地址转换,(1 分)内网 IP 地址可以通过 NAT 转换成公网 IP地址,(1 分)从而可以使得多台电脑可以使用一个 IP 上网(1 分),一般包括 NAT 池,静态NAT,端口 NAT.(1 分) - IPv6
下一代 ip 协议,增加 IP 地址范围为 128 位,尽可能的减少路由器额外的工作,提高路由器转发分组的速度,更好的实现路由汇总,更好的实现 QoS,提高协议的灵活性,增强了移动性和安全性。固定首部 40 位。 - DV 路由算法
工作原理:
路由器周期性地向所有邻居路由器通告自己的路由信息。路由器根据邻居的通告使用加法更新自己的距离向量表,选择最短路径更新路由表。当路由器的路由表改变时,继续通告给邻居。当网络所有路由器的路由表都没有改变时,算法终止。
缺点:可能出现路由环路。 - 距离向量路由算法
每个路由器将自身的路由信息发送给邻居,每个路由器将邻居发送来的信息更新自己的路由表,若路由表更新则发送信息更新信息给邻居,否则不发送。(2 分)距离向量算法具有路由自环的缺点,会导致好消息传的快,坏消息传的慢的现象,且可能会导致无穷计算的问题。(3 分)常用的距离向量算法有 RIP,BGP。 - LS 路由算法
工作原理:
每个路由器将自己的链路状态信息洪泛(flooding)到网络上的所有路由器。每个路由器最终会知道整个网络的拓扑结构。每个路由器使用 Dijkstra 最短路径算法计算本路由器到其他路由器的最短路径,更新路由表。路由器的链路状态发生变化时会继续洪泛自身的链路状态信息到其他路由器。
缺点:可能出现路由震荡,对路由器的性能要求较高。 - RIP
路由信息协议, (1 分)用于自治系统内部的基于距离向量路由算法的路由协议(1 分),最大距离为 16,(1 分)采用跳数作为距离,(1 分),具有好消息传的快,坏消息传的慢的特点. (1 分)) - OSPF
开放式最短路径优先协议,(1 分)用于自治系统内部,(1 分)属于 IGP,(1 分)属于链路状态路由算法,划分区域,支持 CIDR,支持验证。(2 分) - IPv6
internet protocol version 6,ip 地址为 128 位,,固定首部 40 位,减少了 Ipv4 首部的字段数。增加 IP 地址范围,尽可能减少路由器的额外工作,提高路由器转发分组的速度,更好的实现路由汇总,更好实现 Qos 提高协议的灵活性,增加了移动性和安全性
数据链路层
- FDM
频分复用技术,属于信道分割技术,将信道根据频率分成多个频段,不同站点的数据可以同时在不同频段发送数据,发送方通过不同频率的载波进行数据的调制,接收方解调数据分发到相应站点,当某个站点不通信时有浪费。 - CSMA/CD
Carrier Sense Multiple Access with Collision Detection,载波监听多点接入碰撞检测(2 分),用于以太网上多点接入技术(1 分),每个站检测信道是否空闲,不空闲则等待,空闲则发送数据,如果碰撞使用二进制指数退避算法等待一段时间在发送(2 分) - CDMA
码分多址复用技术(1 分),每个主站分配一个互不相同且相互正交的码元,当发送 1 时发码元,发 0 时发码元的反(2 分)。接收端根据码元可以有效地从信号中还原出信息,具有很好的抗干扰性。(1 分) - ARP
ARP 协议称为地址解析协议(1 分),用于硬件地址和 IP 地址的转换(1 分),当源主机知道目标主机的 IP 地址不知道其硬件地址时会发送一个 ARP 请求报文,目标主机会发送 ARP 响应报文,从而使得源主机知道目标主机的硬件地址(2 分)
应用层
-
HTTP相关
http两种连接类型(有状态、无状态),对应版本号及其各自特点。
(1) 短连接
短连接分为了三步:
第一步,浏览器向服务器发起一次请求来申请资源 第二步,服务器响应浏览器并返回资源 第三步,断开连接
因为一个网页的资源要获取多次,所以短连接状态下,需要重复上述操作,直至获取完一个网页的所有资源。
(2) 长连接
http/1.0版本使用的都是短连接,短连接需要频繁的跟服务端建立起连接,这样做是特别耗时的!为了减少频繁建立连接,在http/1.1版本引入了 长连接 方式,长连接建立起一次连接以后,这个连接会一直存在,不会断开。
HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。
也就是说,上一次的请求对这次的请求没有任何影响,服务端也不会对客户端上一次的请求进行任何记录处理。
这就导致服务器端无法判断登录用户,解决方案:用于保持http状态的技术Cookie、Session
cookie 机制采用的是在客户端保持状态的方案。Cookie 是服务器生成的,但是发送给客户端,并且由客户端来保存
Session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 Session 保存在服务器上。
Cookie 和 Session 的区别:
(1)Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上;
(2)Cookie 不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用 Session ;
(3)Session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
(4)单个Cookie 在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
总结:
如果说 Cookie 机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session 相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。 Cookie 和 Session 的方案虽然分别属于客户端和服务端,但是服务端的 Session 的实现对客户端的 Cookie 有依赖关系的,上面我讲到**服务端执行 Session 机制时候会生成 Session 的 id 值,这个 id 值会发送给客户端,客户端每次请求都会把这个 id 值放到 http 请求的头部发送给服务端,而这个 id 值在客户端会保存下来,保存的容器就是 Cookie**,因此当我们完全禁掉浏览器的Cookie的时候,服务端的Session也会不能正常使用。 问:客户端浏览器将 Cookie 功能禁用,或者不支持 Cookie 怎么办? 一般这种情况下,会使用一种叫做 **URL 重写**的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户
1.HTTP协议
HTTP协议(Hyper Text Transfer Protocol,即超文本传输协议)是一个简单的请求响应协议,它通常运行在TCP之上,是互联网上应用最为广泛的一种网络协议。HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档穿到浏览器。从层次的角度看,HTTP协议是面向事务的应用层协议,它是万维网上能够可靠地交换文件的基础。
2.常见的HTTP协议版本
HTTP协议最为常见的的版本有四种,分别是HTTP1.0、HTTP1.1、HTTP2以及HTTP3等。不同版本的http协议有这很大的不同。
2.1 HTTP1.0
特点:
·浏览器每发一个请求都会与服务器建立一个TCP请求,当请求结束后该TCP连接就会断开。(无连接) ·服务器不会跟踪每一个客户端也不会记录过去的请求。(无状态) ·在HTTP0.9的版本时,只能支持GET方法,到了HTTP1.0版本,增加了HEAD、POST两种请求方式。 ·增加了响应状态码,标记可能的错误原因。 ·引入了协议版本号的概念。 ·引入了HTTP header的概念,让HTTP处理请求和响应更加灵活。 ·传输的数据不再局限于文本,还可以传输图片、音乐等文件。
HTTP1.0最主要的缺点还是跟HTTP0.9一样,每次浏览器发送请求就要创建一个TCP连接,请求结束后就TCP连接就会断开。频繁的TCP连接创建和断开无疑增加了服务器的开销,并且TCP连接初始的时候发送数据的速度相对较慢,有一个慢启动和拥塞避免的阶段。
2.2 HTTP1.1
特点:
·在HTTP1.0中默认使用Connection:close。在HTTP1.1中已经默认使用Connection:keep-alive,避免了连接建立和释放的开销。一个TCP默认不关闭,可以被多个请求复用。只有当设定的时间过了该连接才会断开。(长连接) ·引入了管道机制,一个TCP连接可以同时发送多个请求。 ·对一个域名的请求允许分配多个长链接(缓解了长连接中对头阻塞的问题)。 ·新增了一些缓存的字段(If-Modified-Since, If-None-Match)。 ·请求头中引入了range字段,支持断点续传。 ·强制要求Host头,让互联网主机托管成为可能。 ·增加了 PUT、DELETE、OPTIONS、PATCH 等新的方法。
HTTP管道机制是指在一个TCP连接中,多个HTTP请求可以并行,客户端不用等待上一个请求结果返回就可以发出下一个请求,但是服务器端必须按照接收到客户端请求的先后顺序依次返回响应结果。
HTTP1.1虽然通过长连接减少了大量TCP的创建过程,但如果前面的请求没有结束之前,其他的请求只能处于阻塞状态。2.3 HTTP2
特点:
·二进制协议:在HTTP1.1版本的头部信息是文本,数据部分可以是文本也可以是二进制。在HTTP2版本的头部和数据部分都是二进制,且统称为帧。 ·多路复用:废弃了HTTP1.1中的管道,同一个TCP连接里面,客户端和服务器可以同时发送多个请求和多个响应,且不用按照顺序来,这样避免了队头阻塞的问题。 ·头部信息压缩:使用专用算法压缩头部,减少数据传输量,主要是通过服务器和客户端共同维护一张头部信息表,所有的头部信息在表里面都会有对应的记录,并且会有一个索引号,这样后面只需要发送索引号即可。 ·服务器主动推送:允许服务器主动向客户推送数据。 ·数据流:HTTP2中每一个请求或者响应的所有数据包,成为一个数据流,并且每一个数据流都有一个唯一ID,请求数据流的ID为奇数,响应数据流的ID是偶数。每个数据包在发送的时候带上对应数据流的ID,这样服务器和客户端就能分区是属于哪一个数据流。
HTTP2虽然解决了许多问题,在TCP协议级别上仍然存在类似的队头问题,而TCP仍然是Web的构建基础。当TCP数据包在传输的过程中丢失时,在服务器重新发送丢失的数据包之前,接收方无法确认传入的数据包。由于 TCP 在设计上不遵循 HTTP 之类的高级协议,因此单个丢失的数据包将阻塞所有进行中的 HTTP 请求的流,直到重新发送丢失的数据为止。
2.4 HTTP3HTTP3的目的是解决HTTP2的传输问题。在所有形式的设备上提供快速、可靠和安全的Web连接。为此,它使用了一种不同的传输层网络协议,称为QUIC。
特点:
·HTTP3底层是基于UDP实现的,而UDP不需要三次握手、四次挥手的过程,所以天生比TCP快。 ·QUIC不再以四元组标识,而是以一个 64 位的随机数作为 ID 来标识,而且 UDP 是无连接的,所以当 IP 或者端口变化的时候,只要 ID 不变,就不需要重新建立连接。 ·QUIC 的流量控制也是通过 window_update,来告诉对端它可以接受的字节数。但是 QUIC 的窗口是适应自己的多路复用机制的,不但在一个连接上控制窗口,还在一个连接中的每个 stream 控制窗口。 ·集成了TLS加密功能。QUIC并不是简历在TLS之上,而是内部包含了TLS。它使用自己的帧接管了TLS里面的记录,握手消息、警报消息都不使用TLS记录,直接封装成QUIC的帧发送,省掉一次开销。 ·HTTP3 没有指定默认的端口号,也就是说不一定非要在 UDP 的 80 或者 443 上提供 HTTP/3 服务。 ·为了实现可靠性,QUIC 也有个序列号,是递增的。任何一个序列号的包只发送一次,下次就要加一了。即使丢包重传,序列号也会加一,并且QUIC 定义了一个 offset 概念。QUIC 既然是面向连接的,也就像 TCP 一样,是一个数据流,发送的数据在这个数据流里面有个偏移量 offset,可以通过 offset 查看数据发送到了哪里,这样只要这个 offset 的包没有来,就要重发;如果来了,按照 offset 拼接,还是能够拼成一个流。
3.各版本HTTP的对比
协议版本 解决的核心问题 解决方式 0.9 HTML 文件传输 确立了客户端请求、服务端响应的通信流程 1.0 不同类型文件传输 设立头部字段 1.1 创建/断开 TCP 连接开销大 建立长连接进行复用 2 并发数有限 二进制分帧 3 TCP 丢包阻塞 采用 UDP 协议 4.HTTP与HTTPS的区别
由于HTTP协议采取的是明文传输,所以安全上存在以下三个风险:
窃听风险:比如通信链路上可以获取通信内容,用户号容易没。
篡改风险:比如强制植入垃圾广告,视觉污染,用户眼睛容易瞎。
冒充风险:比如冒充淘宝网站等。如上图所示(左边为HTTP协议,右边为HTTPS协议),为了解决HTTP的安全问题,HTTPS在HTTP与TCP层之间加入了SSL/TLS协议,可以很好的解决上述的风险。
HTTPS 是如何解决上⾯的三个⻛险的?
·HTTPS采用对称加密和非对称加密结合的混合加密的方式。在通信建立前采用非对称加密的方式交换会话密钥,后续就不再使用非对称加密。在通信过程中全部使用对称加密的会话密钥的方式加密明文数据。 ·采用摘要算法来实现完整性,能够为数据生成独一无二的指纹,用于校验数据的完整性,解决了篡改的风险。 ·通过数字证书的⽅式保证服务器公钥的身份,解决冒充的⻛险。
区别:
·https协议需要到CA申请证书,一般免费整数较少,因而需要一定费用。 ·http是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议。 ·http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 ·http的连接很简单,是无状态的;https协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
会阅读http报文的格式(如浏览器版本、目标host、报文长度等)
https://www.cnblogs.com/huansky/p/14007810.html
请求报文格式:
1、请求行
请求行有三个字段:方法、URL、HTTP版本
(1)方法:可以取不同的值,包括GET、POST、HEAD、PUT和DELETE等。绝大部分HTTP请求报文使用GET方法。
(2)URL:请求对象的标识。示例中请求对象标识就是:/dir1/dir2/hello.html
(3)HTTP版本:略。示例中HTTP版本为1.1。
2、首部行
首部行由多组键值对(首部字段名:首部字段值)组成。下面分析示例:
Host:指明请求对象所在主机。示例中主机为www.test.com。
Connection:浏览器告知服务器是否使用持续连接。示例中close代表不使用持续连接。
User-agent:指明用户代理,即浏览器类型。示例中浏览器类型为Mozilla/5.0。
Accept-language:指明用户希望得到请求对象的语言版本。示例中zh-cn代表中文版本。
3、实体体
使用GET方法时,实体体为空;
而使用POST方法时才使用实体体,举例说明:
当用户提交表单时,HTTP使用POST方法,则实体体内包含的就是用户在表单的输入值。
响应报文格式:
1、状态行:
状态行有三个字段:HTTP版本、状态码、状态信息
(1)HTTP版本:略。
(2)状态码及状态信息:下面列出常见状态码及状态信息
- 200 OK:请求成功,信息在返回的响应报文中。
- 301 Moved Permanently:请求对象被永久转移了,新的URL定义在响应报文的首部行Location中。客户端自动获取新的URL。
- 404 Not Found:被请求的文档不在服务器上。
- 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本。
2、首部行
同样的,首部行由多组键值对(首部字段名:首部字段值)组成。下面分析示例:
Connection:服务器通知客户,发送完报文后是否持续该TCP连接。示例中close代表发送完报文后关闭该TCP连接。
Date:服务器产生并发送该响应报文的日期时间。
Server:指明产生响应报文的服务器类型,类似于请求报文首部行中User-agent字段。示例中为Apache Web服务器。
Last-Modified:对象创建或者最后修改的日期时间。
Content-Length:被发送对象中的字节数。
Content-Type:实体体中对象类型。示例中 text/html 代表HTML文件。
3、实体体
服务器响应客户端的数据对象,在请求示例中,请求对象为hello.html,那么该实体体内容就是hello.html。
常见的http请求报文的方法(GET、POST常见请求格式的含义)
1.GET: 请求指定的页面信息,并返回实体主体。 2.HEAD: 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 3.POST: 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 4.PUT: 从客户端向服务器传送的数据取代指定的资源。 5.DELETE: 请求服务器删除指定的资源。 6.CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 7.OPTIONS: 允许客户端查看服务器的性能。 8.TRACE: 回显服务器收到的请求,主要用于测试或诊断。
HTTP请求报文中为什么要提供浏览器类型和操作系统类型?
HTTP请求报文分为了请求行和首部行,请求行里注明了浏览器版本(version),在首部行里有浏览器类型(user-agent),因为不同的浏览器和操作系统在返回同一个网页请求时的html网页可能不一样,所以需要在报文里注明浏览器类型和操作系统类型。
(浏览器类型在请求报文"User-agent:"首部行后,通过服务器端语言提供的相关API获取客户端的浏览器信息,进而对不同的浏览器返回不同的html文档,这样就可以针对现代浏览器返回展示页面)
静态文档、动态文档、活动文档(如java)概念
万维网的文档可以分为3类:静态文档、动态文档和活动文档。
静态文档
静态文档是指内容固定的文档,它是由万维网服务器创建,并存放在其中。
- 当客户利用 浏览器访问万维网服务器里的该文档时,这个文档的副本被传送到客户,客户就可使用浏览程序显示这个文档。当然,服务器中的文档内容是可以修改的,但客户却不能修改它。
- 静态文档的最大优点是简单,文档可以由非程序设计人员来创建。它的缺点是不够灵活。因此,对于内容变化频繁的文档是不适合做成静态文档的。
动态文档
动态文档是指文档的内容是在浏览器访问服务器时才得以创建。当浏览器的请求到达时,服务器就运行一个创建动态文档的应用程序。
- 动态文档的最大优点是具有告知当前最新信息的能力。
- 该应用程序对调览器发送来的数据进行处理,服务器把该程序或脚本的输出作为对浏览器请求该文档的响应。由于浏览器每次请求的响应都是动态生成的,因此每一个请求所得到的动态文档的内容也不一样。
活动文档
活动文档是指能够提供了一种连续更新屏幕内容的技术,这种技术把创建文档的工作移到浏览器端进行。
- 当浏览器请求一个活动文档时,服务器就返回这个活动文档程序的副本或脚本,然后就在浏览器端运行,此时,活动文档程序可与用户直接交互,以便连续地更新屏幕的显示内容。
- 虽然活动文档克服了静态文档内容固定不变的不足,但活动文档一旦建立,它所包含的内容也就被固定下来而无法及时刷新。另外,活动文档也无法提供像动画那样的显示效果。
三者的区别
1、创建方式不同:
(1)静态文档是指内容固定的文档,它是由万维网服务器创建,并存放在其中。(2)动态文档是指文档的内容是在浏览器访问服务器时才得以创建。
(3)活动文档是指能够提供了一种连续更新屏幕内容的技术,这种技术把创建文档的工作移到浏览器端进行。
2、生成方式不同:
(1)静态文档的内容是提前编写到文档里的,浏览器每次访问时,里面的内容都不改变。(2)动态文档是通过服务器上运行自己编写的应用程序动态的产生的,文档里的内容是每次访问一更新的。
(3)当浏览器请求一个活动文档时,服务器就返回这个活动文档程序的副本或脚本,然后就在浏览器端运行。
3、内容变化不同:
(1)静态文档每次访问时里面的内容都不改变。(2)动态文档每次访问时里面的内容也不一样。
(3)活动文档克服了静态文档内容固定不变的不足,但活动文档一旦建立,它所包含的内容也就被固定下来而无法及时刷新
4、对创建者要求不同:
(1)静态文档的最大优点是简单,文档可以由非程序设计人员来创建。(2)动态文档的创建难度比静态文档要高,因为开发人员必须具有一定的编程能力,编写出用于生成动态文档的应用程序。
(3)活动文档程序可与用户直接交互,以便连续地更新屏幕的显示内容。
用Java 技术创建活动文档
由美国Sun公司开发的Java语言是一项用于创建和运行活动文档的技术。 在Java 技术中使用“小应用程序”(applet) 来描述 活动文档程序。
Java 是一种面向对象的高级语言,从C++派生出来 的,它省略了C++很多复杂的、很少用的语言特点。 Java 的每一个数据项都有一个确定的类型。对数据的操作严格按照该数据的类型来进行。
Java 的编译程序将源程序转换成Java字节码 (bytecode),这是一种与机器无关的二进制代码。 计算机程序调用解释程序读取字节码,并解释执行。
用户从万维网服务器下载嵌入了Java小应用程序 的HTML文档后,可在浏览器的屏幕上点击某个图像,就可看到动画效果,或在下拉式菜单中点击某个项目,就可看到计算结果。 Java 技术是活动文档技术的一部分。
Java 技术有三个主要组成部分:
(1) 程序设计语言。Java包含一个新的程序设计语言, 用来编写传统的计算机程序和Java 小应用程序。
(2) 运行(runtime)环境。这是运行Java程序所必须的运行环境,其中包括Java 虚拟机(简称为JVM), 该软件定义了Java 二进制代码的执行模型。
(3) 类库(class library)。为了更容易编写Java 小应用程序,Java 提供了强大的类库支持。
运行Java的浏览器需要有HTML解释程序和Java小应用程序解释程序。 解释程序的核心是一个模仿计算机的简单循环。解释程序维持一个指令指针,在初始化时指在小应用程序的开始处。
在每一次循环操作时,解释程序在指令指针指向的地址读取字节码。然后解释程序对字节码进行解码, 并完成指明的操作。
-
DHCP、DNS协议实现的主要过程
DHCP(动态主机配置协议)和DNS(域名系统)的出现是为了让我们能够轻松使用网络或互联网,在实际应用中DHCP和DNS是两种完全不同的技术。DHCP是一种能够帮助我们将IP地址和相关IP信息分配给网络中计算机的协议,许多网络交换机会使用DHCP提供有价值的TCP/IP网络服务,如,帮助自动升级客户端系统上的软件。而DNS是用于将网络名称(如feisu.com)转换成其IP地址,反之亦然。这是为了确保我们的计算机可以找到正确的站点,因为计算机只能通过其IP地址(而非域名)来查找站点。
DHCP服务器分配动态IP地址时会经历请求、响应、选择、确认等阶段,详细过程如下:
- 客户端请求IP地址阶段——当客户端接入网络时,即启用DHCP Client后,客户端发送广播数据包DHCP Discover(包括计算机的名称和MAC地址),便于DHCP服务器能响应它。
- 服务器响应请求阶段——当DHCP服务器接收DHCP Discover时,会根据地址池内剩下的IP地址,以广播方式分配给客户端一个IP地址,分配的DHCP Offer报文中还包含了一些其他字段,如DNS地址、网关、掩码等。
- 客户端选择IP地址阶段——当客户端收到DHCP Offer报文时,会决定选用哪个服务器提供DHCP地址,然后根据DHCP Offer提供的地址信息,发送DHCP Request报文请求。
- 服务器确认阶段——当服务器收到DHCP Request报文后,将确认地址池中这个地址是否被分配。如果没有被分配,DHCP服务器将发送DHCP ACK报文给DHCP客户端,告知DHCP客户端现在可以使用分给它的IP地址。如果被分配,就会回复DHCP NAK报文,告知客户端该地址已被分配。
DNS
当在浏览器中输入域名时,例如feisu.com,浏览器通常不知道feisu.com在哪里。因此,它 将向本地DNS服务器(LDNS)发送查询,询问一些关于“feisu.com的IP地址是什么”之类的问 题。如果LDNS没有feisu.com的记录,它将在互联网中搜索查找出谁拥有www.feisu.com。 详细工作过程如下:
- 首先,LDNS进入其中一个根服务器,将其定向到.com DNS服务器。
- 其次,.com DNS服务器找到www.feisu.com的所有者,并通知LDNS feisu.com的名称服务器(NS)记录。
- 然后,LDNS通过请求包含feisu.com的IP地址的地址记录(A记录)来响应。
- 最后,当LDNS收到A记录后,会将IP地址发送给浏览器,并缓存IP地址信息,以备将来参考
DHCP与DNS之间有什么区别?
从上述介绍中可看出,虽然DHCP和DNS都与IP地址相关,但它们扮演着完全不同的角色。为 了能让您更加清楚了解DHCP和DNS的区别在哪里,请看下列图表:
参数 | DHCP | DNS |
---|---|---|
作用 | 用于为静态或动态主机分配IP地址的协议。 | 地址解析机制。 |
相关协议 | UDP | UDP和TCP |
服务器 | DHCP服务器负责将临时地址分配给客户端计算机一段时间,然后根据需要扩展租约。 | DNS服务器负责通过客户端接受查询并回复结果。 |
工作方法 | 集中 | 分散 |
特点 | 1.提供其他信息,例如主机的IP地址和计算机的子网掩码。 2.为特定租约时间分配IP到主机。 | 1.将名称转换为IP地址。 2.用于查找活动目录域服务器。 |
优点 | 具备可靠的IP地址配置,且能减少网络管理。 | 不需要记住IP地址,域名用于网址。 |
总结:
总而言之,DHCP服务器将IP地址分配给客户端计算机,而DNS服务器则是解析它们。DHCP 和DNS是为了让我们能更加方便使用网络或互联网而研发的两种必不可少的技术,同时也是 网络管理员用来管理公司网络上所有IP设备的必不可少的“工具”。
传输层
两个主要协议:UDP和TCP的区别(如:UDP面向报文段、TCP面向字节流)、各自特点
端口的作用:三种类型的端口
套接字概念
停止等待协议、自动重传请求ARQ、连续ARQ协议、累计确认的概念
UDP和TCP报文格式,首部关键字段的含义(如SYN、FIN、PUSH、序号、ACK号、数据偏移、窗口、检验和等);TCP三次握手、四次握手的具体过程
TCP可靠传输实现:发送窗口、接收窗口如何变化;超时重传;选择确认
信道利用率的定义
流量控制和拥塞控制的概念、区别,几种拥塞控制方法;
传输轮次的概念:慢开始(ss、slow、start)算法的含义及过程;慢开始门限(sstresh)用法
拥塞避免算法的含义及过程。网络出现拥塞的标志。加性增乘性减(AIMD)含义及过程
快速重传的触发条件及其过程
快恢复含义及其过程。快恢复的两个版本TCP Rneo、TCP Tahoe
发送窗口与接收窗口rwnd、拥塞窗口cwnd的关系
TCP段的序号和确认序号的计算;GBN协议(Go-back-N)中帧序号比特数的计算
TCP连接建立和释放的过程
课后题:5-37、5-38、5-39、5-41
网络层
分类IP地址
无分类IP地址(CIDR),CIDR地址块;子网掩码
子网掩码也是一个32位地址,只有一个作用:就是将某个IP地址划分成网络地址和主机地址两部分。
- 通过子网掩码,就可以判断两个IP在不在一个局域网内部。
- 子网掩码可以看出有多少位是网络号,有多少位是主机号
- 其对应的IP地址中网络地址的所有位置都为1,对应于主机地址的所有位置都为0。
二进制(或16进制)到点分十进制转换
IP报文的格式(看图阅读)
版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
服务类型:Type Of Service。
总长度:IP报文的总长度。报头的长度和数据部分的长度之和。
标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2。
首部校验和:计算IP头部的校验和,检查IP报头的完整性。
源IP地址:标识IP数据报的源端设备。
目的IP地址:标识IP数据报的目的地址。
路由聚合概念: 路由聚合(也叫汇总)是让路由选择协议能够用一个地址通告众多网络,旨在缩小路由器中路由选择表的规模,以节省内存,并缩短IP对路由选择表进行分析以找出前往远程网络的路径所需的时间。
最大前缀匹配: 如果路由表查表转发分组时发现有多条路由可选择时,则选择网络前缀最长的那条进行转发。原因:这样的路由更加具体
网络前缀: 用来唯一地标识着连入Internet的一个网络的网络号
地址数和可指派地址数:
IP分组转发的过程
根据网络拓扑图,建立路由转发表
802.11协议又俗称IEEE 802协议簇
802.11协议为什么不能支持移动IP????????????
网络地址转换NAT作用是?
ARP协议的工作步骤:
参考
使用ARP的四种典型情况:
习题4-45、4-46、4-48、4-49、52、53、54、55
老师所给:
- 源IP地址为IP分组头的第13-16字节,在表中,1、3、4号分组均为192.168.0.8,所以1、3、4分组是由H发送的。
- 1号分组封装的TCP段的SYN=1,ACK-0: 2号分组封装的TCP段的SYN=ACK=1;
3号分组封装的ACK=1,加上seq no和ack no.的数值是顺序数值,所以1、2、3号分组完成了TCP的建立过程。 - 由于快速以太网中的帧有效载荷最小程度为46B,3、5号分组的总长度为40B,所以需要填充。
4.???
链路层
数据链路层三个基本问题
封装成帧
在进行数据链路层传输的时候存在一个问题,我们需要对饮数据链路层的协议对应将有效的数据封装成一个帧,封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成一个帧。这个时候我们就需要考虑,我们如何来识别一个帧,所以这里提出了一个帧定界的概念,使用两个控制字符,一个控制字符SOH放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT标识帧的结束。
所以简单的说第一步就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部就是起到帧定界的作用。
透明传输
关于透明传输,我们主要目的是因为,在帧的有效数据当中,可能出现和帧定界的控制字符一样的字符,为了防止将这些字符当中帧定界的字符,错误的处理帧,所以我们采方法使得数据当中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。
方法是: 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符”ESC”。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。我们把这种方法叫做字节填充法。当然如果转义字符”ESC“也出现在数据当中,那么解决的方法仍然是在转义字符的前面插入一个转义字符,所以,当接受到连续的两个转义字符的时候,就去删除其中前面的一个。
数据链路层的差错控制主要针对在链路上传输的比特位出错,主要有两种控制方法,分别是检错编码和纠错编码,上面提过相关的概念。检错编码包含奇偶校验码和循环冗余码CRC(除法,余数不得零则有错),而纠错编码包含海明码(校验位)。
透明传输的实现方法
字节填充
当PPP使用异步传输时,我们使用0x7D(01111101)作为转义符,转义的规则如下:
1.把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。
2.若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。
3.若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。
零比特填充
当PPP使用同步传输时(这种情况在SONET/SDH链路上使用PPP时出现),使用零比特填充来实现透明传输。
零比特填充相较字节填充要简单得多,0x7E的二进制表示是01111110,因此只要在每出现5个1时插入一个0就可以避免在数据中出现0x7E.
数据链路层协议:
点对点协议(代表协议:PPP、HDLC)
PPP
(1) 标志(Flag)字段:定界符。值用十六进制为0x7E,二进制是01111110,十进制是127。
(2) 地址(Address)字段:无意义。
(3) 控制(Control)字段:暂时无意义。
(4) 协议(Protocol)字段:上层协议(如IP数据报,网络控制层的控制数据等)。
(5) 信息字段:不超过1500B。
(6) FCS字段:CRC校验。
如何实现透明传输就是之前说的字符填充法,在与定界符相同处添加一个转义字符,在接收端接收到数据时,将转义字符去除即可还原出原数据。
HDLC
(1) 标志(Flag)字段:占一个字节,二进制位01111110。
(2) 控制(Control)字段:表示帧的类型。分为三种:信息帧(I)、监督帧(S)、无编号帧(U)。
(1) 信息帧:控制字段第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认。
(2) 监督帧:前两位比特是10,用于流量控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。
(3) 无编号帧:前两位比特是11,用于提供对链路的建立、拆除等多种控制功能。
PPP&HDLC
相同点:
(1) PPP、HDLC协议都支持全双工链路。
(2) 都可以实现透明传输。
(3) 都可以实现差错检测,但都不纠正差错。
不同点:
(1) PPP协议面向字节,HDLC协议面向比特。
(2) HDLC协议帧格式没有协议字段。
(3) PPP协议无序号和确认机制,HDLC协议有编号和确认机制。
(4) PPP协议不可靠,HDLC协议可靠。
多点访问协议三大类型及各自特点
信道划分协议、随机接入协议、轮流协议。
2种随机接入的多点访问协议:
CSMA/CD (重点)
所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。
CSMA/CA
是一种数据传输时避免各站点之间数据传输冲突的算法,其特点是发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。例如,如果计算机A和计算机C同时给计算机B发送一个控制消息,它们将同时到达计算机B,导致冲突的发生。当这种冲突发生时,发送者可以随机等待一段时间,然后重发控制消息。因为控制消息比数据敏要短得多,所以发生第二次冲突的可能性也要比传统以太网要小很多。最终将有一个控制消息正确到达,然后计算机B发送一个响应消息。通常CSMA/CA利用ACK信号来避免冲突的发生,也就是说,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的
单程传播时延tao;最长经过多长时间才能知道自己发送的数据没有发生碰撞?2tao
检测到信道空闲能立即发送信号吗? 能
帧间最小间隔的概念(9.6微秒/96比特时间)
强化碰撞是什么?(别称冲突强化)
当发送数据的站一旦发现发生了碰撞时,需要完成以下 2 步:
1.立即停止发送数据;
2.再继续发送若干比特的人为干扰信号(jamming signal)(指对有用信号的接收造成损伤的信号),以便让所有用户都知道现在已经发生了碰撞。
以太网扩展:
物理层扩展
1.以太网上的主机之间的距离不能太远(例如,10BASE-T以太网的两主机之间的距离不超过200米),否则主机发送的信号经过铜线的传输就会衰减到使CSMA/CD协议无法正常使用。
2.过去,广泛使用粗缆或细缆以太网时,常使用工作在物理层的转发器来扩展以太网的地理覆盖范围。
3.现在,双绞线以太网成为以太网的主流类型,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器。
4.光纤调制解调器的作用,是进行电信号和光信号的转换。
链路层扩展
1.在数据链路层扩展以太网要使用网桥。
2.网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发或过滤。当网桥收到一个帧时,并不是向所有的接口转发这个帧,而是检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
交换机如何自学习来建立交换表
-
交换机表初始为空。
-
对于在某接口接收到的每个入帧,该交换机在其表中存储:
1)在该帧源地址字段中的MAC地址;
2)该帧到达的接口;
3)当前的时间;交换机以这种方式在它的表中记录发送节点所在LAN网段。若在LAN上的每个节点最终都发送了一个帧,则每个节点将在这张表中被记录下来。 -
如果在一段时间(称为老化期(aging time)后,交换机没有接收到发该址作为源地址的帧,就在表中删除这个地址。
自学习过程流程图
交换表中的信息又分为动态的和静态的两种,若表中的MAC地址是静态的,则一般忽略,不进行自学习,当然这也要看实际的具体情况。
习题:3-24、3-25、3-10、3-33
物理层
传输时延:
发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延。发送时延的计算公式是:
发送时延=数据帧长度(bit)/发送速率(bit/s)
传播时延:
传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
传播时延=信道长度(m)/电磁波在信道上大的传播速率(m/s)
电磁波在自由空间的传播速率是光速。即3.0*10^5km/s。
发送时延发生在机器内部的发送器中,与传输信道的长度没有任何关系。传播时延发生在机器外部的传输信道媒体上,而与信道的发送速率无关。信号传送的距离越远,传播时延就越大
排队时延:
分组在进行网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待,在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延无穷大。
这样数据在网络中经历的总时延就是以上四种时延之和:总时延=发送时延+传播时延+处理时延+排队时延。
一般来说,小时延的网络要优于大时延的网络。
通信和计算机利用中,“千”,“兆”,“吉”英文缩写代表的数值不同。2MB和2Mb的M大小有什么不同,B和b的区别?做题要有单位
MB的含义是“兆字节”,一般用作文件大小;
Mb的含义是“兆比特”,一般用作网络传输速度
Byte的含义是“字节数”
bit的含义是“位数”
在计算机中每8位为一字节,也就是1Byte=8bit,是1:8的对应关系。
曼彻斯特编码
也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。曼彻斯特编码因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一个预先定义时间时期的时间中被传送。这样的编码方式可以在长时间没有电平跳变的情况下,仍然对任意的二进制数据进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移所引起的比特错误。同时,如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么就很容易实现信号的恢复和防止能量的浪费。另外,曼彻斯特码还具有丰富的位定时信息。
信噪比公式、香农公式、香农公式与极限传输速率的关系
香农公式的伟大意义:
只要信息传输速率低于信道的极限信息传输速率,就一定存在某种办法来实现无差错的传输。
奈氏准则的意义:
习题1-18、1-28、1-35、2-07、2-16、6-12、6-14、6-47、8-03、8-05
8-3 目前有哪几种方案改造互联网,使互联网能够适合于传送音频/频数据?
8-5流式存储音频/视频,流式实况音频/视频和交互式音频/视频都有何区别