• TCP、UDP、IP头部结构


    数据传输在TCP/IP网络模型中,经过一层便会添加一层头部,其中TCP(网络传输协议),UDP处于传输层,IP(网间协议)处于网络层。
    在这里插入图片描述
    数据进入协议栈的封装过程
    TCP/IP协议族

    • TCP 传输控制协议 应用程序之间通信 建立的全双工通信
    • UDP 用户数据包协议 应用程序间简单通信
    • IP 网际协议 计算机之间的协议,寻址 无连接的,不占用通信线路
    • ICMP 因特网消息控制协议 针对错误和状态,处于IP层协议
    • DHCP 动态主机配置协议 针对动态寻址

    TCP/IP网络模型

    1. 应用层(ISO中的应用层,表示层,会话层)
      SMTP(电子邮件)、TELNET(远程终端接入)、HTTP(万维网)、FTP(文件传输)——————TCP
      DNS(域名转换)、TFTP(文件传输)、SNMP(网络管理)、NFS(远程文件服务器)——————UDP
    2. 传输层
      为数据加TCP,UDP头部
    3. 网络层
      为数据加IP头部,TCP/IP协议的核心,所有的TCP、UDP、IGMP、IMCP数据都以IP数据格式传递
    4. 网络接入层(称呼很多,ISO中数据链入层,物理层)
      这层负责将比特流封装成帧,把网络层数据报加上帧头帧尾,帧头包括源mac地址和目的mac地址,有差错检测

    IP数据包头部
    在这里插入图片描述
    IP数据包头部

    //IP数据包前20个字节固定,一般是20到60个字节
    TIPHeader = packed record
    iph_verlen: byte; // 版本和长度
    iph_tos: byte; // 服务类型
    iph_length: word; // 总长度,2个无符号字节所以只能65535
    iph_id: word; // 标识
    iph_offset: word; // 标志和片偏移
    iph_ttl: byte; // 生存时间
    iph_protocol: byte; // 协议
    iph_xsum: word; // 头校验和
    iph_src: longword; // 源地址
    iph_dest: longword; // 目的地址
    end;
    通常20个字节,最多不超过60个字节

    TCP数据包的头
    在这里插入图片描述
    TCP数据包的头部

    typedef struct _TCP_HEADER {
    USHORT nSourPort ; // 源端口号16bit
    USHORT nDestPort ; // 目的端口号16bit
    UINT nSequNum ; // 序列号32bit
    UINT nAcknowledgeNum ; // 确认号32bit
    USHORT nHLenAndFlag ; // 前4位:TCP头长度;中6位:保留;后6位:标志位16bit
    USHORT nWindowSize ; // 窗口大小16bit
    USHORT nCheckSum ; // 检验和16bit
    USHORT nrgentPointer ; // 紧急数据偏移量16bit
    } TCP_HEADER, *PTCP_HEADER ;
    一般是20个字节,加上option也不超过60个字节

    UDP数据包的头部
    在这里插入图片描述 UDP数据包的头部

    typedef struct _UDP_HEADER {
    USHORT nSourPort ; // 源端口号16bit
    USHORT nDestPort ; // 目的端口号16bit
    USHORT nLength ; // 数据包长度16bit
    USHORT nCheckSum ; // 校验和16bit
    } UDP_HEADER, *PUDP_HEADER ;
    一般8个字节

    DNS:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

  • 相关阅读:
    全能赛道、热门方向、稀缺数据,“嬴彻-清华AIR杯”自动驾驶技术大赛火热开赛中
    [论文分享] VideoFlow: A Flow-Based Generative Model for Video
    Vue+elementUI+ajax+java3层架构实现前后端分离踏坑总结+具体案例增删改查+批量删除+多条件查询+源码
    小程序 检测是否添加至我的小程序
    chrome浏览器关闭百度热搜——AdBlock插件
    无源供电无线测温系统的应用意义
    代码随想录算法训练营第23期day24|回溯算法理论基础、77. 组合
    require、loadfile、dofile、load、loadstring
    PMP 每日练习题打卡,11 月考试的宝子跟着我一起的打卡到吧
    读书笔记:Effective C++ 2.0 版,条款43(多继承)、条款44(概念明确)、条款45-50(杂项)
  • 原文地址:https://blog.csdn.net/chanlp129/article/details/126216059