赞
踩
osi七层模型、tcp/ip四层模型、五层模型,及分层的好处?
总结:OSI七层是最多的,五层协议把最上面三层合并为应用层,而TCP/IP体系还把最下面两层合并为网络接口层
分层好处:
上下层的关系:下层为上层提供接口和服务,目的是提供更好的服务给再上一层
五层结构中的各层作用、传输单位、常见协议、网络设备?
主要任务/功能 | 传输单位 | 网络设备 | 协议 | |
---|---|---|---|---|
应用层 | 建立会话、数据格式、加密,向用户提供一组常用的应用程序 | 报文 | 网关 | TELNET、FTP、SMTP、SNMP、HTTP、DHCP、DNS |
传输层 | 负责主机进程间的通信,实现端到端数据传输 | 数据段 | 网关 | TCP、UDP、SPX |
网络层 | 异构网络互联,提供主机之间(点对点)的数据通信 | 数据包/分组 | 路由器 | IP、ICMP、IGMP、ARP |
数据链路层 | 将比特封装成帧,并且保证数据传输可靠性 | 数据帧 | 网桥、交换机 | PPP、SDLC、HDLC |
物理层 | 实现透明比特流的传输 | 比特流 | 网卡、集线器、中继器、网线 | USB |
tcp/ip协议簇有哪些?
tcp/ip是一个协议组,采用四层结构,分别是数据链路层、网络层、传输层和应用层
其中比较重要的有IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议、SLIP协议、PPP协议
计算机网络三大核心概念?
服务:每一层都有各自的功能,能提供不同的服务。
接口:层与层之间交流的窗口,通过接口可以享受到下层提供的服务,从而更好地为上层提供服务。
协议:协议就是一组数据交换规则,协议的三要素有语义、语法和同步,语法代表数据格式,语义代表各个部分的含义,同步代表数据传输的顺序。
分组交换和电路交换的区别?
电路交换是建立一条专用的线路来连接通信双方,需要经历连接建立、数据传输、连接释放的三个阶段,这种方式的实时性很好、传输速度很快,但是有一个致命的缺点,就是需要独占通信线路,资源利用率特别低。一般我们打电话用的方式就是电路交换。
报文交换是将数据封装成报文之后进行转发的通信方式,采用了存储-转发机制,每个报文可以独立选择传输线路,优点是不需要建立连接,也不用独占线路,资源利用率很高,缺点是增大了时延和资源开销。(存储转发需要存储能力,并有时延)
分组交换和报文交换类似,也用了存储-转发的机制,但区别就是传输单位不同,它是进一步把数据拆分成一个一个的分组进行传送。所以与报文交换相比,分组交换对路由器的存储能力要求更小,存储转发时延也更小。
虚电路是综合了电路交换和分组交换的一种方式,需要建立连接,但不需要独占线路,也克服了分组失序的问题。
总结:
电路交换:建立专用通路,长时间独占线路
报文交换:不用建立连接,不用长时间独占线路
分组交换:报文交换基础上再改进,存储转发时延更小、对路由器要求更小、重发的代价更小
tcp和udp的区别
建立连接:tcp是面向连接的,需要进过三次握手建立连接;而udp是无连接的,发送数据前不需要建立连接。
可靠性:tcp提供可靠的服务,即提供无差错、不丢书、不重复、按序到达的数据传输;而udp是尽最大努力交付,不保证可靠交付,但速度比tcp快。
最小单位:tcp是面向字节流的,udp是面向报文的
总结:tcp有连接→可靠→速度慢 udp无连接→不可靠→速度快
tcp与udp的应用?
UDP适用于对于通讯速度(实时性)要求较高,但对于少量丢包可容忍的场景,比如流媒体直播、语音通话、视频通话等
基于udp的协议:DNS、TFTP(简单文件传输)、SNMP
而tcp适用于对网络通讯质量要求很高的场景,比如超文本传输http、文件传输ftp、邮件传输smtp、pop、远程连接SSH等
tcp三次握手?
三次握手是tcp建立连接的过程,它的目的是在不可靠的信道上建立可靠的连接。
具体握手过程?
第一次握手时,客户端给服务器发送SYN包,包含初始序列号,请求连接,客户端进入【同步已发送】状态
第二次握手时,服务器用ACK表示收到SYN包,同时也将syn位置为1,表示接受连接请求,服务器端口为tcp连接做好资源准备,进入【同步已接收】状态
第三次握手时,客户端收到服务器的确认后,会再一次回复ACK确认,然后客户端会为tcp连接做资源(缓存和变量)准备。此时客户端就进入了【已建立连接】状态,等服务端接收到第三次确认报文段后,也进入【已建立连接】状态。然后因为第三次报文段syn位不为1,所以第三次握手确认报文其实是可以携带数据的。
三次握手大致含义:
为什么第三次可以携带数据?前两次不行?
tcp规定了syn同部位=1时,不可以携带数据,前两次syn位都为1,而第三次syn!=1,ack=1,可以携带数据
为什么是三次握手,而不是两次或者四次?
两次的话,有可能导致已失效的连接请求报文段突然又传送到了服务端,因而产生错误。具体来说,如果client发出的第一个连接请求报文段在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server,此时server就误认为是client再次发出的一个新的连接请求,于是就向client发出确认报文段,同意建立连接。如果是“两次握手”,此时就会立马建立一个新的连接,会白白浪费资源。
四次的话,没有必要,因为三次已经可以实现需求了。
tcp四次挥手?
首先,第一次握手时,客户端发送连接释放报文段,FIN位为1,然后客户端就停止向服务器发送数据了。
第二次握手时,服务器接受到释放请求,然后回复一个ACK数据包,同意客户端的连接释放。这时候客户端到服务器这端的连接就断开了。但是服务器那边还可以继续发送一段时间的数据给客户端。
到服务器把剩余数据发送完了,就进行第三次握手。发送释放连接的报文段,FIN位和ACK位都为1。
第四次挥手,客户端收到服务器的请求之后,再回复一个确认ACK包,代表同意服务器端的连接关闭。这时候客户端会启动一个计时器(2MS),计时器结束后,客户端连接完全关闭
总结:也就是分两个部分,先关闭了客户端到服务器这边的连接,然后再关闭服务器到客户端这边的连接。
为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到客户端发来的FIN报文时,很可能为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为关闭连接时,当Server端收到FIN报文时,很可能还有数据需要传输,所以只能先回复一个ACK报文,表示收到的客户端的FIN报文只有等到我Server端所有的报文都发送完了,然后才主动能发送FIN报文。所以需要四步握手。,所以只能先回复一个ACK报文,表示收到的客户端的FIN报文(前两步)。只有等到Server端所有的报文都发送完了,才能主动能发送FIN报文,告诉客户端,彻底关闭连接(后两步)。所以需要四步握手。
CSMA-CD介绍?
CSMA-CD是载波监听多路访问-冲突检测协议,是一种介质访问控制协议。
而且发送的数据帧有最短帧长的限制,因为如果帧不够长的话,检测到冲突时,帧都已经全部发完了,那冲突检测就没有意义了。最短帧长长度是=数据传输速率*两倍的端到端传播时间(也就是争用期),因为只有在争用期都有可能发送碰撞。
介绍思路:CSMA-CD分别讲载波监听、碰撞检测,然后讲讲最短帧长;
CSMA-CA介绍?
CSMA-CA是载波监听多路访问-冲突避免协议,一般用在无线局域网里面。他不会对信道上的帧进行碰撞检测,因为在无线局域网里面,碰撞检测的代价很高。所以他只能尽量避免冲突的发生。他避免冲突的方法主要是退避算法和预约信道机制。
CSMA-CA和CSMA-CD区别?
链路层提供的三种类型服务?
无确认-无连接(CSMA-CD):误码率比较低的信道,比如以太网。
有确认-有连接:实时性和可靠性都比较高的场合。
有确认-无连接(CSMA-CA):有确认机制,但不需要建立链路,比如局域网
链路层流量控制的三种方式?
停等协议:发送窗口=接收窗口,信道利用率很低
后退n帧GBN:发送窗口>1,接收窗口=1,采用累计确认,只能按顺序接收,否则重发
选择重传SR:发送窗口>1,接收窗口>1,非累计确认,可以不按序接收,信道利用率高
介绍下ARP协议?
ARP也就是地址解析协议,作用就是把得到的IP地址转化为对应的MAC地址。比如主机收到一个网络数据包,得到了对方的ip地址,这时候想要给对方会发一个数据包,就需要用到ARP协议。
ARP的原理大概就就是,得到目的主机ip地址之后,
首先查找本地的ARP缓存表,如果有,就直接获取mac地址,然后发送。
如果没有,再判断一下目的ip和本机ip是不是同一个网段的
如果是同一个网段的
就向局域网内的主机广播一个ARP请求分组,内容包括原主机的ip、mac地址,目的ip和目的mac,目的mac地址填的是全F字段。当局域网内主机收到这个分组后,目的主机收到后会把自己的mac地址单播响应给源主机。同时把源主机的ip地址和mac地址存入自己的ARP缓存当中。最后原主机收到mac地址之后,也会把对方的信息存入ARP缓存当中,之后就可以直接发送数据了。
但如果目的主机和本机不是同一个网段的
那就需要先找到本机对应网关的mac地址,方法和之前的一样,都是广播一个目的mac地址为全F的ARP请求分组,等获取网关mac地址后,直接将数据交给网关就可以了,网关会根据自己的ARP信息表找到目的主机,把数据转发给目标主机。
RARP原理
RARP是逆向地址解析协议,就是在已知本机mac地址,但是不知道ip地址的时候使用。
它的工作原理和ARP有点类似,都是主机广播一个请求分组,只是目标地址是全0,而且它请求的对象是网络上的RARP服务器,服务器收到RARP请求之后,会查找自己的RARP映射表,如果有对应mac对应的ip,那就返回给它,如果没有就不做响应。主机如果收到ip地址,那就可以直接用它来进行通信,但是如果没有,就说明请求失败了。
DHCP原理
DHCP是动态主机配置协议,DHCP服务器里面会维护一个IP池,当局域网里面有新的设备加入时,可以动态从里面选择ip分给客户机。
他的工作原理大概是:
①、客户端先向DHCP服务器广播一条(Discover)报文,相当于询问各个服务有没有可以分配给我的ip。(有人能给我ip吗)
②、然后各个服务器收到报文之后,查询自己的可分配地址,然后返回一条ip信息和自己的ip地址,相当于告诉客户端自己可以分配给你。(我可以,这个怎么样)
③、客户端可能会收到很多条信息,但只能选择其中一条,进行正式的申请,也是通过广播的方式,发送Request请求,请求内包括选中的ip地址号和服务器的ip地址。(正式申请一个)
④、服务器接受到正式请求之后,会对比里面的服务器ip字段,如果是自己的话,那就回复一个ACK,代表正式分配ip了,如果不是自己的话就不做处理。(正式分配一个)
ICMP原理,常见差错报文有哪些?
ICMP是控制报文协议,用于在主机、路由器之间传递控制信息。
ICMP报文分为两类:一类是差错报文,另一类是查询报文。
差错报文(发给源主机):
源点抑制报文:网络拥塞而导致丢包,提醒源点减慢发送速度
超时报文:当收到TTL为0的数据报时,就向源点发超时报文
终点不可达报文:数据最终不能交付时
参数错误报文:首部字段不正确时
重定向报文:路由器把重定向发给主机,通知主机下次把数据报发给其它路由器
应用:ping命令和tracert命令
什么是IGMP组播组管理协议
组播就是主机发送一条数据,就可以使一组成员都接收到这条消息,而不是发送多次。比如在视频点播里,就会用到组播。
IGMP是用来通知自己加入或者离开某个组播组,它的原理大概是当有一个主机要加入组播组的时候,发送一个IGMP分组给对应的组播地址(D类地址的一个),然后组播路由器接收到信息之后就会,通知其它组播路由器,告诉他们。
DNS域名解析过程
DNS是域名解析过程,主要有直接递归查询和递归与迭代相结合的查询两种方式。
访问顺序:本机→本地dns服务器→根域名服务器→顶级域名服务器→权限域名服务器→得到ip
直接递归查询:就是本机先向本地dns服务器发送请求域名对应的ip,然后本地dns服务器查找本地的dns缓存之后,**发现没有,就会开始递归查询。**向根域名服务器请求,根域名服务器根据它的顶级域名向顶级域名服务器查找,然后顶级域名服务器又一层一层往下递归查找,直到根域名服务器把对应ip地址返回给本地DNS服务器,本地DNS服务器最后再返回给用户。但这样造成了根域名服务器工作量很大,又要查询、又要返回最终ip,所以一般不用这种方法。
一般用迭代和递归相结合的方法,这个方法刚开始也是一样,先向本地dns服务器的缓存里查找,如果没有再向别的服务器查找。但是不同的是,它不是由本地dns一层层递归找下去,而是由本地dns服务器去挨个询问其它服务器,本地dns就相当于主机的代理人的作用。先向根服务器找顶级域名服务器的ip,得到ip后本地dns服务器再顶级域名服务器,返回地址后,又再找权限域名服务器,最终通过权限域名服务器的地址,得到完整ip,把它存入到dns缓存里面,最后返回给用户主机。
注意:用户和本地dns服务器这部分一定是递归,而本地dns向其它服务器查找可以分为递归和迭代两种方式。
FTP过程?
FTP特点:
文件下载大致流程:
邮件发送过程?
SNMP协议
SNMP是简单网络管理协议,负责监视网络上设备的状态,SNMP 可以使网络管理员通过一台工作站完成对计算机、路由器和其他网络设备的远程管理。
原理大概是:网络上每一个设备的各种信息都会被封装成一个对象,然后所有对象的集合都会被包含在一个数据库MIB里面。网络管理员可以通过网络管理系统,想代理申请获取这个数据库的任意一个对象,实现状态监听。
http特点?
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。(当今多数服务器支持Keep-Alive功能,使用服务器支持长连接,解决无连接的问题)
无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后,不会记录信息。(使用 cookie 机制可以保持 session,解决无状态的问题)
TCP拥塞控制
拥塞控制的作用是防止网络整体出现拥堵的情况进行的一系列措施,当出现拥塞的情况时,就需要启动拥塞控制算法。
拥塞控制算法有:慢开始、拥塞避免、快重传、快恢复。
一般超时将慢开始和拥塞避免一起用,冗余ACK时将快重传和快恢复一起用。
【慢开始+拥塞避免】
慢开始:不是增长速度慢,而是启动初始值慢,初始时候拥塞窗口至为1,然后每经过一轮传输(也就是全部收到ACK的过程),就把拥塞窗口变为两倍,当增长到门限值的时候,就用拥塞避免算法。
拥塞避免:减慢拥塞窗口增长速度,每发一个报文段,窗口只加1,尽量避免拥塞。当拥塞发生的时候,把门限值调整为发生拥塞时拥塞窗口的一半,同时把拥塞窗口置于为1,重新开始慢开始算法。
【快重传+快恢复】
是慢开始和拥塞避免算法的一种改进,其实就是调整了拥塞的判定,和发生拥塞时的恢复方法。
快重传规定当发送方连续收到三个冗余ACK时直接重传,而不是等到计时器结束再重传,这样可以加快重传速度
然后快恢复是指当收到三个冗余ACK时,也就是判定发生拥塞时,把门限值调整为原来的一半,然后把拥塞窗口设置为门限值,再线性增长,而不是重新开始慢开始算法。这样可以加快发送窗口恢复的速度,减少试探时间。
PPP和HDLC区别?
PPP和HDLC是广域网最常用的两种数据链路层控制协议。
总结
RIP和OSPF区别
RIP:应用层协议,每个路由器都保存一张距离向量表,存储了到其它各个路由器的最短路径。通过向相邻的路由器交换本路由器知道的全部信息,也就是路由表,经过N次RIP广播就可以知道和自己距离为N的所有路由信息,最后所有路由器都知道了整个网络的路由表。
接收相邻的路由器X发来的路由表信息,把下一跳地址都改为X,然后距离全部+1,再和本地的路由表对比,进行更新
路由表更新规则:
特点:
为什么会坏消息传的慢?
网络故障只会马上通知相邻的路由器,然后设置距离为16,,但这个路由器不会马上发给其它路由器这个消息,而是会等30秒再告诉其它路由器。在这个期间里面,其它相邻的路由器还以为可以通过路由器A到达网路,结果告知路由器A,然后他们两个就会循环增加距离,直到距离为16,不可达。
OSPF:网络层协议,向所有路由器发送本路由器和相邻路由器的最短距离,最终可以得到整个网络的网络拓扑图,再根
据迪杰斯特拉算法计算到各个结点的最短路径。
洪泛法:通过广播的方式,依次传递给邻居
两者区别:
传输层流量控制与链路层流量控制的区别
网络层分组转发流程
以太网特点?
以太网是目前最普遍使用的局域网,可以说是局域网的代名词,他的逻辑结构是总线形,物理拓扑是星形。
奈氏准则和香农定理?
奈氏(nice,理想情况下)准则:在理想情况下,也就是没有噪声干扰的情况下,为了避免码间串扰,极限码元传输速率是信道带宽的两倍
香农定理:**有噪声干扰下,为了不受噪声干扰,数据传输速率有最大值,这个最大值和信道带宽和信噪比有关,**带宽越大,数据传输速率上限也就越高,信噪比越大,数据传输速率上限也越高。
socket和http、tcp关系?
套接字可以由**【ip地址+端口号】表示,一个socket就代表网络上的一端,可以唯一标识网络上的一个进程**。
socket连接过程:
socket和tcp/ip的联系?
socket是一个接口,连接了应用程序和传输协议,编程人员可以通过socket提供的API选择使用TCP或者UDP进行数据传输。
socket连接和http连接区别?
http1.1特点?
http2.0的特点
一次完整的http请求过程?
①、DNS域名解析
②、发起三次握手,建立tcp连接
③、服务器响应请求,浏览器得到html页面代码
④、浏览器解析html代码,并请求代码中的(图片、css样式文件、js文件)资源
⑤、浏览器对页面进行渲染,呈现给用户
总结:DNS域名解析→三次握手→响应页面代码→解析页面代码→渲染页面
经历协议:http、dns、tcp、ip、arp
http持续连接和非持续连接?
非持续连接:每次请求/响应,都要用一个新的tcp连接
持续连接:每个tcp连接可以处理多个请求/响应(http1.1才有)
ARP协议和RARP协议?
ARP地址解析协议,主要功能是将ip地址转化成对应的mac地址。
RARP是逆向地址解析协议,主要功能是将mac地址转化为ip地址。
为什么要进行流量控制?
由于发送方和接收方的工作速率的差异,可能出现发送方的发送能力大于接收方的接收能力的情况,这样会造成大量的帧丢失,对实际传输速率有较大影响,所以要进行流量控制,限制发送的发送速率,使其小于接收方的接收速率。
在这个过程中需要通过某种反馈机制来通知发送方接收方的接收能力,使其知道发送方在什么情况下可以继续发送下一帧数据。
七层模型数据的解封装过程?
udp/tcp如何提供可靠传输服务
tcp通过校验和检验差错、序号机制保证接收顺序、确认机制和重传机制保证一定会收到报文段、通过实现流量控制来限制发送方的发送速率、拥塞控制来处理网络拥堵,最终实现可靠传输。
udp实现可靠传输需要在应用层实现。可以模仿tcp的实现原理,用确认机制、超时重传、滑动窗口机制
http协议和https协议区别
OSI含义
开放系统互联参考模型(Open System Interconnection Reference Model)
ip地址分类
网络号限制:
全0的不能被使用;A类网络全1也不能使用,网络号127作为回环测试使用
主机号限制:
全 0 主机号不能被分配,表示当前连接的本网络,;全 1 主机号不能被分配,表示广播地址,
路由器工作原理?
路由器的主要工作就是连接不同的网络,实现数据交换。主要的任务有路由选择和分组转发。
路由选择。指按照分布式的路由选择算法,根据从各相邻路由器所得到的关于整个网络拓扑
的变化情况,得到两个结点之间的最佳路径。
分组转发。当一个分组到来的时候,根据路由转发表把分组从某个端口转发出去
网关和路由器的区别?
网关是一个概念,是指一切可以连接使用不同协议的网络的一类设备,网关可以是一个路由器、交换机、PC机或者手机。比如手机开了热点给电脑连接,这样手机就作为网关,把电脑胡互联网相连接了。
路由器是一个具体的设备,用于异构网络的互联,因为用路由器充当网关是最普遍的形式,所以一般默认说网关就是路由器。
网卡作用?
①、把电脑要发送的二进制比特流封装成帧,通过传输介质把数据发到网络上去。
②、接受网络设备上其它设备传过来的数据帧,解封装成二进制比特流,然后在交给计算机处理。
NAT技术如何实现发送和接收数据
NAT技术是一种把内网地址映射到外网地址的技术,就能够实现内网的计算机和外部网络的相连。
发送数据时,只需要把数据包发送给有NAT功能的路由器,路由器会以公网ip的身份向外界发送信息,对于外界网络来说,只知道路由器的公网ip,不知道内网ip的地址。
接受数据时,外部服务器会根据路由器发送数据包的源ip和源端口号,直接给路由器发送数据包,然后路由器根据端口映射表找到对应的内网主机和ip地址,端口映射表存储了【内网ip+端口号】到【路由器外网ip+端口号】的映射关系
常用端口号和其协议
20-ftp传输数据
21-ftp控制连接
22-SSH连接
23-TELNET远程连接
80-HTTP超文本传输协议
443-HTTPS协议
8080-tomcat默认端口号
http常见状态码和含义
常见代码:
200请求成功、
400-客户端请求语法错误、
403-服务器拒绝服务(客户端没有开启对应网络权限)、
404-请求资源不存在(请求的URL错误)、
500-服务器发生错误(服务器语法错误、从上游网关响应超时)
503-服务器不可访问(比如负载过大)
概述:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。