前端需要掌握的计算机网络知识== 转

 https://wenku.baidu.com/view/9780d340492fb4daa58da0116c175f0e7dd1196c.html

http://www.sohu.com/a/196532125_466950

https://www.cnblogs.com/maybe2030/p/4781555.html#_label2

 https://wenku.baidu.com/view/13525b71dd3383c4ba4cd215.html

 

 计算机网络知识

· DNS即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

1、浏览器中输入www.qq.com域名,操作系统会先检查本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3、如果两者都没有相应的网址映射关系,首先会找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服务器再返回给客户机。

 

· ARP

在同一个网络(无特别说明,均指以太网络)中进行通信的主机,必须要拥有目标主机的MAC地址才能够正确地将数据发送给目标主机,那么如何知道目标主机的MAC地址呢?可以通过ARP协议。ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系。

ARP是一个网络层的协议,这是出于它为网络层的IP协议提供服务而考虑的。但实际上,由于ARP协议用以解析出IP地址(逻辑地址)所对应数据链路层中的地址(物理地址/硬件地址),所以把其划分在数据链路层也是没有问题的,这并没有严格的定义。

· RIP

路由选择协议,:确定数据报在源与目的地之间采用的路径

· HTPP请求

HTTP(HyperText Transfer Protocol,超文本传输协议),即计算机通过网络通信的规则。

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

1) 建立TCP连接

在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立TCP连接,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作TCP/IP网络。

HTTP是比TCP更高层次的应用层协议,根据规则,低层协议建立之后才能进行更层协议的连接,因此,首先要建立TCP连接

一般TCP连接的端口号是80

2) Web浏览器向Web服务器发送请求命令

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令

例如:GET/sample/hello.jsp HTTP/1.1

3) Web浏览器发送请求头信息

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

4) Web服务器应答

客户机向服务器发出请求后,服务器会向客户机回送应答,

HTTP/1.1 200 OK

应答的第一部分是协议的版本号和应答状态码

5) Web服务器发送应答头信息

服务器随同应答向用户发送关于它自己的数据及被请求的文档。

6) Web服务器向浏览器发送数据

以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

7) Web服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

Connection:keep-alive

TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。

保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

 

请求报文格式:请求方法URI协议/版本、 请求头(Request Header)、 请求正文

GET/sample.jspHTTP/1.1

Accept:image/gif.image/jpeg,*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate

username=jinqiao&password=1234

 

响应报文格式:协议状态版本代码描述、响应头(Response Header)、响应正文

· get方法与post方法对比

GET方法

GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如

Http://127.0.0.1/login.jsp?Name=zhangsan&Age=30&Submit=%cc%E+%BD%BB

从上面的URL请求中,很容易就可以辩认出表单提交的内容。另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

POST方法

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

· cookie

HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。比较经典的,可以它用来确定两次请求是否来自于同一个浏览器,从而能够确认和保持用户的登录状态。Cookie的使用使得基于无状态的HTTP协议上记录稳定的状态信息成为了可能。

cookie的属性

key-value:cookie通过key-value的方式存储属性名和值。

domain:规定了需要发送Cookie的主机名。如果没有指定,默认为当前的文档地址上的主机名(但是不包含子域名)。如果指定了Domain,则一般包含子域名。

path:Path指令表明需要发送Cookie的URL路径。字符%x2F (即"/")用做文件夹分隔符,子文件夹也会被匹配到。

hostOnly:布尔型的值,true表示cookie只能匹配domain中指定好的请求路径。反之则不。

httpOnly:HTTP-only类型的Cookie不能使用Javascript通过Document.cookie

属性来访问,从而能够在一定程度上阻止跨域脚本攻击(XSS)。

secure:布尔型的值,true表示cookie只在安全的情况下有效。一般是在https情况下。即在使用SLL和HTTPS协议向服务器发起请求时,才能确保Cookie被安全地发送到服务器。

expirationDate:指明cookie的过期的时间。

Max-Age:指明cookie的有效期。

session:布尔值,true表示cookie是session cookie。false的话表示持续的cookie且不过期。

storeId:代表存放cookie的id的字符串。

· HTTP与HTTPS

