计算机网络

整理一下计算机网络部分的面试常考点,参考书籍:《计算机网络》第五版 谢希仁的那本,但愿对你们有所帮助面试

OSI,TCP/IP,五层协议的体系结构,以及各层协议数据库

OSI分层      (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、              网际层、运输层、                            应用层。
五层协议     (5层):物理层、数据链路层、网络层、运输层、                            应用层。
 
每一层的协议以下
物理层:RJ4五、CLOCK、IEEE802.3    (中继器,集线器,网关)
数据链路:PPP、FR、HDLC、VLAN、MAC  (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
 
每一层的做用以下

物理层:经过媒介传输比特,肯定机械及电气规范(比特Bit)浏览器

数据链路层:将比特组装成帧和点到点的传递(帧Frame)安全

网络层:负责数据包从源到宿的传递和网际互连(包PackeT)服务器

传输层:提供端到端的可靠报文传递和错误恢复(段Segment)网络

会话层:创建、管理和终止会话(会话协议数据单元SPDU)分布式

表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)学习

应用层:容许访问OSI环境的手段(应用协议数据单元APDU)加密

 

 IP地址的分类spa

A类地址:以0开头,      第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);

B类地址:以10开头,    第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);

C类地址:以110开头,  第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)

IP地址与子网掩码相与获得主机号

 

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响应。

 

各类协议

ICMP协议:因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

TFTP协议:TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

HTTP协议:超文本传输协议,是一个属于应用层的面向对象的协议,因为其简捷、快速的方式,适用于分布式超媒体信息系统。

DHCP协议:动态主机配置协议,是一种让系统得以链接到网络上,并获取所须要的配置参数手段。

NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,

DHCP协议:一个局域网的网络协议,使用UDP协议工做,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员做为对全部计算机做中央管理的手段。

 

描述:RARP

RARP是逆地址解析协议,做用是完成硬件地址到IP地址的映射,主要用于无盘工做站,由于给无盘工做站配置的IP地址不能保存。工做流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工做站启动后,就封装一个RARP数据包,里面有其MAC地址,而后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。由于须要广播请求报文,所以RARP只能用于具备广播能力的网络。

 

TCP三次握手和四次挥手的全过程

三次握手:

第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时本身也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程当中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP链接一旦创建,在通讯双方中的任何一方主动关闭链接以前,TCP 链接都将被一直保持下去。

四次握手

与创建链接的“三次握手”相似,断开一个TCP链接则须要“四次握手”。

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(固然,在fin包以前发送出去的数据,若是没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),可是,此时主动关闭方还可 以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,个人数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

 

 在浏览器中输入www.baidu.com后执行的所有过程

  一、客户端浏览器经过DNS解析到www.baidu.com的IP地址220.181.27.48,经过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,而后经过TCP进行封装数据包,输入到网络层。

  二、在客户端的传输层,把HTTP会话请求分红报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。而后使用IP层的IP地址查找目的端。

  三、客户端的网络层不用关系应用层或者传输层的东西,主要作的是经过查找路由表肯定如何到达服务器,期间可能通过多个路由器,这些都是由路由器来完成的工做,我不做过多的描述,无非就是经过查找路由表决定经过那个路径到达服务器。

  四、客户端的链路层,包经过链路层发送到路由器,经过邻居协议查找给定IP地址的MAC地址,而后发送ARP请求查找目的地址,若是获得回应后就可使用ARP的请求应答交换的IP数据包如今就能够传输了,而后发送IP数据包到达服务器的地址。

 

TCP和UDP的区别?

TCP提供面向链接的、可靠的数据流传输,而UDP提供的是非面向链接的、不可靠的数据流传输。

TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。

TCP注重数据安全性,UDP数据传输快,由于不须要链接等待,少了许多操做,可是其安全性却通常。

 

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 Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

 

DNS域名系统,简单描述其工做原理。

DNS客户机须要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用通常不直接为用户使用,而是为其余应用服务,如HTTP,SMTP等在其中须要完成主机名到IP地址的转换。

 

面向链接和非面向链接的服务的特色是什么?

面向链接的服务,通讯双方在进行通讯以前,要先在双方创建起一个完整的能够彼此沟通的通道,在通讯过程当中,整个链接的状况一直能够被实时地监控和管理。

       非面向链接的服务,不须要预先创建一个联络两个通讯节点的链接,须要通讯的时候,发送节点就能够往网络上发送信息,让信息自主地在网络上去传,通常在传输的过程当中再也不加以监控。

 

TCP的三次握手过程?为何会采用三次握手,若采用二次握手能够吗?

答:创建链接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。

1)TCP的三次握手过程:主机A向B发送链接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。

2)采用三次握手是为了防止失效的链接请求报文段忽然又传送到主机B,于是产生错误。失效的链接请求报文段是指:主机A发出的链接请求没有收到主机B的确认,因而通过一段时间后,主机A又从新向主机B发送链接请求,且创建成功,顺序完成数据传输。考虑这样一种特殊状况,主机A第一次发送的链接请求并无丢失,而是由于网络节点致使延迟达到主机B,主机B觉得是主机A又发起的新链接,因而主机B赞成链接,并向主机A发回确认,可是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,致使主机B的资源浪费。

