《计算机网络常见问题》

四次挥手中TIME_WAIT出现的时候以及作用。

主动断开连接的一方收到对端的连接释放报文段就进入TIME_WAIT状态。假设A是主动断开的一方,另一方是B

作用:

(1)保证A发送的最后一个确认报文段可以到达B。因为这个报文段可能会丢失,如果A不等待一段时间在收到B的超时重传报文段后再发送确认,B就无法进入CLOSED状态。一般是,如果报文段丢失,那么在2MSL时间段内A就会收到超时重传报文段,重新发送确认。然后再重启2MSL计时器。直至A,B都进入CLOSED状态。

(2)防止已经失效的连接请求报文段再次出现在下次连接中。A发送完最后一个确认报文段之后,在经过2MSL之后,就可以使本连接持续时间内所产生的所有报文段都从网络中消失。

为什么建立连接是三次握手,而关闭连接需要四次挥手

1 服务器在LINSTEN状态下,收到客户端连接建立请求的报文,从而得知客户端的序列号之后,需要告知服务器自己收到了连接请求并同意建立连接,同时还需要告知客户端自己的序列号,然而ACK和SYN是可以放在同一报文中的。

2 关闭连接时,当B收到A的FIN报文段时,仅仅表示A数据传送发送完毕了,但A还可以接收数据,这时B是否也同时断开连接即关闭数据发送通道,需要上层应用决定,因此B方的连接断开请求报文和对A的断开确认报文段是分开发送的。

序列号的作用

序列号的作用是使得一个TCP接收端可丢弃重复的报文段,记录以乱序到达的报文段。因为TCP使用IP来传输报文段,而IP并不提供重复消除或者保证报文段按照次序正确到达的功能。另外,TCP是一种字节流协议,绝不会以乱序给上层程序发送数据。因此TCP接收端会被迫先保持大序列号的数据不交给应用程序,直到缺失的小序列号的报文段被填满。

三次握手四次挥手的过程

三次握手:

(1)A(客户端进程)和B(服务器进程)先创建传输控制模块TCB,服务器进程进入收听(LISTEN)状态。等待客户的连接请求。

(2)A向B发送连接请求报文段,把首部中的同步位置1(SYN=1),同时选择一个初始序列号seq=x,A进入SYN-SENT(同步已发送)状态

(3)B收到连接请求之后,,如果同意建立连接,就向A发送确认,在确认报文段中把SYN和ACK都置1,确认号ack=x+1,同时也为自己选取一个序列号seq=y。B进入SYN-RCVD(同步收到状态)。

(4)A收到B的确认之后,还要给B发送确认,把ACK置1,确认号ack=y+1,序列号为x+1。这时A进入ESTABLISHED(已建立连接)状态,B收到A的确认之后也会进入连接状态。

四次挥手:

 为什么建立连接需要三次握手,而不是二次或者四次?

首先三次握手的过程是:A向B发送连接请求报文段,B收到之后会发送确认报文段,A在收到B的确认之后还会再发送一次确认。

A再次发送一次报文段的目的是为了防止已经失效的连接请求报文段突然又传到B,因而产生错误。

想象下这种情况,A发送了一个连接请求报文段给B,但是滞留在网络中某个节点上,A在计时器时间内收不到B的确认会超时重传报文段,当A与B建立了连接完成了数据传输并释放连接后,滞留在网络中的报文段又发送给了B,B以为A又发送了连接请求,随即发送确认,这个时候如果不采用第三次握手,由于A没有发送链接请求不会理会B的确认,而B以为链接已经建立,会一直等待A发送数据,浪费网络资源。

实际上对于三次握手来说,我们只可以保证三次握手之后,客户和服务器之间可以建立连接,传输数据,对于其它的一些情况,我们是不能保证的,我们不能保证第二次握手,客户一定能收到服务器的 ACK 和 SYN,也不能确定第三次握手服务器一定能收到客户的 ACK,但是完全可靠的通信协议是根本不存在的,我们的任何通信协议都是在接受这样的现实情况之上进行的,所以从这个角度理解,无论是四次还是五次或是更多次都是徒劳的。

TCP/UDP的区别

(1)TCP是面向连接的,在传输数据之前必须先建立连接,传送完毕之后,必须释放连接(HTTP)。而UDP是无连接的,发送数据前不需要建立连接,减少了开销和发送数据之前的时延。(DNS)

