计算机网络
概念
- ACK:确认号 ack:确认序号
- 吞吐量:单次服务中,客户端和服务器进行交互的数据总量 吞吐率:吞吐量除以时间
题目
1.解释CSMA/CD协议:需要提及监听、冲突检测、以及冲突后退让(提及随机、指数级增长的上界)
【适配器从网络层得到一个数据报准备一个以太网帧,并把该帧放到适配器中】
1.载波监听,当发现信道空闲时【信道空闲的判断标准是96bit’时间内未检测到能量信号】发送数据,若适配器传输了整个帧而没有收到其它适配器的能量信号,则完成了该帧的传输;
2.当检测到信道忙时,不发送,继续监听
3.在数据发送过程中,若发生冲突,则停止传输,并发送一个48bit的阻塞信号
4.接着发送方将随机选择一个数字k,n=max(n,10),n是碰撞次数,回退k*512s后继续监听信道是否空闲
-
根据以下参数计算CSMA/CD协议的最小可能帧大小。最大介质跨度为5000米(信号传播为每米5纳秒),数据速率为100 mbps
-
假定1KM长的CSMA/CD协议网络的数据率为1Gb/s。设信号在网络上的传播速率为200000KM/S,求能够用此协议的最短帧长。**t一定要乘以2!!往返时间 10000b 最小帧长=2x(网络数据速率x最大段长/信号传播速度) **
-
考虑一个4层协议实现,其中应用程序层、TCP层、IP层和以太网层按顺序排列(从上到下)。每个层都需要一个报头,但以太网层除外,以太网层需要报头和拖车。应用程序报头的长度为16字节,TCP报头为20字节,IP报头为20字节,以太网报头为14字节,而拖车为4字节(忽略序言和间隙)。 假设以太网帧的最大数据字段为1600字节。一个4096字节的应用程序消息的overhead(以%表示)是多少?提示:必须将消息分割为多个帧,并注意如何考虑以太网帧中的数据字段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MH1A1VpV-1580955364960)(C:\Users\11370\AppData\Roaming\Typora\typora-user-images\image-20200104092554760.png)]
5.三次握手,四次挥手
6.什么是CSMA/CA;为什么WIFI使用它;它是如何工作的;并比较它和CSMA/CD
载波监听碰撞避免。因为对于WiFi来说进行碰撞检测是不现实的,原因是:碰撞检测要求站点具有同时接收和发送的能力,而在802.11适配器上,接收信号的强度远远小于发射信号的强度;更重要的一点是,即使适配器可以同时发送和监听信号,适配器也会因为隐藏终端和信号衰减问题而无法检测到所有的碰撞CSMA/CA工作原理:
1、若监听到某信道空闲,则在等待一个DIFS的短时间后发布该帧
2、否则,随机选择一个回退值,并且在侦听到信道空闲时衰减该值,信道忙碌时,该值不变
3、该值衰减为0时,发送该数据帧并等待ACK
4、如果接收到了ACK则,则被正确发送,如果没有接收到ACK,则进入上述回退阶段
【如何解决隐藏终端问题:RTS(request-to-send),CTS(clear-to-send)控制帧来预约对信道的访问:当发送方要发送一个数据帧时,它会给AP发送一个RTS,指示传输数据帧和所需要的时间。当AP收到后,它广播一个CRS帧作为相应。该CTS帧有两个目的:一是给发送方明确的发送许可,二是指示其它站点在该预约期内不要发送。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aMG06zvd-1580955482176)(C:%5CUsers%5C11370%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200104093735698.png)]
7.
【拥塞控制,TCP窗口大小随时间改变而改变。TCO Reno协议 07级】
a)1-6,23-26 b)6-16 c)duplicate ACK
8.路由规划算法:Dijkstra算法;DV算法【试比较LS算法和DV算法】
eg.
9.子网划分
10.传输层提供的服务(以及UDP,TCP是否提供该服务):分割与重组数据、按端口号寻址、连接管理、差错控制、流量控制
11.slow start的好处:主机开发发送数据报时,如果立即将大量的数据注入到网络中,可能会出现网络的拥塞。慢启动算法就是在主机刚开始发送数据报的时候先探测一下网络的状况,如果网络状况良好,发送方每发送一次文段都能正确的接受确认报文段。那么就从小到大的增加拥塞窗口的大小,即增加发送窗口的大小。
12.什么是子网
13.CRC的计算; 比较校验和和CRCs作为检测错误的一种方法。讨论校验和和CRCs之间的权衡。
CRC比校验和更擅长检测错误。校验和在软件中计算速度比CRC快很多
14. HTTP服务器是无状态的,那么网站如何识别用户?详细描述用于解决此问题的HTTP技术:HTTP是无状态链接,因为要实现有状态链接的效果,所以采用session和cookie两种机制。 客户端请求需要包含服务器指定的唯一的sessionID,如果请求中没有sessionID,服务器将为该请求创建一个session和与之相关联的 sessionID并把这个sessionID放入响应之中,并加上一行特殊的指示以提示浏览器按照指示生成相应的cookie,将响应返回给客户端,客 户端的浏览器按照规则解析响应,如果浏览器支持cookie则将sessionID和其他信息存储起来(persistent cookie 或者session cookie),下次再次访问同一服务器时候浏览器将对应的cookie和请求头一起发送给服务器,服务器按照sessionID进行检索找到对应的 session进行处理。
15.造成丢包的两个主要原因
16. 考虑下图中的场景,其中服务器通过100mbps链路连接到路由器,传播延迟为100ms。该路由器依次连接到两个路由器,每个路由器超过25mbps的链路,传输延迟为200ms。一个1gbps的链路连接一个主机和一个缓存(当存在时)到每一个路由器;这个链路是一个局域网,它的传播延迟基本上为零。网络中的所有数据包都是10,000位长
17.
a)从服务器传输数据包到主机接收数据包的端到端的延迟是多少?假设没有缓存,链路上没有排队延迟,节点(路由器)的包处理延迟也是零
*延迟=100+200+10000(1/100M+1/25M+1/1G)+=300ms+ 0.51ms=300.51ms **
b) 首先假设客户机主机将文件请求直接发送到服务器(即,缓存关闭)。假设没有其他客户端发出请求,服务器向单个客户端交付数据的最大速率是多少?
25Mbps
c) 再次假设只有一个客户端是活动的,但是现在假设缓存是HTTP缓存,并且是打开的。客户端HTTP GET总是首先被定向到它的本地缓存。本地缓存可以满足50%的请求。在此场景中,此客户端接收数据的最大速率是多少
0.5x1Gbps+0.5x25Mps=5.125x10^8
d) 现在假设两个局域网中的客户端都是活动的,HTTP缓存处于打开状态,如上面的c)所示。本地缓存可以满足50%的请求。在这个场景中,每个客户机接收数据的最大速率是多少?
与c相同
18.为什么以太网要有最小帧长,它是怎么确定的?
最小数据包大小是必要的,以确保当数据包的第一个位到达最远的节点时,节点仍在传输,这样就可以在介质的两端检测到冲突。最小数据包大小由RTT为允许的最大距离确定
- 如何通过电路交换网络传输数据?通过电路交换网络从主机a向主机B发送一个1000k字节的文件需要多长时间?假设所有链路速度为500kbps,每个链路使用TDM, 8slot/s和0.5秒来建立端到端电路。
0.5+1000x8/(500/8)=128.5s
- 假设您在web浏览器中单击一个链接以获得一个web页面。假设关联URL的IP地址没有缓存在本地主机中,因此需要进行DNS查找才能获得IP地址。假设在您的主机接收到来自DNS的IP地址之前访问了n个DNS服务器;连续的访问引起RTT1的RTT,…,RTTn。进一步假设与链接相关的web页面包含少量HTML文本,并且HTML文件引用同一服务器上的六个非常小的对象。让RTT0表示本地主机和包含对象的服务器之间的RTT。假设对象的传输时间为零。忽略传输时间,时间流逝了多少
a) 非并行TCP连接的非持续性HTTP
b) 非持续性HTTP与浏览器配置为5个并行连接?
c)持续性HTTP
a) RTT+RTT1+…RTTn+2RTT0+2*6RTT0每个小对象都使用TCP
b)RTT+RTT1+…RTTn+2RTT0+2*2RTT0
c)RTT+RTT1+…RTTn+2RTT0+RTT0
- 考虑将一个3000字节的数据报发送到一个最大传输单元为500字节的链接。假设原始数据报盖有标识号422。生成了多少个片段?与碎片相关的IP数据报中生成的各个字段的值是什么? 一个IP头为20字节,所以:[(3000-20)/(500-20)]=7个片段
22.简述OSPF协议要点
23.
24.
25.考虑仅有一条单一的TCP(Reno)连接使用一条10Mbps链路,且该链路没有缓存任何数据。假设这条链路是发送主机和接收主机之间的唯一拥塞链路。假定某TCP发送方向接收方有一个大文件要发送,而接收方的接受缓存比拥塞窗口大得多。假设TCP每个报文段长度为1500字节,该链接的双向传播时延为150ms,并且该TCP总是处于拥塞避免阶段【即忽略了慢启动】
a)这条TCP连接能取得的最大窗口长度(以报文段记)
L_m/10M=150x10^(-3) so L_m=150*10^(4)bit -> 150/8x10^4B->125个报文段
b)平均窗口长度和平均吞吐量
平均窗口长度:拥塞避免阶段所以窗口大小在W/2和W之间变化,所以平均窗口大小为0.75W=125x0.75=94[93.75的上限]
平均吞吐量:94x1500x8/150ms=7.52Mbps
c)这条TCP连接在从丢包恢复后,再次达到其最大窗口要经历多少时间?
丢包之后窗口大小变为W/2=62,62变到125,需要125-62=63个RTT,即63x150ms=9.45s
26.试在下面条件下比较电路交换和分组交换。要传送的报文共x(bit),从源站到目的站共经历k段链路,每段链路的传播时延为d(s),数据率为C(bit/s)。再电路交换时,电路的建立时间为S(s)。再分组交换时,分组长度为p(bit),且各节点的排队等待时间可以忽略不计。问:再怎样的情况下,分组交换的时延,比电路交换的要小?
电路交换:在T=S时电路建立;在T=S+X/C时最后一个比特的数据发出;在T=S+X/C+kd时,最后一个比特数据到达目的地
分组交换:在T=X/C时最后一个分组发出,最后一个分组需要经过k-1和交换器,传输时延为(k-1)x(p/C),所以最后一个分组到达目的地的时间为:X/C+kd+(k-1)(p/C)
要使分组交换的时延小于电路交换的时延,即(k-1)(p/C)<s
27.为什么说UDP是面向报文的,TCP是面向字节流的?
发送方UDP对应用程序交下来的报文,在添加首部之后就向下交付,既不合并也不拆分,而是保留报文的边界;接收方UDO在接收到报文之后,在去除首部之后九原封不动地交付给上层应用进程,一次交付一个完整的报文
发送方TCP对上层交付的报文数据块,视为无结构字节流,进行拆分和合并,但维持各个字节
28.通信信道带宽为1Gb/s,端到端时延为10ms。TCP的发送窗口为65535字节。试问:可能达到的最大吞吐量是多少? 信道的利用率是多少?
吞吐量=65535x8/(65535x8/10^9+0.02)=25.5Mbps
信道利用率=吞吐量/带宽=2.55%
29.
30.论述具有五层协议的网络体系结构的要点,包括各层的主要功能。
答:综合OSI 和TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:
物理层:透明地传送比特流;数据链路层:在两个相邻节点间地线路上无差错地传送以帧为单位地数据;网络层:选择合适的路由,使发送站的传输层所传下来的分组能够准确无误地按照地址找到目的站,并交付给目的站地运输层;运输层:向上一层的进行通信的两个进程之间提供一个可靠的端到端服务,使它看不到运输层以下的数据通信细节;应用层:直接为用户的应用进程提供服务
31.设某令牌环网中有50个站点,长度为1Km,数据传输速率为10Mbps,每个站引入2位延迟,信号传播速度为200m/us,数据帧的最大长度为100字节。试求出检测令牌丢失的超时计数器的最小值。
延时=物理传播时延+数据包传送时延+位延迟(题目中给的)
物理时延:1km/200m/us=5us; 数据包传送时延:8x100/10M=80us; 位延迟:2x50/100M=10us【50个站点,每个站点引入两位延时,所以是2x50】.所以最后延时=95us
32.已知一个IP数据报的总长度为4020字节(使用固定首部),需要分片为长度不超过1420字节的数据报片,试回答以下问题:
(1)请推算该IP数据报的分片过程,给出片数及各片的总长度、片偏移和MF标志位【MF即分片标志位(more fragment),若MF=1即还有分片;DF(don’t fragment)无分片】;
(2)假定被分片后的第三个数据报片经过某个网络时被再次分片,即划分为分片3-1(携带数据800字节)和分片3-2,请推算分片3-1和分片3-2的总长度,MF和片偏移?
(1)数据报总长度为4020B,减去IP头20B,即数据为4000B.要分成1420-20=1400B的块,因为4000/1400=2.8,所以需要分为三片。第一片大小为1420B,片偏移为0,MF标志位为1;第二片大小为1420B,片偏移为1400/8=175,MF标志位为1;第三片大小为1200B,片偏移为350,MF为0
(2)3-1:820B,MF=1;offset=350; 3-2:420B,MF=0,offset=450
33.一个UDP用户数据报的数据字段为8192B,要使用以太网来传输,试问应当划分几个IP数据报片?说明每个IP数据报片的数据字段长度和片偏移字段。
以太网的最大数据传输单元MTU为1500字节,即一个数据帧中数据字段最大为1500B(最小为46B),除去IP数据报中的IP头20B,即->IP数据报中的数据字段最大只能为1480B. 此时,长度为8192B的数据部分,加上UDP首部8B,扽古8200B.可以分为8200/1480=5.54,所以分为6片,前五片的长度均为1480,最后一片的长度为800B.
第一片,长度为1480B,偏移为0;第二片长度为1480B,偏移为1480/8=185;第二片的长度为1480,偏移为370…第六片的长度为800B,偏移为(8200-800)/8=925
- 在等停协议中中,不使用编号是否可行?收到重复报文时不予理睬(即悄悄丢弃他而什么都不做是否可行)?
不可行,分组和确认都必须使用分组,这样才能明确那个分段收到了。不可行,因为收到重复帧不确认相当于确认丢失,发送方会继续发送重复分组