数据包结构
| 以太网首部 | 长度 14 Byte |
| IPv4首部 | 长度 20+ Byte |
| TCP首部 | 长度 20+ Byte |
| 自定义应用层协议 | 长度 N Byte |
| 以太网尾部 | 长度 4 Byte |
以太网首部
+------------------------+
| Destination MAC (6B) |
| Source MAC (6B) |
| Type (IPv4, 2B) |
+------------------------+
IPV4首部
+-------+-------+--------+------------------------+
| Version(4b) | IHL(4b)| TOS(8b) | Total Length (16b) |
| Identification(16b) | Flags(3b) | Fragment Offset(13b) |
| TTL(8b) | Protocol(8b) | Header Checksum (16b) |
| Source IP Address (32b) |
| Destination IP Address (32b) |
+---------------------------------------------------+
TCP首部
+------------------------+------------------------+
| Source Port (16b) | Destination Port (16b) |
| Sequence Number (32b) |
| Acknowledgment Number (32b) |
| Data Offset(4b) |Reserved(3b)|Flags(9b)|Window Size(16b)|
| Checksum (16b) | Urgent Pointer (16b) |
| Options (if any) |
+---------------------------------------------------+
Websocket帧
+------------------------+------------------------+
| FIN(1b), RSV1-3(3b), Opcode(4b) | Mask(1b), Payload Length(7b/16b/64b) |
| Masking Key (if Mask is set, 32b) |
| Payload Data (masked, if Mask is set) |
+---------------------------------------------------+
以太网尾部
+------------------------+
| FCS (4B) |
+------------------------+
OSI七层模型
开放式系统互联模型(Open System Interconnection Model)
| 因特网协议栈中的层 | Code | 说明 |
|---|---|---|
| 物理层 | physical layer | 在局部局域网上传送数据帧。 例如调制解调器、无线电、光纤 |
| 数据链路层 | data link layer | 数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP |
| 网络层 | network layer | 网络表头(NH)决定数据的路径选择和转寄。 例如IP、ICMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 |
| 传输层 | transport layer | 传输表头(TH)包含了所使用的协议等发送信息。 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL |
| 会话层 | session layer | 在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。 例如ASAP、ISO 8327 / CCITT X.225、RPC、NetBIOS、Winsock、BSD sockets、SOCKS、密码验证协议 |
| 表示层 | presentation layer | 把数据转换为能与接收者的系统格式兼容并适合传输的格式。 例如JPEG、ASCII、UTF-8 |
| 应用层 | application layer | 提供为应用软件而设的接口。 例如:HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP、TLS |