1、计算机网络

计算机网络体系结构:

现在多是参考(c)五层协议。

每层比较常见的协议:

常见的协议
应用层 DNS、FTP、TELNET、HTTP、SMTP、POP3、DHCP、SNMP
运输层 TCP、UDP     
网络层 IPv4、IPv6、ICMP、ICMPv6、ARP、MPLS
数据链路层(MAC) CSMA/CD、PPP
物理层 以太网、调制解调器、电力线通信(PLC)、光纤、同轴电缆、双绞线

2、数据链路层(MAC层)

以太网V2的MAC帧格式:

MAC帧头部结构体定义:

// u_char:   1字节,8位
// u_short: 2字节,16位
// u_int:   4字节,32位// 以太网帧数据头部 - 固定 14 个字节
typedef struct ethernet_header
{u_char dest_mac[6];    // 目的地址(MAC地址)u_char  src_mac[6];     // 源地址(MAC地址)u_short    type;// 类型字段,用来标志上一层使用的协议,以便把MAC帧数据交给上一层的这个协议(IP:0x0800; )
}ETHERNET_HEADER;

3、网络层

IP数据包的格式:

首部长度的单位为32位字(4 bytes),所以需要 *4 计算有多少个字节长度。

总长度的单位为字节。

IP数据包头部结构体定义:

// 网络层 IP数据包 首部 - 固定 20 个字节
typedef struct ip_header
{u_char     ver_ihl;// 版本(4 bits)+首部长度(4 bits), 首部长度单位是32位字,所以需要 *4 计算有多少个字节u_char      tos;// 区分服务(Type of Service, 8 bits)u_short       tlen;// 总长(Total Length, 16 bits),=首部长度+数据长度,最大为65535字节(2^16-1)u_short      identify;// 标识(Identify, 16 bits),IP软件在存储器中维持的一个计数器,每产生一个数据包,计数器就加1(不是序号)u_short      flags_fo;// 标志位(Flags 3 bits)+段偏移量(Fragment offset 13 bits)u_char      ttl;// 存活时间(Time to Live, 8 bits)u_char       proto;// 协议(Protocol, 8 bits),指出此数据报携带的数据是何种协议,以便目的主机IP层知道应将数据交由哪个协议进行处理u_short        crc;// 首部校验和(Header checkSum, 16 bits)u_long      src_addr;// 源地址(Source Address, 32 bits)u_long        des_addr;// 目的地址(Destination Address, 32 bits)//u_int     op_pad; // 选项与填充(Option * Padding, 32 bits)
}IP_HEADER;

4、传输层

传输层主要有UDP协议以及TCP协议。

4.1 UDP协议

UDP时面向报文的:

UDP用户数据的首部格式:

长度:UDP用户数据报的长度(首部 + 数据部分),单位为字节。

UDP数据包头部结构体定义:

// 传输层 UDP数据包 首部 - 固定首部 8 个字节
typedef struct udp_header
{u_short    src_port;   // 源端口(Source Port, 16 bits)u_short    des_port;   // 目的端口(Destination Port, 16 bits)u_short len;        // UDP数据包长度(Datagram Length, UDP用户数据包的长度,单位为字节)u_short crc;        // 校验和(CheckSum, 16 bits)
}UDP_HEADER;

4.2 TCP协议

TCP报文段的首部格式:

需要注意的是,“数据偏移”实际上就是TCP报文首部的长度,单位为 32位字(4 bytes)

TCP数据包头部结构体定义:

// 传输层 TCP数据包 首部 - 固定首部 20 个字节
typedef struct tcp_header
{u_short    src_port;// 源端口(2 bytes = 16 bits)u_short    des_port;// 目的端口(2 bytes = 16 bits)u_int   seq_num;// 序号(4 bytes = 32 bits)u_int    ack_num;// 确认号(4 bytes = 32 bits)u_short hl_resv;// 首部长度(4 bits)+保留(6 bits)+ URG + ACK + PSH + RST + SYN + FIN(各 1 bit)u_short    wind;// 窗口(2 bytes = 16 bits)u_short check_sum;// 校验和(2 bytes = 16 bits)u_short ur_point;// 紧急指针(2 bytes = 16 bits)//u_int op_pad; // 选项与填充(Option * Padding, 32 bits)
}TCP_HEADER;

