应用层 传输层问题

(一) 应用层

1.Internet域名解析有哪两种方式?试简述各自工作原理。

一般客户机和服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器不能解析,则它会向另外的DNS发出请求,最终将结果返还给客户机。

一般DNS服务器之间用迭代查询,若本地域名服务器不能解析,则他会请求根域名服务器,跟域名服务器会给他一个可以给你帮助的顶级域名服务器的地址,依据地址请求请求顶级域名服务器后,会得到相应权限域名服务器,以此类推。

 

2.简述Smtp工作过程和每阶段使用的协议

连接建立        采用TCP协议

邮件发送        采用STMP协议

释放连接        TCP协议

 

(二) 传输层

1.假如要你在应用层设计一个网络应用,比如qq聊天,可以给某指定朋友传送任何长度、类型的信息,要求接收方可以检查错误,请设计一个的完整的报文。假如加一个“最多转发给5个人”的限定(假定不能通过界面拷贝/复制),重新设计报文,并设计一个处理算法。

 

报文包括:目的IP地址 IP地址 源端口地址 目的端口地址 TTL生存时间(3位) 校验 片偏移 分片长度 类型字段  报文长度 等。

If (转发次数 <=  101b)

         Then 允许转发

Else

         提示信息

         关闭转发

2.如果希望通过socket传输信息,一类是视频信息,要边下边放(要求在能播放时要保持顺畅),一类是控制信息,要对播放视频进行管控(比如暂停、后拉、前进),但是对视频信息的下载不能产生影响,试设计一套比较好的方案。

Socket设置2个端口,一个专门控制视频数据信息,另一个专门控制传输信息,前者要求可以边下载边播放,后者对视频进行暂停、后拉、前进控制等。两端口互相不影响。

3.简述TCP的三次握手协议的过程,并说明为什么要使用三次握手协议?

ROUND 1: 客户端向服务器端发送连接请求报文段,AYN = 1,seq = x(随机)

ROUND 2: 服务器端接收到请求之后,为该TCP连接分配缓存和变量,并向客户端发送连接确认报文,SYN = 1, ACK = 1, ack = x+1,seq = y(随机);

ROUND 3:客户端为该TCP连接分配缓存和变量,并向服务器端发送确认的确认,SYN = 0,ACK = 1, ack = y+1.

完成三次握手之后客户端可服务端进行数据传输。

为什么使用三次握手协议:若改为两次握手,可能会有死锁发生,三次握手可以有效的防止已过期的连接再次传送到被连接主机。

 

4.一个TCP 连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞吐量只有120kb/s。试问发送窗口W是多少?(提示:可以有两种答案,取决于接收等发出确认的时机)。

1)设窗口大小为x

则有x/(x/256kb/s+256ms) = 120kb/s

136/256x = 256ms *120kb/s = 30720b

X = 57826b = 7228字节

2)设窗口值为X

8x/128*2*1000 = 256 *0.001

x = 8192;

 

 

5.设TCP 使用的最大窗口为65535 字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?

在发送时延可以忽略的情况下,最大数据率 = (最大窗口 * 8/平均往返时延

= 65535 * 8 bit / 20ms = 26.2MB/S.

 

 

 

6.设某一时刻TCP连接慢开始门限 ssthresh=16。TCP随后执行慢开始算法和拥塞避免算法,假设当拥塞窗口的大小上升为18时,网络发生了拥塞。

1)若TCP再次执行慢开始算法和拥塞避免算法。试求出从第1次数据传输到第14次数据传输中每一次对应的拥塞窗口大小(也可画图表示,必须标明图中各点坐标值)。

略,先指数增大到16,后加法增大到18,再从1满开始,到9,再假发增大。

 

2)若在发生拥塞时又检测到了4个ACK,若采用快恢复算法,拥塞窗口 cwnd应该设置为多少?

Cwnd = ssthresh + n * mss

          =9 + 4

          = 13mss;

 

3)如果不慎发生了拥塞,请分析会有哪些危害(至少给出两种,每个2分)?

若发生拥塞,

若发生拥塞,则分组存在很大时延,因分组丢弃产生不必要的重传,导致转发不必要的副本,当分组最终被丢弃时,上游路由器用于该分组的资源也会被浪废。

 

7.为什么数据链路层已经有流量控制,Interenet在传输层依然要进行流量控制?

1.数据链路层流流量控制是点到点的,而传输层控制的是端到端的。

2.控制手段不同。数据链路层:接收方收不到就不回复确认。    传输层:接收端发送给发送端窗口通告。

3.虽然两层都有流量控制,但是控制的对象是不同的。两层的工作方式不同,传输的数据对象也不同,数据链路层传输的是Frame,面对的是物理设备,而传输层的是Packet,面对的是高层应用。这样分别对应的不同的速度,不同的介质,因而需要进行流量控制。

 

8.在设计网络视频直播工具时,应使用无连接的报文服务。为了提高处理速度和效率,我们直接使用网络层的IP数据报服务,而没有经过传输层,请问这样的设计是否可行?为什么?

不可行,因为网络层只负责主机与主机的连接,需要通过传输层的复用/分用功能来建立端到端的连接。

9.网络层的IP协议提供无连接的数据报服务,而传输层UDP也提供无连接的报文服务,那么用户进程直接发送原始的IP分组而不通过传输层可以吗?为什么?

不可以,因为不同的应用进程设计不同的进程涉及不同的端口,如果不通过传输层,无法实现端到端传输。

 

欢迎留言交流。。。

你可能感兴趣的:(计算机网络)