文章目录
计算机网络----知识点概述
计算机网络协议
网络协议,简介/概述】网络协议是为计算机网络中进行数据交换而建立的规范。网络上不同的计算机、网络应用之间必须使用相同的网络协议才能进行通信。算法是理论层面的,协议是封装了算法的一种实现,更加具体。
协议软件,概述】协议软件运行在每台主机和路由器上,这个软件实现网络协议,消除了不同网络之间的差异,让某台源主机跨过所有这些不兼容的网络发送数据位到另一台目的主机
协议层次】
OSI分层 (7层):物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。



TCP/IP协议簇】:其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议等。每台因特网主机都运行实现 TCP/IP 协议的软件,几乎每个现代计算机系统都支持这个协议。
计算机网络协议每一层的功能】网络层功能:provide logical communication between hosts
HTTP
HTTP,知识点概述】
HTTP协议,概述】超文本传输协议(HyperText Transfer Protocol, HTTP),web的应用层协议。HTTP一种用于获取或发布文档的机制。HTTP由两个程序实现 ,一个客户程序(web浏览器)和一个服务器程序(web服务器)。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方 式。HTTP用于从一台主机向另一台主机传送文件,(从Web服务器向Web客户(通常是一个浏览器)传送文件(也称为对象))HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。浏览器和服务器之间的传输协议是HTTP。HTTP选择TCP作为运输协议。
HTTP定义了 Web客户向Web服务器请求Web页面的方式,以及服务器向客户传 送Web页面的方式。
客户和服务器的交互过程:
当用户请求一个Web 页面(如点击一个超链接)时,浏览器向服务器发出对该页面中所包含对象的HTTP请求报文,服务器接收到请求并用包含这些对象的HTTP响应报文进行响应。

HTTP协议,过程】
HTTP使用TCP作为它的支撑运输协 议,HTTP客户首先发起一个与服务器的TCP连接,一旦 连接建立,该浏览器和服务器进程就可以通过套接字接口访问TCP。客户端的套接字接口是客户进程与TCP连接之间的门,在服务器端 的套接字接口则是服务器进程与TCP连接 之间的门,客户向它的套接字接口发送HTTP请求报文并从它的套接字接口接收HTTP响应报文;类似地,服务器从它的套接字接口接收HTTP请求报文和向它的套接字接口发送HTTP响应报文,一旦客户向它的套接字接口发送了一个请求报文,该报文就脱离了客户控制并进入TCP的控制
HTTP的特点/特性】无状态性(不保存客户信息)。主要是是一个拉协议,web server上存储东西,用户使用http将它们拉下来,tcp连接一般是由想接受文件的机器发起的,对于个既包含文本又包含图形的文档,把每个对象封装到它自己的HTTP响应报文中。
HTTP建立连接的过程】:(a)浏览器从URL中解析出服务器的主机名;(b)浏览器将服务器的主机名转换成服务器的IP地址;.©浏览器将端口号.(如果有的话)从URL中解析出来;(d)浏览器建立一条与Web服务器的TCP连接;(e)浏览器向服务器发送一条HTTP请求报文;.(f)服务器向浏览器回送一条HTTP响应报文;.(g)关闭连接,浏览器显示文档。
HTTP是一个无状态协议】
服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息。假如某个特定的客户在短短的几秒内两次请求同一个对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象,就像服务器已经完 全忘记不久之前所做过的事一样。因为HTTP服务器并不保存关于客户的任何信息,所以 我们说HTTP是一个无状态协议(stateless protocol)。
采用非持续或持续连接的HTTP】
在许多因特网应用程序中,客户和服务器在一个相当长的时间范围内通信,其中客户发出一系列请求并且服务器对每个请求进行响应。若每个请 求/响应对是经一个单独的TCP连接发送,则该应用程序被称为使用非持续连接;
所有的请求及其响应经相同的TCP连接发送,该应用程序被称为使用持续连接。HTTP既能够使用非持续连接,也能够使用持续连接。HTTP在其默认方式下使用持续连接,HTTP客户和服务器也能配置成使用非持续连接
采用非持续连接的HTTP----书
采用持续连接的HTTP—书
cookie】
web缓存(也叫代理 服务器(proxy server))】-------dai看书
条件GET (conditional GET)方法】—看书
HTTP协议有一种机制,允许缓存器证实它的对象
是最新的。这种机制就是条件GET (conditional GET)方法。
HTTP报文】
知识点陈列】HTTP报文是如何流动的。HTTP报文组成部分。
请求和响应报文之间的区别。
HTTP请求报文】
HTTP请求报文的第一行叫作请求行(request line),其后继的行叫作首部行(header line)。请求行有3个字段:方法字段、URL字段和HTTP版本字段。方法字段可以取几种不同的值,包括GET、POST、HEAD、PUT和DELETE。
通过包含Connection: close首部行,该浏览器告诉服务器不要麻烦地使用持续连接,它要求服务器在发送完被请求的对象后就关闭这条连接。User-agent:首部行用来指明用户代理,即向服务器发送请求的浏览器的类型。Accept-language:首部行表示用户想得到该对象的语言版本(如果服务器中有这样的对象的话);否则,服务器应当发送它的默认版本。Accept-language:首部行仅是HTTP中可用的众多内容协商首部之一。
HTTP响应报文】
响应报文。它有三个部分:初始状态行(status line) , 首部行(headerline),然后是实体体(entity body)。实体体部分是报文的主要部分,即它包含了所请求的对象本身。状态行有3个字段:协议版本字段、状态码和相应状态信息。首部行的字段的含义。
HTTP方法
HTTP方法包括】GET、PUT、POST、DELETE、HEAD
绝大部分的HTTP请求报文使用GET方法。HEAD方法类似于GET方法,当服务器收到一个使用HEAD方法的请求时,将会用一个HTTP报文进行响应,但是并不返回请求对象,应用程序开发者常用HEAD方法进行调试跟踪。PUT方法常与Web发行工具联合使用,它允许用户上传对象到指定的Web服务器上指定的路径(目录),PUT方法也被那些需要向Web服务器上传对象的应用程序使用。DELETE方法允许用户或者应用程序删除Web服务器上的对象。
用表单生成的请求报文不是必须使用POST方法,HTML表单经常使用GET方法,并在(表单字段中)所请求的URL中包括输入的数据。
HTTP实体体 (entity body) ,使用GET方法时实体体为空,而使用POST方法时才使用该实体体。
HTTP方法,工作流程/实现原理】
HTTP的状态码】


