企业网站建设的本质及特点福田网页设计
2026/1/12 8:29:34 网站建设 项目流程
企业网站建设的本质及特点,福田网页设计,交互设计主要做什么,网站推广seo方法数据封包拆包与协议一、Socket 发送函数详解send() 函数ssize_t send(int sockfd, const void *buf, size_t len, int flags);参数解析#xff1a;sockfd#xff1a;socket 函数返回的文件描述符#xff08;旧fd#xff09;buf#xff1a;要发送的消息缓冲区len#xff1…数据封包拆包与协议一、Socket 发送函数详解send()函数ssize_t send(int sockfd, const void *buf, size_t len, int flags);参数解析sockfdsocket 函数返回的文件描述符旧fdbuf要发送的消息缓冲区len要发送的消息长度字节数flags发送方式标志0正常发送阻塞MSG_DONTWAIT非阻塞发送MSG_OOB发送带外数据紧急数据返回值成功实际发送的字节数失败-1示例char msg[] Hello Server; int ret send(sockfd, msg, strlen(msg), 0); if (ret -1) { perror(send failed); }connect()函数int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);功能客户端主动连接服务器发起 TCP 三次握手参数解析sockfd本地 socket 创建的套接字 IDaddr目标服务器的地址信息addrlen地址结构体的长度返回值成功0失败-1示例struct sockaddr_in server_addr; server_addr.sin_family AF_INET; server_addr.sin_port htons(8080); server_addr.sin_addr.s_addr inet_addr(192.168.1.100); if (connect(sockfd, (struct sockaddr*)server_addr, sizeof(server_addr)) -1) { perror(connect failed); }二、网络协议分层与数据封装数据包封装过程应用层数据 → TCP/UDP头部 → IP头部 → MAC头部 → 物理信号1. MAC 头部数据链路层作用局域网内设备间的寻址包含源MAC地址、目标MAC地址大小14字节2. IP 头部网络层struct ip_header { uint8_t version:4; // IP版本IPv44 uint8_t ihl:4; // 头部长度 uint8_t tos; // 服务类型 uint16_t total_len; // 总长度 uint16_t id; // 标识符 uint16_t frag_off; // 分片偏移 uint8_t ttl; // 生存时间 uint8_t protocol; // 上层协议TCP6, UDP17 uint16_t checksum; // 校验和 uint32_t src_addr; // 源IP地址 uint32_t dst_addr; // 目标IP地址 };关键字段解释ttl生存周期默认64数据每经过一个路由器减1为0时丢弃ip_flagD是否允许分片0允许1不允许M是不是最后一片0最后1还有3. TCP 头部传输层struct tcp_header { uint16_t src_port; // 源端口 uint16_t dst_port; // 目标端口 uint32_t seq_num; // 序列号 uint32_t ack_num; // 确认号 uint8_t data_offset:4; // 数据偏移 uint8_t reserved:4; // 保留位 uint8_t flags; // 标志位 uint16_t window; // 窗口大小 uint16_t checksum; // 校验和 uint16_t urgent_ptr; // 紧急指针 };TCP 标志位URG ACK PSH RST SYN FIN ↑ ↑ ↑ ↑ ↑ ↑ 紧急 确认 推送 重置 同步 结束详细解释AACK确认位表示确认号有效PPSH推送位要求立即传递数据给应用层RRST重置位强制断开连接SSYN同步位建立连接请求FFIN结束位断开连接请求4. UDP 头部struct udp_header { uint16_t src_port; // 源端口 uint16_t dst_port; // 目标端口 uint16_t length; // UDP数据包长度 uint16_t checksum; // 校验和 };TCP vs UDP特性TCPUDP连接面向连接无连接可靠性可靠有重传不可靠可能丢包速度较慢较快头部大小20字节8字节应用场景文件传输、网页浏览视频流、DNS查询三、Wireshark 网络抓包工具使用步骤# 1. 启动Wireshark需要管理员权限 sudo wireshark # 2. 选择网络接口 # - 本机通信loopback # - 外网通信ens33以太网 # - 不确定时any捕获所有接口常用过滤条件wireshark# 按IP地址过滤 ip.addr 192.168.1.100 # 显示该IP的所有数据包 ip.src 192.168.1.100 # 显示该源IP的数据包 ip.dst 192.168.1.100 # 显示该目标IP的数据包 # 按端口过滤 tcp.port 80 # TCP端口80HTTP udp.port 53 # UDP端口53DNS tcp.port 443 # TCP端口443HTTPS # 按协议过滤 http # 只显示HTTP协议 dns # 只显示DNS协议 tcp # 只显示TCP协议 # 组合过滤 ip.addr 192.168.1.100 and tcp.port 80分析TCP三次握手1. [SYN] 客户端 → 服务器我想连接 2. [SYNACK] 服务器 → 客户端我准备好了你呢 3. [ACK] 客户端 → 服务器我也准备好了开始通信四、HTTP 协议详解HTTP 简介用途网页浏览数据传输性质应用层协议基于 TCP特点无状态、请求-响应模式WWW万维网全称World Wide Web作用互联网上的信息资源集合URL统一资源定位符格式http://主机名:端口号/路径?查询参数#片段标识示例http://news.sohu.com:80/news/index.html?id123#section1默认端口HTTP80可省略HTTPS443可省略示例http://www.example.com/ # 使用默认端口80 https://www.example.com/ # 使用默认端口443 http://www.example.com:8080/ # 指定端口8080五、HTTP 通信步骤1.HTTP 请求报文格式请求行 请求头部 空行 请求正文2. 请求示例GET /index.html HTTP/1.1 ← 请求行 Host: www.example.com ← 请求头开始 User-Agent: Mozilla/5.0 Accept: text/html Accept-Language: zh-CN Accept-Encoding: gzip Connection: keep-alive ← 空行头部结束 请求正文GET通常没有3、HTTP请求头字段详解请求行GET /index.html?namevalue HTTP/1.1 ↑ ↑ ↑ 方法 资源路径查询参数 协议版本方法GET获取、POST提交、PUT更新、DELETE删除查询参数?key1value1key2value22. Host字段Host: news.sohu.com作用指定虚拟主机一个IP多个网站必需HTTP/1.1要求必须包含3. User-Agent字段User-Agent: Mozilla/5.0 (Windows NT 10.0) Chrome/142.0.0.0作用告诉服务器客户端信息包含操作系统、浏览器、版本等4. Accept系列字段Accept: text/html,application/xml;q0.9 ← 内容类型 Accept-Encoding: gzip, deflate ← 压缩方式 Accept-Language: zh-CN,zh;q0.9 ← 语言偏好q参数权重值0-1越大优先级越高5. Connection字段Connection: keep-alive作用控制TCP连接是否保持keep-alive长连接可发送多个请求close短连接一个请求后就断开六、学习总结核心知识点数据封装应用层 → 传输层 → 网络层 → 链路层TCP特性连接、可靠、有序、流式协议头部理解各层协议字段含义抓包分析使用Wireshark调试网络程序HTTP协议无状态、请求-响应、基于TCP实践建议使用Wireshark抓包分析自己的程序实现简单的HTTP客户端编写处理TCP粘包的解包函数分析不同应用的网络协议特点

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询