网络基础之网络通讯的整个流程

网络通讯的整个流程

1. 客户端\服务端架构(哪里用到了网络通讯)

客户端英文名称:Client,服务端英文名称:Server,下面所说的C\S架构就是说的Client\Server架构。html

  a.硬件C\S架构:打印机。chrome

  b.软件C\S架构:QQ、微信、优酷、暴风影音、浏览器(IE、火狐,360浏览器等)。windows

其中浏览器又比较特殊,不少网站是基于浏览器来进行访问的,浏览器和各个网站服务端进行的通信方式又常被成为B\S架构(浏览器英文名称:Browser)浏览器

2. 网络通讯的整个流程

 网卡和mac地址缓存

    你的电脑想要联网,首先要有一个网卡,并且电脑要作好相关的网路配置(如何配置,在下面有介绍)安全

  电脑插网线的地方就作网卡,网卡提供了网络的接口,这是硬件上面的,你们都是到网口是吧,我怎么找到电脑的网卡呢,有人说用IP地址,IP地址并非,而是全球惟一的mac地址,专门给网络设备设定的,是出厂的时候就给定好的,一个设备的mac地址号码是全球惟一的。 head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具有网卡,发送端和接收端的地址即是指网卡的地址,即mac地址。   服务器

  mac地址:每块网卡出厂时都被烧制上一个世界惟一的mac地址,长度为48位2进制,一般由12位16进制数表示(前六位是厂商编号,后六位是流水线号)微信

  查看mac地址的方法:windows下在cmd窗口输入ipconfig -all指令:下面显示的这个物理地址就是mac地址。网络

  因为mac地址很难记忆,因此又出现了IP地址,在说IP地址以前,咱们先说一下编码,咱们都是到一个字节等于8位对吧,8个2进制的数,那么8位是否是能够表示256个字节啊,因为全球有太多的机器须要联网,那么网络设备的编号应该长一些,对不对,由4个点分十进制组成,由点分割的四个十进制的数,而十进制的数是否是在计算机中也是由二进制表示的啊,那么就成了这个样子:00000000.00000000.00000000.00000000 -- 11111111.11111111.11111111.11111111,0.0.0.0--255.255.255.255,也就是由4个8位的二进制数表示,这个表示就是咱们的IP地址的形式。架构

  若是你用网线连网的,查看本身网络的属性,而且能够将ipv4版本的ip地址能够设置成静态的、也能够自动获取(动态分配的),配置好本身电脑的网络信息以后,咱们就有了身份证(mac地址)和名字(IP地址),经过他们,咱们就在网络中有了本身的身份,只要有网,咱们就和别人进行通讯了。

 

arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

下面是网络通讯流程:

流程描述:

  第一步:打开浏览器,如请求访问京东,栏输入了网址:www.jd.com。(www.jd.com是域名就是一个IP地址的名称,IP地址很差记,全部有了域名。)

  第二步:先将请求信息发给了交换机,而后交给了路由器,路由发给DNS服务器,经过DNS协议去找咱们要访问的京东的IP地址:

  第三步:查到的京东服务器对应的IP地址以后,路由器经过路由协议找到一个路由转发的最优路径,将你的请求信息还送给这个IP地址的京东的路由器

  第四步:京东的路由器发给了京东网站的服务器上

  第五步:京东网站服务器按照来的时候的路径,在返回给你他本身的网站

  第六步:当你打开浏览器的时候,你的电脑给你的浏览器这个运行起来的程序给了一个编号,叫作端口号,当你的电脑收到京东发送过来的消息的时候,你的电脑经过端口号找到你的浏览器,你的浏览器拿到了京东的网站信息,而后将网站呈如今了本身的浏览器上

 

内网和外网:   

  所谓内网就是咱们日常说的局域网。局域网就是在固定的一个地理区域内由2台以上的电脑用网线和其余网络设备搭建而成的一个封闭的计算机组。它能够是邻居之间的2台电脑,也能够是一幢100层大楼里的1000台电脑。局域网能够是独立封闭运行的,也能够是和外网相链接的。
  所谓外网,也就是广域网。是一种地域跨度很是大的网络集合。它是由无数个局域网+独立服务器构成的。注意,此处所说的局域网既能够是小型的广域网,也能够是局域网。
  实际上,从规模上来看咱们很难分辨局域网与广域网,由于大小都是相对的。因此。真正局域网与广域网的分别是经过IP地址来实现的。
  任何一台电脑要上网,都必须在网络上有一个惟一的IP地址。在局域网内,这个IP地址是惟一的。可是在另一个局域网,这个IP地址仍然可以使用。
  网络A里有一台IP地址为192.168.1.231的客户端,网络B里也能够有一台一样IP的电脑。那么。咱们就说这2台机器分别在2个局域网里。可是在广域网内,全部的IP地址都是惟一的。山西电信的DNS服务器IP地址是61.134.1.4.那么,这个地址在全世界都是惟一的,不可重复的。这就是广域网和局域网的区别。

  若是只有内网的ip地址你是不能上网的,你上网确定要经过一个外网地址,这个外网地址又称为公网地址,这个公网地址是全球惟一的,他在你的对外出口的路由器上,也就是你的外网网关地址。

 

