- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
socket
既能读又能写,就是全双工ECE: 为1时,表示网络拥堵
URG: 为1时,表示包中需要紧急处理的数据,
ACK: 为1时,确认应答的字段变为有效
PSH: 为1时,需要将收到的数据立刻传入上层应用协议,为0时,则不需要立刻传而是先进行缓存
RST: 为1时,表示与TCP连接中出现异常必须强制断开连接,复位报文段
SYN: 为1时,表示希望建立连接.带SYN标识的称为同步报文段
FIN: 为1时,表示不会再有数据发送,希望断开连接.带FIN标识的为结束报文段
在TCP中,当发送端发送一个数据到主机中时,接收端就会返回一个已收到的消息通知,这个消息通知就叫确认应答(ACK)
例如,小明跟小强聊天,
小明 -> 小强 : 明天出去玩?
小明 <- 小强 : 收到!
小明 <- 小强 : 明天没时间.
小明 -> 小强 : 收到!
刚刚的情况可能会发生丢包的情况: ① 发送端丢包 ② 确认应答丢包
重发超时就是指 在重发数据之前,等待确认应答到来的那个特定时间间隔.如果超过了这个时间间隔还未收到确认应答就会进行数据重发.
但是数据也不会被无限的重发,达到了一定的次数之后,如果仍然没有有任何确认应答,就会判断网络或者对端主机发生了异常,强制关闭连接.
例如: 丢包的概率位 10%
第一次丢包 10%
第二次丢包 10% * 10% = 1%
第三次丢包 10% * 10% * 10% = 0.1%
丢包次数太多,概率太小,就是别的问题了.
可以使用TCP首部用于控制的字段来管理TCP连接. 一个连接的建立与断开,正常过程至少需要来回发送7个包才能完成(三次握手,四次挥手).
为了解决(TCP以一个段位单位发送.这样的通信性能就大大降低了.)这个问题,引入了窗口.
在这种情况下,数据已经到达了对端,此时就不需要再进行重发.如图
这里看出就算丢了1001的ACK,2001的ACK,后面收到了3001的ACK的时候,也会知道收到了数据,就不会受影响.
如果发送端主机如果连续3次收到同一个确认应答,就会将其所对应的数据进行重发.这种机制比超时管理更高效,称为高速重发控制
接收端处理数据的速度是有限的。如果发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发
送端继续发送,就会造成丢包,继而引起丢包重传等等一系列连锁反应。
为了防止这种现象,TCP提供了一种机制可以让发送端根据接收端的实际接收能力控制发送的数据量。这就是流量控制。
在网络出现拥堵时,如果突然发送一个较大量的数据,极有可能会导致整个网络的瘫痪。
TCP为了防止这个问题,在通信一开始就会通过一个叫作 慢启动 的算法得出的数值,对发送数据量进行控制。
当网络通畅时,就逐渐加大发送速率
当网络出现丢包的时候,就立即降低发送速率
真实窗口大小 = min(流量窗口,拥塞窗口)
接收数据的主机如果每次都立刻回复确认应答的话,可能会返回一个较小的窗口.那是因为刚接收完数据,缓冲区已满.
当某个接收端收到这个小窗口的通知以后,会以它为上限发送数据,从而又降低了网络的利用率,
为此引入了一个方法,那就是收到数据后并不立即返回确认应答,而是延迟一段时间的机制.
TCP文件传输中,绝大多数是每两个数据段返回一次确认应答
在延迟应答的基础上,我们发现,很多情况下,客户端服务器在应用层也是 “一发一收” 的。意味着客户端给服务器说了 “How are you”,服务器也会给客户端回一个 “Fine, thank you”;
那么这个时候ACK就可以搭顺风车,和服务器回应的 “Fine,thank you” 一起回给客户端
在通信中,TCP的确认应答和回执数据可以通过一个包发送.
由于这种情况,四次挥手有可能会变成三次,
进程终止会释放文件描述符,仍然可以发送FIN。和正常关闭没有什么区别
和进程终止的情况相同.(可能四次挥手没有挥完)
一、http和https的基本概念 http:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输
1. IP 1.1 IP 首部的格式 版本: 表示的是 IP 首部的版本号. IPv4 的版本号为 4 首部长度: 当没有可选项时, IP 首部的长度为 20 字节. 服务类型: 由8位组成,3位优先
1. 网络编程 1.1 什么是网络编程 网络编程 : 指网络上的主机,通过不同的进程,以编程的方式实现网络通信. 简单来说: 网络编程就是通过代码的方式来控制不同进程间能够进行数据交互. 1.2 发送
1. 初始网络 计算机网络,根据其规模可分为WAN ( Wide Area NetWork, 广域网) 和 LAN ( Local Area Network, 局域网). 1.1 局域网LAN 一栋楼
1. 网络编程 1.1 什么是网络编程 网络编程 : 指网络上的主机,通过不同的进程,以编程的方式实现网络通信. 简单来说: 网络编程就是通过代码的方式来控制不同进程间能够进行数据交互. 1.2 发送
1. 初始网络 计算机网络,根据其规模可分为WAN ( Wide Area NetWork, 广域网) 和 LAN ( Local Area Network, 局域网). 1.1 局域网LAN 一栋楼
1. IP 1.1 IP 首部的格式 版本: 表示的是 IP 首部的版本号. IPv4 的版本号为 4 首部长度: 当没有可选项时, IP 首部的长度为 20 字节. 服务类型: 由8位组成,3位优先
📒博客首页:崇尚学技术的科班人 小肖来了🏇 🍣今天给大家带来的文章是《【面试题】计算机网络 -- 常见面试题总结》🍣 🍣希望各位小伙伴们能够耐心的读完这篇文章🍣 🙏博主也在学习阶段,如若
介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM
介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM
1. HTTP 协议介绍 基本介绍: HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文
1. UDP 1.1 UDP 首部的格式 源端口号: 发送端端口号 目的端口号: 接收端端口号 UDP长度: 整个UDP的首部长度 与 数据的长度之和 校验和: 检测UDP数据报文在传输过程中是否有错
大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never
大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never
大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never
1. 了解 HTTP 协议 1.1 HTTP 是什么 HTTP (HyperText Transfer Protocol, 超文本传输协议) 是一种应用非常广泛的 应用层协议. 所谓 “超文本” 的含
1. UDP 1.1 UDP 首部的格式 源端口号: 发送端端口号 目的端口号: 接收端端口号 UDP长度: 整个UDP的首部长度 与 数据的长度之和 校验和: 检测UDP数据报文在传输过程中是否有错
1. 了解 HTTP 协议 1.1 HTTP 是什么 HTTP (HyperText Transfer Protocol, 超文本传输协议) 是一种应用非常广泛的 应用层协议. 所谓 “超文本” 的含
大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never
抱歉,这个问题可能很愚蠢,但是 Kbps/...(千比特每秒和千字节每秒)是如何计算的?我现在有这样的计算: DWORD ibytesin=0,ibytes_sttime=0,ibytes_st=0,
我是一名优秀的程序员,十分优秀!