(2)TCP提供可靠的服务。通过TCP连接传送的数据,无差错,不重复,不丢失,无乱序。而UDP使用尽最大努力交付。

(3)TCP是面向字节流的,即把应用程序交付下来的数据看为仅仅是一连串的无结构的字节流。而UDP是面向报文的。UDP对于接收到的报文,不拆分,不合并,而是保留这些报文的边界。

(4)UDP没有拥塞控制,因此网络中出现的拥塞不会使源主机的发送速率降低。而TCP拥有拥塞控制机制

(5)TCP每一条连接都是端到端的;而UDP可支持一对一,一对多,多对一,多对多的交互通信。

(6)UDP的首部开销比较小,只有8个字节,比TCP的20个字节首部要短。

GET/POST的区别

GET和POST两种基本请求方法的区别 - 在途中# - 博客园

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

(1)从意义上来说,GET主要用于信息获取,向特定的资源发出请求。而POST主要用于向指定资源提交数据(如提交表单或上传文件),可能会修改服务器上的资源。

(2)从具体数据传送形式来说,GET请求的数据会附加到URL之后(把数据放在HTTP的协议头),以?分割URL和传输数据,参数之间用&连接。而POST会把提交的数据放到HTTP的请求报文的内部即实体主体,比GET较为安全。

(3)浏览器多数情况下会对GET的URL长度进行限制,虽然本身HTTP协议没有对URL长度进行限制,但如果过长对服务器会是一种负担。而POST没有限制。

(4)GET在浏览器中回退时是无害的,而POST会再次提交请求,可能会修改数据。

(5)GET请求会被浏览器主动缓存,而POST不会,除非手动设置

(6)GET只接受ASCII字符的参数 的数据类型,而POST没有限制。

(7)GET产生一个TCP数据包,而POST会产生2个TCP数据包。因为GET将参数或数据放在HTTP协议头中进行发送,所以只产生一个TCP报文段,服务器响应200,而POST则先发送协议头部,服务器响应100,浏览器再次发送数据,服务器响应200,因此需要2个数据包。

POST/PUT

HTTP协议中PUT和POST使用区别_其实并不难,是你太悲观-优快云博客_post和put的区别

PUT 幂等

http1.0/http1.1的区别

(1)是否默认长连接:

HTTP1.0默认浏览器和服务器只保持短暂的连接,浏览器每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开TCP 连接,服务器不跟踪每个客户也不记录过去的请求。

而 HTTP1.1 默认支持长连接,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟。HTTP1.1 还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能区分出每次请求的响应内容。

(2)HTTP1.1增加了host头域。

在 HTTP1.0 中认为每台服务器都绑定唯一的 IP 地址,因此,请求消息中的 URL 并没有传递主机名。但随着虚拟主机技术的发展,在一台物理服务器上可以有多个虚拟主机,并且它们共享一个 IP 地址。HTTP1.1 的请求消息和响应消息都支持 Host 头域,且请求消息中如果没有 Host 头域会报告一个错误(400 Bad Request)。HTTP1.1 实现了在一台 web 服务器上可以在同一个 IP 地址和端口号上使用不同的主机名来创建多个虚拟 web 站点。

(3)HTTP1.1加入了一个新的状态码100(Continue)

客户端先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送状态码 100,客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

(4)带宽优化

HTTP1.0 中存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象传送过来了。HTTP1.1 中在请求消息中引入了 range 头域,它允许只请求资源的某个部分。

http通信存在的问题

(1)容易被监听 :http通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就能看到卡号和密码,这是很危险的

(2)被伪装 :http通信时,无法保证通行双方是合法的,通信方可能是伪装的。比如你请求www.taobao.com,你怎么知道返回的数据就是来自淘宝,中间人可能返回数据伪装成淘宝。

(3)被篡改 :hacker中间篡改数据后,接收方并不知道数据已经被更改。

https解决的问题

https很好的解决了http的三个缺点(被监听、被篡改、被伪装),https不是一种新的协议,它是http+SSL(TLS)的结合体,SSL是一种独立协议,所以其它协议比如smtp等也可以跟ssl结合。https改变了通信方式,它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了对称密钥加密+非对称密钥加密的方式

(1)防监听 数据是加密的,所以监听得到的数据是密文,hacker看不懂。

