All too well

TCP的拥塞控制机制

【网络协议 14】TCP的拥塞控制机制✅ 前言 计算机网络中的带宽、交换节点中的缓存和处理机等,都是网络的资源,在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞。 所谓拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路不致过载。要注意用拥塞控制与流量控制的区别,拥塞控制是一个全局性的过程,涉及到所有的额主机、...

TCP的流量控制机制

【网络协议 12】TCP的流量控制机制✅ 一般来说,我们总是希望数据传输的更快一些,但如果发送方把数据发送的很快,而接收方来不及接收,这就可能造成数据的丢失。流量控制就是让发送方的发送速率不要太快,让接收方来得及接收。 对于成块数据流,TCP 利用滑动窗口机制来实现流量的控制,对于交互数据流,TCP利用捎带ACK和Nagle算法来实现流量的控制。 后两种就不说了,上篇博文中将已经写得比...

TCP 的交互数据流和成块数据流

【网络协议 11】TCP 的交互数据流和成块数据流✅ 前言 建立在 TCP 协议上的应用层协议有很多,如 FTP、HTTP、Telnet等,这些协议根据传输数据的多少可以分为两类:交互数据类型和成块数据类型。 交互数据类型,如:Telnet,这类协议一般只做小流量的数据交换,比如每按下一个键,要回显一些字符。 成块数据类型,如:FTP,这类协议需要传输的数据比较多,一般传输的...

TCP协议简介

【网络协议 10】TCP协议简介✅ 本文只是对TCP协议做个简要的介绍。 TCP 协议,即传输控制协议,与UDP协议同处于传输层,同样使用相同的网络层,但 TCP 提供了一种可靠的、面向连接的数据传输服务,它会在两个使用 TCP 的应用之间建立一个 TCP 连接,在该连接上进行数据的传输。 TCP 通过以下方式提供可靠性: 应用程序被分割成 TCP 认为最合适发送的数据块。这点...

UDP协议

【网络协议 9】UDP协议✅ UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都会产生一个UDP数据报,并组装成一份待发送的IP数据报,这与面向字节流的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系(主要是在传输层就进行分段了,因此不会受IP分片的影响)。 UDP的首部一共8个字节,很简单,可以参考书上,这里也不再详说。 UDP 的校验...

TCP分段与IP分片

【网络协议 8】TCP分段与IP分片✅ 我们在学习 TCP/IP 协议时都知道,TCP 报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样 IP 数据报在长度超过一定值时也会发生分片,在接收端再将分片重组。 我们先来看两个与 TCP 报文段分段和IP数据报分片密切相关的概念。 MYU(最大传输单元) MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为...

ICMP 协议、Ping、Traceroute

【网络协议 7】ICMP 协议、Ping、Traceroute ✅ ICMP 协议 ICMP 经常被认为是IP层的一个组成部分,它是网络层的一个协议,它传递差错报文以及其他需要注意的信息,ICMP 报文通常被 IP 层或更高层(TCP、UDP等)使用,它是在 IP 数据报内传输的。 ICMP 报文大致分为两类:查询报文和差错报文。 先来看差错报文。当传送 IP 数据报发生错误时(比如...

TCP中的四大定时器

【网络协议 13】TCP中的四大定时器✅ 前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器。 重传定时器 很明显重传定时器是用来计算TCP报文段的超时重传时间的(至于超时重传时间的确定,这里涉及到一大堆的算法,书上有说,我这里不细谈了)。每发送一个报文段就会启动重传定时器,如果在定时器时间到后还没收到对该报文段的确认,就重...

IP协议、ARP协议、RARP协议

【网络协议 6】IP协议、ARP协议、RARP协议✅ IP数据报 IP是 TCP/IP 协议族中最核心的协议,所有的 TCP、UDP、ICMP、IGMP 数据都以 IP 数据报的格式传输。IP 仅提供尽力而为的传输服务,如果发生某种错误,IP 会丢失该数据,然后发送 ICMP 消息给信源端。另外,IP 数据报可以不按发送顺序接受。 IP数据报的格式如下: 前20字节和紧接其后的选...