计算机网络相关知识总结

来源:互联网 发布:韦德公牛数据 编辑:程序博客网 时间:2024/05/01 15:37

1.OSI的七层网络和TCP/IP的五层网络

(1)OSI的七层网络

【1】物理层:电子线路数据传输

【2】数据链路层:定义单个链路上如何传输数据

【3】网络层:提供点到点的传输,包括路由方式

【4】传输层:提供端到端的传输

【5】会话层

【6】表示层

【7】应用层

(2)TCP/IP的五层网络

【1】物理层

【2】数据链路层

【3】网络层

【4】传输层

【5】应用层

2.IP协议的定义

3.TCP与UDP +6

(1)TCP在握手过程中交换那些信息

1.连接
SYN=1 seq=xSYN=1 ACK=1 seq=y ack=x+1ACK=1 seq=x+1 ack=y+1
2.解除连接
FIN=1 seq=uFIN=1 seq=v ack=u+1FIN=1 ACK=1 seq=w ack=u+1ACK=1 seq=u+1 ack=w+1

(2)如何用UDP实现可靠传输

超时重传,有序接受,应答确认,滑动窗口流量控制

(3)TCP握手为啥不是两次或者四次

既要提高传输速率,又要保证稳定性
如果是两次:client发起连接,但是延迟了,很久之后到达server,server向client发送连接确认,此时server天真地认为连接已经建立了,便一直傻傻地等待着数据,而实际上client已经不是当年那个client了。这样次数如果多起来,server会因元气耗尽而死。
为啥不是四次呢,其实也可以是四次,就算来个四十次也不成问题,但是握手三次就已经建立深厚感情了,多握手只会画蛇添足。

(4)TCP状态图、拥塞避免算法、滑动窗口算法 +2

拥塞避免:拥塞发生在路由器,避免手段是,慢开始,开始的时候以2为倍数依次增加,当达到窗口的一半时便加性增加,一旦发生拥塞,变立即再次执行慢开始。快重传,一旦接收方收到失序报文时立即发送重传,当连续收到三次重传时,门限值加性增加。随机早期检测:在路由器执行的程序,监控报文队列,一旦发现拥塞逼近,便随机选择一个终端给他说发生阻塞了。

(5)交换机与路由器的原理,在第几层

交换机工作在数据链路层,拆封二层包,转发,隔离冲突域(共占资源),ARP协议
路由器工作在网络层,拆封三层包,隔离冲突域和广播域

(6)socket流程

TCP_server:socket-bind-listen-accept-recv-send-close

TCP_client:socket-connect-send-recv-close

UDP_server:socket-bind-send-recv-close

UDP_client:socket-send-recv-close

(7)https和http是什么协议,区别,https是如何实现的 +3

http特点:【1】简单,因为简单所以快【2】灵活,支持任何类型的数据【3】无连接【4】无状态,每次访问都与上次无关
请求报文:请求行,消息报头,请求正文,请求行可以是get/post/head/put/delete/connect/options/trace
响应报文:状态行,消息报头,响应正文,状态行可以是1XX提示信息,表示信息已接受继续处理,2XX表示成功,3XX重定向,4XX客户端错误,5XX服务端错误
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

(8)加密算法,MD5是什么

MD5是加密算法,无论多长的数据都可以加密成128位的MD5值

(9).IO模型,select poll和epoll +5

同步IO
【1】阻塞式IO,调用read,如果数据没有准备好则阻塞在这里
【2】非阻塞式IO,如果数据没有准备好则返回错误,进程不阻塞可以去做其他事情,也成为轮询
【3】IO复用,阻塞在select或者poll函数上,当条件满足,则进行调用
【4】信号驱动型IO,注册信号处理函数,信号产生时自动调用函数
以上都是在read的时候是会阻塞的
异步IO
将缓存区什么的传给内核,内核完成IO操作之后通知进程

同步IO模型
【1】select 每次调用select都要将fd集合从用户态拷贝到用户态,每次调用select都要在内核中遍历fd集合,有fd集合限制,最大1024
【2】poll与select差不多
【3】epoll是前述两者的改进
select,poll每次调用都要把fd集合从用户态往内核态拷贝一次,并且要把current往设备等待队列中挂一次,而epoll只要一次拷贝
epoll对fd集合没有数量限制
select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替


9.DNS 域名解析系统 +2

1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。