(2)防伪装 伪装分为客户端伪装和服务器伪装,通信双方携带证书,证书相当于身份证,有证书就认为合法,没有证书就认为非法,证书由第三方颁布,很难伪造

(3)防篡改 https对数据做了摘要,篡改数据会被感知到。hacker即使从中改了数据也白搭。

httphttps的区别

/*SSL( 安全套接层),及其继任者传输层安全(TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

提供的服务:1)认证用户和服务器,确保数据发送到正确的客户机和服务器2)加密数据以防止数据中途被窃取;3)维护数据的完整性,确保数据在传输过程中不被改变。*/

(1)HTTP 是直接在客户端与服务器之间建立 TCP 连接,默认使用 80 端口,使用明文在网络中传输通信,通信结束后,断开 TCP 连接。

(2) HTTPS 则是具有安全性的 ssl 加密传输协议,起初需要建立 SSL安全连接,默认使用 443 端口,在网络中传输的内容也是经过加密的。

(1)客户端发起HTTPS请求,首先连接到服务器的443端口。

(2)服务器向客户端返回数字证书和公开密钥,公开密钥作为数字证书的一部分,证书中还包括其它信息,即证书颁发机制,过期时间等。

(3)客户端解析证书,验证公钥是否有效,如果有效,就生成共享密钥,并通过非对称加密将其传送给服务器。

(4)服务器使用私钥解密数据,并使用收到的共享密钥通过对称加密,将数据发送到客户端。

(5)客户端使用共享密钥解密数据。SSL连接建立。

因为共享密钥是通过非对称加密传输的,其明文没有在网络中出现过,而且之后每次传输数据都是利用共享密钥进行加密解密,攻击者无法窃取。

http升级为https需要做什么。

服务器需要支持https协议,自己申请证书或者向组织机构申请证书。

https的缺点 

https保证了通信的安全,但带来了加密解密消耗计算机cpu资源的问题 ,不过,有专门的https加解密硬件服务器

各大互联网公司,百度、淘宝、支付宝、知乎都使用https协议,为什么? 

支付宝涉及到金融,所以出于安全考虑采用https这个,可以理解,为什么百度、知乎等也采用这种方式?为了防止运营商劫持!http通信时,运营商在数据中插入各种广告,用户看到后,怒火发到互联网公司,其实这些坏事都是运营商(移动、联通、电信)干的,用了https,运营商就没法插播广告篡改数据了。

对称密钥(加密)和非对称密钥(加密)

(1)对称密钥(私钥加密)

信息的发送方和接受方用一个密钥去加密和解密数据。最大的优势就是加密解密速度快,适合于对大数据量进行加密,对称密钥的一大缺点是密钥的管理与分配,也就是说,如何安全的把密钥发送给需要解密的人的手里。在发送密钥的过程中,密钥有很大风险会被黑客们拦截。对称密钥通常使用的是相对较小的密钥,一般小于 256bit,因为密钥越大,加密越强越难破解,但同时加密和解密的过程也变的更慢,所以密钥的大小不适合过大也不适合过小。

(2)非对称密钥(公钥加密)

它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发送给任何请求它的人。非对称密钥使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

目前最常用的非对称加密算法是 RSA 算法,公钥机制灵活,但是加密和解密的过程比对称密钥加密要慢很多。

(3)虽然非对称加密很安全,但是和对称加密相比,非常慢,所以我们还是要使用对称加密来对消息进行加密传送,但是对称加密所用的密钥我们可以通过非对称加密的方式发送出去。

网页解析的过程

(1)用户输入URL,浏览器根据URL中的域名通过DNS(DNS端口号是53,HTTP的端口号是80)查找服务器对应的IP地址。

(2)浏览器通过DNS解析出来的IP地址,会以一个随机端口(1024-65535)向web服务器的的80端口发起TCP连接请求,通过TCP三次握手与web服务器建立连接。

(3)浏览器向web服务器发送http请求报文(请求行,请求头,请求数据)

(4)服务器做出响应,返回响应数据传送给客户端。响应报文包括(状态行,响应头,响应数据)这时web服务器会根据HTTP请求头中的connection字段值来决定是否关闭TCP连接,当为keep-alive时,web服务器不会立即关闭此连接,该连接则会被保持一段时间,在该时间内可以继续接收请求;如果 Connection 为 close,则服务器主动关闭 TCP 连接,客户端被动关闭连接。

