• 周六. 7 月 27th, 2024

    计算机网络常用知识总结

    root

    5 月 11, 2022 #计算机网络基础

    一、OSI七层模型

    1、物理层

    首先解决了两台物理机之间的通信需求。主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率。

    主要作用是传输比特流(0101二进制数据), 将比特流转化为电流强弱传输,到达目的后再转化为比特流,即常说的数模转化和模数转换。

    网卡工作在这层

    物理层是OSI七层模型的物理基础,没有它就谈不上数据传输了。

    2、数据链路层

    定义了【如何格式化数据进行传输】,以及如何控制对物理介质的访问。通常提供错误检测和纠正,以确保数据传输的准确性。

    本层将比特数据组成帧,交换机工作在这层,对帧解码,并根据帧中包含的信息把数据发送到正确的接收方。

    该层负责物理层面上互连的节点之间的通信传输。例如与1 个以太网相连的两个节点间的通讯。

    常见协议有HDLC, PPP, SLIP等。

    3、网络层

    主要功能:将网络地址转化为对应的物理地址,并决定如何将数据从发送方路由到接收方。

    网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。

    由于网络层处理并智能指导数据传送,路由器连接网络隔断,所以路由器属于网络层。

    此层的数据称之为数据包。本层需要关注的协议TCP/IP协议中的IP协议。

    网络层负责将数据传输到目标地址。目标地址可以使多个网络通过路由器连接而成的某一个地址。因此这一层主要负责**「寻址和路由选择」**。主要由 IP、ICMP 两个协议组成

    网络层将数据从发送端的主机发送到接收端的主机,两台主机间可能会存在很多数据链路,但网络层就是负责找出一条相对顺畅的通路将数据传递过去。传输的地址使用的是IP地址。IP地址通过不断转发到更近的IP地址,最终可以到达目标地址

    4、传输层

    随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长时间,网络在通信的过程中会中断很多次,此时为了保证传输大量文件时的准确性,需要对发送出去的数据进行切分,切割为一个一个的段落(Segement)发送,其中一个段落丢失是否重传,段落是否按顺序到达,是传输层需要考虑的问题。

    传输层解决了主机间的数据传输,数据间的传输可以是不同网络,并且传输层解决了**「传输质量」**的问题。

    传输层需要关注的协议有TCP/IP协议中的TCP协议和UDP协议。

    5. 会话层

    会话层作用是**「负责建立和断开通信连接」**,何时建立,断开连接以及保持多久的连接。常见的协议有 ADSP、RPC 等

    6. 表示层

    Linux给WIndows发包,不同系统语法不一致,如exe不能在Linux下执行,shell不能在Windows不能直接运行。于是需要表示层。

    解决**「不同系统之间通信语法问题」**,在表示层数据将按照网络能理解的方案进行格式化,格式化因所使用网络的不同而不同。

    它主要负责数据格式的转换。具体来说,就是讲设备固有的数据格式转换为网络标准格式。常见的协议有ASCII、SSL/TLS

    7. 应用层

    规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,消息头中必须记录消息体的长度等信息,方便接收方正确解析发送方发送的数据。

    应用层旨在更**「方便应用从网络中接收的数据」**,重点关注TCP/IP协议中的HTTP协议

    四层传输层数据被称作**「段」**(Segments);

    三层网络层数据被称做**「包」**(Packages);

    二层数据链路层时数据被称为**「帧」**(Frames);

    一层物理层时数据被称为**「比特流」**(Bits)。

    二、TCP和IP模型

    OSI模型注重通信协议必要的功能;TCP/IP更强调在计算机上实现协议应该开发哪种程序

    1、TCP、IP划分了四层网络模型

    第一层:应用层,主要有负责web浏览器的HTTP协议, 文件传输的FTP协议,负责电子邮件的SMTP协议,负责域名系统的DNS等

    第二层:传输层,主要是有**「可靠传输」的TCP协议,特别「高效」**的UDP协议。主要负责传输应用层的数据包。

    第三层:网络层,主要是IP协议。主要负责寻址(找到目标设备的位置)

    第四层:数据链路层,主要是负责转换数字信号和物理二进制信号。

    2、 四层网络协议的作用

    发送端是由上至下,把上层来的数据在头部加上各层协议的数据(部首)再下发给下层。

    接受端则由下而上,把从下层接受到的数据进行解密和去掉头部的部首后再发送给上层。

    层层加密和解密后,应用层最终拿到了需要的数据。

    3、 举个例子:

    我们需要发送一个**「index.html」**。

    两台电脑在应用层都使用HTTP协议(即都使用浏览器)。

    在传输层,TCP协议会将HTTP协议发送的数据看作一个数据包,并在这个数据包前面加上TCP包的一部分信息(部首)

    在网络层,IP协议会将TCP协议要发送的数据看作一个数据包,同样的在这个数据包前端加上IP协议的部首

    在数据链路层,对应的协议也会在IP数据包前端加上以太网的部首。

    源设备和目标设备通过网线连接,就可以通过物理层的二进制传输数据。

    数据链路层,会使用对应的协议找到物理层的二进制数据,解码得到以太网的部首信息和对应的IP数据包,再将IP数据包传给上层的网络层。

    数据链路层>网络层>传输层>应用层,一层层的解码,最后就可以在浏览器中得到目标设备传送过来的**「index.html」**。


    4、 TCP、IP协议族

    从字面意义上来讲,TCP/IP是指**「传输层」的TCP协议和「网络层」**的IP协议。

    实际上,TCP/IP只是利用 IP 进行通信时所必须用到的协议群的统称。

    具体来说,在网络层是IP/ICMP协议、在传输层是TCP/UDP协议、在应用层是SMTP、FTP、以及 HTTP 等。他们都属于 TCP/IP 协议。

    三、网络设备

    1、交换机

    交换机可以接入多台电脑

    每个电脑网卡的 **「MAC 地址」**都是不一样的,电脑发送数据时,数据头部携带网卡的 MAC 地址,用 MAC 地址标识来不同的电脑

    交换机就可以识别数据头部的 MAC 地址来区分不同的电脑

    交换机除了能识别不同的电脑,还需要找到电脑连接的**「交换机端口」**,才能顺利的把数据从相应端口发送出去

    交换机通过**「自学机制」,把学习到的设备 MAC 地址和交换机端口号添加到 「MAC 地址表」,并根据 MAC 地址表进行数据「转发」**

    2、 路由器

    交换机需要记录的 MAC 地址表也越来越多,需要的交换机也越来越多

    但是交换机的**「容量和性能有限」**,MAC 地址表无法记录全世界电脑的 MAC 地址和对应的端口号,MAC 地址表太大也无法快速查找到对应的 MAC 地址表项

    于是就有了三层网络设备**「路由器」**,路由器可以把全世界的网络连接起来

    局域网内的网络连接可以使用**「交换机」**,例如一个公司内的网络或者一个校园内的网络通过交换机连接

    不同区域的局域网互联使用**「路由器」**

    那么如何区分不同的网络区域呢?又是如何跨网络区域进行数据转发的呢?

    路由器有多个端口,分别连接不同的网络区域,不同网络区域的 IP 地址**「网络号不同」**

    它通过识别目的 IP 地址的**「网络号」,再根据「路由表」**进行数据转发

    四、HTTP

    1、 请求方法

    HTTP1.0 定义了三种请求方法:GET, POST 和 HEAD方法。

    HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

    序 号方法描述
    1GET请求指定的页面信息,并返回实体主体。
    2HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
    3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
    4PUT从客户端向服务器传送的数据取代指定的文档的内容。
    5DELETE请求服务器删除指定的页面。
    6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
    7OPTIONS允许客户端查看服务器的性能。
    8TRACE回显服务器收到的请求,主要用于测试或诊断。
    9PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新 。

    2、GET请求和POST请求的区别

    1. GET 请求的请求参数是添加到 head 中,可以在 url 中可以看到;POST 请求的请求参数是添加到body中,在url 中不可见。
    2. 请求的url有长度限制,这个限制由浏览器和 web 服务器决定和设置的,例如IE浏览器对 URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应,因为GET请求的参数是添加到URL中,所以GET请求的URL的长度限制需要将请求参数长度也考虑进去。而POST请求不用考虑请求参数的长度。
    3. GET请求产生一个数据包; POST请求产生2个数据包,在火狐浏览器中,产生一个数据包,这个区别点在于浏览器的请求机制,先发送请求头,再发送请求体,因为GET没有请求体,所以就发送一个数据包,而POST包含请求体,所以发送两次数据包,但是由于火狐机制不同,所以发送一个数据包。
    4. GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
    5. GET是幂等的,而POST不是(幂等表示执行相同的操作,结果也是相同的)
    6. GET是获取数据,POST是修改数据

    作者:程序员段飞
    链接:https://juejin.cn/post/7092326134146138142
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    root

    相关文章