02网络参考模型

02网络参考模型

  • 常见网络模型

    • 因为 OSI协议栈比较复杂 ,且TCP和IP两大协议在业界被广泛使用,所以 TCP/IP参考模型 成为了互联网的主流参考模型。

    • OIS网络模型

      • 层级作用
        7.应用层应用层对应用程序提供接口。
        6.表示层进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。
        5.会话层在通信双方之间建立、管理和终止会话。
        4.传输层TCP
        UDP
        建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。
        3.网络层IP层
        路由器层
        定义逻辑地址;实现数据从源到目的地的转发。
        2.数据链路层交换机层
        MAC层
        将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测。
        1.物理层网线在媒介上传输比特流;提供机械的和电气的规约。
    • TCP/IP参考模型

      • 在这里插入图片描述
  • 常见网络协议

    • TCP/IP协议栈定义了一系列的标准协议。

    • 在这里插入图片描述

    • 应用层

      • 应用层为应用软件提供接口,使应用程序能够使用网络服务。
      • 应用层的PDU被称为 Data(数据)
      • 应用层共分配 端口65535个
      • 协议端口号类型介绍
        HTTP80TCP超文本传输协议,提供浏览网页服务
        HTTPS443TCP更加安全的超文本传输协议
        Telnet23TCP远程登陆协议,提供远程管理服务
        FTP20/21TCP文件传输协议,提供互联网文件资源共享服务
        SMTP25TCP简单邮件传输协议,提供互联网电子邮件服务
        TFTP69UDP简单文件传输协议,提供简单的文件传输服务
        远程3389远程桌面服务
    • 传输层

      • 传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。

      • 传输层的PDU被称为 Segment(段)

      • TCP

        • TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。

        • TCP头部结构
          • TCP头部 20 Byte
            Source port (16) 原端口Destination port (16) 目标端口
            Sequence number (32) 序号字段
            Acknowledgement number (32) 确认序号
            Header length (4)头部长度Reserved (6) 保留字段Control bits (6) 控制位Window (16) 流量控制
            Checksum (16) 校验字段Urgent (16) 紧急指针
            Options 选项字段
            Data (varies) 数据
        • 端口报文(port)
          • 分为 原端口 (Source Port)和 目标端口 (Destination Port)
          • 用来传输双方数据的 端口 (应用层)
        • 序号字段(number)
          • 包括序号字段(Sequence Number)和确认序号(Acknowledgement Number)
        • 头部长度
        • 保留字段
        • 控制位
        • 流量控制
        • 校验和
        • 紧急指针
        • 选项字段

      • UDP

        • UDP:一种简单的无连接的传输层协议,由IETF的RFC 768定义。
      • TCP三次握手

        • TCP协议是一个 双向连接 的协议,在数据传输之前需要 通过三次握手建立传输数据的通道
        • seq和ack number的 初始序列号是随机数
        • 第一次由a发向b,a会向b发送一个TCP报文,标记位为SYN,表示希望建立请求。同时关闭closed状态,a进入SYN-SENT阶段。
        • 第二次由b接收到来自a的报文,并向a发送一个TCP报文,标志位为SYN和ACK,表示已经接收到建立请求,并向a发送建立请求。随后b端进入SYN-RCVD阶段。
        • 第三次由a接收到来自b的报文,明确了从客户端到服务器的数据传输是正常的,并向b发送一个TCP报文,标志位为ACK,表示“确认收到服务器端同意连接的信号”,随后a进入ESTABLISHED阶段。
        • 在这里插入图片描述
        • 发送数据时,seq序号第一次为随机X,之后为X+1
        • 当成功接收数据时,接收方会向发送方发送一个报文,其中第一次ack为随机数Y,之后为Y+1
        • 例如,a向b发送一个 seq随机(假设为1) 的段,b收到并向a发送一个s eq随机(假设为10),ack为1+1 的段,a收到后会向b发送 seq为1+1,ack为10+1 的段。​​
      • TCP如何保证数据可靠传输

        • TCP使用​** 序列号和确认序列号 字段实现数据的可靠和有序传输。**

        • 在三次握手建立连接之后,开始传输数据。

        • 第一次a向b发送数据|(假设载荷长度为12)
          seq为a+1(初始随机数+1),ack为b+1(初始随机数+1)
          假设长度为12,则下一跳的seq为a+1+12

        • 第二次b收到a的数据(假设载荷长度为0),则b向a回复
          ack位回复a+1(随机数+1)+12(本次载荷长度)
          seq值为b+1(载荷为0时自动加1)

        • 第三次a收到b的数据(假设载荷长度为66),a向b回复
          seq为a+1+12ack值为b+1 (因为b向a没有发送载荷)
          假设长度为66,则下一跳的seq为a+1+12+66

        • 第四次b收到a的数据(假设载荷长度为50),则b向a回复
          ack位回复a+1(随机数+1)+12(上次载荷长度)+66(本次载荷长度)
          seq值为b+1(载荷为0时自动加1)

        • 假设长度为50,则下一跳的seq为b+1+50

        • 在这里插入图片描述

      • TCP的窗口滑动机制

        • 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。

        • 连接建立成功后,发送方会根据接受方宣告的Window大小发送相应字节数的数据(第一次发送)

        • 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。

        • 接收方 根据自身的缓存空间大小通告 当前的可以接受的数据大小 ( Window )。

        • 发送方 根据 接收方 当前的Window大小 发送相应数量的数据

        • 在这里插入图片描述

          1. PC1告知PC2自己的窗口大小为3
          2. PC2告知PC1自己的窗口大小为3
          3. PC1得知PC2窗口大小为3,发送3段数据给PC2,PC2消化完1段后返回一段ack告知PC1目前自己的窗口大小为1
          4. PC1收到PC2的ack,控制自己的发送流量为1
      • TCP四次挥手

        • 在这里插入图片描述
        • 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段。
        • PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
        • 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
        • PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

    • 网络层

      • 通过IP、路由表和网关进行 跨网段通信
      • 定义:只要有路由表,就可以说是三层设备
      • 网络层常见设备:路由器、三层交换机、PC(软路由)、光猫
      • 网络层的PDU被称为 Packet(包)
      • 路由器两端WLAN接口不能配置相同网段,通过隔离网段区分内外网
    • 数据链路层

      • 通过Mac地址(MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。)实现同网段通信

      • 数据链路层的PDU被称为 Frame(帧)

      • 数据链路层常见设备:交换机(switch)、HUB(分线器)

      • 常见协议: 以太网 、PPPoE、PPP等

      • 工作在数据链路层的设备,例如以太网交换机,会 维护一张MAC地址表 ,用于指导数据帧转发。

      • ARP协议

        • ARP协议能根据 已知的IP地址解析,获得其对应的MAC地址。

        • 在发送数据前,设备会先查找ARP缓存表。

          • 缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。
          • 缓存表中不存在相应信息,则通过ARP来获取。
        • 主机通过 广播 发送 ARP报文网段内 所有设备,其中 记录自身IP地址、MAC地址 ,由于目标MAC地址为全F,因此交换机收到后,会 对帧执行泛洪操作

        • 所有主机接收到该ARP报文后,都会检查目的端IP地址与自身的IP地址是否匹配,如果匹配则会将ARP报文中的 发送端MAC地址和发送端IP地址 信息 记录到自己的ARP缓存表 中。(接收端记录)

        • 此时接收方知道发送方的IP和MAC地址,通过 单播 点对点发送自身MAC地址到发送方,发送方进行ARP缓存表记录。(发送端记录)

    • 物理层

      • 物理层的PDU被称为比特流(Bitstream)。

      • 常用传输介质

        • 双绞线、水晶头(RJ45)
        • 光纤、光模块
        • 同/异步串口线缆(淘汰)
        • 无线设备
  • 传输层协议实验

    • TCP三次握手实验

      • 目的

        • 通过抓包,了解TCP协议三次握手的过程。
      • 实验步骤

        1. 在ENSP中创建三台设备(client、switch、server),并按要求分配IP地址和掩码。
          在这里插入图片描述

        2. 在server中,启动HTTP服务

          在这里插入图片描述

        3. 点击交换机右侧的接口,开始抓包
          在这里插入图片描述

        4. 前面操作检查无误后,点击client,开始获取信息
          在这里插入图片描述

        5. client获取信息后,打开抓包软件,过滤tcp协议内容
          在这里插入图片描述

        6. 查看第一条数据,发现其中SYN置位为1,代表10.1向10.100发送申请建立连接
          在这里插入图片描述

        7. 查看第二条数据,其中ACK和SYN置位都为1,代表10.100收到申请并返回信息确认
          在这里插入图片描述

        8. 查看第三条数据,10.1收到来自10.100的申请,并发送一条接收到回复的信息。
          在这里插入图片描述

      • 总结

        • 只有经过三次握手成功,数据才能建立通信,进行传输
        • 传输层运行在网络层上,IP是必要条件,即使数据只在二层上传输也会用到TCP协议。
        • SYN置位表示发出建立通信的邀请,ACK置位表示已经接收到并同意申请。
    • TCP四次挥手实验

      • 目的

        • 通过抓包,了解TCP协议四次挥手的过程。
        • 写出为什么需要四次。
        • FLAGS FIN字段为什么两个序号一致。
      • 实验步骤

        1. 在上次实验的基础上继续实验,继续查看抓包数据
          在这里插入图片描述

        2. client发送一段报文,其中fin表示询问断开连接,ack表示数据完成接收
          在这里插入图片描述

        3. server收到client的报文,发送第一段报文,其中ack表示已经接收到断开的询问。
          在这里插入图片描述

        4. server发送第二段报文,其中fin表示请求断开传输连接,ack表示数据传输完毕。
          在这里插入图片描述

        5. client收到来自server的报文,发送一段报文,ack表示收到断开连接,确定断开。
          在这里插入图片描述

      • 总结

        • 收到数据传输速度影响,第二和第三条报文可能会合并,即只有三条报文
        • 双方都需要确认数据是否传输完毕才能断开连接
        • fin置位表示想要结束传输连接
  • 数据链路层实验

    • ARP缓存表生成实验

      • 目的

        • 通过抓包 理解ARP 与MAC地址表的作用。
        • 体现 ARP 广播报文,PC ARP记录。
      • 用到的命令

        • 命令作用设备
          arp -a查询PC的ARP缓存表PC
          display mac-address查询交换机的ARP表SW
      • 实验步骤

        1. 搭建实验设备(2台PC、一台交换机),连线,开机,配置IP地址掩码。
          在这里插入图片描述

        2. 交换机G2口开始抓包,PC1使用ping 192.168.10.2
          在这里插入图片描述

        3. 1—PC1发送ARP request报文广播,由于不知道PC2的MAC地址,广播询问谁是.10.2。
          2—发送方标注自己IP和MAC地址,目标IP、MAC地址是全F。
          在这里插入图片描述

        4. 1—PC2接收到ARP request报文,对比目标IP确定是在询问自己。
          2—PC2记录PC1的IP和MAC地址在自己的ARP缓存表。
          3—PC2通过单播发送ARP reply报文,其中包含自己的IP和MAC地址。
          在这里插入图片描述

        5. PC1收到来自.10.2的单播报文,记录下PC2的IP和MAC地址到ARP缓存表,至此双方形成记录
          在这里插入图片描述

          在这里插入图片描述

          在这里插入图片描述

      • 总结

        • ARP缓存表不是永久的,会根据设备变动而变动
        • 广播和单播的区别​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值