三 DNS服务器

  DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。

  域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,一般包含组织名,并且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

  DNS是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中全部主机的域名和对应IP地址,并具备将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,一个IP地址能够有多个域名,而IP地址不必定有域名。域名系统采用相似目录树的等级结构。

  域名服务器一般为客户机/服务器模式中的服务器方,它主要有两种形式:

  主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。本地的DNS缓存是在咱们访问过一个网站以后,例如京东,那么本地会保存一个京东域名和京东服务器IP地址的映射关系,未来再次请求的时候,就不用再到外部的DNS上查询这个域名对应的IP地址了,提升了效率,若是是第一次请求,请看上面的DNS查询过程

查询步骤:

  1.本地查询顺序

    浏览器缓存: 浏览器会按照必定的频率缓存DNS记录。chrome://net-internals/#dns 查看chormeDNS缓存。

    操做系统缓存: 若是浏览器缓存中找不到须要的DNS记录,那就去操做系统中找。cmd命令ipconfig /displaydns 用于查看操做系统dns缓存。

    路由缓存: 路由器也有DNS缓存。 找本机的hosts文件 Windows host文件路径: C:\WINDOWS\system32\drivers\etc\hosts (因为直接修改以后不能保存,能够copy一份到桌面,修改以后,在替换掉原路径下的文件就能够了),hosts文件以静态映射的方式提供IP地址与主机名的对照表。

    ISP(网络服务提供商):若是仍是没有,那么就去检查ISP有没有吧~,每个ISP(网络服务提供商),或一个大学,甚至是一个大学里的系都会有一个本身的本地域名服务器,他会在url第一次访问时缓存该域名的指向。下次再访问时,他会从缓存里把这个url曾经指向的IP调出来。

  

 2.递归查询

   第一步:在hosts静态文件、DNS解析器缓存中查找某主机的IP地址

   第二步:上一步没法找到,去DNS本地服务器(即域服务器)查找,其本质是去区域服务器、服务器缓存中查找

   第三步:本地DNS服务器查不到就向ISP(ISP是互联网服务提供商(Internet Service Provider))的简称,ISP有专门的DNS服务器应对DNS查询请求。再找不到就根据‘根提示文件’向负责顶级域‘.com’的DNS服务器查询

   第四步:'根DNS服务器'根据查询域名中的'xyz.com',再向xyz.com的区域服务器查询

   第五步:www.xyz.abc.com的DNS服务器直接解析该域名,将查询到的ip再原路返回给请求查询的主机

 3.迭代查询:

   第一步:在hosts静态文件、DNS解析器缓存中查找某主机的IP地址

   第二步:上一步没法找到,在DNS本地服务器(即域服务器)查找全部本层次的区域服务器

   第三步:本地DNS服务器查不到就向ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。再找不到就查询上一层次的全部区域服务器,以此类推直至根域名DNS服务器‘.’

   第四步:到达根域名服务器后又向下查询,直至查到结果为止。

 4.迭代查询与递归查询结合

  递归查询须要通过逐层查询才能得到查询结果,当查询具备许多层次的DNS结构时效率很低,因此通常采用二者相结合的查询方式。

   第一步:在hosts静态文件、DNS解析器缓存中查找某主机的ip地址

   第二步:上一步没法找到,去DNS本地服务器(即域服务器)查找,其本质是去区域服务器、服务器缓存中查找

   第三步:本地DNS服务器查不到就向ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。再找不到就根据‘根提示文件’向负责顶级域‘.com’的根DNS服务器查询

   第四步:根DNS服务器直接将其区域DNS服务器的ip地址返回给本地服务器,而不用再向xyz.com的区域服务器查询。

   第五步:(京东有本身DNS服务器)本地DNS服务器将结果返回给请求的主机

 