HTTP Header及其字段】
它控制着用户浏览器的渲染行为和服务器的执行逻辑。
Cache-Control:no-cache
Pragma:no-cache
Expires:超过这个时间值后,缓存的内容将失效,也就是浏览器在发出请求之前检查这个页面的这个字段,看该页面是否已经过期了,过期了就重新向服务器发起请求。
Last-Modified/Etag:
http/2相比http/1.1有什么新特性】
HTTPS
应用层安全协议,是什么/简介】应用层安全协议实现两个应用进程之间应用消息的安全传输。由于不同应用有不同的应用协议,所以不同的应用协议也有其对应的安全协议。用于安全访问网站的基于SSL/TLS的HTTP(HTTPS)、PGP、SET。
HTTPS,概述】https为正常的http包封装了一层SSL。应用了SSL的https两个功能:1.建立一个信息安全通道 2.确认网站的真实性
HTTPS工作过程】

HTTPS和HTTP的区别】
https协议需要CA申请证书。
http协议运行在TCP协议之上,传输的内容都是明文传送,无状态连接,安全性较差,而https则是运行在SSL/TLS层之上, 而SSL/TLS层是运行在TCP层之上,https传输的内容都是经过加密的,安全性较高。
http与https使用不同的连接方式.其中http默认用的是80端口,而https默认用的是443端口。
TCP
3.5.1–3.5.3已看书。3.5.4已之后未看。TCP可靠数据传输、流量控制、拥塞控制等,看视频学习。
TCP ,概览】
TCP “连接”,是一条逻辑连接。
点对点(一对一),即在单个发送 方与单个接收方之间的连接,无法多播。
可靠的,有序字节流(最小单位就是字节)。
全双工:同时+双向。TCP是全双工的,因此主机A在向主机B发送数据的同时,也许也接收来自主机B的数据(都是同一条TCP连接的一部分)。
“TCP在它方便的时候以报文段的形式发送数据"。将应用层的message按MSS大小切为segment。
累计确认。
管道协议。
面向连接(有握手过程,)流控制(发送速度控制)。
TCP是一个构建在IP之上的复杂协议,提供了进程间可靠的全双工(双向的)连接。TCP是在不可靠的(IP)端到端网络层之上实现的可靠数据传输协议。TCP协议只在端系统中运行。
TCP依赖于许多基本原理,其中包括差错检测、重传、累积确认、定时器以及用于序号和确认号的首部字段。
使用TCP的应用层协议】HTTP、FTP、SMTP、TELNET、SSH
最大报文段长度MSS】
MSS(Maximum Segment Size),MSS是指在报文段里应用层数据的最大长度,MSS限制了报文段数据字段的最大长度,MSS并不包括TCP报文段的首部。 MSS通常根据MTU来设置,设置该MSS要保证一个TCP报文段(当封装在一个IP数据报中)加上TCP首部长度(20字节)和IP首部长度(20字节)将适合单个链路层帧。以太网和PPP链路层协议都具有1500字节的MTU,TCP和IP首部长度都为20字节,因此MSS的典型值为1460字节。
TCP,数据划分和序号分配】
TCP把数据看成一个无结构的、有序的字节流。
假设主机A上的一个进程想通过一条TCP连接向主机B上的一个进程发送一 个数据流。主机A中的TCP将隐式地对数据流中的每一个字节编号。主机A中的TCP将隐式地对数据流中的每一个字节编号。假定数据流由一个包含500 000字节的文件组成,其MSS为1000字节,数据流的首字节编号是0。如图所示,该TCP将为该数据流构建500个报文段。给第一个报文段分配序号0, 第二个报文段分配序号1000, 第三个报文段分配序号2000, 以此类推。每一个序号被填入到相应TCP报文段首部的序号字段中。注:我们假设初始序号为0。事实上,一条TCP连接的双方均可随机地选择 初始序号。这样做可以减少将那些仍在网络中存在的来自两台主机之间先前已终止的连接 的报文段,误认为是后来这两台主机之间新建连接所产生的有效报文段的可能性

