HTTP
发送格式:

响应格式:

2024年3月31日...大约 16 分钟


在配置完git公钥之后,首次使用git从仓库拉取代码时,都会有如下提示:

问题:
在内核中,Socket是一个文件,对应一个文件描述符。文件描述符是一个整数,是描述符数组的下标值
每一个进程都有一个数据结构 task_struct,里面指向一个文件描述符数组,表示这个进程打开的所有文件的文件描述符
socket 对应的 inode 指向了 Socket 在内核中的 socket 结构
socket 结构有两个队列,即发送队列sk_write_queue和接收队列sk_recieve_queue
队列里面保存的是若干缓存 sk_buff,即套接字缓冲区
套接字缓冲区sk_buf里面存储的是包的信息
Socket相关结构:


内核缓冲区又叫做Linux系统的Page Cahe。
为了加快磁盘的IO,Linux系统会把磁盘上的数据以 Page为单位缓存在操作系统的内存里,这里的Page是 Linux 系统定义的一个逻辑概念,一个Page一般为4K
整个过程有四次数据拷贝,读进来两次,写回去又两次:
同步进行的。如果内核实现的拷贝效率很差,read调用就会在这个同步过程中消耗比较长的时间。BIO:1上阻塞2上也阻塞的是同步阻塞IONIO:1上非阻塞2阻塞的是同步非阻塞IO,Reactor就是这种模型AIO:1上非阻塞2上非阻塞是异步非阻塞IO,Proactor模型就是这种模型MAC层定义了本地局域网设备的传输行为IP层定义了整个网络端到端的传输行为传输层定义应用程序到应用程序的传输,基于端口区分MAC层叫帧Frame,IP层叫包Packet,包被分片后叫Fragment,传输层叫段SegmentIP to IP
设备 to 设备下一跳的地址工作原理:无脑广播,不管你需不需要,收到数据包就广播

