首页 > 代码库 > python 全栈 day03 计算机网络基础

python 全栈 day03 计算机网络基础

一、网络协议

    网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合。它规定了通信时信息必须采用的格式和这些格式的意义。

    网络协议就是计算机之间进行通信的规则。为了使处于不同地点、装有不同操作系统的计算机之间可以在网络上实现有效地通信,而确立的一种为各类计算机都能认可的通信方法,任一方所表达的信息均能被其他各方所认同,从而确定的计算机接入internet通信的标准。

二、OSI五层协议

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层,其中对应关系如图。

 技术分享

 

    TCP/IP五层模型是将OSI七层种的应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来和功能。用户接触的都是应用层,网络数据传输,自上而下每层都依赖于下一层,每层都有自己特定的协议。越往上越靠近用户,越往下越靠近硬件。

 技术分享

 

(1)物理层

    利用物理物理线路实现组网,传输高低电平(电信号)高为1,低为0。

(2)数据链路层

    定义了电信号的分组形式,形成一套统一的标准,以太网internet协议。

一组电信号构成了一组数据包及帧,一组数据帧(数据包)分为报头head和数据部分data。

 技术分享

 

         head包含:源地址,目标地址,数据类型

         data 包含:数据内容。

    协议规定所有接入互联网的计算机都必须有要网卡,head中包含的源地址和目标地址就是指的网卡的地址,每块网卡上都有一个固定的不可改变的MAC地址。有了这些东西,同一网络内的主机就能通过广播的形式传输数据。

(3)网络层

    不同网络上的设备要想通信,仅仅靠数据广播是不行的,此时就引入一套新的地址用来区分不同的广播域/子网,采取路由的方式广播发送数据包。

为了实现不同网络间设备的通信,每个设备都会配置IP地址,子网掩码,网关。通过IP地址和子网掩码来判断时候在同一网络。若不再同一网络,通过网关通信,走路由协议网关之间先建立通信,再进行数据传输。

    注意:若通信,IP及子网都必须有;跨子网通信依赖IP地址,同子网通信依赖MAC地址。

(4)传输层

    通过TCP或是UDP协议,建立端口到端口之间的通信

(5)应用层

    应用程序都工作在应用层,应用层就是用于规范应用层的数据格式。传输层的TCP协议为程序传递数据,而数据的类型格式就需要应用层的协议来规定,这写协议就构成了应用层。

开发应用得调用,使用传输层的TCP/UDP协议,为方便使用,我们利用socket通信,它将复杂的TCP协议伪装成接口去调用,方便快捷。

    若想实现网络通信,每天主机的四要素必不可少,分别为:IP地址,子网掩码,网关,DNS。这四要素可以通过DHCP协议自动获取,也可以自己动手配置。

三、用户上网流程

1、本机获取有效的IP地址,子网掩码,网关,DNS。

2、打开浏览器,在地址栏输入 www.baidu.com

3、域名解析(及DNS解析)

  (1)、操作系统先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就调用这个IP地址映射,完成域名解析。

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

  (3)、如果hosts与本地DNS解析器缓存都没有相对应的网址映射关系,首先会找本地DNS服务器去查询,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

  (4)、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是那个服务器来授权管理,并会返回一个负责该顶级域名服务器的一个IP地址。本地DNS服务器收到IP地址信息后,将会联系负责.com域的这台服务器。当这台负责.com域的服务器收到请求后,如果自己无法实现解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com的域服务器,重复上面3,2,1动作进行查询,直至找到www.baidu.com主机。

  (5)、将数据嵌入TCP数据包中返回。

4、TCP协议

   TCP协议在数据包中外部嵌入http协议的端口,发送给网络层

5、IP协议

   网络层接收到TCP协议数据包之后,会在外部嵌入一层IP数据包(源IP地址,目标IP地址)发送给数据链路层。

6、internet协议

   IP数据包到达数据链路层,将被打上一层以太网数据包(源MAC地址,目标MAC地址,数据类型)。数据包封装完成后,通过物理层发给baidu服务器。

7、服务器响应

   服务器经网络接收到数据包之后,分析数据包里客户的打开网址的请求,做出回应,再将响应以相同的方式发回请求主机。

8、本机收到从服务器返回的响应数据包之后,浏览器将网页打开,完成通信。

python 全栈 day03 计算机网络基础