osi7层模型tcp/ip 五层模型

版权声明:所有非原创内容来自网络,如有侵权联系我删除 https://blog.csdn.net/weixin_43063753/article/details/83097770

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

网络通信的整个流程

本篇博客是对网络通信整个流程的大致介绍,是给刚想步入IT的这一行的同学来看的,如果你对网络比较熟悉了,那么就不要看啦,直接去看我的网络协议的博客https://www.cnblogs.com/clschao/articles/9578922.html,其中一些细节部分没有深入去展开,其中如果有不对或者不妥的地方,希望大家批评指正,因为博主也不是专门学习网络的,所有望大家见谅。话不多少了,我们直接进入正题!

本节目录

一 客户端\服务端架构(哪里用到了网络通信)
二 网络通信的整个流程
三 DNS服务器
五 交换机、路由器和网关(含DHCP)
六 总结及其他一些内容简介
一 客户端\服务端架构(哪里用到了网络通信)
  
  我们使用qq、微信和别人聊天,通过浏览器来浏览页面、看京东的网站,通过优酷、快播(此处只是怀念一下它)看片片啥的等等,通过无线打印机来打印一个word文档等,只要有无线、有网、有4G,我们就能好好的聊天,好好的看片片、好好的购物什么的,对吧,那么这些操作都叫做网络通信,确切来说都需要使用网络通信,前提是你要有网(大家记着这个’网’,我下面会给大家详解),原来生活中处处使用了网络通信,我们通过网络通信的不同形式:比如说qq是我们下载到电脑或者手机上的应用程序(qq应用程序就是人家腾讯开发的软件,放到你的电脑或者手机上供你使用的,大概明白应用程序意思就行,不用深究~~),浏览器也是我们下载的应用程序,但是浏览器是通过页面来访问别人的网站的,而打印机我是通过我电脑上的word来操作使用的。根据这些不同的场景或者说不用的沟通方式,在业内划分了下面几个架构(架构:就是不同的结构,例子1:每个公司的部门组成不同。例子2:每个建筑的钢筋结构不同。)。在看下面的几个架构之前,我们需要知道什么是客户端,什么是服务端。客户端:安装在你电脑上的qq,浏览器(360浏览器、chrome浏览器、IE浏览器等),当我们使用qq发送消息的时候,消息先发送到了腾讯,然后腾讯在转发到你朋友的qq上,此时你的qq就是客户端,腾讯就是服务端。当我们使用浏览器来看京东的网站的时候,我们电脑上的浏览器就叫做客户端,京东就叫做服务端。okok
  客户端英文名称:Client,服务端英文名称:Server,下面所说的C\S架构就是说的Client\Server架构。

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

b.软件C\S架构:QQ、微信、优酷、暴风影音、浏览器(IE、火狐,360浏览器等)。其中浏览器又比较特殊,很多网站是基于浏览器来进行访问的,浏览器和各个网站服务端进行的通讯方式又常被成为B\S架构(浏览器英文名称:Browser)

二 网络通信的整个流程
明白了上面的C\S架构之后,我们就以自己本地的电脑上的浏览器去访问的京东网站的整个流程这种B\S架构来举例,有同学可能会问:你怎么不用qq或者微信来举例啊,是这样,因为qq和微信这种P2P的通信方式还是比较特殊的,也比较繁琐,具体为什么说它繁琐,我在博客的最后给大家说一下,然后有兴趣的同学可以去研究一番~~~

网卡和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地址可以设置成静态的、也可以自动获取(动态分配的),下面是网络配置的大致方法:

1、

2、

3、