计算机网络 - UDP/TCP、IP、MAC报文协议格式相关推荐

  1. TCP/IP 主要报文头格式

    TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍.在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式.我们知道TCP/IP协议采用分层结构,其分层模型及协议 ...

  2. TCP/IP篇(1)--协议模型

    TCP/IP参考模型分为四个层次:应用层.传输层.网络互连层和主机到网络层. (1)主机到网络层:实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口, ...

  3. 计算机网络(OSI、TCP/IP、网络协议、常见网络设备工作原理)

    目录 OSI模型 TCP/IP模型 网络协议 IP协议 IP数据报格式 IP数据报分片 IPv4地址 NAT协议 ARP/RARP协议 ARP RARP DHCP协议 ICMP协议 ICMP差错报告报 ...

  4. 通俗地、有效地学习计算机网络(TCP/IP)

    目录 前情提要 关于通信&组网 通信 组网 OSI模型 同层通信(横向) 不同层通信(纵向) 实际中网络模型 TCP/IP基础知识 TCP/IP分层模型 硬件.物理层 网卡.数据链路层 互联网 ...

  5. TCP/IP通俗易懂网络协议

    昨晚在一个博主那里看懂一篇关于TCP/IP通俗易懂网络协议的文章,感觉写的非常不错,在这里就顺便做一下笔记吧.... 最简单的理解:TCP面向连接的,可靠的数据传输,建立连接需要三次握手,会造成del ...

  6. 计算机网络之TCP/IP

    计算机网络之TCP/IP OSI网络结构的七层模型 通俗理解 这个模型推出的最开始,是是因为美国人有两台机器之间进行通信的需求. 需求1: 科学家要解决的第一个问题是,两个硬件之间怎么通信.具体就是一 ...

  7. 【计算机网络】TCP/IP四层模型和OSI七层模型

    文章目录 一.TCP/IP四层模型和OSI七层模型关系 二.TCP/IP四层模型 三.OSI七层模型 四.GET和POST的区别 五.从输入网址到页面展示的过程 六.详细过程 一.TCP/IP四层模型 ...

  8. 常见TCP/IP、HTTP协议以及三次握手和四次挥手

    面试常见TCP/IP.HTTP协议以及三次握手和四次挥手 IP(Internet Protocol):网际协议 IP协议是用于将多个包交换网络连接起来的,它在源地址和目的地址之间传送一种称之为数据包的 ...

  9. TCP/IP体系结构常用协议总结

    TCP/IP体系结构常用协议总结 文章目录 TCP/IP体系结构常用协议总结 1.简介 2.协议 2.1应用层协议 2.1.1POP3协议 2.1.2FTP协议 2.1.3HTTP协议 2.1.4Te ...

  10. udp tcp ip 校验和对比

    首先TCP,UDP,IP三个协议中校验和都占16位,也就是两个字节. UDP的校验和结算相对简单.首先UDP报文长度不是确定的,所以计算校验和前要先将报文的末尾用'0'补齐.使报文为偶数个字节. 发送 ...

最新文章

  1. android Style(样式)的解析
  2. Python夺冠,老牌编程语言该走向何方?网友:崩溃
  3. Qt / 动态的切换控件样式的方法
  4. 从零开始配置MySQL MMM
  5. EBITDA的计算公式
  6. 二十三 常量池作为同步对象可能造成困惑
  7. html无限弹窗关不掉,使用cmd命令时出现无限弹窗的故障如何终止
  8. 弹性系数和线径的计算公式_压缩弹簧弹力、刚度计算公式
  9. 手机投屏到电脑完美教程,安卓和苹果用户均可使用
  10. 关于卸载office的问题:office无法卸载的办法(附office安装和注册表查看)
  11. PSI_压力阻塞信息
  12. dubbo学习笔记(一)——dubbo的作用及简单应用
  13. suse日志服务器配置
  14. ubuntu介绍以及使用
  15. SiteFactory支持ppt一键上传
  16. java的像素与dpi_对屏幕的理解---分辨率,dpi,ppi,屏幕尺寸,像素 等
  17. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇8、无缝镶嵌产品生产
  18. 数据库完整性之参照完整性
  19. Hive desc详解
  20. HVF5220-4D-03,HVF3230-3G-02先导型二位五通电磁阀

热门文章

  1. bmp图片转换成16进制数据
  2. WinCap数据包显示
  3. idea破解(到2100年)
  4. 【无线电】无线电频谱和波段划分
  5. Kafka 数据丢失问题
  6. 高考数学必考知识点数学高考常考考点
  7. 考研英语(四)——名词性从句
  8. jeecms系统使用介绍——通过二次开发实现对word、pdf、txt等上传附件的全文检索
  9. 彻底关闭Windows DefenderWindows 更新
  10. 利用shell脚本解决区块链Fabric学习时下载Docker镜像失败和费时问题