(5)客户端浏览器首先解析状态行,根据状态码确定请求是否成功,之后解析响应头和 HTML 内容,根据HTML 的语法对其进行格式化,并在浏览器窗口中显示。

SessionCookie的区别

cookie 和session 的区别详解 - 施杨 - 博客园

UDP如何实现可靠传输

UDP如何实现可靠传输 - 简书

udp如何实现可靠性传输?_3-Number-优快云博客_udp如何实现可靠传输

MSSMTU

mtu是网络传输报文包长度。 mss是网络传输数据的长度。

 mss加包头数据就等于mtu. 简单说拿TCP包做例子。 报文传输1400字节的数据的话,那么mss就是1400,再加上20字节IP包头,20字节tcp包头,那么mtu就是1400+20+20. 当然传输的时候其他的协议还要加些包头在前面,总之mtu就是总的最后发出去的报文大小。mss就是你需要发出去的数据大小。

1.MSS: Maxitum Segment Size 最大分段大小

 2.MSS最大传输大小的缩写,是TCP协议里面的一个概念。

3.MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

MTU:maximum transmission unit,最大传输单元,由硬件规定,如以太网的MTU为1500字节。

MSS:maximum segment size,最大分节大小,为TCP数据包每次传输的最大数据分段大小,一般由发送端向对端TCP通知对端在每个分节中能发送的最大TCP数据。MSS值为MTU值减去IPv4 Header(20 Byte)和TCP header(20 Byte)得到。

分片:若一IP数据报大小超过相应链路的MTU的时候,IPV4和IPV6都执行分片(fragmentation),各片段到达目的地前通常不会被重组(re-assembling)。IPV4主机对其产生的数据报执行分片,IPV4路由器对其转发的数据也执行分片。然而IPV6只在数据产生的主机执行分片;IPV6路由器对其转发的数据不执行分片。

例如:一个以太网上的主机和一个令牌环网上的主机间建立连接,其中以太网上主机通告的MSS为1460,令牌环网上主机通告的MSS为4096。观察分组,在两个方向上都找不到大于1460字节的数据,为什么?

        令牌环网上发送到以太网的数据大小不大于1460字节的原因是因为以太网上主要通告的MSS值就为1460个字节,所以令牌环网上发送出去的数据的长度不能够大于MSS值;令牌环网上主机通告的MSS值为4096,也即是说以太网能够发送到令牌环网上的TCP净荷值为4096,但是以太网的MTU值又是由硬件所决定的,最大只支持1500(包括IP头至少20B和TCP头至少20B),为避免分片,因此以太网发送到令牌环网的数据的净荷也为1500-20-20=1460B,所以两个方向的净数据长度不会大于1460字节。

HTTP状态码:共有5大类33种:

(1)1xx 表示通知信息的,如请求收到了或正在处理

(2)表示成功,如接受或知道了

(3)表示重定向,如要完成请求还需要采取进一步的行动。

(4)表示客户的差错,如请求中有错误的语法或不能完成。

(5)表示服务器的差错,如服务器失效无法完成请求。

TCP粘包问题

1 什么是粘包现象

TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。

2 为什么出现粘包现象

1)发送方原因

我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到确认,才会发送下一个分组;2)收集多个小分组,在一个确认到来时一起发送。

所以,正是Nagle算法造成了发送方有可能造成粘包现象。

2)接收方原因

TCP接收到分组时,并不会立刻送至应用层处理,或者说,应用层并不一定会立即处理;实际上,TCP将收到的分组保存至接收缓存里,然后应用程序主动从缓存里读收到的分组。这样一来,如果TCP接收分组的速度大于应用程序读分组的速度,多个包就会被存至缓存,应用程序读时,就会读到多个首尾相接粘到一起的包。

3 什么时候需要处理粘包现象

(1)如果发送方发送的多个分组本来就是同一个数据的不同部分,比如一个很大的文件被分成多个分组发送,这时,当然不需要处理粘包的现象;

(2)但如果多个分组本毫不相干,甚至是并列的关系,我们就一定要处理粘包问题了。比如,我当时要接收的每个分组都是一个有固定格式的商品信息,如果不处理粘包问题,每个读进来的分组我只会处理最前边的那个商品,后边的就会被丢弃。这显然不是我要的结果。

4 如何处理粘包现象

1)发送方

