计算机网络
文章平均质量分 75
记录个人计算机网络的学习
你好,此用户已存在
苍山负雪,明烛天南
展开
-
TCP数据粘包问题
我们进行已经例子进行问题说明。软件琛琛是属于应用层上的。而"李东","亚健康终结者"这两条消息在进入传输层时使用的是传输层上的 TCP 协议。消息在进入传输层(TCP)时会被切片为一个个数据包。这个数据包的长度是MSS。那么当李东在手机上键入"李东""亚健康终结者"的时候,在 TCP 中把消息分成 MSS 大小后,消息顺着网线顺利发出。网络稳得很,将消息分片传到了对端手机 B 上。经过 TCP 层消息重组。变成"李东亚健康终结者"这样的字节流(stream)。但由于聊天软件琛琛。转载 2024-08-04 12:06:17 · 59 阅读 · 0 评论 -
select、poll、epoll三种IO多路复用的原理及其区别
参考。原创 2024-04-27 00:46:23 · 1001 阅读 · 0 评论 -
HTTP常见状态码
该类状态码属于,协议处理的中间状态,实际用到的比较少。原创 2024-03-30 00:27:21 · 440 阅读 · 0 评论 -
linux查看socket信息
是一个用于显示网络相关信息的命令行工具。它可以显示当前系统的网络连接状态、路由表、接口统计信息等。如,查看所有的tcp连接。原创 2024-02-26 10:07:42 · 534 阅读 · 0 评论 -
c++ muduo网络库源码编译安装
一个基于reactor反应堆模型的多线程C++网络库。muduo网络库是C++语言开发的一个非常优秀的网络库,作者陈硕,muduo网络库在多线程环境下性能非常高,该系列文章会分享一些muduo库源码的知识,包括它的线程池源码,TcpServer源码,还有很多muduo库应用的示例代码等,学习一下作者优秀的C++多线程网络编程设计思想。muduo库源码github仓库地址muduo库是基于boost开发的,所以需要先在Linux平台上安装boost库,安装过程参考我的另一篇博客1.拷贝源码文件。转载 2024-01-18 11:12:02 · 164 阅读 · 0 评论 -
使用muduo库编写网络server端
运行server端之后,再打开一个终端,运行telnet命令作为客户端进行测试。muduo库源码编译安装和环境搭建。打开一个linux终端写下编译命令。原创 2024-01-17 18:04:21 · 810 阅读 · 0 评论 -
《计算机网络-自顶向下》wireShark实验-第二章:http
当客户端第一次获取资源时,服务器会在响应头中包含这个字段。客户端可以将这个时间戳保存起来,以便在下次请求时使用IF-MODIFIED-SINCE字段进行条件请求。原创 2023-12-07 12:19:08 · 2775 阅读 · 0 评论 -
tcp四次挥手过程
第一次挥手,客户端主动关闭连接,发送FIN报文段,即置tcp报文头的FIN字段为1,表示我要断开连接了。此后进入FIN_WAIT1状态 第二次挥手,服务端收到客户端的FIN报文段,对其进行响应,之后进入CLOSE_WAIT状态,等待服务端的连接断开 第三次挥手,服务端在处理完数据之后,也向客户端发送FIN报文段,表示服务端的数据已经处理完毕,也可以断开连接了,此后进入LAST_ACK状态 第四次挥手,客户端在收到服务端的断开连接之后,对服务端的FIN报文段进行响应,之后进入TIME_WAIT状原创 2023-12-06 23:37:20 · 389 阅读 · 0 评论 -
TCP连接为什么是三次握手,而不是两次和四次
上述提到,三次握手可以同步双方的初始序号,其实四次握手也可以,但是在四次握手的过程可以完全优化为三次握手,如下图所示,因此就成了三次握手。接下来我们来针对这种情况进行分析,来说明三次握手为什么可以拒绝旧的历史请求(也就是上述所说的,旧的SYN报文段)呢(因为对新的连接请求进行响应才是客户端需要的,但是服务端该如何拒绝旧的响应),由于tcp在面对失序报文段情况下,只对连续收到的最新序号进行回应,因此。可见,序列号在 TCP 连接中占据着非常重要的作用,所以当。,以表示请求服务端连接,但是。原创 2023-12-02 20:18:26 · 1402 阅读 · 0 评论 -
TCP与UDP的区别
TCP UDP 连接 传送数据前要先建立连接 无需建立连接直接传送数据 服务对象 一对一 一对多、多对一、多对多 可靠性 可靠交付(保证数据包的无差错、不失序、不丢包、不重复) 尽最大努力交付,不保证可靠性(但我们可以基于UDP协议实现一个可靠传输协议,如QUIC协议) 拥塞控制与流量控制 有,可保证数据的安全 无,即使网络拥堵,也不会影响UDP的发送速率(因为UDP发送方不会等待对方确认或重传数据) 首部开销 固定长度原创 2023-12-02 19:08:07 · 669 阅读 · 0 评论 -
TCP三次握手过程
tcp是一个的传输层通信协议。原创 2023-12-01 23:46:16 · 1252 阅读 · 0 评论 -
进程信号(牛客版)
未决信号集:内核中所有没有被处理的信号,标志位为1表示该信号待处理 阻塞信号集合:用于说明未决信号集中响应的信号是否被阻塞,标志位为1表示该信号处于阻塞中未决信号集中的信号只有处于没有被阻塞的情况下才能被处理在 C++ 中,自定义信号集通常是通过使用 POSIX 标准库中的函数来实现的。下面是一些与自定义信号集相关的常用函数:sigemptyset:用于初始化一个空的信号集。sigfillset:用于将所有信号添加到信号集中。sigaddset:用于将指定的信号添加到信号集中。原创 2023-10-20 00:46:03 · 138 阅读 · 0 评论 -
IO多路复用
nfds是要监听的最大文件描述符值加 1。readfds是一个指向fd_set结构体的指针,表示需要监听可读事件的文件描述符集合。writefds是一个指向fd_set结构体的指针,表示需要监听可写事件的文件描述符集合。errorfds是一个指向fd_set结构体的指针,表示需要监听错误事件的文件描述符集合。timeout是超时时间,用于设置select函数的阻塞时间。fd_set结构体通过使用位图的方式表示文件描述符集合,可以使用以下宏来操作fd_set:将指定的fd_set。原创 2023-10-16 22:33:26 · 54 阅读 · 1 评论 -
Linux网络编程(牛客版)
字节在内存中存储的顺序方向:从左往右增长,原创 2023-10-06 10:49:57 · 156 阅读 · 1 评论