随笔分类 - 网络编程
1
一些网络基础。
网络编程知识点。
摘要:前言 主要分析网络接口概念、网卡数据结构、网络接口、环回接口实现等等。 参考: 本文:https://www.cnblogs.com/lizhuming/p/16642648.html 李柱明笔记汇总:https://www.cnblogs.com/lizhuming/p/16557045.html
阅读全文
摘要:前言 本笔记主要记录lwip框架部分,目的是为了对lwip的源码实现有初步了解,方便后面细节分析。 参考: 本文:https://www.cnblogs.com/lizhuming/p/16634848.html 李柱明笔记汇总:https://www.cnblogs.com/lizhuming/p
阅读全文
摘要:前言 了解了lwip的内存管理后,接下来就是网络数据包的了解。 注意与内部lwip消息的区别:网络数据包用于网络数据的流转,而内部lwip消息用于内部协作。 本篇开始,结合源码独立分析lwip,逐步拆解lwip开源库。 参考: 本文:https://www.cnblogs.com/lizhuming
阅读全文
摘要:前言 李柱明博客:https://i.cnblogs.com/posts/edit-done;postId=15487160 正文 在多网卡编程时,指定使用特定的网卡,通过 bind(); 绑定就可以了。 注意:原理是在 connect(); 里面会轮询网卡链表,找出 IP 对应的网卡进行连接。 如
阅读全文
摘要:前言 本笔记记录 lwip 源码基础内容 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487094.html 概念&作用 网络接口 概念引入 网络接口(以太网接口)是硬件接口(网络接口又可以称之为网卡)。 LWIP 是软件那么而怎样让硬件和软件无缝连接起来
阅读全文
摘要:前言 想说的: 内存的动态申请&释放最重要的参考是指针; 申请得到的内存返回的是可用空间的其实地址(指针); 释放时也是传入该地址(指针)让内部算法进行释放。 一般这些地址前面部分是内存分配器管理的空间,用于管理本小段内存。 李柱明博客:https://www.cnblogs.com/lizhumi
阅读全文
摘要:前言 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487055.html 2. 三种编程接口 RAW/Callback API NETCONN API SOCKET API 2.1 RAW/Callback API 内核回调型的 API。 这种 API 可
阅读全文
摘要:前言 本系列笔记主要记录学习LWIP时的简单笔记。 方便以后用到可以快速学习了解。 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487034.html 1.1 优缺点 LwIP 具有主要特性: 支持 ARP 协议(以太网地址解析协议)。 支持 ICMP 协
阅读全文
摘要:前言 主要记录 https 加速的优化手段。 李柱明博客:https://www.cnblogs.com/lizhuming/p/15486943.html HTTPS 的连接很慢 https 步骤简要划分 HTTPS 连接大致分为两个部分: 非对称加密握手(TLS 握手); 对称加密报文传输。 平
阅读全文
摘要:前言 主要记录TCPIP一些小笔记 说明: demo 基于 Linux。 TCP/IP 网络编程笔记散集 快速入门: I/O 缓冲: I/O 缓冲在每个 TCP 套接字中单独存在。 I/O 缓冲在创建套接字时自动生成。 即使关闭套接字也会继续传递输出缓冲中遗留的数据。 关闭套接字将丢失输入缓冲中的数
阅读全文
摘要:前言 说明: demo 基于 Linux。 8. 套接字的多种选项 一般创建好套接字后直接使用即可,有些配置是默认的,当然也可以通过以下修改。 8.1 API getsockopt(); & setsockopt(); /* sock: 用于查看选项套接字文件描述符 level: 要查看的可选项协议
阅读全文
摘要:前言 说明: demo 基于 Linux。 7. 域名与网络地址 本节主要记录三个名词:DNS、域名及IP。 7.1 IP IP地址:网络层的主机地址。老生常谈啦。 目前分为IPV4和IPV6。 如百度的地址之一:202.108.22.5 7.2 域名 域名就是IP的别名吧,因为人类对数字的记忆较难
阅读全文
摘要:前言 说明: demo 基于 Linux。 6. TCP 的半关闭 关闭套接字API有: close():单方面全断开。 shutdown():可选断开某个流。 6.1 何为半关闭 如图分为输入流和输出流两个流,关闭其一就是半关闭。 6.2 半关闭解决的用途 单方面断开可能带来的问题如图: 主机A发
阅读全文
摘要:前言 说明: demo 基于 Linux。 5. UDP 网络编程 UDP 是无连接的,不需要建立连接。 5.1 UDP 的工作原理 参考图: 主机B的数据包中包含目的主机的IP+端口号。 其中IP是把数据的目的主机地址,端口号是目的主机对用的程序。 路由器小知识: IP:主机地址。如目的IP,每个
阅读全文
摘要:前言 说明: demo 基于 Linux。 4. I/O 缓冲 在 李柱明博客-TCP/IP TCP详细笔记 理论基础上补充一些关于网络编程的细节。 4.1 TCP 套接字中的 I/O 缓冲 TCP 套接字的数据收发无边界。 服务器即使调用 1 次 write 函数传输 A 个字节的数据,客户端也有
阅读全文
摘要:前言 说明: demo 基于 Linux。 3. 地址族与数据序列 // 调用 bind 函数分配IP地址和端口号。 // 成功时返回0,失败时返回-1 #include <sys/socket.h> int bind(int sockfd, struct sockaddr *myaddr, soc
阅读全文
摘要:前言 说明: demo 基于 Linux。 建议直接参考实例。 2. 套接字类型与协议设置 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/15149522.html 2.1 套接字协议及数据传输特性 2.1.1 创建套接字API API: /* 成功时返回
阅读全文
摘要:前言 说明: demo 基于 Linux。 1. 快速入门 以下步骤简略了很多细节,但是通过下面的几个函数就能构建出简单的TCP/IP网络编程demo了。 原文:李柱明博客 1.1 服务端编程简要步骤 网络编程中和接受连接请求的套接字创建过程可整理如下: 第一步:调用 socket 函数创建套接字。
阅读全文
摘要:前言 本笔记记录 MQTT 相关概念。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/14994943.html 1. MQTT 简介 MQTT(Message Queuing Telemetry Transport)是运行在 TCP/IP 中的应用层协议
阅读全文
1