• 计算机网络各层协议总结


    在这里插入图片描述

    数据链路层:解决两台主机点对点的数据传输

    • 点对点ppp协议

      • 概念:用户计算机和ISP进行通信所使用的数据链路层协议
    • CSMA/CD协议

      • 概念:载波监听多点接入/碰撞检测
      • 要点
        • 多点接入:说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
        • 载波监听:用电子技术检测总线上有没有其他计算机也在发送
        • 碰撞检测:边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据
      • 特点:在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工)
    • MAC层

      • 概念:在局域网中,硬件地址又称为物理地址或MAC地址,指的是局域网上每一台计算机中固化在适配器的ROM中的地址
    • 集线器和交换机的区别

      • 交换机属于OSI的第二层数据链路层设备它可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。”
      • 集线器工作于OSI参考模型的物理层。物理层定义了电气信号,符号,线的状态和时钟要求,数据编码和数据传输用的连接器。因为集线器只对信号进行整形、放大后再重发,不进行编码,所以是物理层的设备。
      • 当集线器下的一个主机给另外一个主机发送单播报文时,需要通过集线器进行转发,此时集线器会直接转发给其他所有主机,而交换机则是可以根据帧交换表精准的转发到目的主机
      • 当有两个主机同时给一个主机发送单播报文时,就会发生碰撞冲突现象,因此说集线器不能隔离碰撞域,冲突域
      • 而通过交换机则可以很好的转发报文到目的主机而不会发生冲突
      • 即交换机可以隔离碰撞域,但是不能隔离广播域,利用路由器可以,因为它属于网络层

    网络层:负责不同局域网上不同主机的通信,选择合适的路由,使源主机运输所传下来的分组,能够通过网络中的路由器找到目的主机

    • 网络层提供的两种服务:虚电路和数据报服务

    • ip协议

      • ARP协议

        • 作用:知道了一个主机或者路由器的ip地址,找出相应的mac地址
        • 过程:在本主机的ARP高速缓存上找到对应的各主机和各路由器的IP地址到硬件地址的映射表,如果没有的话就发广播呼叫对应主机
      • ip数据包的首部格式

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uV2fSJe3-1667874711188)(.\img\image-20220814181814579.png)]

      • ICMP协议:作用为了更有效的转发IP数据报和提高交付成功的机会

        • 分类:ICMP差错报告报文和ICMP询问报文
        • 应用:ping
      • 内部网关协议IGP:在一个自治系统内部使用的路由选择协议

        • RIP:一种分布式的基于距离向量的路由选择协议
        • OSPF:最短路径优先路由选择协议
      • 外部网关协议EGP:若源主机和目的主机处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。

    运输层:负责两台主机中进程之间的通信

    • UDP协议
      • 只在IP的数据报服务之上增加了很少一点的功能,就是复用和分用的功能以及差错检测的功能
      • 应用:流媒体,直播

    应用层:解决通过应用进程的交互来实现特定网络应用的问题

    • DNS域名系统

      • 采用协议:UDP

      • 端口:53

      • 作用:通过域名解析找到对应的IP

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gEgnDXqS-1667874711189)(C:\Users\zh006\Desktop\job\img\image-20220819224947902.png)]

      • 域名解析过程

        • 迭代查询:弹皮球的方式,你问根域名根域名说没有,你得去找顶级域名,顶级域名说没有你又得去问其他域名
        • 递归查询:分层解析过程,你只需要问根域名,根域名会替你去查询,顶级域名没查询结果会继续帮你查询…
      • 高速缓存:为了提高DNS查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS查询报文熟练,在域名服务器种广泛的使用了高速缓存,高速缓存由域名与IP的映射信息

    • FTP文件传输协议

      • 采用协议:TCP
      • 端口:21
      • 作用:复制整个文件
      • 如何使用:使用CS模型。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成,一个主进程,负责接收新的请求,另外由若干个从属进程,负责处理单个请求。
      • 过程:打开21端口,让客户可以连接上,等待客户进程发出连接请求,等待客户进程发出连接请求,启动从属进程处理客户进程发来的请求,从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他子进程
    • TFTP简单文件传输协议

      • 采用协议:UDP
      • 端口:69
      • 作用:只支持文件传输而不支持交互
      • 特点:
        • 每次传输512字节,但最后一次可以不是512字节,这可以作为结束的标志
        • 数据报文按序编号,从1开始
        • 支持ASCII码或二进制传送
        • 可对文件进行读或写
        • 使用很简单的首部(因为它是UDP)
    • 远程终端传输协议TELNET(和SSH类似)

      • 采用协议:TCP
      • 端口:23
      • 作用:用户可以在一台主机远程连接到另外一台主机,在本主机输入,可以得到另外一个主机的输出
    • 超文本传输协议HTTP

      • 采用协议:TCP
      • 端口:80
      • 使用流程:HTTP协议首先要和服务器建立TCP连接,这需要三报文握手,当建立TCP连接的三报文握手的前两部分完成后,万维网客户就把HTTP请求报文,作为建立TCP连接的三报文握手中的第三个报文的数据,发送给万维网服务器。服务器收到HTTP请求报文后,就把请求的文档作为响应报文返回给客户。
      • http1.0和http1.1的区别:
        • 1.0每请求一个文档就要由两倍RTT的开销,若一个主页上由很多个链接的对象需要依次进行连接,那么每一次链接下载都导致2*RTT的开销。短连接会消耗很多资源
        • 1.1使用长连接,服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传输后续的http请求报文和响应报文。这并不局限于发送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行
        • 1.1有两种工作方式:非流水线方式和流水线方式
          • 非流水线方式:客户收到前一个响应后才能发出下一个请求
          • 流水线方式:客户在收到http的响应报文之前就能够接着发送新的请求报文,于是一个接一个的请求报文到达服务器后,服务器就可以连续发回响报文,提高了文档传输效率。
      • 报文结构:
        • 开始行:区分是request还是response,在请求报文中叫做请求行,在响应报文中叫做状态行
          • 请求行:方法(get,post,head,put),url,http的版本
          • 状态行:状态码,1xx表示通知信息,请求收到了,或正在处理,2xx表示成功,即接受或知道了,3xx表示重定向,4xx表示客户的差错地址输入错误,5xx表示服务器的差错
        • 首部行:用来说明浏览器,服务器或报文主体的一些信息。headers(包含cookie)
        • 主题body:一般在请求报文没有这个信息,响应报文会有
    • 邮件协议发送协议SMTP

      • 所用协议:TCP
      • 端口:25
      • 作用:用于SMTP客户和SMTP服务器发送邮件
    • 邮件读取协议POP3和IMAP4

      • 协议:tcp
      • 端口:pop3为110,IMAP为143
      • POP3和IMAP的区别
        • IMAP不用对服务器上面的邮件进行全部下载(根据实际需要进行下载),可以通过邮件客户端对邮件进行操作。POP3允许下载邮件服务器上面的邮件(下载所有未阅读的电子邮件),当邮件从服务器上面发送到电脑上面,同时删除邮件服务器上面的邮件(目前很多邮件服务器都支持“下载邮件,不删除邮件,或发出提醒”)。
    • DHCP协议

      • 作用:允许一台计算机加入新的网络而不用手工参与

      • 端口:服务器为67,客户为68

      • 协议:UDP

      • 过程:客户端会发送一个广播,我们知道,广播报文是会发送局域网内的所有其他主机的,广播的目的 ip 是 255.255.255.255,目的端口是 68,为了让别人知道它是来请求一个 ip 的,我们的客户端会把 0.0.0.0 作为自己的源 ip,源端口是 67。当 DHCP 服务器收到这个报文之后,一看源地址是 0.0.0.0,就知道生意来了,知道这是一个请求 ip 的报文,DHCP 服务器就会给它提供一个 ip,包括 ip 地址,子网掩码,网关,ip 的有效期等信息。

        有人可能会问,只有源 ip 为 0.0.0.0 的信息,我们怎么把报文发送到它的手里呢?这不,我们每台电脑不都有 Mac 地址吗?在 discover 报文中,就会包含它的 MAC 地址了,DHCP 服务器,只需要发一个广播报文就可以了,广播报文的源ip是 DHCP 服务器自己的 ip,源端口是 67,目的地址是 255.255.255.255,目的端口是 68。我们把 DHCP 提供 ip 地址的报文称之为offer报文。我们把 DHCP 提供 ip 地址的报文称之为offer报文。

        我们知道,有可能不止一台 DHCP 服务器收到了 discover 请求报文,也就是说,我们的主机可能会收到多个 offer 报文,所以呢,我们的主机会选择其中一个心仪的 offer 报文来作为自己的 ip,一般是选择最先收到的 offer 报文,选择好之后,会给对应的 DHCP 服务器次发送一个 request 报文,意在告诉它,我看中了你的报文。

        DHCP 收到 request 报文之后,会给它回复一个 ACK 报文,并且把这个分配出去的 ip 进行登记(例如把这个 ip 标记为已使用状态)。当我们的主机收到 ACK 报文之后,就可以开始冲浪在网上冲浪

    • SNMP协议

      • 作用:对网络资源进行监视,测试,配置,分析,评价,控制
      • 端口:161
      • 协议:UDP
      • 概念:网络是一个非常复杂的分布式系统,因为网络上有很多不同厂家生产的,运行着多种协议的节点,而这些节点还在相互通信和交换信息
      • 节点树:MIB
  • 相关阅读:
    map的常用用法详解(新手入门!!!)
    Docker基础学习
    go 实现 rpc
    【博学谷学习记录】超强总结,用心分享|架构师-前置知识-Netty网络编程基础
    卡尔曼滤波EKF
    测试开发-celery框架详解
    vue中babel-plugin-component按需引入和element-ui 的主题定制,支持发布,上线
    校园小程序毕业设计,学校小程序设计与实现,毕设作品参考
    淘宝API常用接口与获取方式
    职责链模式简介
  • 原文地址:https://blog.csdn.net/weixin_46187354/article/details/127745937