3)采用两次握手不行,缘由就是上面说的实效的链接请求的特殊状况。

 

端口及对应的服务?

服务

端口号

服务

端口号

FTP

21

SSH

22

telnet

23

SMTP

25

Domain(域名服务器)

53

HTTP

80

POP3

110

NTP(网络时间协议)

123

MySQL数据库服务

3306

Shell或 cmd

514

POP-2

109

SQL Server

1433

 

 

 

 

 

 

 

 

 

 

 

IP数据包的格式

IP数据报由首部 和数据 两部分组成。首部由固定部分和可选部分 组成。首部的固定部分有20字节。可选部分的长度变化范围为1——40字节。固定部分的字段:

字段名

位数(bit)

字段名

位数

版本

4  Ipv4

首部长度

4(表示的最大数为15个单位,一个单位表示4字节)

服务类型

8  之前不多用

总长度

16 (首部和数据部分的总长度,所以数据报的最大长度为65535字节,即64KB,可是因为链路层的MAC都有必定的最大传输单元,所以IP数据报的长度通常都不会有理论上的那么大,若是超出了MAC的最大单元就会进行分片)

标识

16 (相同的标识使得分片后的数据报片能正确的重装成原来的数据报)

标志

3 (最低位MF=1表示后面还有分片,MF=0表示这是若干个数据报片的最后一个中间位DF=0才容许分片)

片偏移

片偏移指出较长的分组在分片后,某片在原分组中的相对位置,都是8字节的偏移位置

生存时间

数据报在网络中的生存时间,指最多通过路由器的跳数

协议

8 (指出该数据报携带的数据是何种协议,以使得目的主机的IP层知道应将数据部分上交给哪一个处理程序)如ICMP=1 IGMP=2 TCP=6 EGP=8 IGP=9 UDP=17 Ipv6=41 OSPF=89

首部校验和

这个部分只校验首部,不包括数据部分,计算方法:将首部划分为多个16位的部分,而后每一个16位部分取反,而后计算和,再将和取反放到首部校验和。接收方收到后按一样的方法划分,取反,求和,在取反,若是结果为零,则接收,不然就丢弃

源地址

32

目的地址

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TCP数据报的格式?

 

源端口

目的端口

序号

确认序号

数据偏移

保留

URG

ACK

PSH

RST

SYN

FIN

窗口

检验和

紧急指针

选项和填充

数据

 

 

 

 

 

 

 

 

 

 

 

 

 

一个TCP报文段分为首部和数据两部分。首部由固定部分和选项部分组成,固定部分是20字节。TCP首部的最大长度为60。首部固定部分字段:

字段名

字节(Byte)

字段名

字节(Byte)

源端口

2

目的端口

2

序号

4

确认号

4,是指望收到对方的下一个报文段的数据的第一个字节的序号

数据偏移

4bit 指出TCP报文段的数据起始处距离TCP报文段的起始有多远

保留

6bit

紧急比特URG

 

确认比特ACK

只有当ACK=1时,确认号字段才有效

推送比特PSH

 

复位比特RST

 

同步比特SYN

 

终止比特FIN

 

窗口

2

检验和

2 (包括首部和数据两部分,同时还要加12字节的伪首部进行校验和计算)

选项

长度可变(范围1——40)

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TCP的12字节伪首部:

IP地址(4)

目的IP地址(4)

0 (1)

6(1) 表明这是TCP,IP协议中提到过

TCP长度(2)

 

 

 

TCP数据报的格式?

用户数据报UDP由首部和数据部分组成。首部只有8个字节,由4个字段组成,每一个字段都是两个字节。

 

字段名

字节

字段名

字节

源端口

2

目的端口

2

长度

2

检验和

2 (检验首部和数据,加12字节的伪首部)

 

 

 

 

 

 

UDP的12字节伪首部:

IP地址(4)

目的IP地址(4)

0 (1)

17(1) 表明这是UDP

UDP长度(2)

 

 

 

以太网MAC帧格式?

前导码 前定界符 目的地址 源目的地址 长度字段 数据字段 校验字段
7B 1B 6B 6B 2B 46-1500 4B

 

 

了解交换机、路由器、网关的概念,并知道各自的用途

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)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需通过TCP/IP四层协议处理,可是在网关(又称中介系 统,intermediate system)只须要到达网际层(Internet layer),决定路径以后就能够转送。在当时,网关 (gateway)与路由器(router)尚未区别。

在现代网络术语中,网关(gateway)与路由器(router)的定义不一样。网关(gateway)能在不一样协议间移动数据,而路由器(router)是在不一样网络间移动数据,至关于传统所说的IP网关(IP gateway)。

网关是链接两个网络的设备,对于语音网关来讲,他能够链接PSTN网络和以太网,这就至关于VOIP,把不一样电话中的模拟信号经过网关而转换成数字信号,并且加入协议再去传输。在到了接收端的时候再经过网关还原成模拟的电话信号,最后才能在电话机上听到。

对于以太网中的网关只能转发三层以上数据包,这一点和路由是同样的。而不一样的是网关中并无路由表,他只能按照预先设定的不一样网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不一样的端口,这样看来就会保护子网内的用户。