配置好自己电脑的网络信息之后,我们就有了身份证(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服务器
当我们请求https:\www.JD.com的时候,首先电脑会在本地的DNS缓存中找是否有这个DNS缓存(DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。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查询过程

步骤

本地查询顺序:

浏览器缓存: 浏览器会按照一定的频率缓存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调出来。

递归查询

第一步:在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再原路返回给请求查询的主机

迭代查询:

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

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

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

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

迭代查询与递归查询结合

递归查询需要经过逐层查询才能获得查询结果,当查询具有许多层次的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转发数据包的过程也是如此。

通俗的讲网关的作用

京东的路由器干了什么呢:京东的路由器拿到请求消息之后,需要发给内网(局域网)中的对应的服务器上,这里在路由器上做了一个映射关系也就是说只要访问我这个192.168.3.0:443端口的请求,都去找京东的服务器A,就类似这么个映射关系,具体情况看到时候路由器交换机怎么设置

路由器对外部网络的通信都是通过外网接口(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
  详细一些的交换机和路由器的工作原理,大家可以去看我这篇博客:https://www.cnblogs.com/clschao/articles/9612944.html

细说二层交换机、三层交换机、四层交换机。百科:

二层三层四层交换机

广域网和路由器:(广域网是个相对的概念,是相对于局域网来说的)

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

五 总结及其他一些内容简介
最后,至于路由是如何进行转发的、内部路由表是如何保存的、网关是如何计算最后传输路线的、路由的内网是如何划分的、DHCP和静态IP是如何设置的,DHCP又是如何分配IP地址的,交换机内部工作原理、路由和交换机如何进行配置等等,我们在本篇博客上就不进行深入研究了,本篇博客是为了让小白同学熟悉一下网路相关知识。谢谢大家谅解,如何大家想了解其他的内容,请给我留言,我就会把相关内容整理出来,分享给大家。你的问题是我们共同进步的动力。

为什么说qq这种p2p的网络通信方式比较特殊呢,因为它是两个局域网的电脑或者手机进行通讯,双方不能确定对方的IP地址,因为你的qq也不知道在哪里登陆,用什么网络,对吧,也就是说双方不知道对方的IP地址,怎么办,需要借助第三方承接,就是腾讯,那么这里面就涉及到了udp打洞,net穿透等技术,有兴趣的可以去了解一下,腾讯为什么nb,也是因为它基本上是国内第一家实现了这些技术的公司,让我们的qq沟通更加方便。

  1. 路由器,交换机的作用?
    路由器和交换机的分别:交换机主要是实现大家通过一根网线上网,但是大家上网是分别拨号的,各自运用自己的宽带,大家各自上网没有影响,哪怕其他人在下载,对自己上网也没有影响,并且所有运用同一条交换机的电脑都是在同一个局域网内。路由器比交换机多了一个虚拟拨号功能,通过同一台路由器上网的电脑是共用一个宽带账号,大家之间上网是相互影响的,比如一台电脑在下载,那么同一个路由器上的其他电脑会很显著的感觉到网速很慢。同一台路由器上的电脑也是在一个局域网内的。
    将网络互相连接起来要运用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:

物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。

数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。

网络层(第三层,层L3)中继系统,即路由器(router)。

网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。

在网络层以上的中继系统,即网关(gateway)。

当中继系统是转发器时,一般不称之为网络互联,因为这仅仅是把一个网络扩大了,而这依旧是一个网络。高层网关由于比较复杂,现在运用得较少。因此一般讨论网络互连时都是指用交换机和路由器进行互联的网络。

交换机(Switch) 是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。现在的交换机分为:二层交换机,三层交换机或是更高层的交换机。三层交换机同样可以有路由的功能,而且比低端路由器的转发速率更快。它的主要特点是:一次路由,多次转发。

路由器(Router)亦称选径器,是在网络层实现互连的设备。它比网桥更加复杂,也具有更大的灵活性。路由器有更强的异种网互连能力,连接对象包括局域网和广域网。过去路由器多用于广域网,近年来,由于路由器性能有了很大提升,价格下降到与网桥接近,因此在局域网互连中也越来越多地运用路由器。路由器是一种连接多个网络或网段的网络设备,它能将不一样网络或网段之间的数据信息进行"翻译",以使它们能够相互"读"懂对方的数据,从而构成一个更大的网络。路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。

OSI 七层协议。
应用层:
表示层:
会话层:
传输层:
网络层:
数据链路层:
物理层:

mac地址:厂商烧写在网卡的唯一标识符,
ip地址、用来区分网段
DHCP服务、自动获取ip地址
路由器、用来获取公网(外网ip)ip,管理局域网
交换机、集线器升级版,实现多台电脑一根网线上网
子网掩码:用来计算是否是同一网段
网关:前三位ip相同则在同一网段
DNS、域名解析的服务器 存储的类似于{域名:ip}
广播,交换机发消息给客户端
BS和CS架构:Bs是服务器和浏览器 CS是客户端和服务端的架构

三次握手、四次挥手的流程:

猜你喜欢

转载自blog.csdn.net/weixin_43063753/article/details/83097770