对于发送方造成的粘包现象,我们可以通过关闭Nagle算法来解决,使用TCP_NODELAY选项来关闭Nagle算法。

2)接收方

遗憾的是TCP并没有处理接收方粘包现象的机制,我们只能在应用层进行处理。

3)应用层处理

应用层的处理简单易行!并且不仅可以解决接收方造成的粘包问题,还能解决发送方造成的粘包问题。

解决方法就是循环处理:应用程序在处理从缓存读来的分组时,读完一条数据时,就应该循环读下一条数据,直到所有的数据都被处理;但是如何判断每条数据的长度呢?

两种途径:

1)格式化数据:每条数据有固定的格式(开始符、结束符),这种方法简单易行,但选择开始符和结束符的时候一定要注意每条数据的内部一定不能出现开始符或结束符;

2)发送长度:发送每条数据的时候,将数据的长度一并发送,比如可以选择每条数据的前4位是数据的长度,应用层处理时可以根据长度来判断每条数据的开始和结束。

当时在做购物车的时候,我最开始的做法是设置开始符(0x7e)和结束符(0xe7),但在测试大量数据的时候,发现了数据异常。正如我所猜测,在调试过程中发现某些数据内部包含了它们。因为要处理的数据是量非常庞大,为做到万无一失,最后我采用了发送长度的方式。再也没有因为粘包而出过问题。

https://www.cnblogs.com/kex1n/p/6502002.html(推荐博客)

https://www.jianshu.com/p/7947991db5a3(拆包和粘包)

