网络协议

之前已经用node做过一些简单的爬虫,爬虫其实就是让我们理解,怎么获取数据的。这个过程,我们发送的请求,别人得到了响应,返回我一个请求的内容,我们拿到返回的内容,然后提取这些数据。

但是他们到底是怎么发送一个请求,然后又给我们一个响应呢,他们到底是怎样进行交流的,接下来我们来了解一下,网络通信的原理

1.协议以及协议栈的基本概念

计算机认识的只有0和1,所以我们将0和1弄成相对应的编码,那这些编码就可以变成一系列的文字,比如010101就代表某个东西,0101010101就带代表另一个东西,这样编码就可以对应文字了。但是这些内容,发送到另一台电脑上,是发给谁呢,有是以什么样的方式发送呢,我们电脑上有qq,微信,浏览器诸多软件,所以都发送 ,那就全部乱套了,所以,这样的通讯总是要规范起来,这样的规范就是协议。

1.1什么是协议

协议就是网络中计算机或者设备之间进行通信的一系列规则,常用的协议有IP,TCP,HTTP,POP3,SMIP等

1.2什么是协议栈

在网络协议中,为了完成通信,必须使用多层上的多种协议。这些协议按照层次顺序组合在一起,构成了协议栈(Protocol Stack),也称为协议族(Protocol Suite)

1.3协议的作用

一个网络协议的作用就是:1.建立对等层之前的虚拟通信 2.实现层次之间的无关性

1.4层次间的无关性

所谓层次间无关性,就是指较高层次和相邻的相低层次进行通信时,只是利用较低层次提供的接口和服务,而不需了解底层实现该功能所采用的算法和协议的细节;较低层次也仅是使用从高层系统传送来的参数和控制信息,这就是层次间的无关性。

1.5网络协议族/栈组成

2.网络协议族/栈组成

网络通信协议的作用是负责在网络上 建立通信通道 和 控制通过通道 的信息流的规则。为了进行网络通信,通信双方必须遵守通信协议

TCP/IP协议族的组成

应用层 HTTP,FTP,TFTP,SMTP,SNMP,DNS
传输层 TCP,UDP
网络层 ICMP,IGMP,IP
数据链路层 ARP ,RARP
物理层 ARP,RARP

说明:网络协议与标准是基于OSI七层模型,每一层都有其对应的协议。

抽象解析:

数据会通过协议栈,上面的每一层,层层解析;
可以把qq比作应用层的东西,一个qq发送消息给另一个qq,
//=>
假如,qq发送了一个你好
1.应用层就会将消息按照规范打包  (比如写信的规范:尊敬的xxx,。。。致敬 等等规范)
2.应用层进入到传输层,传输层又会对信息进行规范  (比如:在信的封面写上寄往哪里哪里)
3.接下来进行网络层   (比如:信从一个快递员传递给另一个快递员,快递员会在上面加上一些编码)
4.最后物理层的协议,底层,就将这些编码转换成0和1的数据信号,传递给另外一个电脑

此时另外一个电脑接收到信息之后,就将这个信息从底层的物理层,一层一层向上刨析,就在另一个qq上显示了 你好二字

案例讲解:

**在浏览器上输入mi.com,我们就拿到了小米网站的数据解析出来

但是?他的内部就是发送了mi.com这个消息吗?
答案肯定不是

浏览器会对每一个http请求都进行规范,然后在发送
每个数据请求都是以请求头,请求体等等规范组成
可打开浏览器控制台的network -> 点击请求数据  -> 就会有每个数据的headers,response等信息

3.常见的网络协议

TCP/IP:工业标准、开放式协议,Internet网络的标准

IPX/SPX:Novell开发的Netware操作系统使用的协议,IPX为网际数据包交换协议,工作在网络层,SPX为序列数据包交换协议,工作在传输层。

NetBIOS/NetBEUI:较小的协议栈,应用于IBM和早期的Windows系统,现在Windows仍然支持。

AppleTalk:Apple公司的Mac OS中所采用的网络协议。

(1)TCP/IP协议

TCP/IP是分层协议,如层次图所示:从底层到应用层,分别是物理层,链路层,网络层,传输层,应用层。数据是层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头。

(2)Telnet协议

Telnet是TCP/IP中的一种应用协议,可以为终端仿真提供支持。可使用户连接到主机上,使主机响应起来就像它直接连接在终端上一样。Telnet在发送端和接收端使用TCP的23号端口以进行专用的通信。

IPV4

IP:1.1.1.1 --- 255.255.255.255

IPV6

10亿 10亿 10亿 10亿

(3)FTP协议

FTP协议使用TCP20号和21号端口,20号端口用于数据交换,21号端口用于建立连接,允许目录和文件访问,上传下载,不能远程执行文件。

TFTP是简单文件传输协议(Trivial File Transfer Protocol,TFTP),TFTP是无连接的,使用UDP的69号端口,用于当数据传输错误无关紧要而且无须安全性时的小型文件的传输。

(4)SMTP协议

SMTP是简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是为网络系统间的电子邮件交换而设计的。使用 25 端口。SMTP只需要在接收端的一个电子邮件地址即可发送邮件。POP3 协议用来接收邮件.使用110端口

(5)DNS服务

DNS是域名解析服务(Domain Name Service, DNS),作用是将域名转换为IP地址,或将IP地址转换为域名,用于解析完全合格域名(FQDN)。使用53号端口。

(6)DHCP服务

DHCP是动态主机配置协议(DHCP),服务器可以提供的信息有:

1、IP地址

2、子网掩码(subnet mask)

3、域名(domain name)

4、默认网关(default gateway)

5、DNS

4.常见案例理解知识

提出一个需求:浏览器出入淘宝网址,进入的是我们本地的服务

答案:

通过在解析url的时候,域名指向的是ip,而端口号,指向的是电脑指定端口绑定的软件和服务

而解析ip的时候,首先并不是进行dns解析,而是需要进行一步本地的解析,这就是为什么我们输入localhost时候,访问的是本地的服务,而端口指定的是本地哪个服务,所以,我们通过localhost不加端口 ,也访问不到本地的任何内容。

本地解析的文件就存储在电脑中的host文件当中,

所以,只要我们修改了host文件,将淘宝地址指向为我们本地的服务,这样当浏览器输入淘宝网址的时候,就进入的是我们本地的服务了

原文地址:https://www.cnblogs.com/JCDXH/p/13047140.html