• 初识网络原理



     目录

    🥬局域网(LAN)和广域网(WAN)

    🥬网络通信基础

     🥬小结


    🥬局域网(LAN)和广域网(WAN)

    局域网:Local Area Network,local即标识了局域网是本地,局部组建的一种私有网路。就好像我们打游戏,不仅仅可以是单机游戏,也可以支持局域网对战。

    局域网组建网络的方式:

    1、基于网线直连

     2、基于集线器组建

    3、基于交换机组建

     4、基于交换机和路由器组建

     广域网Wide Area Network,通过路由器将多个局域网连接起来,就形成了广域网。广域网其实就是一个很大的局域网。

    🥬网络通信基础

    网络互联的目的是进行网络通信,也就是网络数据传输。更具体一点就是网络主机中不同进程间,基于网络传输数据。

    IP地址:

    客户端和服务器之间就是通过网络进行数据传输,客户端是如何找得到服务器在哪?这时就要通过IP地址找到服务器。

    IP地址就是标识一个主机在网络上的位置信息,在计算机中,使用一个32位的整数来表示这个IP地址,由于32位整数比较大,看起来不太方便,就引入了另外一种表达方式:点分十进制。使用三个.  把这个32位的整数分为四个部分,每个部分都是一个一个字节的整数,每个部分的取值范围就是0-255。例如回环IP地址表示:127.0.0.1

    端口号:

    用来区分一个主机上的应用程序的,我们通过IP地址可以知道主机的具体位置,但是这个主机上还有很多程序,当主机收到一个具体的数据的时候,要把这个数据交给哪个程序来处理,这时候就需要通过端口号来区分。让每个进程分别绑定到不同的端口号,此时收到的网络数据报中也会包含一个"目的端口"字段,就会根据目的端口找到对应端口号的进程,从而把数据交给对应的进程。这些都是通过操作系统内核完成的。

    端口号是一个整数,用来区分进程;PID也是一个整数,为什么不用PID呢?

    端口号是固定不变的,对于端口号我们可以手动指定,但是对于PID而言,每次进程启动之后,PID都在发生改变,我们不能控制,所以不能使用PID。

    通常情况下,两个进程无法绑定到同一个端口号!

    但是一个进程可以绑定多个端口:

    我们可以将socket和端口绑定,socket就是文件,一个进程里面可以有很多文件,也就可以有很多个socket,每个socket都可以绑定到不同的端口。

    端口号是一个整数,是一个两个字节的整数,范围是0-65535(没有负数),其中0-1023这些端口称为"知名端口号"。当前已经有很多现成的应用层协议,就给这些现成的应用层协议已经分配了一些端口了,在自定义协议的时候,尽量避免知名端口号,因为这些往往需要管理员权限。

    客户端和服务器:

    客户端:主动发送请求的一方

    服务器:被动接受请求的一方

    就好像我们去饭店吃饭,这时候我们就相当于客户端,饭店相当于服务器,我们把要吃什么(请求)告诉饭店,饭店就会给我们相应的饭菜(响应)。由于服务器无法确定啥时候有客户端来,服务器能做的事情就是"随时待命"。

    客户端给服务器发送的数据--请求(Request)

    服务器给客户端返回的数据--响应(Response)

    客户端和服务器的交互方式,有很多种:

    1、一问一答:客户端发送一个请求,服务求给一个响应

    2、一问多答:客户端发送一个请求,服务求给多个响应

    3、多问一答:客户端发送多个请求,服务求给一个响应

    4、多问多答:客户端发送多个请求,服务求给多个响应

    协议:

    协议就是一种约定,协议本身概念并不复杂,但是由于网络通信之间,涉及到很多方面的细节,所以真实的网络通信协议往往也比较复杂。

    网络通信的五元组:

    两台主机之间的通信,往往是通过一个五元组来描述的。

    源IP:标识源主机

    源端口:标识源主机中该次通信发送数据的进程

    目的IP:标识目的主机

    目的端口:标识目的主机中该次通信接收数据的进程

    协议类型:标识发送进程和接收进程双方约定的数据格式

    协议分层:

    当前网络中涉及到的协议是有很多的,因为网络里面比较复杂,无法只通过一个协议就能把所有的功能都涵盖进去,于是就拆分出多个协议,为了能更好的组织这么多协议,就按照这些协议的定位,在进行分类,于是就有了"协议分层"。这就相当于我们写代码,如果问题比较复杂,只通过一个类来完成所有功能,这可能就比较复杂,这时候我们就可以拆分成多个类来实现这些功能,如果类太多了还能创建包,把这些类按照功能定位放进包里。

    分层的好处:

    1、达到了封装的效果,把实现细节隐藏起来,降低人们使用成本(人们使用的时候不需要了解具体工作原理)

    2、可以方便对其中某层/某些协议进行灵活的替换(如果需要对某层协议的细节进行修改,只需要改那层就可以,不需要动其他层协议)

    OSI七层网络模型:

    7、应用层

    6、表示层

    5、会话层

    4、传输层

    3、网络层

    2、数据链路层

    1、物理层

    由于OSI七层模型既复杂又不实用,所以OSI七层模型没有落地、实现。我们在实现组件网络时,只会用到OSI七层模型设计中的部分分层,也就是TCP/IP五层(或四层)模型来实现。

    TCP/IP五层(或四层)模型:

    因为物理层更偏向于硬件的东西,所以往往会忽略物理层,所以这里也叫TCP/IP四层模型。

    应用层:具体的应用程序

    传输层:只关注起点和终点,不关注具体的通信细节

    网络层:针对网络上任意两台主机,完成一个通信路径的规划,以及具体传输

    数据链路层:实现两个相邻设备之间的数据通信

    物理层:硬件设备,网络通信的基础设施(比如说网线)

    以上可以说明下层协议给上层协议提供一些功能支撑,上层协议要依赖下层协议。

    这就好比我们在某宝(应用层)上买衣服,我就需要填写我的收件人地址和电话,卖家就发货,他也需要填写地址和电话,我和卖家只关注起点和终点,我们就相当于传输层,卖家把货交给快递公司,快递公司需要规划好具体运输路线,快递公司就相当于网络层,专门的快递小哥要进行送货,这个快递小哥就相当于数据链路层,衣服需要在公路或者航道上运输,这些公路、航道等基础设施就是物理层。

    TCP/IP中最重要的协议:TCP传输层、IP网络层。

    笔试内容:

    对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也就是TCP/IP五层模型的下四层。

    对于一台路由器,它实现了从网络层到物理层,也就是TCP/IP五层模型的下三层。

    对于一台交换机,它实现了从数据链路层到物理层,也就是TCP/IP五层模型的下两层。

    对于集线器,它只实现了物理层。

    但是真实情况会根据路由器、交换机的的好坏而有一些改变,有些好的交换机或者路由器也能实现传输层以及应用层的内容。

    举个例子:

    很多交换机或者路由器都有类似于这样的功能:舆情分析

    就拿我们在QQ上发消息来说,这些消息都是通过路由器交换机来进行转发,路由器交换机就可能去解析这个数据包,提取出用户所发送的信息是什么。

    封装和分用:

    发送方层层构造数据就是封装;接收方层层解析数据就是分用。

     🥬小结

    以上就是今天的内容了,有什么问题都可以在评论区留言🍉🍉🍉

  • 相关阅读:
    《Mybatis 手撸专栏》第8章:把反射用到出神入化
    能让你薪资翻倍的性能优化大全,大厂必问的性能调优其实很简单
    Mybatis Mapper接口和xml绑定的多种方式、内部实现原理和过程
    设置meta description 为什么显示显示本网站使用第三方cookie和相关技术
    游戏测试常见问题
    Java通用转换地图坐标系离线算法,天地图和超图WGS84坐标系、高德GCJ-02坐标系和百度BD-09坐标系三个坐标系互相转换
    7月28日第壹简报,星期四,农历六月三十
    2024拼多多校招面试真题汇总及其解答(一)
    黑龙江省人口与社会经济数据集(2015-2016年)
    java:数组缩减
  • 原文地址:https://blog.csdn.net/m0_65673419/article/details/126212038