客户进程和服务器进程之间通过TCP发送并接受数据的过程】
TCP连接的 每一端都有各自的发送缓存和接收缓存。客户进程通过套接字(该进程之门)传递数据流。数据一旦通过该门,它就由客户中运行的TCP控制了。TCP将这些数据引导到该连接的发送缓存(send_buffer)里,发送缓存是发起三次握手期间设置的缓存之一。接下来TCP就会不时从发送缓存里取出一块数据,并将数据传 递到网络层。在TCP规范[RFC 793]中却没提及TCP应何时实际发送缓存里 的数据,只是描述为“TCP应该在它方便的时候以报文段的形式发送数据"。TCP可从缓 存中取出并放入报文段中的数据数量受限于最大报文段长度MSS。当TCP在另一端接收到一个报文段后,该报文段的数据就被放入该TCP连接的接收缓存中,应用程序从此缓存中读取数据流。
TCP segment报文段 结构】


标志位SYN】
TCP “确认号】
ACK Acknowledgment”:以字节为单位。接收方给发送方的ACK表示:接收方已经收到(ACK-1及之前的所有字节)接收方希望发送方希望从第ACK的值的序号开始发送数据。A和B通信,主机 A填充进报文段的确认号是主机A期望从主机B收到的下一字节的序号
TCP"序号"字段】Sequence Number":以字节为单位。本segment中的数据即MSS是在原字节流中的偏移量。—个报文段的序号(sequence number for a segment)是该报文段首字节的字节流编号。为了方便,在理论讲解中常假设初始序号为0,事实上,一条TCP连接的双方均可随机地选择 初始序号。这样做可以减少将那些仍在网络中存在的来自两台主机之间先前已终止的连接 的报文段,误认为是后来这两台主机之间新建连接所产生的有效报文段的可能。
TCP连接中收到失序报文段时该怎么办】
TCP RFC并没有为此明确规定任何规则,而是把这一问题留给实现TCP的编程人员去处理。他 们有两个基本的选择:①接收方立即丢弃失序报文段(如前所述,这可以简化接收方的设计);②接收方保留失序的字节,并等待缺少的字节以填补该间隔。显然,后一种选择对网络带宽而言更为有效,是实践中采用的方法。
TCP是如何提供可靠数据传输的】
先给出一个TCP发送方的高度简化的描述,该发送方只用超时来恢复报文段的丢失;然后再给岀一个更全面 的描述,该描述中除了使用超时机制外,还使用冗余确认技术。
TCP 建立连接的过程(即三次握手)
TCP建立连接的过程,即三次握手过程】
客户首先发送一个特殊的TCP报文段,服务器用另一个特殊的TCP报文段来响应,最后,客户再用第三个特殊报文段作为响应。前两个报文段不承载“有效载荷”,也就是不包含应用层数据;而第三个报文段可以承载有效载荷。由于在这两台主机之间发送了 3个报文段,所以这种连接建立过程常被称为三次握手(three- way handshake).
第一步:客户端的TCP首先向服务器端的TCP发送一个特殊的TCP报文段,该报文段中不包含应用层数据,但是在报文段的首部中的一个标志位 (即SYN比特)被置为1,因此,这个特殊报文段被称为SYN报文段,另外,客 户会随机地选择一个初始序号(client_isn),并将此编号放置于该起始的TCP SYN报文段的序号字段中,该报文段会被封装在一个IP数据报中,并发送给服务器。
第二步:一旦包含TCP SYN报文段的IP数据报到达服务器主机(假定它的确到达了),服务器会从该数据报中提取出TCP SYN报文段,为该TCP连接分配TCP缓 存和变量,并向该客户TCP发送允许连接的报文段,这个允许连接的报文段也不包含应用层数据,但是,在报文段的首部却包含3个重要的信息:首先,SYN比特被置为1。其次,该TCP报文段首部的确认号字段被置为client _ isn + 1,最后,服务器选择自己的初始序号 (server_isn),并将其放置到TCP报文段首部的序号字段中,这个允许连接的报文段实际上表明了:“我收到了你发起建立连接的SYN分组,该分组带有初始序号client_isn,我同意建立该连接,我自己的初始序号是server_isn”。该允许连接的报
文段被称为SYNACK报文段(SYNACK segment)。
第三步:在收到SYN ACK报文段后,客户也要给该连接分配缓存和变量,客户主 机则向服务器发送另外一个报文段;这最后一个报文段对服务器的允许连接的报文段进行了确认(该客户通过将值server_isn + 1放置到TCP报文段首部的确认字 段中来完成此项工作),因为连接已经建立了,所以该SYN比特被置为0,该三次握手的第三个阶段可以在报文段负载中携带客户到服务器的数据。

为什么是三次握手,两次握手可以吗】
帅地—这里我顺便解释一下为啥只有三次握手才能确认双方的接受与发送能力是否正常,而两次却不可以:
第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。----帅地
TCP关闭连接(即四次挥手)
四次挥手过程】