四 交换机、路由器和网关(含DHCP)

  经过路由A转发将消息发出去,消息中包含目标路由D的网关的IP地址,网关分不少的类型:传输网关、应用网关、协议网关等等,

  咱们常常说的网关是指的传输网关,简称网关,咱们主要就看它,网关在路由器这里,当请求信息发送到了网关这里的时候,咱们先到路由表里面看看有没有这个请求的目标地址的IP,若是没有说明不是咱们本身网络内部的IP地址,须要路由转发出去,到internet网络中,可是网络这么大,怎么办,那么经过网关计算出一个最佳的传输路径去找到对应的目标网关地址,在路由转发的过程当中(当请求被路由B接收到了以后,路由B打开以后发现不是找本身的,就会把请求信息包继续转发)而后传输到这个网关地址的路由器上,目标网关路由器上设置了一些IP地址+端口和各个服务器上的映射关系,即使是全部的交换机都接收到了这个请求,可是仍是可以找到对应的服务器。在经过交换机发送到对应的服务器上

  那么网关究竟是什么呢?网关实质上是一个网络通向其余网络的IP地址。好比有网络A和网络B,网络A的IP地址范围为 “192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的状况下,两个网络之间是不能进行TCP/IP通讯的,即便是两个网络链接在同一台交换机(或集线器)上, TCP/IP协议也会根据子网掩码(255.255.255.0)断定两个网络中的主机处在不一样的网络里。而要实现这两个网络之间的通讯,则必须经过网关。若是网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它本身的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。

例子解释:

假设你的名字叫小不点,你住在一个大院子里,你的邻居有不少小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,而且跑出来跟你玩。   可是你不被容许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同窗小明聊天,小明家住在很远的另一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。可是你不知道小明家的电话号码,不过你的班主任老师有一份大家班全体同窗的名单和电话号码对照表,你的老师就是你的DNS服务器。因而你在家里拨通了门口李大爷的电话,有了下面的对话:   小不点:李大爷,我想找班主任查一下小明的电话号码行吗?   李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99   小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。   李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请求,最后一关固然是被转接到了小明家那个院子的王大爷那里,而后王大爷把电话给转到小明家)   就这样你和小明取得了联系。
View Code

  路由器对外部网络的通讯都是经过外网接口(wan口)去转发出去的,也就是无论你是内网中的哪一个电脑,你的请求都要经过路由的外网接口发送出去,别人对你的请求都是经过外网接口接收进来的,至于路由器上对内的lan口是怎么分配IP地址给内网的,要看路由器怎么设置划分vlan也就是子网(内部局域网),每一个lan口的IP地址能够是静态的,也能够是动态分配的(DHCP协议),并且能够划分网段,

  例如:个人1号lan口对接的网段是192.168.1.0-192.168.1.255,那么全部这个网段的电脑的信息进出都走这个lan口到路由器上,对于链接路由器的交换机来说,主要的做用就是搭桥用的,搭桥的意思就是让链接该交换机的全部电脑都可以链接起来,只要是同一个网段的互相均可以进行通讯,固然这个也要看交换机怎么配置。

   DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工做, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员做为对全部计算机做中央管理的手段 交换机又分二层交换机和三层交换机,二层交换机主要就是个搭桥的做用,三层交换机还兼有路由的做用,通常如今的交换机都有DHCP功能,也就是说交换机下面链接的这些电脑的子网IP或者说是局域网IP也能够由交换机来动态生成和分配,路由器和交换机所生成的子网IP都是本身在路由器和交换机上设置的,和路由器上的外网IP没有关系,具体的划分又分为24位的16位的等等,举例:24位的就是10.11.1.0-10.11.1.255这256个IP地址,0表示后面的8bit是00000000,255表示后面的8bit是11111111

交换机和路由器的基本工做原理:

   路由器---所谓路由就是指经过相互链接的网络把信息从源地点移动到目标地点的活动。通常来讲,在路由过程当中,信息至少会通过一个或多个中间节点。一般,人们会把路由和交换进行对比,这主要是由于在普通用户看来二者所实现的功能是彻底同样的。其实,路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换在移动信息的过程当中须要使用不一样的控制信息,因此二者实现各自功能的方式是不一样的。

  交换机---交换(switching)是按照通讯两端传输信息的须要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术统称。广义的交换机(switch)就是一种在通讯系统中完成信息交换功能的设备。

详细工做原理,可参考博客:https://www.cnblogs.com/clschao/articles/9612944.html

  为了不广播风暴(之前经过mac地址就能够通讯,mac地址通讯是广播的形式,若是世界上全部的电脑都经过这种形式通讯,就会造成广播风暴,堵塞网络不说,所有信息都变得不安全了,由于全部人均可以收到你发的信息):分了多个局域网,而后经过路由器连起来了。

相关文章
相关标签/搜索