笔记
文章平均质量分 66
oOoOoOooOO
这个作者很懒,什么都没留下…
展开
-
确认应答、Nagle算法和延时确认应答
确认应答TCP在传输数据的时候,每次接受方收到来自发送方的数据包后,接受方对都会发送一个确认应答(ACK)报文作为回应,发送方收到来自接受方的确认应答(ACK)报文,就表明发送的数据已经被对方收到。但是网络传输存在拥堵的情况,是很有可能出现"后来者居上"的情况,这个时候就不能只通过收到数据的顺序来的确定发送数据的情况。那有没有好的办法来解决这个问题? 通过序列号seq和确认序列号ack由于TCP是面向字节流传输的数据,所以序列号seq和确认序列号ack是以字节为单位进行编号的。针对每个字节分原创 2021-11-24 23:01:26 · 629 阅读 · 5 评论 -
Linux基础入门
Linux入门学习,基本Linux命令原创 2021-11-18 18:20:51 · 995 阅读 · 8 评论 -
TCP四次挥手详解
在开始之前可以先了解一下 TCP三次握手TCP四次挥手过程和状态变迁在断开连接之前客户端和服务器都处于ESTABLISHED状态,双方都可以主动断开连接,以客户端主动断开连接为优。第一次挥手:客户端打算断开连接,向服务器发送FIN报文(FIN标记位被设置为1,1表示为FIN,0表示不是),FIN报文中会指定一个序列号,之后客户端进入FIN_WAIT_1状态。也就是客户端发出连接释放报文段(FIN报文),指定序列号seq = u,主动关闭TCP连接,等待服务器的确认。第二次挥...原创 2021-11-13 23:00:03 · 61131 阅读 · 23 评论 -
TCP三次握手详解
准备工作进行连接能把三次握手改为两次握手吗?改为四次握手行不行?TCP第三次握手失败了怎么办?初始序列号ISN(Initial Sequence Number)是固定的吗?三次握手是否可以携带数据?SYN泛洪攻击TCP提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好通信两端之间的准备工作。准备工作TCP服务器先创建传输控制块TCB,时刻准备接收客户进程的连接请求,此时服务器处于LISTEN(监听)状态,客户端处于CLOSE(关闭)状态...原创 2021-11-10 16:59:21 · 12239 阅读 · 7 评论 -
IP协议数据报格式详解
????????写博客的主要原因是为了巩固所学知识????????IP数据报格式原创 2021-11-06 12:30:20 · 5469 阅读 · 12 评论 -
UDP协议解析
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????UDP协议简介UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Int原创 2021-11-02 20:38:00 · 5946 阅读 · 12 评论 -
TCP回显程序中的小细节
????????????????????????????????????????????????????????????????????????????????客户端代码public class TcpEchoClient { private String serverIp; private int serverPort; private Socket socket = null; public TcpEchoClient(String serverIp,原创 2021-10-28 17:00:55 · 1242 阅读 · 11 评论 -
关于hashCode
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????hashCode的定义首先要明白的是:hashCode是定义在Object类中的一个方法,通过调用该方法可以获取对象的散列码。hashCode的常规约定在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回原创 2021-10-28 12:09:13 · 207 阅读 · 1 评论 -
01 MySQL数据库第一站
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????tips : 由于MySQL不区分大小写,为增加可读性,故本文一律采用小写1. 显示当前数据库语法:show databases;????tips : 不要忘记加末尾的"原创 2021-09-24 18:22:31 · 2183 阅读 · 16 评论 -
Sqort函数实现结构数组的排序
struct test{ int id; char fanme[LEN]; char lname[LEN]; };int comp(const void *p1,const void *p2);int main(void){ struct test person[5] = { {5124,"C","C"}, {6471,"Anna","Ni"}, {7547,"XU","XU"}, {6666,"Black","dog"}, {1235,"Keep","Moving".原创 2021-07-27 19:02:59 · 213 阅读 · 0 评论 -
数组指针和指针数组
**(*p)[n]:**根据优先级,先看括号内,则p是一个指针,这个指针指向一个一维数组,数组长度为n,这是“数组的指针”,即数组指针;原创 2021-06-28 11:44:48 · 97 阅读 · 0 评论 -
2021-06-19
详解const int* p;int const *p;int *const p;const int *关于这几个令人头疼的数据定义可以用一个口诀就能解决:口诀:左数右指具体的意思如下:当const出现在号左边时指针指向的数据为常量当const出现在后右边时指针本身为常量1 从const int n 说起const int n=20,有了const修饰的n 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。n是不能在它处重新赋新值了。认识了const 作用之后,另外原创 2021-06-19 22:35:51 · 131 阅读 · 1 评论