假设客户应用程序决定要关闭该连接。(注意到服务器也能选择关闭该连接。)这引起客户TCP发送一个带有FIN比特被置为1的TCP报文段,并进入FIN_WAIT_1状态。当处在FIN_WAIT_1状态时,客户TCP等待一个来自服务器的带有确认的TCP报文段。当它收到该报文段时,客户TCP进入FIN_WAIT_2状态。当处在FIN_WAIT_2状态时,客户等待 来自服务器的FIN比特被置为1的另一个报文段;当收到该报文段后,客户TCP对服务器的报文段进行确认,并进入TIME_WAIT状态。假定ACK丢失,TIME_WAIT状态使TCP客户重传最后的确认报文。在TIME.WAIT状态中所消耗的时间是与具体实现有关的,而 典型的值是30秒、1分钟或2分钟。 经过等待后,连接就正式关闭,客户端所有资源(包 括端口号)将被释放。
TIME_WAIT状态】-----先放过,dai理解
TIME_WAIT状态是什么?作用是什么?会导致什么问题,怎么解决。有很多 TIME-WAIT状态如何解决。
参考敖丙-------https://mp.weixin.qq.com/s/rX3A_FA19n4pI9HicIEsXg
帅地---------这里特别需要主要的就是TIME_WAIT这个状态了,这个是面试的高频考点,就是要理解,为什么客户端发送ACK之后不直接关闭,而是要等一阵子才关闭。这其中的原因就是,要确保服务器是否已经收到了我们的ACK报文,如果没有收到的话,服务器会重新发FIN报文给客户端,客户端再次收到FIN 报文之后,就知道之前的ACK报文丢失了,然后再次发送ACK报文。----帅地
TCP连接建立和断开过程状态图




TCP可靠数据传输
cache】

mine:TCP是累计确认,即:接受方可以一次确认接受到的多个报文段,不用对于每接受到的都要确认。
TCP流量控制
流量控制是为了让发送方慢点,以便接收方来得及接收。
TCP流量控制的方式:滑动窗口机制。
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}
接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
TCP如何进行流量控制
TCP拥塞控制
什么情况下会出现拥塞?】
拥塞控制】
mine----初始拥塞窗口设定为1,刚开始采用慢开始(即拥塞窗口变为2倍),若达到阈值,则采用拥塞避免(即拥塞窗口每次加1),若发生拥塞,则直接将拥塞窗口变为1,再重复之前过程;若受到3个重复的ACK:将拥塞窗口变成刚才的一半后,并每次加1增大。
流量控制和拥塞控制区别】
UDP
UDP,概述】UDP不可靠,可提供的服务:数据交付和差错检查,流量不可控(可以任何速率)。它为调用它的应用程序提供了一种不可靠、无连接、传输流量速度无管制的服务
UDP特点】

什么时候用UDP而不是TCP】
UDP传输数据时可能出现的情况和采用的策略】 eg:UDP客户端未接受到回应,如何采取策略:如重发,并且还要进行请求与响应附加序列号,以保证客户端请求和服务器端的回应是保持对应的。UDP 客户端重发采取的策略:延时最大值内的指数规避策略
UDP的意义很简单,要么是“发送这个数据报”,要么是“接收一个数据报”,每个数据报都是原子的。数据报中的数据是自包含的,只有成功发送接收或失败两种状态。在应用程序中UDP绝不会只发送了一半,或只接收了一半。UDP应用程序接收到的只可能是完整无损的数据报。
UDP支持的应用层协议:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等
IP
IP协议,概述】 处于网络层。无连接。不可靠。将两个端系统间的不可靠IP服务转换成了一种进程间的可靠数据传输服务
IP地址】:逻辑地址(即ip地址), ip地址在其所在网内具有唯一性,可能一个设备同时身处多个网络内,就可能有多个ip。ip地址是可以变的
IPv4数据报结构】
IP数据报格式(各个字段含义,各字段如何产生的,字段作用是什么)

IP编址(ABCDE类网络)】ABCDE类地址结构,哪些位标识网络的位,哪些位表示主机 不同的网络就可以体现在各自IP范围的不同上。ABCDE每一种地址表示范围。ABCDE每一种地址在什么情况下使用,用来做什么。特殊用途的ip地址。
IP子网划分】
IP重组】
IP分组校验】
IP分片,概述】
路由是进行分片的链路层具有最大传输单元MTU这个特性,该IP数据报的长度大于出链路的MTU,此时就需要将IP数据报中的数据分片成两个或更多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,然后通过输出链路发送这些帧,每个这些较小的数据报都称为片 (fragment) 。
ip编址问题中的变长掩码情况下划分ip】
IP协议中存在的安全问题】ip协议不具备任何安全特性。源端鉴别问题,例:源ip可能为假。数据保密性问题,例ip分组中数据没有加密,可能被嗅探或者截获,导致信息泄露。ip分组完整性,即被截获后可能被篡改再次送入网络。身份鉴别问题,即发送者和接收者身份。
ip,相关杂】
ip地址中两个地址不能分配给设备,一个是网络地址,一个是广播地址
IP地址根据网络ID分为5类
A类
A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络掩码为:255.0.0.0;A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的规模特别大的网络。
B类
B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
C类
C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络掩码为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。
网络协议
ICMP
ICMP:ICMP用于在IP主机、路由是否可用等网络本身的消息,不传输用户数据。ping和tracert命令就是基于ICMP。一种错误侦测与回报的机制。ICMP 封包必须要封装在IP封包的数据内??
ARP
ARP,是什么/简介】-Address Resolution Protocol。ARP is a protocol for mapping an Internet Protocol address (IP address) to a physical machine address that is recognized in the local network.完成主机或路由器IP地址到MAC地址的映射。根据IP地址获取物理地址的一个TCP/IP协议。ping的时候也涉及arp。arp工作过程(zc)
DHCP
DHCP,概述】。DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址。
ICMP
差错(或异常)报告
RIP
RIP协议,概述/简介】 Routing Information Protocol。RIP是基于UDP的应用层协议。这个协议基于距离矢量DV算法。路由器刚开始工作是只掌握物理相连的邻居及链路费用,在经过若干次更新后所有路由器都会知道到达本自治系统内任何一个网络的距离向量。路由器收到邻居发来的RIP Response包(传的好像是距离矢量),路由器依据RIP算法,进行路由项的更新,更新完后要向它的邻居再发送自己的这个路由表。是一种平面路由,所有路由器协议都是平等的。
RIP更适合的应用情景】:小型网,跳数最多15,15以上认为不可达
RIP链路失效和恢复】使用RIP协议的网络,如果部分网络断了,后续协议如何做。
RIP原理和工作流程】RIP协议的实现过程/RIP算法更新路由过程/路由器如何根据收到的RIP Response更新路由表,给你一个路由表这个路由收到的邻居发来的RIP Response信息,要能根据RIP算法更新路由表。

