计算机网络各层协议总结

news/2024/11/28 1:36:07/

在这里插入图片描述

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

  • 点对点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

http://www.ppmy.cn/news/350529.html

相关文章

计算机操作系统例题

进程和线程的比较 根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位 在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线…

第五十三回:DrawerHeader Widget

文章目录 概念介绍使用方法DrawerHeaderUserAccountsDrawerHeader 示例代码 我们在上一章回中介绍了Drawer Widget相关的内容,本章回中将介绍 DrawerHeader Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们这里介绍的DrawerHeader Widget就是Drawer组件…

Unity绘制参考网格

1.仿制Maya参考网格 using UnityEngine;public class ReferenceGridRenderer : MonoBehaviour {//[SerializeField] Color color new Color(1, 1, 1, 0.5f);[SerializeField] [Range(1, 1000)] float range 20;[SerializeField] [Range(0.1f, 100)] float interval 1;[Ser…

解决RHEL8.5下dotnetcore无法处理gif和jpg问题

之前是解决的8.5下的dotnet无法调libgdiplus绘图问题。解决之后发现只能处理bmp格式图。后面发现还能处理png格式图。对应gif和jpg格式的图则报错,为此专门写了测试程序测试这个问题。新电脑跑虚拟机真香,哈哈。 测试程序如下,如果加载gif和…

centos 计算器_在Linux命令行中使用计算器的5个命令

大家好,我是良许。 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器。在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算、财务计算或者一些简单的计算。当然&…

termux使用无图形界面linux,在termux上使用图形化

最近老是被人问怎么在termux上用图形化(GUI),想来不如写一篇文章得了。 被人吐槽写的太抽象了,我改还不行吗 VNC Termux原生 准确来说,原生是不可能的,你不可能在termux那个窗口里用GUI的,你需要准备VNC Viewer或者XServer XSDL,这里以VNC Viewer为例。(据称VNC这个太麻烦…

【算法】跑ORB-SLAM2遇到的问题、解决方法、效果展示(环境:Ubuntu18.04+ROS melodic)

文章目录 一、Pangolin库的介绍和安装问题1、问题:Error: No preferred package managers from list [brew] found. Use -m to select manually.2、问题:"make: *** No rule to make target pypangolin_pip_install. Stop." 二、编译 ORB_SLAM…

Mybatis源码学习之全局配置文件和映射文件解析

全局配置文件和映射文件解析 全局配置文件解析 public static void main(String[] args) throws IOException {// 读取配置文件InputStream is Resources.getResourceAsStream("org/apache/ibatis/builder/MapperConfig1.xml");// 创建SqlSessionFactory工厂SqlSes…