HTTPS(全称:HypertextTransfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥

· HTTP状态码

· HTTP请求方法method

· URL、URN与URI

URI:uniform resource identifier,统一资源标识符,用于唯一的标识一个资源。

URL:uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源

URN:uniform resource name,统一资源命名,是通过名字来标识资源。

URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。

 

 

网络基础知识整理

2016年07月28日 14:32:48

阅读数:26985

一.IP地址

    IP地址是因特网上的每个网络节点在全球范围内的唯一标识符,对每个节点来说,IP地址是一个32位的二进制代码,如11111111111111111111111111111111。为了提高可读性,我们常常把32位IP地址中的每8位转换为对应的十进制,并在两个十进制数之间插入一个点,即255.255.255.255,这种记法就是常用的点分十进制记法。

       IP地址的编址经历了三个历史阶段,分类的IP地址、子网的划分以及构成超网。

1.1分类的IP地址

       分类的IP地址中是将IP划分为几种固定的类,每一类地址都有两个固定长度的字段组成--网络号和主机号。网络号是标志网络节点所连接到的网络,主机号标志该节点。IP地址主要分为5大类,A类、B类和C类都是单播地址,即一对一通信,最常用。D类地址用于多播,即一对多通信。E类地址保留为以后用。如图可见这几类IP:

 

 

        A类地址规定网络号字段为1字节,第一位固定为0来标识该类别,只有7位可供使用,有=126个可指派的网络号。其中有2个特殊的网络号,一个是网络号字段为全0,它是保留地址,意思是“本网络”,如0.0.0.35代表“在这个网络上主机号为35的主机”;另一个是127字段,保留用于环回测试,例,常见的127.0.0.1代表本地主机。所以A类地址的网络号范围为1~126。主机号3字节,最大主机数为,这里也要减去2。一个是主机号全0,表示网络的地址,如,一主机IP为5.6.7.8,则该主机所在的网络地址就是5.0.0.0。另一个是全1,表示该网络内的所有主机,如,125.255.255.255代表了125.0.0.0这个网络上的所有主机。

       B类地址网络号字段为2字节,前两位固定为10,有14位可用来分配,有个可指派的网络号。这里减1的原因是一般128.0.0.0是不指派的,B类可指派的网络地址是128.1.0.0。

       C类地址网络号字段为3字节,前3位固定为110,有21为可用来分配。

      由上我们可以简单看出,整个IP地址空间共有个地址,A类地址有个,占有整个IP地址空间的50%,B类占有25%,C类占有12.5%。

1.2划分子网

       上一节中介绍的分类的IP地址是二级IP地址,是由网络号和主机号组成的,而现在常用的是三级IP地址,添加了一个子网号。二级的IP不够灵活且造成了浪费。如,我们办公室假如有300台电脑,使用C类地址,最多可接入=256台主机,显然不够,若使用B类地址,则可接入=65536台主机,造成了极大的浪费。此时,我们可以申请一个B类的网络,如网络地址为172.16.0.0,同时可以把这65536个地址划分成一个个局域网,相互之间互不干扰,划分过的局域网可以称为这个B类网络的一个个子网,而相对于本单位外的网络仍然表现为一个网络。网络号是需要申请和指派的,它一般是固定的,所以想要进行子网的划分,划分的方法是将二级IP的主机号字段借用若干位来表示子网号,这样就变成了三级IP地址:网络号、子网号和主机号。记为:

   IP地址::={<网络号>,<子网号>,<主机号>}

        但一个数据报到达公司的路由器后,路由器并不知道该发给哪个子网,因为子网号并不一定存在,就算存在位数也并不是固定的,所以此时就需要子网掩码。

       子网掩码这个概念主要为了确定IP地址的网络号,这里所说的网络号不再是二级IP中的网络号,而是指的是三级IP地址中网络号和子网号两者的总和。这样,总的来说子网掩码将三级IP地址分成了两部分,即网络号和主机号(注意这里的网络号和主机号与二级IP的网络号和主机号的异同)。

       我们知道二进制中任何数逐位与1进行“与”操作后还是本身,和0进行“与”操作后都是0。其实一个子网掩码的实质是指定了一个IP地址中网络号的长度,如一IP地址为01110110.10110110.11010101.00101011,子网掩码是11111111.11100000.00000000.00000000,它的前11位就设置为1,后21位设置为0,IP地址和子网掩码进行“与”操作后,该IP地址的前11位就保留了下来,后21位就变为了全0,即01110110.10100000.00000000.00000000。

       如果一个网络不划分子网,那么该网络的子网掩码使用默认子网掩码,这种默认子网掩码其实就三个。即A类地址的默认子网掩码,255.0.0.0,B类地址的默认子网掩码255.255.0.0,C类地址的默认子网掩码255.255.255.0。

       顺便说一下,有一种IP表示方法,如192.168.1.0/24,它指的是IP地址是192.168.1.0,子网掩码中1的个数是24个,即255.255.255.0,很容易看出这个就是一个C类的网络。再如,我们办公室网络中有172.16.0.X和172.16.1.X这两种IP,简单分析,172即B类地址,默认网络号是16位,即172.16,但只出现过0.X和1.X的IP说明第三个八位中前七位应该是固定的,只有最后一位在0和1之间变化,所以我们办公室网络的网络号应该是23位,子网掩码是255.255.254.0。

二.网关

       网关是一个网段的出入口。一个网络想要和这个网络外的网络进行通信,必须通过网关。如我们要登录百度页面,主机发现数据包的目的主机不在本地网络中,就把数据包转发给自己的网关,再由网关转发给百度的网关,百度的网关再转发给百度中的某个服务器上,这样,百度就收到了我们的登录请求,它就把数据包传给我们,百度的网关要先找到我们本地的网关,网关收到数据包后再转发给我们。

        一个网段是可以没有网关,也可以没有DHCP服务器,即设置为静态IP,由交换机、集线器等连接设备就可相互访问。但没有网关就意味着只能在这个局域网内互相访问,不能访问局域网外的任何网络。很多局域网中都采用了路由来接入网络,路由器的WAN口连接到外部网络上,LAN口IP设置为网关。网关的地址可以是局域网段内主机地址的任意一个,不一定是设置为192.168.1.0,它只是用来标识网关。

三.几种常用网络设备

3.1中继器

       信号在双绞线中传输的过程中信号的功率会逐渐衰减,当信号衰减到一定程度时将造成信号失真,所以为了方便较远距离的两计算机进行通信,就在这两个计算机之间安装一个中继器,让信号能传的更远。中继器的作用就是整理已经衰减的信号,重新产生完整的信号再继续传送。中继器工作在物理层,只是起到了扩展传输距离的作用,对高层是透明的。

3.2集线器

       集线器实际上就是一种多端口的中继器,一般有4、8、16、24、32等数量的接口。如一台集线器有8个接口,连接了8台计算机,那集线器就位于这8台计算机的“中心”,每台计算机想与其他计算机进行通信时,计算机首先要将数据包通过双绞线送到集线器上,而集线器是用广播的方式将包同时发给8个端口,8个端口的计算机收到广播信息后对信息进行检查,是发给自己的就接收,不是的话就不理睬。正是因为广播的这种机制,我们将我们自己的电脑连在集线器上,才能抓到ucm和话机等进行通信的数据包。同样,集线器也是工作在物理层。

 

 

3.3网桥

       网桥是早期的两端口的二层网络设备,网桥像是一个聪明的中继器,如前所说,中继器只是简单的连接了两个网络,任何数据都可以通过中继器发出,但网桥有所不同。网桥除了扩展网络的距离或范围,还能提高网络的性能和安全性。

 

 

       网桥可以连接两个网络,网桥A端口连接A子网,B端口连接B子网。网桥中有一个信息表,我们可以把这个信息表看作两部分,一部分记录了A子网中设备的MAC地址,另一部分记录了B子网中的MAC地址,当A发出一个包,网桥可以查看目的地址到底是A中的还是B中的,若是A中的就不进行转发,是B中的才进行转发。所以网桥与中继器不同的是隔离了两个子网,而不是任意的转发,拥有了学习功能。

3.4交换机

       网桥只有两个端口,有着局限,所以为了实现多对多通信,产生了交换机。集线器同样也是多对多通信,但集线器是广播的方式将数据包发到目的主机上,交换机却不一样,交换机与网桥一样具有学习功能。

 

 

       交换机也有一个表,它记录着每个端口对应的主机的MAC地址。当交换机收到数据包后,可以解析出该数据包目的地址的MAC地址。然后根据该MAC地址将包转发到对应的端口去。

       交换机有很多的类型,我们常说的交换机一般指的是传统的交换机,它工作在二层。但随着交换机的发展,出现了三层交换机,它除了拥有二层交换机的交换技术外,还在三层实现了数据包的高速转发及路由功能。

3.5路由器

       子网划分中我们介绍到经常将一个网络划分成一个个的子网,每个子网拥有不同的网段。二层交换机只能实现连在它上面的同一个网段的主机之间的通信,如果是不同的网段就算连在同一个交换机上仍相互不能进行通信。而路由器就可以实现不同网段之间的通信,它是一种连接多个网络或网段的设备,能将不同网络或网段之间的数据进行“翻译”,并可以识别出一个数据包应该转发到哪个网络中。

 

 

       路由器中一般有个路由表来实现学习和翻译的功能。如图,我们UCM在作为路由器时的路由表,记录了目的地、网关、子网掩码和接口等。如路由表中的第二条代表的意思是:如果目的地是172.16.0.0网段,那就把数据包转发到eth1端口上去。第一条是默认路由,就是如果目的地不在这个路由表中,那就走这条默认路由。

3.6调制解调器

       还有一种家中常用的设备,那就是调制解调器,也就是俗称的“猫”。我们都知道,网线中一般传输的数字信号,0和1,而电话线中传输的是模拟信号,这两种信号并不能直接进行通信,就需要调制解调器进行“翻译”。

 

 

 

posted on 2019-02-18 18:07  joyful2  阅读(683)  评论(0编辑  收藏  举报

导航