RIP协议的缺陷】
RIP杂】RIP报文格式,基于其不同字段的功能,RIP协议工作过程流程。RIP和DV关系。RIP Request和Response 又是啥? RIP是会周期性的发送距离矢量DV。
OSPF( Open Shortest Path First)
OSPF协议( Open Shortest Path First),是什么/简介】一种内部网关协议。Dijkstra算法。每一个节点需要知道所有节点的。有向图。一个有变化要告诉所有节点。适用范围:中小型。OSPF基于IP。
OSPF算法思想和工作过程】所有路由器掌握完整的网络拓扑和链路费用信息。OSPF是基于基于链路状态算法。将网络划分为不同区域,不同区域又有相应层次的路由…
OSPF特性(在RIP中没有的)】
OSPF使用场景】支持各种规模网络
BGP
外部网关协议BGP,概述】:自治系统之间的路由协议。基于距离矢量算法DV,不仅告诉到达目标子网的代价值,也告诉路径,以便对方能检测其中的环路。BGP基于TCP。BGP具体分为eBGP和iBGP。
BGP原理】
PPP
PPP协议,概述】PPP是一个协议的集合,支持建立链路的链路控制协议LCP以及一系列的NCP。PPP通过LCP(Link Control Protocol,链路控制协议)部件能够有效控制数据链路的建立。PPP支持各种NCP,可以同时支持多种网络层协议。典型的NCP包括支持IP的IPCP和支持IPX的IPXCP等。PPP支持认证协议族PAP和CHAP,更好地保证了网络的安全性。