常见问题目录 本光盘的使用方法:点击感兴趣的问题,就可以链接到该问题的答案。所有文件都是用WORD打开的。在点击所要看的问题时,请同时按住Control键(Ctrl)。 第1章 概述 问题1-1:“主机”和“计算机”一样不一样? 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的? 问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢? 问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-7:TCP/IP的体系结构到底是四层还是五层? 问题1-8:我们常说“分组交换”。但又常说“路由器转发IP数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合? 问题1-9:到商店购买可一个希捷公司生产的80 G的硬盘。安装到电脑上以后用WINDOWS的资源管理器发现在该磁盘的“属性”中只有74.5 G。是不是商店出了差错? 问题1-10:有这样的说法:习惯上,人们都将网络的“带宽”作为网络所能传送的“最高数据率”的同义语。这样的说法有何根据? 问题1-11:有时可听到人们将“带宽为10 Mb/s的以太网”说成是“速率(或速度)为10 Mb/s的以太网”或“10兆速率(或速度)的以太网”。试问这样的说法正确否? 问题1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否? 问题1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积管道就比较宽呢? 问题1-14:网络的吞吐量与网络的时延有何关系? 问题1-15:什么是“无缝的”、“透明的”和“虚拟的”? 问题1-16:在教材的1.7.2节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思? 问题1-17:为什么协议不能设计成100%可靠的? 问题1-18:什么是因特网的摩尔定律? 第2章 物理层 问题2-1:“规程”、“协议”和 “规约”都有何区别? 问题2-2:在许多文献中经常见到人们将“模拟”与“仿真”作为同义语。那么,“模拟信道”能否说成是“仿真信道”? 问题2-3:为什么电话信道的标准带宽是3.1 kHz? 问题2-4:奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么? 问题2-5:传输媒体是物理层吗?传输媒体和物理层的主要区别是什么? 问题2-6:同步(synchronous)和异步(asynchronous)的区别是什么? 问题2-7:同步通信和异步通信的区别是什么? 问题2-8:位同步(比特同步)和帧同步的区别是什么? 第3章 数据链路层 问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。 但最近新版的《计算机网络》(第4版和第5版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。 到底哪一种说法是正确的? 问题3-2:当数据链路层使用PPP协议或CSMA/CD协议时,既然不保证可靠传输,那么为什么对所传输的帧进行差错检验呢? 问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输? 问题3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网? 问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题? 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的? 问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用? 问题3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗? 问题3-9:在以太网中发生了碰撞是否说明这时出现了某种故障? 问题3-10:从什么地方可以查阅到以太网帧格式中的“类型”字段是怎样分配的? 问题3-11:是什么原因使以太网有一个最小帧长和最大帧长? 问题3-12:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另一对线用于接收。但现在的标准是使用RJ-45连接器。这种连接器有8根针脚,一共可连接4对线。这是否有些浪费?是否可以不使用RJ-45而使用RJ-11? 问题3-13:RJ-45连接器对8根针脚的编号有什么规定? 问题3-14:剥开5类线的外塑料保护套管就可以看见不同颜色的4对双绞线。哪一根线应当连接到哪一个针脚呢? 问题3-15:将5类线电缆与RJ-45插头连接起来的具体操作步骤是怎样的? 问题3-16:不用集线器或以太网交换机,能否将两台计算机用带有RJ-45插头的5类线电缆直接连接起来? 问题3-17:使用屏蔽双绞线电缆STP安装以太网是否可获得更好的效果? 问题3-18:如果将已有的10 Mb/s以太网升级到100 Mb/s,试问原来使用的连接导线是否还能继续使用? 问题3-19:使用5类线的10BASE-T以太网的最大传输距离是100 m。但听到有人说,他使用10BASE-T以太网传送数据的距离达到180 m。这可能吗? 问题3-20:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题3-21:什么叫做“星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”? 问题3-22:以太网的覆盖范围受限的一个原因是:如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收。试问:如果我们设法提高发送信号的功率,那么是否就可以提高以太网的通信距离? 问题3-23:一个大学能否就使用一个很大的局域网而不使用许多相互连接的较小的局域网? 问题3-24:一个10 Mb/s以太网若工作在全双工状态,那么其数据率是发送和接收各为5 Mb/s还是发送和接收各为10 Mb/s? 问题3-25:一个单个的以太网上所使用的网桥数目有没有上限? 问题3-26:当我们在PC机插上以太网的适配器(网卡)后,是否还必须编制以太网所需的MAC协议的程序? 问题3-27:使用网络分析软件可以分析出所捕获到的每一个帧的首部中各个字段的值。但是有时却无法找出LLC帧首部的各字段的值。这是什么原因? 问题3-28:整个的IEEE 802委员会现在一共有多少个工作组? 问题3-29:在一些文献和教材中,可以见到关于以太网的“前同步码”(preamble)有两种不同的说法。一种说法是:前同步码共8个字节。另一种说法是:前同步码共7个字节,而在前同步码后面还有一个字节的“帧开始定界符”SFD (Start-of-Frame Delimiter)。那么哪一种说法是正确的呢? 问题3-30:802.3标准共包含有多少种协议? 问题3-31:在802.3标准中有没有对人为干扰信号(jamming signal)制定出标准呢? 问题3-32:在以太网中,有没有可能在发送了512 bit(64 B)以后才发生碰撞? 问题3-33:在有的文献中会见到runt和jabber这两个名词,它们是什么意思? 问题3-34:当局域网刚刚问世时,总线形的以太网被认为可靠性比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确? 第4章 网络层 问题4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为什么世界上还存在多种异构网络? 问题4-2:“IP网关”和“IP路由器”是否为同义语? 问题4-3:“互连网”和“互联网”有没有区别? 问题4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思? 问题4-5:在一个互联网中,能否使用一个很大的交换机(switch)来代替互联网中很多的路由器? 问题4-6:为什么IP地址又称为“虚拟地址”? 问题4-7:有的文献上使用“虚拟分组”(virtual packet)这一名词。虚拟分组是什么意思? 问题4-8:如下图所示。五个网络用四个路由器(每一个路由器有两个端口)互连起来。能否改变这种连接方法,使用一个具有五个端口的路由器将这五个网络互连起来? 问题4-9:当运行PING 127.0.0.1时,这个IP数据报将发送给谁? 问题4-10:网络前缀是指网络号字段(net-id)中前面的几个类别位还是指整个的网络号字段? 问题4-11:有的书(如[COME06])将IP地址分为前缀和后缀两大部分,它们和网络号字段及主机号字段有什么关系? 问题4-12:IP地址中的前缀和后缀最大的不同是什么? 问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处? 问题4-14:IP地址中的各种类别的地址所拥有的地址数目的比例是怎样的? 问题4-15:在IP地址中,为什么使用最前面的一个或几个比特来表示地址的类别? 问题4-16:全1的IP地址是否是向整个因特网进行广播的一种地址? 问题4-17:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么? 问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处? 问题4-19:链路层广播和IP广播有何区别? 问题4-20:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别? 问题4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释? 问题4-22:IP地址和电话号码相比时有何异同之处? 问题4-23:“尽最大努力交付”(best effort delivery)都有哪些含义? 问题4-24:假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A? 问题4-25:有人将ARP列入网络接口层,即认为ARP不在IP层,这样对吗? 问题4-26:一个主机要向另一个主机发送IP数据报。是否使用ARP就可以得到该目的主机的硬件地址,然后直接用这个硬件地址将IP数据报发送给目的主机? 问题4-27:在因特网中最常见的分组长度大约是多少个字节? 问题4-28:IP数据报的最大长度是多少个字节? 问题4-29:IP数据报的首部的最大长度是多少个字节?典型的IP数据报首部是多长? 问题4-30:IP数据报在传输的过程中,其首部长度是否会发生变化? 问题4-31:当路由器利用IP数据报首部中的“首部检验和”字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个ICMP报文给源主机呢? 问题4-32:RIP协议的好处是简单,但缺点是不够稳定。有的书上介绍“触发更新”、“分离范围”和“毒性逆转”。能否简单介绍一下它们的要点? 问题4-33:IP数据报必须考虑最大传送单元MTU (Maximum Transfer Unit)。这是指哪一层的最大传送单元?包括不包括首部或尾部等开销在内? 问题4-34:如果一个路由器要同时连接在一个以太网和一个ATM网络上,需要有什么样的硬件加到路由器上? 问题4-35:教材中的图4-19的B类网络145.13.0.0在划分子网时,所给出的三个子网号是怎样得出的? 问题4-36:“交换(switching)”的准确含义是什么? 问题4-37:为什么生存时间TTL原来用秒作为单位而现在TTL却表示数据报在网络中所能通过的路由器数的最大值? 第5章 运输层 问题5-1:TCP协议是面向连接的,但TCP使用的IP协议却是无连接的。这两种协议都有哪些主要的区别? 问题5-2:从通信的起点和终点来比较,TCP和IP的不同点是什么? 问题5-3:端口(port)和套接字(socket)的区别是什么? 问题5-4:一个套接字能否同时与远地的两个套接字相连? 问题5-5:数据链路层的HDLC协议和运输层的TCP协议都使用滑动窗口技术。从这方面来进行比较,数据链路层协议和运输层协议的主要区别是什么? 问题5-6:TCP协议能够实现可靠的端到端传输。在数据链路层和网络层的传输还有没有必要来保证可靠传输呢? 问题5-7:在TCP报文段的首部中只有端口号而没有IP地址。当TCP将其报文段交给IP层时,IP协议怎样知道目的IP地址呢? 问题5-8:在TCP传送数据时,有没有规定一个最大重传次数? 问题5-9:TCP都使用哪些计时器? 问题5-10:是否TCPUDP都需要计算往返时间RTT? 问题5-11:假定TCP开始进行连接建立。当TCP发送第一个SYN报文段时,显然无法利用教材中5.6.3节所介绍的方法计算往返时间RTT。那么这时TCP又怎样设置重传计时器呢? 问题5-12:糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状? 问题5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法? 问题5-14:为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号? 问题5-15:能否利用TCP发送端和接收端交换报文段的图来说明慢开始的特点? 问题5-16:对于拥塞避免是否也能够用发送端和接收端交换的报文段来说明其工作原理? 问题5-17:TCP连接很像一条连接发送端和接收端的双向管道。当TCP在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择? 问题5-18:假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP的“可靠交付”的功能是否就是多余的? 问题5-19:TCP是通信协议还是软件? 问题5-20:在计算TCP的往返时间RTT的公式中,本教材过去的版本是取 = 7/8。但现在的新版本是取 = 1/8。为什么会有这样大的改变? 第6章 应用层 问题6-1:我们经常说“两个计算机进行通信”。我们应当怎样理解这句话? 问题6-2:能否用你的PC机进行一个简单的实验:一个计算机同时和5个计算机进行通信? 问题6-3:因特网中计算机程序之间的通信和电信网中的电话通信有何相同或不同之处? 问题6-4:连接在因特网上的主机名必须是唯一的吗? 问题6-5:在因特网中通过域名系统查找某个主机的IP地址,和在电话系统中通过114查号台查找某个单位的电话号码相比,有何异同之处? 问题6-6:一个单位的DNS服务器可以采用集中式的一个DNS服务器,也可以采用分布式的多个DNS服务器。哪一种方案更好些? 问题6-7:对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样。这可能吗? 问题6-8:当使用56 kb/s的调制解调器上网时,经常会发现数据下载的速率远远小于56 kb/s。这是什么原因? 问题6-9:ARP和DNS是否有些相似?它们有何区别? 问题6-10:“网关”和“路由器”是否为同义语? 问题6-11:我们常在文献上看到“远程登录”这样的名词。它的英文名字应当是remote log-in还是Telnet? 问题6-12:电话通信和电子邮件通信是使用客户服务器工作方式吗? 问题6-13:在电子邮件中,“信封”、“内容”、“首部”、“主体”是个什么样的关系? 问题6-14:能否更加细致地介绍一下base64编码? 问题6-15:能否归纳一下HTTP协议的主要特点? 问题6-16:HTTP 1.1协议比起HTTP 1.0协议有哪些主要的变化? 问题6-17:抽象语法、传送语法的主要区别是什么?数据类型、编码以及编码规则的区别又是什么? 第7章 计算机网络的安全 问题7-1:用一个例子说明置换密码的加密和解密过程。假定密钥为CIPHER,而明文为attack begins at four,加密时明文中的空格去除。 问题7-2:拒绝服务DOS (Denial Of Service)和分布式拒绝服务DDOS (Distributed DOS)这两种攻击是怎样产生的? 问题7-3:报文的保密性和报文的完整性有何不同?保密性和完整性能否只要其中的一个而不要另一个? 问题7-4:常规密钥体制与公钥体制最主要的区别是什么? 问题7-5:能否举一个实际的RSA加密和解密的例子? 问题7-6:要进一步理解RSA密码体制的原理,需要知道哪一些数论的基本知识? 问题7-7:怎样证明RSA密码体制的解码公式? 问题7-8:RSA加密能否被认为是保证安全的? 问题7-9:报文摘要并不对传送的报文进行加密。这怎么能算是一种网络安全的措施?不管在什么情况下永远将报文进行加密不是更好一些吗? 问题7-10:不重数(nonce)是否就是随机数? 问题7-11:在防火墙技术中的分组过滤器工作在哪一个层次? 第8章 因特网上的音频/视频服务 问题8-1:为什么说传统的因特网本身是非等时的? 问题8-2:IP协议是不保证服务质量的。可是因特网的成功可以说在很大的程度上得益于IP协议。那么IP协议最主要的优点是什么? 问题8-3:端到端时延(end-to-end delay)和时延抖动(delay jitter)有什么区别? 问题8-4:能否简单归纳一下,为了适应多媒体信息的传输,目前对因特网应如何演进,都有哪三种主要观点? 问题8-5:在教材第8章的图8-2中的缓存(其作用是将非恒定速率的分组变为恒定速率的分组)是否就是在运输层中的接收缓存? 问题8-6:假定在教材第8章图8-19中对应于三种分组流的权重分别为0.5,0.25和0.25,并且所有的分组流都有大量分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的(对于轮流服务的情况,被服务的顺序是1 2 3 1 2 3 1 2 3…)? 问题8-7:假定在问题8-6中,只有第一类和第二类分组流有大量分组在缓存中,而第三类分组流目前暂时没有分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的? 第9章 无线网络(略) 第10章 下一代因特网 问题10-1:本章叫做“下一代因特网”。这是否意味着前面几章讨论的因特网协议都属于传统的因特网,而只有本章讨论的内容才涉及到因特网的一些新的演进? 问题10-2:三网融合是目的吗? 有关广域网WAN的问题 问题WAN-1:广域网在地理上覆盖的范围较大,那么能不能说“凡是在地理上覆盖范围较大的网络就是广域网”? 问题WAN-2:在广域网中的结点交换机是否就是路由器? 问题WAN-3:为什么在第5版的《计算机网络》取消了“广域网”这一章? 问题WAN-4:为什么ATM信元的有效载荷规定为48字节? 问题WAN-5:异步传递方式ATM和同步传输有什么关系? 问题WAN-6:是否SDH/SONET只能为ATM使用? 问题WAN-7:在ATM中发送端或接收端的传输汇聚子层TC能否辨认出不同的虚通路VC? 问题WAN-8:按照分层原理,下层不检查上层协议数据单元PDU的首部。在ATM中,在传输汇聚子层TC上面的是ATM层。那么TC子层是否也不检查ATM信元的首部?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值