目录
1、什么是互联网OSI模型?... 4
2、OSI七层模型... 5
3、TCP/IP 4 层模型以及每层主要功能描述如下:... 6
4、TCP/IP 五层模型... 6
5、在各层之间,数据是以什么单位进行传输的?... 7
6、数据如何各层之间传输?... 7
7、TCP IP UDP全称... 7
7-1 各种状态含义 SYN-SENT等... 7
7-2 IP数据报格式... 8
7-3 TCP报文头... 9
7-3 UDP报文头... 13
7-4 HTTP报文头... 13
IP报文格式... 15
8、TCP握手协议... 16
9、TCP四次挥手过程... 17
10.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?... 18
10-4 、为什么会采用三次握手,若采用二次握手可以吗?... 18
10-1、TIME_WAIT状态的概念及意义。为什么需要等待2msl后才能返回到CLOSED状态?... 19
10-2 同时打开、同时关闭... 19
10-3 TCP通信中服务器处理客户端意外断开... 20
11、如果客户端不断发送连接请求会怎么样... 21
12、TCP如何保证数据的可靠性... 22
12-1 重传策略... 22
13、TCP和UDP的区别?如何改进TCP?... 23
14、滑动窗口算法... 23
15、TCP拥塞控制... 24
16、从输入网址到获得页面的过程... 27
16-1 DNS域名解析... 28
17、请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?... 29
18、ARP 是地址解析协议,简单语言解释一下工作原理。 (用途、算法、那一层上使用)... 30
71 、 RARP ?... 31
31 、 ICMP 协议?... 32
32、 TFTP 协议? 简单文件传输协议... 32
33 、 HTTP 协议? 以及同HTTPS的区别?... 32
34 、 DHCP 协议?... 33
60 、 NAT ?... 33
30、TFTP和FTP的区别... 33
18、交换机和路由器、网关概念,及其用途... 34
19、硬件MAC地址的概念及作用... 36
20、集线器、网卡交换机工作那一层... 36
21、根据IP求机器号... 36
24、网关的作用?... 37
25 、 ipconfig 的作用是什么?... 37
26 、运行 net share 返回的结果是什么?... 37
27 、net use 和 net user 分别指什么?... 37
28 、如何查看当前系统开放的服务?... 37
29 、除以上的命令,列出一些其他的命令?... 38
36 、请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?... 38
37 、网桥的作用... 38
38 、防火墙的端口防护是指?... 39
39、面向连接和非面向连接的服务的特点是什么?... 39
40、以太网帧的格式... 39
41 、电路交换、报文交换分组交换的比较?... 39
42 、电信网络分类... 40
43 、网络按地域范围分类?... 40
44 、网络按使用者分类为:公共网和专用网。... 40
46、计算机网络体系结构?... 41
47 、数据链路层协议可能提供的服务?... 41
48、帧定界?... 41
49 、透明传输?... 41
50、差错检测?... 42
51 、实现可靠传输的协议?... 42
52 、 PPP 协议工作过程?... 43
53 、数据链路层互联设备... 43
54 、局域网的关键技术?... 43
55 、网络接口卡(网卡)的功能?... 43
56 、 CSMA/CD ?... 44
57 、以太网 MAC 帧格式?... 45
58 、虚拟局域网 VLAN ?... 45
59 、无线局域网的 MAC 层?... 45
61 、私有(保留)地址?... 46
62 、交换和路由的区别是什么? VLAN 有什么特点?... 46
63 、 SNMP ?... 46
64 、 TTL 是什么?作用是什么?哪些工具会用到它( ping tracerouteifconfig netstat )?... 46
65 、路由表是做什么用的?在 Linux 环境中怎么配置一条默认路由?... 47
66 、每个路由器在寻找路由时需要知道哪 5 部分信息?... 47
67 、 EGP , IGP ?... 48
68 、自适应网卡只有红灯闪烁,绿灯不亮,这种情况正常吗?... 48
69 、两台笔记本电脑连起来后 ping 不同,你觉得可能存在哪些问题?... 49
70 、与 IP 协议配套的其他协议?... 49
72 、划分子网?... 49
73 、 IPv6 ?... 49
74 、运输层协议与网络层协议的区别?... 50
75、运输层的协议?... 50
76 、接入网用的是什么接口?... 50
77 、直接链接两个信令点的一组链路称作什么?... 50
78 滑动窗口协议与停止等待协议的区别... 50
79组播和广播的概念,IGMP的用途... 51
80、. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。见程序员求职宝典p313.52
1、什么是互联网OSI模型?... 4
OSI(Open SystemInterconnection)是指开放式系统互联参考模型。在我们的平常使用的计算机网络中存在众多体系结构,如IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构等。由于体系太多,为了能够解决不同网络之间的互联问题,国际标准化组织制定了这个OSI模型。
OSI将网络通信工作分为七层,由高到低依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI模型结构图
2、OSI七层模型... 5
n 应用层:提供网络应用协议,允许访问SOI环境的手段。应用层为操作系统或网络应用程序提供访问网络服务的接口。
包含的协议:FTP、DNS、Http、WWW、NFS、Telnet、SMTP。
n 表示层:为用户提供数据转换和表示服务,对数据进行翻译和加密压缩。
包含的协议:JPEG、MPEG、ASJI
n 会话层:为用户提供会话控制服务(安全认证),建立、管理和终止回话。会话层还利用在数据中插入校验点来实现数据的同步。
包含的协议:NFS、SQL、NET、BIOS、RPC。
n 传输层(段):为用户提供端到端的数据传输服务和错误恢复。传输层还要处理端到端的差错控制和流量控制问题。
包含的协议:TCP、UDP、SPX
n 网络层(包):负责数据包从源到宿的传递和网际互联。网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。
包含的协议:IP、ICMP、ARP、RARP、OSPF、RIP、IPX、IGRP。
n 数据链路层(帧):在有差错的物理线路上提供无差错的数据传输(Frame),将bit组装成帧,进行点到点的传递。数据链路层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
包含的协议:VLAN、MAC(网桥、交换机)、HDLC、PPP、FR。
n 物理层(bit):在物理线路上传输原始的二进制数据位,也就是通过媒介传输bit。机械特性、电气特性、功能特性以及过程特性
包含的协议:RJ45、CLOCK、IEEE802.3(中继器,集线器)。
n 应用层(ApplicationLayer)
TCP/IP 组中的应用层综合了 OSI 应用层、表示层以及会话层的功能。
因此,在TCP/IP 结构中,传输层以上的任何过程都称之为应用。在 TCP/IP 中,使用套接字(socket)和端口描述应用程序通信路径。大多数应用层协议与一个或多个端口号相关联。
n 传输层(TransportLayer)
TCP/IP 结构中包含两种传输层协议。
其一传输控制协议(TCP),确保信息传输过程。其二用户数据报协议(UDP),直接传输数据报,而不需要提供端对端可靠校验。两种协议对应不同的应用具有各自功能。
n 网络层(NetworkLayer)
TCP/IP 网络层中的主要协议是网际协议(IP)。
所有网络层以下或以上的各层通信在跨越 TCP/IP 协议栈时,都必须通过 IP 完成。此外,网络层还包含部分支持性协议,如 ICMP,实施和管理路由过程。
n 网络访问层(NetworkAccess Layer)
在 TCP/IP 结构中,网络访问层由数据链路层和物理层合并而成。
TCP/IP 网络访问层并没有重新定义新标准,而是有效利用原有数据链路层和物理层标准。
很多 RFC 中描述了 IP 如何使用数据链路协议并作为其接口界面,如以太网、令牌环、FDDI、HSSI 和 ATM 等。物理层中规定了硬件通信属性,但它不直接作为网络层及以上层的 TCP/IP 协议的接口。
4、TCP/IP五层模型... 6
应用层;传输层:提供端到端的数据传输服务TCP和UDP;网络层:控制通信子网原点到目的点的IP包传送;数据链路层:同OSI;物理层:同OSI
5、在各层之间,数据是以什么单位进行传输的?... 7
这个问题比较有意思,数据在各层之间的单位都是不一样的,在物理层数据的单位称为比特(bit);在数据链路层,数据的单位称为帧(frame);
在网络层,数据的单位称为数据包(packet);传输层,数据的单位称为数据段(segment)。
传输层之上统称为报文。
6、数据如何各层之间传输?... 7
n 物理层,数据链路层,网络层属于OSI模型的低三层,负责创建网络通信连接的链路。
n 传输层,会话层,表示层和应用层是OSI模型的高四层,具体负责端到端的数据通信。
每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。
当然,并不是所有通信都是要经过OSI的全部七层,如物理接口之间的转接,只需要物理层中进行即可;而路由器与路由器之间的连接则只需网络层以下的三层。
*****************************************************************************************************
7、TCPIP UDP全称... 7
TCP(Transmission Control Protocol 传输控制协议)
IP(Internet Protocol)网间协议
UDP(User DatagramProtocol)用户数据报协议
7-1各种状态含义SYN-SENT等... 7
LISTEN - 侦听来自远方TCP端口的连接请求;
SYN-SENT -在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2 - 从远程TCP等待连接中断请求;
CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
CLOSING -等待远程TCP对连接中断的确认;
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;
7-2IP数据报格式... 8
都发的
IP 数据报的首部长度和数据长度都是可变长的,但总是4 字节的整数倍。对于IPv4,4 位版本字段是4。4 位首部长度的数值是以4 字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节,也就是不带任何选项的IP 首部,4 位能表示的最大值是15,也就是说首部长度最大是60 字节。8 位TOS 字段有3 个位用来指定IP 数据报的优先级(目前已经废弃不用),还有4 个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小成本),还有一个位总是0。总长度是整个数据报(包括IP 首部和IP 层payload)的字节数。每传一个IP 数据报,16 位的标识加1,可用于分片和重新组装数据报。3 位标志和13 位片偏移用于分片。TTL(Timeto live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0 就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。协议字段指示上层协议是TCP、UDP、ICMP 还是IGMP。然后是校验和,只校验IP 首部,数据的校验由更高层协议负责。IPv4的IP 地址长度为32 位。
7-3TCP报文头... 9
TCP报文段首部(20个字节)
源端口和目标端口:
源端口号(16位),标识主机上发起传送的应用程序;目的端口(16位)标识主机上传送要到达的应用程序。源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。
序号字段和确认序号字段:
序号:占4个字节,是本报文段所发送的数据项目组第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。例如,一报文段的序号为300,而起数据供100字节,则下一个报文段的序号就是400;
确认序号:只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。
数据偏移:占4比特,默示数据开端的处所离TCP报文段的肇端处有多远。这实际上就是TCP报文段首部的长度。因为首部长度不固定,是以数据偏移字段是须要的。
保存字段:由跟在数据偏移字段后的6位构成,预留位通常为0.
紧急比特URGent:当URG=1时,注解此报文应尽快传送,而不要按本来的列队次序来传送。与“紧急指针”字段共同应用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,使接管方可以知道紧急数据共有多长;
确认比特ACK:只有当ACK=1时,确认序号字段才有意义;
急迫比特PSH:当PSH=1时,接收方应该尽快将这个报文段交给应用层。
复位比特RST:重建连接,复位比特还用来拒绝一个不法的报文段或拒绝打开一个连接;
同步比特SYN:发起一个连接,在建树连接时应用,当SYN=1而ACK=0时,注解这是一个连接恳求报文段。对方若赞成建树连接,在发还的报文段中使SYN=1和ACK=1。是以,SYN=1默示这是一个连接恳求或毗邻接管报文,而ACK的值用来区分是哪一种报文;
终止比特FIN:释放一个连接
窗口字段
窗口Window:占2字节,进行流量控制,默示报文段发送方的接管窗口,单位为字节。此窗口告诉对方,“在未收到我的确认时,你可以或许发送的数据的字节数至多是此窗口的大小。”
通知窗口advertised window:接管端按照其接管才能承诺的窗口值,是来自接管端的流量把握。接管端将通知窗口的值放在TCP报文的首部中,传送给对方。
拥塞窗口congestion window:是发送端按照收集拥塞景象得出的窗口值,是来自发送端的流量把握。
查验和覆盖了全部的TCP报文段:TCP首部和TCP数据。这是一个强迫性的字段,由发端策画和存储,由收端进行验证。
选项字段容许每台主机设定可以或许接管的最大TCP载荷才能(缺省536字节)。
●紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
数据流、报文段和序号
TCP通信的动作
切割:按照合适传输的大小对数据流进行切割
最大报文段长度<64Kbytes
凡是:MTU-(IP头+TCP头)
答复复兴:用报文段恢答复复兴始数据流的字节次序
序号:排序、查错及数据流答复复兴
TCP数据流的切割与答复复兴
报文序号
根据数据流中的字节序号(流序号)
报文序号为报文段中第一字节的流序号
如:流序号=x,长度=L的报文段,则:
报文的序号为x,下一报文序号为x+L
序号特点
报文的次序关系
数据流的地位,更便于流的答复复兴
需较大的序号空间(32bit,4Gbyte)
例如:在一个报文中,序号为300,而报文中数占领100字节。
下一个报文符,其序号为400;
7-3UDP报文头... 13
字节源端口字段
源端口是一个大于1023的16位数字,由基于UDP应用程序的用户进程随机选择。
字节长度字段
指明了包括首部在内的UDP报文段长度。UDP长字段的值是UDP报文头的长度(8字节)与UDP所携带数据长度的总和。
字节校验和字段
是指整个UDP报文头和UDP所带的数据的校验和(也包括伪报文头)。伪报文头不包括在真正的UDP报文头中,但是它可以保证UDP数据被正确的主机收到了。因在校验和中加入了伪头标,故ICMP除能防止单纯数据差错之外,对IP分组也具有保护作用。
7-4HTTP报文头... 13
HTTP请求报文由请求行、请求头部、空行和请求包体4部分组成。
请求行:请求行由方法字段、URL 字段和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;
GET:当客户端要从服务器中读取某个资源时,使用GET方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。
POST:当客户端给服务器提供信息较多时可以使用POST方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;
请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
Accept-Language:客户端可接受的自然语言;
Accept-Encoding:客户端可接受的编码压缩格式;
Accept-Charset:可接受的应答的字符集;
Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;
请求包体:请求包体不在 GET 方法中使用,而是在POST 方法中使用。POST 方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型 Content-Type和包体长度 Content-Length;
http响应包体的方法:
IP报文格式... 15
8、TCP握手协议... 16
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT(在发送连接请求后等待匹配的连接请求)状态,等待服务器确认;(SYN同步序号,表示此报文是一个连接请求或连接接受报文)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;(ACK确认位、对接受到报文的确认)
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:
未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。
这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。
Backlog参数:表示未连接队列的最大容纳数目。
SYN-ACK 重传次数服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,
系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。
半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。
有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
9、TCP四次挥手过程... 17
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
调用过程如下:
1) 当client想要关闭它与server之间的连接。client(某个应用进程)首先调用close主动关闭连接,这时TCP发送一个FIN M;client端处于FIN_WAIT1(等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
)状态。
2) 当server端接收到FIN M之后,执行被动关闭。对这个FIN进行确认,返回给client ACK。当server端返回给client ACK后,client处于FIN_WAIT2(从远程TCP等待连接中断请求)状态,server处于CLOSE_WAIT(等待从本地用户发来的连接中断请求)状态。它的接收也作为文件结束符传递给应用进程,因为FIN的接收意味着应用进程在相应的连接上再也接收不到额外数据;
3) 一段时间之后,当server端检测到client端的关闭操作(read返回为0)。接收到文件结束符的server端调用close关闭它的socket。这导致server端的TCP也发送一个FIN N;此时server的状态为LAST_ACK(等待原来发向远程TCP的连接中断请求的确认; )。
4) 当client收到来自server的FIN后。client端的套接字处于TIME_WAIT(等待足够的时间以确保远程TCP接收到连接中断请求的确认)状态,它会向server端再发送一个ack确认,此时server端收到ack确认后,此套接字处于CLOSED(没有任何连接状态;)状态。
10.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?... 18
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
10-4、为什么会采用三次握手,若采用二次握手可以吗?... 18
答:建立连接的过程是利用客户服务器模式,假设主机 A 为客户端,主机 B 为服务器端。
( 1 )为了防止失效的连接请求报文段突然又传送到了服务器端,产生错误。
(2)失效的连接请求报文段是指:主机 A 发出的连接请求没有收到主机 B 的确认,于是经过一段时间后,主机 A 又重新向主机 B 发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机 A 第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机 B,主机 B 以为是主机 A 又发起的新连接,于是主机 B 同意连接,并向主机 A 发回确认,但是此时主机 A 根本不会理会,主机 B 就一直在等待主机 A 发送数据,导致主机 B 的资源浪费。
C发送请求,S应答并分配资源
若S的应答没有到达C端,C认为连接未建立,而S认为建立了
S会在一段时间内保留分配的资源
如果大量C这样请求,S会崩溃
( 2 )采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。
10-1、TIME_WAIT状态的概念及意义。为什么需要等待2msl后才能返回到CLOSED状态?... 19
客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口
状态为TIME_WAIT
主动关闭的一方在发送最后一个ack 后就会进入TIME_WAIT状态停留2MSL(max segmentlifetime)时间这个是TCP/IP必不可少的,也就是“解决”不了的。也就是TCP/IP设计者本来是这么设计的
主要有两个原因
1。防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
在主动关闭方发送的最后一个ack(fin),有可能丢失,这时被动方会重新发fin, 如果这时主动方处于CLOSED状态,就会响应rst 而不是ack。所以主动方要处于TIME_WAIT状态,而不能是CLOSED。TIME_WAIT 并不会占用很大资源的,除非受到攻击。还有,如果一方send 或recv 超时,就会直接进入CLOSED 状态
10-2同时打开、同时关闭... 19
tcp协议在遇到这种情况时,只会打开一条连接。
这个连接的建立过程需要4次数据交换,而一个典型的连接建立只需要3次交换(即3次握手)
如果应用程序同时发送FIN,则在发送后会首先进入FIN_WAIT_1状态。在收到对端的FIN后,回复一个ACK,会进入CLOSING状态。在收到对端的ACK后,进入TIME_WAIT状态。这种情况称为同时关闭。
同时关闭也需要有4次报文交换,与典型的关闭相同。
10-3TCP通信中服务器处理客户端意外断开... 20
发生的问题:采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、宕机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。
解决方法:如何有效的检测一方非正常断开,一直有两种技术可以运用。一种由TCP协议层实现的Keepalive,另一种由应用层自己实现的心跳包(TCP连接双方定时发握手消息)。
Keepalive:TCP默认并不开启Keepalive功能,因为开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量计费的环境下增加了费用,另一方面,Keepalive设置不合理时可能会因为短暂的网络波动而断开健康的TCP连接。并且,默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。
#include
//定义结构及宏
struct TCP_KEEPALIVE {
u_longonoff;
u_longkeepalivetime;
u_longkeepaliveinterval;
} ;
tcp_keepalive live,liveout;
live.keepaliveinterval=500;
live.keepalivetime=3000;
live.onoff=TRUE;
int iRet = setsockopt(Socket,SOL_SOCKET,SO_KEEPALIVE,(char*)Opt,sizeof(int));
if(iRet == 0){
DWORD dw;
if(WSAIoctl(Socket,SIO_KEEPALIVE_VALS,
&live,sizeof(live),&liveout,sizeof(liveout),
&dw,NULL,NULL)== SOCKET_ERROR){
//Delete Client
return;
}
}
其实keepalive的原理就是TCP内嵌的一个心跳包,
以服务器端为例,如果当前 server 端检测到超过一定时间(默认是 7,200,000 milliseconds ,也就是 2 个小时)没有数据传输,那么会向 client 端发送一个 keep-alive packet (该 keep-alive packet 就是 ACK和 当前 TCP 序列号减一的组合),此时 client 端应该为以下三种情况之一:
1. client 端仍然存在,网络连接状况良好。此时 client 端会返回一个 ACK 。server 端接收到ACK 后重置计时器(复位存活定时器),在 2 小时后再发送探测。如果 2 小时内连接上有数据传输,那么在该时间基础上向后推延 2 个小时。
2. 客户端异常关闭,或是网络断开。在这两种情况下, client 端都不会响应。服务器没有收到对其发出探测的响应,并且在一定时间(系统默认为 1000 ms )后重复发送 keep-alive packet ,并且重复发送一定次数( 2000 XP 2003系统默认为 5 次 , Vista 后的系统默认为 10 次)。
3. 客户端曾经崩溃,但已经重启。这种情况下,服务器将会收到对其存活探测的响应,但该响应是一个复位,从而引起服务器对连接的终止。
11、如果客户端不断发送连接请求会怎么样... 21
服务器端为每个请求建立连接,然后向客户端发送创建链接时的回复,然后进行等待客户端发送第三次握手数据包(等待一段时间后才终止),造成资源浪费。
相关使用方式:
DDOS(分布式拒绝服务攻击):客户端向服务器端发送链接请求;服务器端向客户端回复链接请求数据包,等待客户端进行确认;如果客户端不发送最后一个数据包,服务器需等待30秒到2min才能将此链接进行关闭。当机联合作为攻击平台就会造成网络瘫痪。
解决方法:
限制同时打开SYN的半链接数目,缩短SYN半链接timeout时间;正确设置防火墙;限制特定IP短地址的访问;启用防火墙的防DDOS属性。
12、TCP如何保证数据的可靠性... 22
数据包校验;超时重传;应答机制;对失序数据包重新排序
(1)应用数据被分割成TCP认为最合适发送的数据块,这和UDP完全不同,应用程序产生的数据长度将保持不变。
(2)TCP有延迟确认功能,TCP发出一个段后,启动一个定时器,等待确认收到的报文段。如果不能及时确认,则重发。
(3)TCP保持他的首部和数据的检验和,端到端的检验和。如果接收端检测到数据变化则会重发。
(4)如果有必要TCP会对收到的数据进行重排
(5)TCP接收端会丢弃重复的数据
(6)TCP还能进行流量控制,TCP连接的每一方都有固定大小的缓冲区,TCP接收端只允许另一端发送接收端缓冲区所能接纳的数据。
12-1重传策略... 22
重传策略的关键是对定时器初值的设定。采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个[2] 变量RTT(Round Trip Time),用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的定时器,如果在定时器超时前确认到达,则记录所需要的时间(M),并修正[2] RTT的值,如果定时器超时前没有收到确认,则将RTT的值增加1倍。通过测量一系列的RTT(往返时间)值,TCP协议可以估算数据包重发前需要等待的时间。在估计该连接所需的当前延迟时通常利用一些统计学的原理和算法(如Karn算法),从而得到TCP重发之前需要等待的时间值。
13、TCP和UDP的区别?如何改进TCP?... 23
(1)TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
(2)TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
(3)TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
(4)TCP对应的协议和UDP对应的协议
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
在回答上TCP是如何保证数据的安全的。
14、滑动窗口算法... 23
滑动窗口协议是用来改善吞吐量的一种技术,即容许发送方在接受任何应答之前传送附加包。接收方告诉发送方在某一时刻能发送多少包(窗口尺寸)。
滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设发送窗口尺寸为2,接收窗口尺寸为1):利用数据接收端的接受窗口来控制数据流。
①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧;②发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态不变;③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变;④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变;⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;
15、TCP拥塞控制... 24
拥塞发生的主要原因:资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。
单纯增加网络资源是否能避免拥塞?
不是,例如增加缓存空间到一定程度时,只会加重拥塞,而不是减轻拥塞,这是因为当数据包经过长时间排队完成转发时,它们很可能早已超时,从而引起源端超时重发,而这些数据包还会继续传输到下一路由器,从而浪费网络资源,加重网络拥塞。事实上,缓存空间不足导致的丢包更多的是拥塞的“症状”而非原因。
增加链路带宽及提高处理能力也不能解决拥塞问题。
例如:我们有四台主机ABCD连接路由器R,所有链路带宽都是1Gbps,如果A和B同时向C以1Gbps的速率发送数据,则路由器R的输入速率为2Gbps,而输出速率只能为1Gbps,从而产生拥塞。避免拥塞的方法只能是控制AB的速率,例如,都是0.5Gbps,但是,这只是一种情况,倘若D也向R发送数据,且速率为1Gbps,那么,我们先前的修正又是不成立的,可见,拥塞其实是一个动态问题,我们没有办法用一个静态方案去解决,从这个意义上来说,拥塞是不可避免的。
TCP拥塞控制机制:
4个核心算法构成:慢启动、拥塞避免、快速重传、快速恢复。
慢启动:
最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。我们可以简单计算下:
开始 ---> cwnd = 1
经过1个RTT后 ---> cwnd = 2*1 = 2
经过2个RTT后 ---> cwnd = 2*2= 4
经过3个RTT后 ---> cwnd = 4*2 = 8
如果带宽为W,那么经过RTT*log2W时间就可以占满带宽。
总结一下:
当建立新的TCP连接时,拥塞窗口(congestionwindow,cwnd)初始化为一个数据包大小。源端按cwnd大小发送数据,每收到一个ACK确认,cwnd就增加一个数据包发送量。
拥塞避免:
可以想象,如果按上述慢启动的逻辑继续下去而不加任何控制的话,必然会发生拥塞,引入一个慢启动阈值ssthresh的概念,当cwnd
当cwnd = 64947 + 512 = 65459,进入拥塞避免阶段,假设此时seq_num = _101024:
1.client一次发送cwnd,但是先考虑头两个segment
2.server回应ack_num = 102048
3.client接收到ack(102048),cwnd = 65459 + [(512 * 512) /65459] = 65459 +4 = 65463,也就是说,每接到一个ack,cwnd只增加4个字节。
4.client发送一个segment,并开启ack timer,等待server对这个segment的ack,如果超时,则认为网络已经处于拥塞状态,则重设慢启动阀值ssthresh=当前cwnd/2=65463/2=32731,并且,立刻把cwnd设为1,很极端的处理!(如果判断网络进入拥塞状态会进行极端的处理)
5.此时,cwnd
总结一下:
如果当前cwnd达到慢启动阀值,则试探性的发送一个segment,如果server超时未响应,TCP认为网络能力下降,必须降低慢启动阀值,同时,为了避免形势恶化,干脆采取极端措施,把发送窗口降为1。
快速重传和快速恢复
前面讲过标准的重传,client会等待RTO时间再重传,但有时候,不必等这么久也可以判断需要重传,例如:client一次发送8个segment,seq_num起始值为100000,但是由于网络原因,100512丢失,其他的正常,则server会响应4个ack(100512)(为什么呢,tcp会把接收到的其他segment缓存起来,ack_num必须是连续的),这时候,client接收到四个重复的ack,它完全有理由判断100512丢失,进而重传,而不必傻等RTO时间了。这就是快速重传。
那么,什么是快速恢复呢?我们通常认为client接收到3个重复的ack后,就会开始快速重传,但是,如果还有更多的重复ack呢,如何处理?这就是快速恢复要做的,事实上,我们可以把快速恢复看作是快速重传的后续处理,它不是一种单独存在的形态。
以下是具体的流程:
假设此时cwnd=70000,client发送4096字节到server,也就是8个segment,起始seq_num= _100000:
1.client发送seq_num = _100000
2.seq_num =100512的segment丢失
3.client发送seq_num = _101024
4.server接收到两个segment,它意识到100512丢失,先把收到的这两个segment缓存起来
5.server回应一个ack(100512),表示它还期待这个segment
6.client发送seq_num = _101536
7.server接收到一个segment,它判断不是100512,依旧把收到的这个segment缓存起来,并回应ack(100512)
。
。
。
8.以下同6、7,直到client收到3个ack(100512),进入快速重发阶段:
9.重设慢启动阀值ssthresh=当前cwnd/2=70000/2=35000
10.client发送seq_num = 100512
以下,进入快速恢复阶段:
11.重设cwnd = ssthresh + 3segments =35000 + 3*512 = 36536,之所以要加3,是因为我们已经接收到3个ack(100512)了,根据前面说的,每接收到一个ack,cwnd加1
12.client接收到第四个、第五个ack(100512),cwnd=36536+2*512=37560
13.server接收到100512,响应ack_num= _104096
14.此时,cwnd>ssthresh,进入拥塞避免阶段。
【思考】:为什么通常clieng每接收到一个ack,会把cwnd增加一个segment呢?
这是基于“管道”模型(pipemodel)的“数据包守恒”的原则(conservation ofpackets principle),即同一时刻在网络中传输的数据包数量是恒定的,只有当“旧”数据包离开网络后,才能发送“新”数据包进入网络。如果发送方收到一个ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。如果“数据包守恒”原则能够得到严格遵守,那么网络中将很少会发生拥塞;本质上,拥塞控制的目的就是找到违反该原则的地方并进行修正。
16、从输入网址到获得页面的过程... 27
1、输入网址浏览器会运行HTTP协议,这是应用层协议。
2、通过域名系统DNS,浏览器获得域名的IP地址,这个域名系统也是运行在应用层上。(DNS域名解析方法)
3、通过以上步骤浏览器已经产生了一个HTTP包。意思就是“百度我要你的主页”。(HTTP包的数据格式)一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
4、浏览器将这个HTTP信息包交给TCP (传输控制协议)( Transmission Control Protocol),该协议运行于传输层这是一个相邻的层之间进行交互的例子,较高层级(如HTTP)向较低层级(如TCP)表达服务需要,较低层级给较高层级提供服务。这种相邻层级的交互持续进行,直到抵达最底层。TCP的主要功能是与百度服务器的TCP程序进行连接并建立会话,就像在两者之间建立起一个管道那样,使两者之间的数据得以交互。(TCP信息包)
5、直到这个时候,信息包仍然呆在你的电脑里面,没有发出去呢。这个时候,TCP将TCP信息包转发给IP层(Internet Protocol)。 这是个网络层协议。IP的重要功能是寻址和路由,找到一条通往百度的IP地址的最优数据通路。就像一个邮局把你的信件寄到收件人那样。同时,IP将自己的信息加到原有的数据包上,形成新的数据包。(IP数据包)
6、直到这个时候,数据包还在你的电脑上呢,现在,数据包将由IP层交到网络接口层(networkinterface layer)。这个层定义了通过物理网络输出数据所需的协议与硬件要求。多数电脑使用以太网(Ethernet)。电脑这个时候将IP数据加上以太网帧头和帧尾打包成以太网帧。(以太网帧)
7、这个时候,电脑就可以传输以太网帧的物理数据了,使用真正的电信号走网线传输了。数据包也在这个时候真正离开电脑。当这些电信号到达百度的服务器时,这些电信号将被重新翻译成二进制数据。服务器将对这个数据包进行解析,过程与上述形成该数据包的过程相反。当最后得到那个信息“度娘度娘,我要你的主页时”,服务器就会用刚才同样的步骤生成一个以太数据包通过因特网传给电脑。然后浏览器就可以显示百度主页的内容了。整个过程可以在下面的这幅图上看到。
应用层,里面包含要查询的域名,标识信息等,这些信息由应用程序生成。传输层,表明了本地端口号和目的端口号,报文长度等。网络层,IP协议本地IP地址,目的IP地址数据侧生存时间(TTL)protocol字段说明了上层的协议类型,目的端接收到这个包解析用的。数据链路层,加入了本机的MAC地址和目的MAC地址,type说明了上一层为IP协议。最下边为物理层。(wireShark解析获得)
16-1DNS域名解析... 28
第一步:浏览器会查看缓存中有没有域名对应的解析过的IP地址(域名缓存时间设置可通过TTL属性来设置)(缓存时间过长,一旦域名被解析到的IP有变化会导致客户端缓存的域名无法解析到变化后的IP地址导致域名不能正常解析,导致前端时间内用户无法访问网站,如果时间设置太短,可能导致每次访问网站都要重新解析一次域名)
第二步:如果浏览器中没有,查找操作系统缓存中是否有这个域名,通过hosts文件设置,因为有这种本地DNS解析的规程,黑客可以通过修改域名解析来把特定的域名解析到指定的IP地址,导致这些域名被劫持。
以上两个步骤都是本机完成的,如果本机无法完成域名解析就会借助域名服务器来解析
第三步:域名服务器,网络中都有DNS服务器地址对应的域名服务器。假如你以学校接入互联网,DNS服务器肯定在学校。windows可以通过ipconfig查询,域名服务器缓存时间受失效时间的限制。完成百分之80域名解析。
第四步:如果此时还不能查找域名,直接到root seraver域名服务器请求解析。
第五步:域名服务器返回给本地域名服务器一个所查询的主域名服务器地址,如.com .cn全球共有13台。本地域名服务器向主服务器发送请求,接受请求的主域名服务器返回此域名对应的NameServer服务器地址,也就是注册的域名服务器,会查询存储的域名和对应的IP地址关系。结束访问。
**********************************************************************************************************************************************************************************************
17、请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?... 29
这样,这些不同物理网络MAC帧的差异对上层而言就不复存在了。正因为这一转换,才实现了不同类型物理网络的互联。TCP和UDP都是传输层协议.
TCP(TransmissionControl Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立连接。
UDP(User DataProtocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去
IP 协议是网络层的协议,它是为了实现相互连接的计算机进行通信设计的协议,它实现了自动路由功能,即自动寻径功能。
TCP 是传输层的协议,它向下屏蔽 IP 协议的不可靠传输的特性,向上提供一种面向连接的、可靠的点到点数据传输。
TCP 在可靠性和安全性上等更有保证。 UDP 也是传输层协议,它提供的是一种非面向连接的,不可靠的数据传输,这主要是有些应用需要更快速的数据传输,比如局域网内的大多数文件传输都是基于 UDP 的。
UDP 在传输速率上更快,开销更小。
18、ARP 是地址解析协议,简单语言解释一下工作原理。 (用途、算法、那一层上使用)... 30
答:将IP数据包转换成数据帧进行传送的时候,需要获取目标主机的MAC地址,只有这样才能两个主机之间的通信,ARP的作用在局域网中,网络中实际传输的是帧,帧里面包含目标主机的MAC地址。在以太网中一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。MAC地址通过地址解析协议获得。所谓的地址解析协议就是主机在发送帧之前将目标主机的IP地址转换成目标主机的MAC地址的过程。ARP协议的基本功能是通过目标主机的IP地址,查询目标主机的MAC地址,以保证通信的顺利。也就是说把IP地址转换成MAC地址。
例子:ping 命令执行步骤详解。Ping192.168.1.2。该命令会通过ICMP协议发送ICMP数据包。该过程需要经过下面的步骤:
1) 应用程序构造数据包,该步骤是产生ICMP包,然后把它提交给内核(网卡驱动程序);
2) 内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;
3) 如果存在该IP-MAC对应关系,那么跳到步骤7;如果不存在该IP-MAC对应关系,那么接续下面的步骤;
4) 内核进行ARP广播,即发送 ARP Request,向整个网络中大喊,这个IP是谁的,这个IP是谁的(这个ARP Request中包含有我们计算机的MAC地址;
5) 当192.168.1.2主机接收到该ARP请求后,就发送一个ARP 回应,即ARP REPLY命令,说道:这个IP是我的,你看这是我的MAC地址(ARP Request中包含自己的MAC地址);
6) 我们的计算机获得192.168.1.2主机的IP-MAC地址对应关系,就保存到自己的ARP缓存中;
7) 内核将把目标主机IP转化为MAC地址,然后封装在以太网头结构中(IP地址通过ARP解析转换为MAC地址,目标主机的MAC地址封装到以太网中),再把数据发送出去;
8) 这样主机B看到发送过来的数据包包头里有自己的MAC地址,才会识别它,噢,这个数据是发送给我的(当数据包包头里只有B的IP地址时,主机B会不认识它,不去接收这个数据包)
非同一局域网情况:
上边讲的都是同一局域网内,但是不在同一局域网的,即使知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。也就是说,本地主机当寻求一个IP地址的MAC时,找不到,不是同一局域网,那它会收到路由器的MAC地址,说,这个数据就交给你了,剩下的事就你来处理了,你去找目的主机吧!
ARP属于那一层:
在OSI模型中ARP协议属于链路层;而在TCP/IP模型中,ARP协议属于网络层。
ARP过程:
( 1 )首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
( 2 )当源主机要发送数据时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向"本网段"的所有主机发送 ARP 数据包,该数据包包括的内容有:
源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址。
( 3 )当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的目的主机 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包,
如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
( 4 )源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
广播发送 ARP 请求,单播发送 ARP 响应。
71、 RARP ?... 31
答:逆地址解析协议,作用是完成硬件地址到 IP 地址的映射,主要用于无盘工作站,因为给无盘工作站配置的 IP 地址不能保存。工作流程:在网络中配置一台 RARP 服务器,里面保存着 IP 地址和 MAC 地址的映射关系,当无盘工作站启动后,就封装一个 RARP 数据包,里面有其 MAC 地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的 MAC 地址的 IP 地址装入响应报文中发回给请求者。因为需要广播请求报文,因此 RARP 只能用于具有广播能力的网络。(将数据包发送给RARP服务器,获取到对应的IP地址)
31、 ICMP 协议?... 32
答: ICMP 是 InternetControl Message Protocol ,因特网控制报文协议。
它是 TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由器是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP 报文有两种:差错报告报文和询问报文。
32、 TFTP 协议? 简单文件传输协议... 32
答: Trivial File Transfer Protocol ,是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
33、 HTTP 协议? 以及同HTTPS的区别?... 32
答: HTTP 超文本传输协议,信息是明文传输,端口号80,连接很简单属于无状态的。是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
HTTP请求包(GET、POST等请求方法)由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。
常用的为请求方法是GET和POST。Get是向服务器发索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。
Https:具有安全性的ssl加密传输协议,端口号443,https协议是由SSL + Http协议构建的可进行加密传输、身份验证的网络协议比Http协议安全。
34、 DHCP 协议?... 33
答:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。
60、 NAT ?... 33
答:( 1 )网络地址转换,是一种将私有地址转换为合法 IP 地址的转换技术,这种技术可以解决现在 IP 地址不够的问题。
( 2 ) NAT 的实现方式:静态转换;动态转换;端口多路复用(即内部 IP+ 端口号——外部 IP+ 端口号,这种方式改变外出数据包的源端口并进行端口转换,内部网络的所有主机都可共享一个合法外部 IP 地址实现对Internet 的访问,从而节约 IP 资源,同时隐藏网络内部的所有主机,有效避免来自 Internet 的攻击)。
( 3 )缺点:由于需要将 IP 包头中的 IP 地址进行转换,因此不能进行加密操作。
30、TFTP和FTP的区别... 33
TFTP协议的概念和特点
概念:TFTP(Trivial FileTransfer Protocol)是一种普通文件传输协议,涉及用于无连接的用户数据报协议(udp)。TFTP对于每一个数据报在获得确认后才发送另一个数据报。
特点:TFTP灵活,使用资源少,流量控制较简单,是一种平等是的传输协议,使用的是UDP协议。端口列表1. TCP:
(1) FTP(命令:21,数据:20)
(2) Telnet(23)
(3) SMTP(25)
(4) HTTP(80)
(5)POP3(110)
(6) IMAP(143)
(7) BGP(179)2. UDP:
(1) DNS(53)
(2) BOOTP(Server:67,Client:68)
(3) TFTP(69)
(4) SNMP(161)
(5) RIP(520)
基于的传输协议不一样:FTP是基于TCPTFTP是基于UDP
端口号不一样:FTP是用21.20 TFTP是69
速度和安全方面:FTP在速度方面没有TFTP快但是FTP安全好。
18、交换机和路由器、网关概念,及其用途... 34
1)路由器可以进行路由转发(就是连接两个不同网段,为两段做翻译)。
交换机不可以进行路由转发(连接数个相同网段的不同主机,减少网内冲突,隔离冲突域)。增加网速用的
集线器(HUB)和交换机的功能相似,但是不能隔离冲突域,所以是共享带宽。
2)因为以上,所以路由器不可以转广播包,可以隔离广播域。
3)交换机工作在数据链路层,路由器工作在网络层
网桥:工作在数据链路层,在不同或相同类型的LAN之间存储并转发数据帧,必要时进行链路层上的协议转换。可连接两个或多个网络,在其中传送信息包。
交换机:工作在数据链路层,原理等同于多端口网桥。作用是连接数个相同网段的不同主机,减少网内冲突,隔离冲突域。利用存储转发和过滤技术来从物理上分割网段。
路由器:工作在网络层,在不同的网络间存储并转发分组。可在异种网络之间(即不同类型的局域网互连,局域网与广域网,广域网与广域网)传输数据并进行路径选择,使用专门的软件协议从逻辑上对整个网络进行划分。
网关:对高层协议(包括传输层及更高层次)进行转换的网间连接器。允许使用不兼容的协议,比如SPX/IPX和TCP/IP的系统和网络互连。因为协议转换是网关最重要的功能,所以答案是工作在传输层及以上层次。
网卡:在物理层上网卡主要是完成物理接口的连接,电信号的传送以及将数据分解为适当大小的数据包之后向网络上发送的功能.数据链路层功能包括链路建立和拆除,帧定界同步顺序差错控制这些。大多认为主要工作在物理层。
1)交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
交换机被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。
2)路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。
3)网关
网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家庭中或者小型企业网络中使用,用于连接局域网和Internet。网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能转送数据包。在主机(又称终端系统,endsystem)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系统,intermediatesystem)只需要到达网际层(Internetlayer),决定路径之后就可以转送。在当时,网关(gateway)与路由器(router)还没有区别。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IPgateway)。
网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。
19、硬件MAC地址的概念及作用... 36
第三层网络层负责IP地址、第二层数据链路层负责MAC地址。MAC地址是计算机的唯一标识,在数据链路层中,交换机通过识别MAC地址进行数据包的传输。
**************************************************************************************************************************************************************************************************
20、集线器、网卡交换机工作那一层... 36
工作在 OSI 模型的物理层,网卡工作在 OSI 模型的物理层,交换机工作在数据链路层,路由器工作在网络层。
21、根据IP求机器号... 36
机器 A 的 IP 地址为 202.96.128.130 ,子网掩码为255.255.255.128 ,则该 IP 地址的网络号为 202.96.128( 利用 IP 地址和子网掩码求与运算 ) ,主机号为 130 。
23、 DNS ( Domain Name System )域名系统,概念及其用途。
DNS是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。
域名到IP地址的解析过程的要点如下:当某一个应用进程需要主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。
n DNS查询算法
主机向本地域名服务器的查询一般都是采用递归查询,即如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果或是所要查询的IP地址,或是报错。
本地域名服务器想根服务器的查询通常采用迭代查询,即当根域名服务器收到本地域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“下一次应向那个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。根域名服务器通常把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个权限域名服务器进行查询。本地域名服务器就这样进行迭代查询。
24、网关的作用?... 37
答:通过它可以访问外网。
25、 ipconfig 的作用是什么?... 37
答:显示当前TCP/IP 配置的信息。
26、运行 net share 返回的结果是什么?... 37
答:列出共享资源相关信息。
答: net user 是对用户进行管理,如添加删除网络使用用户等。
net use 是对网络设备进行管理。
答:在命令提示符下执行 netservices 命令。 Windows 下是用 net start
答: taskkill :用于结束至少一个进程
tasklist :用于显示在本地或远程计算机上运行的所有进程
net view :显示计算机列表
netstat :显示网络连接、路由表和网络接口信息
ftp :
telnet :
答:交换机用于局域网,利用主机的 MAC 地址进行数据传输,而不需要关心 IP 数据包中的 IP 地址,它工作于数据链路层。
路由器识别网络是通过 IP 数据包中 IP 地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。
路由器通过 IP 数据包的 IP 地址进行路由的(将数据包递交给哪个下一跳路由器)。
路由器工作于网络层。由于设备现在的发展,现在很多设备既具有交换又具有路由功能,两者的界限越来越模糊。
答:网桥是一个局域网与另一个局域网之间建立连接的桥梁。
答:指通过对防火墙的端口开关的设置,关闭一些非必需端口,达到一定安全防护目的的行为。
答:面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。
非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。
答:目的地址源地址类型数据 FCS
答:电路交换:公共电话网( PSTN网)和移动网(包括 GSM 和 CDMA 网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定宽带的通信电路,通信双方在通信过程中一直占用所分配的资源,直到通信结束,并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本低,但同时带来的缺点是网络带宽利用率不高,一旦电路被建立不管通信双方是否处于通话状态分配的电路一直被占用。连接建立——数据传输——释放链接
报文交换:报文交换和分组交换类似,也采用存储转发机制,但报文交换是以报文作为传送单元,由于报文长度差异很大,长报文可能导致很大的时延,并且对每个节点来说缓冲区的分配也比较困难,为了满足各种长度报文的需要并且达到高效的目的,节点需要分配不同大小的缓冲区,否则就有可能造成数据传送的失败。在实际应用中报文交换主要用于传输报文较短,实时性要求较低的通信业务,如公用电报网,报文交换比分组交换出现的要早一些,分组交换是在报文交换的基础上,将报文分割成分组进行传输,在传输时延和传输效率上进行了平衡。另外一个缺点是出错时,整个报文都将重传。
分组交换:电路交换技术主要适用于传送话音相关的业务,这种网络交换方式对于数据业务而言,有着很大的局限性。首先是数据通信具有较强的突发性,峰值比特率和平均比特率相差较大,如果采用电路交换技术,若按峰值比特率分配电路带宽会造成资源的极大浪费,如果按平均比特率分配带宽,则会造成数据的大量丢失,其次是和语音业务比较,数据业务对时延没有严格的要求,但是需要进行无差错的传输,而语音信号可以有一定程序的失真但实时性要高。分组交换技术就是针对数据通信业务的特点而提出的一种交换方式,它的基本特点是面向无连接而采用存储转发的方式,将需要传送的数据按照一定长度分割成许多小段数据,并在数据之前增加相应的用于对数据进行选路和校验等功能的头部字段,作为数据传送的基本单元,即分组。采用分组交换技术,在通信之前不需要建立连接,每个节点首先将前一节点送来的分组收下并保存在缓冲区中,然后根据分组头部中的地址信息选择适当的链路将其发送至下一个节点,这样在通信过程中可以根据用户的要求和网络的能力来动态分配带宽。分组交换比电路交换的电路利用率高,但时延较大。分组转发的带来的问题:带来排队时延以及增加头部带来的开销。
电信网络、电路交换网络、分组交换网络、FDM 、TDM 、虚电路网络、数据报网络
答:局域网、城域网、广域网。
45、网络的拓扑结构主要有:星形、总线型、环形以及树型、全连接、不规则网状。
星形树型总线型环形
答:实际是分层加每层对应的协议集合。协议包括三个组成部分:
语法:数据与控制信息结构或格式;
语义:需要发出何种控制信息,完成何种动作以及做出何种响应;
时序(同步):事件实现顺序的详细说明。
答:成帧、链路访问、透明传输、可靠交付、流量控制、差错检测、差错纠正、半双工和全双工。最重要的是帧定界(成帧)、透明传输以及差错检测。
答:帧定界就是确定帧的界限,其方法有:字节计数法、字符填充法、零比特填充法。
答:即应能传输任何的数据,在帧定界中用到的标记帧起点和结束的字符也应该能正确的被传输。
答:循环冗余检验 CRC ,计算出的结果叫做帧检验序列 FCS 。循环冗余检验序列 CRC 差错检测技术只能做到无差错接受,即凡是接收端数据链路层接受的帧,我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错,但是要做到可靠传输(即发送什么就收到什么),也就是说,传输到接收端的帧无差错、无丢失、无重复,同时还按发送的顺序接收,这时就必须再加上确认和重传机制。
( 1 )停止等待协议:每发送完一帧就停止发送,直到收到接收到发送回来的确认在发送下一帧,如果没有收到接收端的确认,则通过设定的定时器超时了重传上一帧。其存在的三种可能:
重传可能会导致接收端收到相同的帧,这时候根据序号来判定,如果收到的帧的序号之前已经被接收到了,则新接收到的帧被丢弃。因为可能会出现接收端不能在一次情况就能正确接收,因此帧需要在发送端备份一份,直到被确认后才丢弃,因为该协议一次只能发送一帧,因此发送端的缓存区不需要太大。
( 2 )连续 ARQ 协议:发送窗口大于 1 ,接收窗口等于 1 ,因此发送窗口已经发送到了序号为 5 的帧,但是接收端接收到序号为 3 的帧出现错误时,那 3 号以后的帧都需要重传,因此出现错误的情况可能会导致重传多个帧,同时为了能够在出错时重传,因此发送出来还没有经过确认的帧都需要在发送端全缓区进行保存,这种情况需要的缓冲区比停止等待协议需要的更大。但采用 n 比特来表示编号时,则发送窗口的的大小为时,该协议才能正确工作。若用n比特编号时,则发送窗口的大小 WT<=2n -1。
( 3 )选择重传 ARQ 协议:发送窗口和接收窗口都大于 1 ,这种情况可能减少重传帧的数量,若用 n 比特编号时,则接收窗口的大小为 WR £ 2n /2 。
答:用户拨号接入 ISP , ISP 的调制解调器对拨号做出确认,并建立一条物理链路,用户向 ISP 的路由器发送一系列的 LCP 分组,这是为 PPP 选择一些参数,然后配置网络层, NCP 为新接入的 PC 分配一个临时的 IP 地址,这样用户 PC 就成为因特网上的主机,通信结束后, NCP 释放网络层连接收回 IP 地址,然后, LCP 释放数据链路层连接,最后释放物理层的连接。
答:( 1 )网桥:互连两个采用不同数据链路层协议,不同传输介质与不同传输速率的网络,网桥互连的网络在数据链路层以上采用相同的协议。
( 2 )交换机在数据链路层上实现互连的存储转发设备。交换机按每个包中的 MAC 地址相对简单地决策信息转发,交换机对应硬件设备,网桥对应软件。
答:拓扑结构(星形,总线型,环形,树型),介质访问方式( CSMA/CD , Token-passing ),信号传输形式(基带、宽带)。
答:( 1 )进行串行 / 并行转换。
( 2 )对数据进行缓存。
( 3 )在计算机的操作系统安装设备驱动程序。
( 4 )实现以太网协议。
答:是指载波监听多点接入 / 碰撞检测
( 1 )多点接入是指多台计算机以多点接入的方式连接在一条总线上
( 2 )载波监听是指每一个站在发送数据之前首先要检查一下总线上是否已经有其他计算机在发送数据,如果有,则暂时不要发送,避免碰撞
( 3 )实际在总线上并没有什么载波,实际是采用电子技术检测总线上是否有其他计算机发送的数据信号
( 4 )碰撞检测就是计算机边发送数据边检测信道上的信号电压大小,当发生了碰撞即产生了冲突,碰撞检测也叫做“冲突检测”
( 5 )当发生了碰撞时,总线上传输的信号就产生了失真,无法恢复出有用的信息,因此为了不浪费网络资源,一旦检测到碰撞发生时,就停止数据发送。然后再等待一段随机时间后在发送。
( 6 )强化碰撞,当检测到碰撞后,不仅立即停止发送数据外,还要人为的发送一些干扰信息,让其他站也知道此时碰撞发生了。
( 7 )由于信号在总线上的传输也是需要一定的时间的,所以当一个站检测到总线是空闲的时候,也可能并非是真正的空闲,因为会存在其他站发送了数据,只是还没有传送到该站能检测的范围内。这种情况下,发送数据最终也会导致碰撞发生。
( 8 )工作原理
( 81 )发送前先监听信道是否空闲,若空闲则立即发送;
( 82 )如果信道忙,则继续监听,一旦空闲就立即发送;
( 83 )在发送过程中,仍需继续监听。若监听到冲突,则立即停止发送数据,然后发送一串干扰信号( Jam );
( 84 )发送 Jam 信号的目的是强化冲突,以便使所有的站点都能检测到发生了冲突。等待一段随机时间(称为退避)以后,再重新尝试。
总结为四句话:发前先听,空闲即发送,边发边听,冲突时退避。
答:目的地址( 6 字节)源地址( 6 字节)类型( 2 字节)数据( 46—— 1500 字节) FCS ( 4 字节)
答:( 1 ) VLAN 只是局域网提供给用户的一种服务,而并不是一种新的局域网络。 VLAN 限制了接收广播消息的工作站数,使得网络不会因传播过多的广播信息(即广播风暴)而引起性能恶化。
( 2 )划分 VLAN的方法:基于端口;基于 MAC 地址;基于 IP 地址。
( 3 ) VLAN 的帧格式
目的地址( 6 字节)
源地址( 6 字节)
VLAN 标记(表明该站是属于哪个 VLAN的)
类型( 2 字节)
数据( 46—— 1500 字节)
FCS ( 4 字节)
答:( 1 )隐藏站问题,暴露站问题
( 2 ) CSMA/CA :是改进的CSMA/CD ,增加的功能是碰撞避免,实际就是在发送数据之前对信道进行预约。
答: A 类: 10.0.0 .0—— 10.255.255.255
B 类: 172.16.0.0 —— 172.31.255.255
C 类: 192.168.0.0 —— 192.168.255.255
答:交换是指转发和过滤帧,是交换机的工作,它在 OSI 参考模型的第二层,而路由是指网络线路当中非直连的链路,它是路由器的工作,在 OSI 参考模型的第三层。交换和路由的区别很多,首先,交换是不需要 IP 地址的,而路由需要,因为 IP 就是第三层的协议,第二层需要的是 MAC 地址,再有,第二层的技术和第三层的不一样,第二层可以做 VLAN ,端口捆绑等,第三层可以做 NAT , ACL , QoS 等。
VLAN 是虚拟局域网的英文缩写,它是一个纯二层的技术,它的特点有三:控制广播,安全,灵活性和可扩张性。
答:简单网络管理协议的英文缩写。
答: TTL 是指生存时间,简单来说,它表示了数据包在网络中的时间,经过一个路由器后 TTL 就减一,这样 TTL 最终会减为 0 ,当 TTL 为 0 时,则将数据包丢弃,这样也就是因为两个路由器之间可能形成环,如果没有 TTL 的限制,则数据包将会在这个环上一直死转,由于有了 TTL ,最终 TTL 为 0 后,则将数据包丢弃。 ping 发送数据包里面有 TTL ,但是并非是必须的,即是没有 TTL 也是能正常工作的, traceroute 正是因为有了 TTL 才能正常工作, ifconfig 是用来配置网卡信息的,不需要 TTL , netstat 是用来显示路由表的,也是不需要 TTL 的。
答:路由表是用来决定如何将一个数据包从一个子网传送到另一个子网的,换句话说就是用来决定从一个网卡接收到的包应该送到哪一个网卡上去。路由表的每一行至少有目标网络号、子网掩码、到这个子网应该使用的网卡这三条信息。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的子网掩码与数据包中的目标 IP 地址做逻辑与运算( & )找出目标网络号。如果得出的结果网络号与这一行的网络号相同,就将这条路由表六下来作为备用路由。如果已经有备用路由了,就载这两条路由里将网络号最长的留下来,另一条丢掉(这是用无分类编址 CIDR 的情况才是匹配网络号最长的,其他的情况是找到第一条匹配的行时就可以进行转发了)。如此接着扫描下一行直到结束。如果扫描结束仍没有找到任何路由,就用默认路由。确定路由后,直接将数据包送到对应的网卡上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。
在 Linux 上可以用“route add default gw< 默认路由器 IP> ”命令配置一条默认路由。
答:目的地址:报文发送的目的地址
邻站的确定:指明谁直接连接到路由器的接口上
路由的发现:发现邻站知道哪些网络
选择路由:通过从邻站学习到的信息,提供最优的到达目的地的路径
保持路由信息:路由器保存一张路由表,它存储所知道的所有路由信息。
答:( 1 ) IGP :内部网关协议,即在一个自治系统内部使用的路由选择协议,如 RIP 和 OSPF 。
( 11 ) RIP 是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离向量。距离即是跳数,路由器与直接相连的网络跳数为 1 ,以后每经过一个路由器跳数加 1 。 RIP 允许一条路径最多包含 15 个路由器,因此当距离为 16 时认为不可达,这因为如此限制了网络的规模,说明 RIP 只能工作在规模较小的网络中。 RIP 的三个要点:仅和相邻路由器交换信息;交换的信息是当前路由器知道的全部信息,即路由表;按固定的时间间隔交换路由信息,如 30 秒。 RIP 协议使用运输层的用户数据报 UDP 进行传送,因此 RIP 协议的位置位于应用层,但是转发 IP 数据报的过程是在网络层完成的。 RIP 是好消息传播的快,坏消息传播的慢。
( 12 ) OSPF :最短路径优先,三个要点:采用洪泛法向本自治系统的路由器发送信息;发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息;只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。 OSPF 直接使用 IP 数据包传送,因此 OSPF 位于网络层。
EGP :外部网关协议,若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中,如 EGP 。
答:正常。自适应网卡红灯代表连通 / 工作,即连通时红灯长亮,传输数据时闪烁,绿灯代表全双工,即全双工状态是亮,半双工状态灭。如果一个半双工的网络设备(如 HUB )和自适应网络相连,由于这张网卡是自适应网卡,它就会工作在半双工状态,所以绿灯不亮也属于正常情况。
补充:网卡红绿灯是网卡工作的指示灯,红灯亮表示正在发送或接收数据,绿灯亮则表示网络连接正常。因此正常情况下应该是绿灯长亮,因为绿灯长亮才代表网络是通的。而有数据传输时,红灯就会闪烁。
答:( 1 )首先考虑是否是网络的问题
( 2 )局域网设置问题,电脑互联是要设置的。看是否安装了必要的网络协议,最重要的是 IP 地址是否设置正确。
( 3 )网卡驱动未安装正确
( 4 )防火墙设置有问题
( 5 )是否有什么软件阻止了 ping包
答: ARP :地址解析协议 RARP:逆地址解析协议
ICMP :因特网控制报文协议 IGMP :因特网组管理协议
其关系为:
答:从大的方面来看,跟只有网络号和主机号的分类方式类似,这是由分配到网络号的网络内部自己在进行分配,是从主机号部分借用位来形成子网,涉及到子网时,就要有子网掩码,一个涉及到了子网的 IP 地址的网络号等于该 IP 地址与子网掩码的与( & )运算的结果。
答:采用128bit ,首部固定部分为 40 字节。
答:网络层协议负责的是提供主机间的逻辑通信
运输层协议负责的是提供进程间的逻辑通信
答: TCP ,传输单位称为: TCP 报文段
UDP ,传输单位称为:用户数据报
其端口的作用是识别那个应用程序在使用该协议。
答:一般采用 E1 , V.24 , V.35 ,等接口。
答: PPP 点到点连接。
滑动窗口协议中,允许发送方发送多个分组(当有多个分组可用时)而不需等待确认,但它受限于在流水线中为未确认的分组数不能超过某个最大允许数N。滑动窗口协议是TCP使用的一种流量控制方法,此协议能够加速数据的传输。只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。
收发两端的窗口按照以上规律不断地向前滑动,因此这种协议称为滑动窗口协议。
当发送窗口和接收窗口的大小都等于1时,就是停止等待协议。
组播
主机之间的通讯模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯
广播
是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和网络设备控制广播传输。
组播协议与现在广泛使用的单播协议的不同之处在于,一个主机用单播协议向n个主机发送相同的数据时,发送主机需要分别向n个主机发送,共发送n次。一个主机用组播协议向n个主机发送相同的数据时,只要发送1次,其数据由网络中的路由器和交换机逐级进行复制并发送给各个接收方,这样既节省服务器资源也节省网络主干的带宽资源。
2、IGMP(InternetGroup Management Protocol)的用途
它用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。组播路由器不需要保存所有主机的成员关系,它只是通过igmp协议了解每个接口连接的网段上是否存在某个组播组的组成员。而主机只需要保存自己加入了哪些组播组。
简而言之,IGMP协议是让连接在本地局域网上的组播路由器知道本局域网上是否有主机上的某个进程参加或退出了某个组播组。
3、环回地址/广播地址
环回地址:127.0.0.1,通常被称为本地回环地址(Loop back address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。
主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1同样也可以运行。
广播地址:是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。
例如,对于10.1.1.0(255.255.255.0)网段,其广播地址为10.1.1.255(255 即为2 进制的11111111),当发出一个目的地址为10.1.1.255的分组(封包)时,它将被分发给该网段上的所有计算机。