(不太理解)ppp的意思是Point-to-Point Protocol——点对点协议,而我们上网拨号用的就是PPPOE,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。简单来说,ppp适配器就是用于将你的电脑通过网线&电话线和运营商提供上网的服务器连接起来,以此获取运营商分配的IP地址的,所以它给的IP就是在这个运营商服务器所提供的网络中区分你当前上网帐号(当前电脑)的唯一标识。mine:断开并连接宽带的时候会发送ppp包。
NAT
网络地址转换(Network Address Translation,NAT)技术,简介】NAT技术是路由器上的一种技术:对从内部网络转发到外部网络的IP分组,实现源IP地址内部本地地址至内部全球地址的转换过程、目的IP地址外部本地地址至外部全球地址的转换过程。对从外部网络转发到内部网络的IP分组,实现源IP地址外部全球地址至外部本地地址的转换过程、目的IP地址内部全球地址至内部本地地址的转换过程。内部网络使用的私有地址空间和公共网络使用的全球地址空间之间不能重叠、多个内部网络允许使用相同的私有地址空间。
NAT引入原因、作用】提出NAT的初衷是为了解决IPv4地址耗尽的问题
NAT具体过程、具体实现网络地址转换的过程】内网想访问外网某IP:NAT路由器将数据包中主机原IP和原端口换掉,将替换内容记到路由表中,再发出去,再将回来的包的目的IP和端口换回来
NAT的三种实现方式】静态转换Static Nat、动态转换Dynamic Nat、端口多路复用Port address Translation,PAT。
NAT的原理中存在的问题】
NAT应用】
NAT,相关杂】
三组IP地址作为内部网络使用的私有地址空间,公共网络使用的全球地址空间中不允许包含属于这三组IP地址的地址空间。这三组IP地址如下。10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。
由于NAT中存在问题,产生了一些解决方案:方法1静态配置NAT,实现映射。方法2 利用UPnP dai。方法3:中继dai
DNS
预备知识/引入DNS原因】主机的标识方式有主机名hostname和IP地址两种, 路由器喜欢ip,而用户喜欢主机名,则DNS将主机名解析为ip。DNS的位置
是什么//功能/用来干什么】将主机名转换为其背后的IP地址。DNS协议是应用层协议,通常是由其他应用层协议所使用的。以调用DNS来获得主机、邮件服务器别名对应的规范主机名以及主机的IP地址。 负载分配
DNS的分布式设计/DNS的层次结构
DNS服务器】DNS三层为根DNS服务器。顶级域DNS服务器(TLD)。权威DNS服务器。虽然不属于这个结构但也很重要的:本地DNS服务器,将用户请求转发到DNS层级结构中
域名服务器】域名服务器一般分为三个类别等级:根域名服务器,二级域名服务器,本地域名服务器。
DNS域名解析的过程】递归和迭代,各自的过程
DNS域名解析域名解析过程,递归查询法:DNS客户端向本地域名服务器发请求,本地域名服务器查询DNS数据库,如果有,则返回对应IP,如果没有,则此时本地域名服务器作为DNS客户端向根域名服务器发送请求,根域名服务器查询DNS数据库,如果有则返回,如果没有,则发送给对应后缀的二级域名服务器,二级域名服务器再去查它的本地域名服务器。
计算机网络----应用层
应用层,概述】应用层是网络应用程序及它们的应用层协议存留的地方。
应用层,常见协议】 FTP、HTTP、DNS、EMAil相关协议
网络应用架构—客户-服务器体系结构,概述】server和client。client always-on,服务client的请求。client之间不互相通信。server具有固定的、周知的地址(IP地址),以便client可向server发送packet取得联系
网络应用架构-----对等(P2P)体系结构peer-peer architecture】概述—对位于数据中心的专用服务器有最小的(或者没有)依赖。应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方,不为服务提供商所有,服务被电脑所有。对等方通信不必通过专门的服务器。自扩展性,例如,共享应用中,每个对等方既是接受者又是提供服务者。通常不需要庞大的服务器基础设施和服务器带宽(不同于server-client体系)。文件共享,如BitTorrent,对等方协助下载加速器(例如迅雷),因特网电话和视频会议(例如Skype)。不同于client—server(人越多越拥挤)----你以为的直接通信不过是server当中间者,P2P:新的结点带来新的服务力,每个人既是client又是server。 节点不会永远在线,ip会变,管理模式复杂。 一个服务器向多个主机(对等方)发送文件的过程中,文件被切成很多块,对等方也会记录已经接受的块:每个对等方能向任何其他对等方重新发送它已经接受到的该文件的任何部分。 BitTorrent即BT 具体讲述了和描述了这种实现过程/过程中需要考虑的点:包最稀缺的先下载/隔一段时间要检查对等方拥有包/要想获得越高的下载带宽,就要更高的上传带宽/随机选择保证公平
内容分发网CDN】
视频流提供商,如果只有一个视频流存储数据中心,会存在许多问题
CDN管理分布在多个地理位置的服务器,这些服务器中存储视频副本,CDN会将用户请求定位到一个最适合它的CDN位置
CDN服务器安置原则
CDN操作细节
截取用户请求,确定适合客户的CDN服务集群,重定向到某台服务器。
如何截获,如何重定向,如何选择合适集群
应用之间通信中需要四个地址:1接受端 IP地址 2.接收端目标进程地址 3.发送端IP 4.发送端进程端口
计算机网络----运输层
运输层,概述】
多路分解,概述】将运输层报文段中的数据交付到正确的套接字的工作
多路复用,概述】套接字有唯一标识符,每个报文段有特殊字段来指示该报文段所要交付到的套接字
运输层传输单元:报文段 segment
计算机网络—网络层
网络层,概述】网络层将称为数据报(datagram 的网络层分组从一台主机移动到另一台主机。尽管网络层包括了网际协议和一些路由选择协议,但通常把它简单地称为IP层。此时数据叫datagram。网络层的功能:转发和路由。
网络层分为数据平面和控制平面】。数据平面和控制平面:数据平面的功能,即网络层中每台路由器的功能,该数据平面功能决定到达路由器输入端口的数据报如何转发到该路由器的输出端口。控制平面功能即网络范围的逻辑,该控制平面功能控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。
网络层协议】IP协议和路由选择协议。
什么是转发】是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。转发是由网络层的数据平面执行的主要功能。
什么是路由】是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程。路由时控制层面。
网关协议:RIP、OSPF、BGP】网关协议分为内部网关协议和外部网关协议。内部网关协议 RIP OSPF 。外部网关协议(不同自治区域之间的): BGP。内部网关协议和外部网关协议的对比:内部:更注重性能和速度。外部:会考虑到更多,有更多策略
路由算法
路由算法,概述】(距离向量路由算法+链路状态路由算法)
路由算法:距离矢量算法】
路由算法:链路状态路由算法】
计算机网络—数据链路层
数据链路层,概述】链路层将网络层的datagram从一个节点(主机或服务器)移动到路径上的下一个节点,mine:负责物理层面的互连的、节点之间的通信,将0、1序列划分为有意义的数据帧传送给对端。节点指:主机节点或路由节点。链路:即将点和点连接起来的边,分为有线链路和无线链路,也可以分为点到点的链路和多点连接的链路。链路层功能在"网卡"上实现。在每一个主机/路由器上插了若干网卡,每个网卡实现了链路层和相应物理层的功能。网卡写死自己的MAC地址。由于网络的可靠或不可靠,链路层提供可靠服务或者不可靠服务。帧frame,是链路层的数据单元
链路层服务/功能&如何实现】 成“帧”。链路管理。相邻两个节点完成可靠数据传递。流量控制。错误检测。差错纠正。半双工和全双工。
链路层,服务/功能&如何实现】成“帧”。链路管理。相邻两个节点完成可靠数据传递。流量控制。 错误检测。差错纠正。半双工和全双工。
网络节点组网方式,即两种link】: 点到点连接的网络(较简单、适用于广域网)。广播焦虑Broadcast,共享思想(更复杂、适用于局域网)。
CSMA/CD(重点,做题练)carrier sense multiple access with collision detection。基本思想:先监听没有人再说,在发送的时候还在监听,若有人也在发,立刻停。
多路访问协议,概述】如何协调多个发送和接收节点对一个共享广播信道的访问
多路访问协议,类型】信道划分协议 channel partitioning protocol) ,随机接入协议(random access protocol)和轮流协议(taking-turns protocol)
-
信道划分协议 channel partitioning protocol) :时分复用协议:TDMA
;频分复用协议:FDMA -
随机接入协议(random access protocol):ALOHA协议;载波侦听多路访问CSMA协议
-
轮流协议
MTU】
MTU是链路层的概念:最大链路层帧长度,即一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit, MTU)
因为每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器,故链路层协议的MTU严格地限制着数据链路层的payload,也就是IP数据报的长度。
在发 送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的 MTU,以太网和PPP链路层协议都具有1500字节的MTU,某些广域网链路的帧可承载不超过576字节的数据。
以太网帧最大值1518字节,头信息有14字节,尾部校验和FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500字节。
如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片( fragmentation),即把数据报分成干片,这样每一片就都小于MTU。
在发 送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的 MTU。
MTU是帧的最大长度,一般以字节记,如果MTU过大,在碰到路由器时会被拒绝转发,因为它不能处理过大的包。如果太小,因为协议一定要在包(或帧)上加上包头,那实际传送的数据量就会过小,这样也划不来。大部分操作系统会提供给用户一个默认值,该值一般对用户是比较合适的。
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节。不同类型网络的数帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片( fragmentation),即把数据报分成干片,这样每一片就都小于MTU。 当同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要。但是如果两台主机之间的通信要通过多个网络,每个网络的链路层可能有不同的MTU,那么这时重要的不是两台主机所在网络的MTU的值,而是两台主机通信路径中的最小MTU,称为路径MTU( Path mtu,PMTU)。

