计算机网络
文章平均质量分 93
一起学习计算机网络
小呆鸟_coding
阿里云专家博主,在读机器人研究生,喜欢编程,通过写文章记录自己的生活,以及学习的点点滴滴。希望我们共勉。一起努力冲向远方
展开
-
【TCP四次挥手】
序列号,是 TCP 一个头部字段,标识了 TCP 发送端到 TCP 接收端的数据流的一个字节,因为 TCP 是面向字节流的可靠协议,为了保证消息的顺序性和可靠性,TCP 为每个传输方向上的每个字节都赋予了一个编号,以便于传输成功后确认、丢失后重传以及在接收端保证不会乱序。初始序列号,在 TCP 建立连接的时候,客户端和服务端都会各自生成一个初始序列号,它是基于时钟生成的一个随机数,来保证每个连接都拥有不同的初始序列号。原因一:防止历史连接中的数据,被后面相同四元组的连接错误的接收。TCP 有个保活机制。原创 2023-05-08 11:41:23 · 993 阅读 · 2 评论 -
【TCP三次握手】
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的;可靠的:TCP 都可以保证一个报文一定能够到达接收端;字节流:用户消息通过 TCP 协议传输时,消息可能会被操作系统「分组」成多个的 TCP 报文,如果接收方的程序如果不知道「消息的边界」,是无法读出一个有效的用户消息的。原创 2023-05-08 10:32:20 · 1149 阅读 · 0 评论 -
【TCP 重传、滑动窗口、流量控制、拥塞控制】
接收方,接收到数据后,进行响应,会发送给发送方自己的窗口大小,当发送方下次发送时,就会知道发送多少的数据,这就是流量控制。快速恢复算法是认为,你还能收到 3 个重复 ACK 说明网络也不那么糟糕,所以没有必要像 RTO 超时那么强烈。快速恢复算法过程中,为什么收到新的数据后,cwnd 设置回了 ssthresh?为什么要有拥塞控制呀,不是有流量控制了吗?和发送窗口有什么关系呢?那么怎么知道当前网络是否出现了拥塞呢?发生超时重传的拥塞发生算法。发生快速重传的拥塞发生算法。拥塞控制有哪些控制算法?原创 2023-05-06 22:37:09 · 1887 阅读 · 0 评论 -
【HTTPS】
【HTTPS】原创 2023-05-06 16:57:03 · 615 阅读 · 0 评论 -
【RPC、WebSocket】
于是我们会把每条要发送的数据都包装一下,比如加入消息头,消息头里写清楚一个完整的包长度是多少,根据这个长度可以继续接收数据,截取出来后它们就是我们真正要传输的消息体。字节流可以理解为一个双向的通道里流淌的数据,这个数据是二进制数据,简单来说就是一大堆 01 串。消息头,还可以放各种东西,比如消息体是否被压缩过和消息体格式之类的,只要上下游都约定好了,互相都认就可以了,这就是所谓的协议。该方法在远端服务器上暴露的一个方法,如果我们还能像调用本地方法那样去调用它,这样就可以屏蔽掉一些网络细节。原创 2023-05-06 15:16:28 · 1148 阅读 · 1 评论 -
【HTTP/1.1、HTTP/2、HTTP/3】
第一点:对于常见的 HTTP 头部通过静态表和 Huffman 编码的方式,将体积压缩了近一半,而且针对后续的请求头部,还可以建立动态表,将体积压缩近 90%,大大提高了编码效率,同时节约了带宽资源。不过,动态表并非可以无限增大, 因为动态表是会占用内存的,动态表越大,内存也越大,容易影响服务器总体的并发能力,因此服务器需要限制 HTTP/2 连接时长或者请求次数。第二点:HTTP/2 实现了 Stream 并发。原创 2023-05-06 11:49:25 · 2027 阅读 · 21 评论 -
【键入网址到网页显示】
协议栈的上半部分有两块,分别是负责收发数据的 TCP 和 UDP 协议,这两个传输协议会接受应用层的委托执行收发数据的操作。IP 下面的网卡驱动程序负责控制网卡硬件,而最下面的网卡则负责完成实际的收发操作,也就是对网线中的信号执行发送和接收操作。协议栈的下面一半是用 IP 协议控制网络包收发操作, IP 中还包括 ICMP 协议和 ARP 协议。通过 DNS 获取到 IP 后,就可以把 HTTP 的传输工作交给操作系统中的协议栈。HTTP 是基于 TCP 协议传输的。每次解析域名都要经过那么多的步骤呢?原创 2023-05-04 17:36:16 · 734 阅读 · 0 评论 -
【TCP/IP 网络模型】
比如 10.100.122.0/24,后面的/24表示就是 255.255.255.0 子网掩码,255.255.255.0 二进制是「11111111-11111111-11111111-00000000」一共24个1。,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是。当传输层的数据包大小超过。原创 2023-05-04 14:56:16 · 1641 阅读 · 0 评论