博客
关于我
linux 网络协议分析---3
阅读量:804 次
发布时间:2023-02-01

本文共 1421 字,大约阅读时间需要 4 分钟。

Linux网络模型及其常用协议分析

本章主要介绍Linux网络模型以及常用的网络协议分析(以太网协议、IP协议、TCP协议、UDP协议)。

一、网络模型

TCP/IP网络模型分为四个协议层,分别完成以下功能:

  • 网络接口层

    负责将IP数据在已有网络介质上传输。TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能,而是定义如地址解析协议(ARP)等协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。

  • 网间层

    对应OSI七层参考模型的网络层。其主要功能包括:

    • 包装、寻址和路由IP数据报。
    • 使用网间控制报文协议(ICMP)提供网络诊断信息。
    • 包括IP协议(IP)、路由信息协议(RIP)等。
  • 传输层

    对应OSI七层参考模型的传输层,提供两种端到端的通信服务:

    • TCP协议提供可靠的数据流运输服务。
    • UDP协议提供不可靠的用户数据报服务。
  • 应用层

    负责数据处理和用户应用的通信。常见协议包括:FTP、HTTP、Telnet、SMTP等。

  • OSI层与TCP/IP层对应关系:

    OSI七层模型 TCP/IP四层模型 传输的数据
    应用层 应用层 数据
    表示层 应用层 数据
    会话层 应用层 数据
    传输层 传输层
    网络层 网络层 数据报
    数据链路层 网络接口层
    物理层 网络接口层 比特流

    二、协议分析

    网络协议是网络设备(如计算机、路由器等)之间通信的规则集合。现代网络采用分层结构,每一层建立在下一层之上,向上层屏蔽下层实现细节。

  • 协议架构

    不同层的协议包称谓不同:链路层为帧,网络层为数据报,传输层为段。

  • 协议层数据包处理

    数据包从物理层开始传输,经过网络接口层处理后成为帧,进入传输介质。到达目标主机后,每一层协议逐步剥去首部,最终将应用层数据交给应用程序。

  • 以太网帧结构

    帧中包含:

    • 源地址和目标地址:48位硬件地址(MAC地址)。
    • 数据长度:规定最小46字节,最大1500字节(MTU)。
    • 标识:帧识别号。
    • 标志:MF(更fragment)、DF(不分片)。
    • 片偏移:12位,指向原始分组中的位置。
    • 生存时间(TTL):路由器处理次数。
    • 协议:ETH(以太网)、IP、ARP等。
  • IP协议格式

    IP数据报字段包括:

    • 版本:4位,表示IP协议为IPv4。
    • 首部长度:4位,可表示最大首部长度为60字节。
    • 区分服务:8位,用于 DiffServ时有效。
    • 总长度:16位,最大值为65535字节。
    • 标识:16位,数据报计数器。
    • 标志:3位,MF、DF字段。
    • 片偏移:12位,分组位置相对值(以8字节为单位)。
    • 生存时间:8位,路由器可经过次数。
    • 协议:8位,指定数据使用协议。
    • 首部检验和:16位,检验首部完整性。
    • 源地址和目的地址:各4字节。
  • TCP协议格式

    TCP段字段包括:

    • 源端口和目的端口:各2字节,socket唯一标识连接。
    • 序号:4字节,数据字节序号。
    • 确认号:4字节,期望数据包序号。
    • 数据偏移:4比特,首部长度。
    • 控制位:6比特,URG、ACK、PSH、RST、SYN、FIN。
    • 窗口:2字节,期望接收窗口大小。
    • 校验和:16字节,伪首部+数据检验。
    • 紧急指针:紧急位有效时指定紧急数据序号。
    • 选项:例如MSS最大段大小。
  • UDP协议格式

    UDP数据报字段包括:

    • 源地址和目的地址:各4字节。
    • 长度:16位,最大值65535字节。
    • 协议:8位,指定数据报使用协议。
    • 首部检验和:16位,验证首部完整性。
  • 转载地址:http://zewfk.baihongyu.com/

    你可能感兴趣的文章
    mariadb multi-source replication(mariadb多主复制)
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memset初始化高维数组为-1/0
    查看>>
    MS UC 2013-0-Prepare Tool
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSSQL数据库查询优化(一)
    查看>>
    MSSQL日期格式转换函数(使用CONVERT)
    查看>>
    MSTP是什么?有哪些专有名词?
    查看>>
    Mstsc 远程桌面链接 And 网络映射
    查看>>
    Myeclipse常用快捷键
    查看>>
    MyEclipse用(JDBC)连接SQL出现的问题~
    查看>>
    myeclipse的新建severlet不见解决方法
    查看>>
    MyEclipse设置当前行背景颜色、选中单词前景色、背景色
    查看>>
    MyEclipse配置SVN
    查看>>
    MTCNN 人脸检测
    查看>>
    MyEcplise中SpringBoot怎样定制启动banner?
    查看>>
    MyPython
    查看>>
    MTD技术介绍
    查看>>
    mysql
    查看>>