计算机网络–物理层
计算机网络–物理层,概述】将链路层帧中的一个个比特从一个节点移动到下一个节点。
计算机网络–物理层,重点考点概述】奈奎斯特定理和香农定理的的相关计算,电路交换、报文交换与分组交换的运行机制以及相互之间的比较,数据报和虚电路的运行机制以及相互之间的比较,以及中继器和集线器与交换机的比较。
网络设备
交换机
交换机,概述】:交换机在数据链路层。
交换机功能】:存储+转发
交换机转发表】即switch表配置交换机端口和mac地址绑定。 每个端口成功连接时,将MAC地址和端口对应,形成一张switch表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。目的MAC若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的MAC地址,并把它添加入内部MAC地址表中。
交换机工作原理】交换机自动学习构建Mac地址表(端口和Mac地址对应)。在一个子网中理解这个过程&在多个子网构成的大网中体会如何通过"自学习"得到switch表。如果发给交换机的mac地址,交换机中没有存储,交换机就会广播,地址为这个mac地址的节点,会回复交换机,交换机就记录下了。
路由器和交换机区别】
杂】只用交换机组网,不用路由器,可以吗,可以,但不好,体会两个机器功能
路由器
路由器,相关基本知识点陈列】路由器通常位于网络层。路由器连接两个或多个网络的硬件设备,在网络间起网关的作用。路由器对不同的网络之间的数据包进行存储、分组转发处理。路由表有多个接口,每个接口都有一个ip。需要了解路由器的组成结构、基本功能以及运行机制,掌握路由表的结构,了解路由转发过程。
路由表,概述】每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报;控制平面的主要作用是协调这些本地的每路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。路由表中记录的是什么。路由表中记录着:(目的网络,下一跳路由,发送接口,到目的网络的代价)。
路由的目的】在一个网络中如何找到一条合适(较好)的路径,即由原子网到达目标子网的路径,即由路由到路由的路径。
路由两个动作】路径选择Routing,转发Delivery。路由、转发区别。
路由器配置】:配置不同接口的ip、子网掩码。
路由算法】路由算法分类:分类标准:静态or动态。分类标准:全局信息&分散信息。
静态路由动态路由比较。
路由协议】内部路由协议RIP、OSPF,外部路由协议BGP
杂】在将路由器和其他路由器连接上后,路由器表中只有直连的路由项。
路由器和交换机区别】
集线器:
集线器工作原理:放大+广播
网桥
网桥(即2层交换机)
网桥,概述】存在于数据链路层上用来连接两个网络的设备,作用:识别数据帧并将数据帧临时存储与内存中,再重新生成一个信号作为全新的帧发送给另一个网段。需要根据物理地址(MAC地址)进项处理。
网桥,作用】没有连接网段个数的限制,基本上只用于连接两个相同类型的网络,可连接传输速率不同的网络。通过检查数据帧,将损坏的数据丢弃。自学式网桥
网卡
网卡,是什么/简介】网卡,又称网络适配器、网络接口卡(NIC)、LAN卡。网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第1层和2层之间。它使得用户可以通过电缆或无线相互连接。计算机想连接进网络的必备品。有的计算机内部配置了NIC,如果没有则需要外接扩展槽以便插入NIC。网卡上面装有处理器和存储器(包括RAM和ROM)。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。链路层功能在"网卡"上实现。在每一个主机/路由器上插了若干网卡,每个网卡实现了链路层和相应物理层的功能。一个网卡上可以设置多个ip。上层分组通过系统总线到达网卡,网卡受到分组后封装成帧,借助网卡物理层功能,将帧中的每一个bit变成物理信号打出去。
网卡,功能】当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据包时,它就由协议栈向下交给网卡组装成帧后发送到局域网。
计算机网络,杂
网络中传输数据差错检验的方式:奇偶校验、CRC循环冗余校验码、检验和。检验原理dai
以太网:以太网是目前最普遍的局域网
每台计算机上有65536个端口,即О到65535号端口。端口是基于TCP或者是UDP协议的。
MAC地址作用:function: used “locally” to get frame from one interface to another physically-connected interface (same subnet, in IP-addressing sense)
套接字Socket
套接字Socket,概述】
MAC地址(即物理地址)
MAC地址,概述】 MAC地址是实实在在的网络设备出身地址。MAC地址是写到芯片里的,一般都是只读的,不能改。常说的改写MAC地址是指把报文里携带的MAC地址信息改写掉,而不是改芯片里的信息。
MAC地址的作用】:数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。
网关
网关基本知识点,网关是什么,有什么用?:一个网段内,相互之间访问是不需要设网关。网段不同,相互之间访问就需要设网关。网关在网络层以上实现网络互连,用来连接两种不同的网络。网关的IP地址是具有路由功能的设备的IP地址,网关它可以是路由器,交换机或者是PC。最常用的以太网当中,网关就会被退化成路由器。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
CRC循环冗余校验
CRC循环冗余校验,概述】:对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。。发送方计算机使用某公式计算出被传送数据所含信息的一个值,并将此值 附在被传送数据后,接收方计算机则对同一数据进行 相同的计算,应该得到相同的结果。如果这两个 CRC结果不一致,则说明发送中出现了差错,接收方计算机可要求发送方计算机重新发送该数据。它是利用除法及余数的原理来作错误侦测的
CRC循环冗余校验码如何产生的,如何进行校验的dai:
五层结构从上层到下,每层的数据单元PDU:报文、报文段、分组、帧、位流。学习每层数据单元的格式。
telnet】
remote login使用telnetTelnet可以很好地模拟HTTP客户端,但不能作为服务器使用。Telnet程序可以将键盘连接到某个目标TCP端口,并将此TCP端口的输出回送到显示屏上。Telnet常用于远程终端会话,但它几乎可以连接所有的TCP服务器,包括HTTP服务器。可以通过Telnet程序直接与Web服务器进行交互。通过Telnet可以打开一条到某台机器上某个端口的TCP连接,然后直接向那个端口输入一些字符。Web服务器会将Telnet程序作为一个Web客户端来处理,所有回送给TCP连接的数据都会显示在屏幕上。
单台router上的时延delay
节点总delay=节点处理时延+排队时延+传输时延+传播时延
节点处理时延,检查分组首部和决定将该分组导向何处,还有其他
传输时延,概述】路由器推出分组所需要的时间。此delay=packet长度/链路传输速率。与两台路由器之间的距离无关。此时延,是提升性能中需要想办法着手改善的。
传播时延,概述】一个比特从一台路由器传播到另一台路由器所需要的时间。此delay=两台路由器之间距离/传播速率。 传播速率只和链路的物理媒介有关,与分组长度或链路传输速率无关。可提升性不大,解决时延主要放在解决传输时延上。
如何衡量一个网络性能/考虑角度】是否丢包loss,时延delay,吞吐量throughput
无线通信,概述】不需要网线或者其它可见电缆,使用电磁波、红外线、激光等方式传播,一般在办公室的局域网范围内组成的较高速的链接。此通信手段存在于数据链路层。无线通信的种类:无线PAN(eg:蓝牙)。无线LAN(eg:WiFi)。无线WAN(eg:3G,4G)
往返时间RTT,概述】该时间是指一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延
局域网】
局域网LAN:局域网内,节点之间的传输只涉及到物理层和链路层,局域网和链路层关系最多。
Cookie
Cookie是什么、用来干什么】一个Web站点通常希望能够识别用户,可能是因为服务器希望限制用户的访问,或者因为它希望把内容与 用户身份联系起来,为此,HTTP使用了 cookie。cookie在[RFC 6265 ]中定义,它允许 站点对用户进行跟踪。目前大多数商务Web站点都使用了 cookie。
cookie技术中的4个组件】:①在HTTP响应报文中的一个cookie首部行;②在HTTP请求报文中的一个cookie首部行;③在用户端系统中保留有一个cookie文 件,并由用户的浏览器进行管理;④位于Web站点的一个后端数据库。
Session
计网面试题,相关知识点
在浏览器中输入 url 地址 ->> 显示主页的过程(面试常客)】
参考敖丙——https://mp.weixin.qq.com/s/I6BLwbIpfGEJnxjDcPXc1A
DNS、TCP、HTTP、IP、OSPF、ARP、
敖丙------------总体流程域名解析 -> 建立TCP连接(三次握手)-> 发起http请求 -> 服务器响应http请求,浏览器得到html代码 -> 浏览器解析html代码,并请求html代码中的资源(如 js、css、图片等)-> 浏览器对页面进行渲染呈献给用户。------------敖丙

数字证书是什么,里面包含哪些内容】

1万+

被折叠的 条评论
为什么被折叠?



