上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 47 下一页
摘要: 1 前言 这节我们来看个问题,就是 有 accept,能建立 TCP 连接吗? 2 刨析 下面这个动图,是我们平时客户端和服务端建立连接时的代码流程。 对应的是下面一段简化过的服务端伪代码。 int main() { /*Step 1: 创建服务器端监听socket描述符listen_fd*/ li 阅读全文
posted @ 2023-07-18 06:13 酷酷- 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 服务端没有 listen,客户端发起连接建立,会发生什么? 为服务端没有调用 listen,客户端会 ping 不通服务器,如果你这么想那你就搞错了。 ping 使用的协议是 ICMP,属于网络层的事情,而问的方向是传输层的问题。 针对这个问题,服务端如果只 bi 阅读全文
posted @ 2023-07-17 06:20 酷酷- 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TCP 和 UDP 可以使用同一个端口吗? 关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题: 多个 TCP 服务进程可以同时绑定同一个端口吗? 重启 TCP 服务进程时,为什么会出现“Address in use”的报错信息?又该怎么避免? 客户端 阅读全文
posted @ 2023-07-17 06:19 酷酷- 阅读(250) 评论(0) 推荐(1) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TCP 协议有什么缺陷? 很多同学第一反应就会说把 TCP 可靠传输的特性(序列号、确认应答、超时重传、流量控制、拥塞控制)在应用层实现一遍。 实现的思路确实这样没错,但是有没有想过,既然 TCP 天然支持可靠传输,为什么还需要基于 UDP 实现可靠传输呢?这不是 阅读全文
posted @ 2023-07-16 12:31 酷酷- 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TCP 协议有什么缺陷? TCP 通过序列号、确认应答、超时重传、流量控制、拥塞控制等方式实现了可靠传输,看起来它很完美,事实真的是这样吗?TCP 就没什么缺陷吗? 所以,今天就跟大家聊聊,TCP 协议有哪些缺陷?主要有四个方面: 升级 TCP 的工作很困难; T 阅读全文
posted @ 2023-07-16 12:31 酷酷- 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗? 事实上,这两个完全是两样不同东西,实现的层面也不同: HTTP 的 Keep-Alive,是由应用层(用户态) 实现的,称为 HTTP 长连接; TCP 的 Keepalive,是由  阅读全文
posted @ 2023-07-16 12:30 酷酷- 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 HTTPS 中 TLS 和 TCP 能同时握手吗? 通常情况下,HTTPS 建立连接的过程,先进行 TCP 三次握手,再进行 TLS 四次握手,比如,下面这个 TLSv1.2 的 基于 RSA 算法的四次握手过程: 不过 TLS 握手过程的次数还得看版本。 TLS 阅读全文
posted @ 2023-07-14 06:33 酷酷- 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 拔掉网线后, 原本的 TCP 连接还存在吗? 可能有的同学会说,网线都被拔掉了,那说明物理层被断开了,那在上层的传输层理应也会断开,所以原本的 TCP 连接就不会存在的了。就好像, 我们拨打有线电话的时候,如果某一方的电话线被拔了,那么本次通话就彻底断了。 真的是 阅读全文
posted @ 2023-07-14 06:33 酷酷- 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TCP 连接,一端断电和进程崩溃有什么区别? 这个属于 TCP 异常断开连接的场景,这部分内容在我的「图解网络」还没有详细介绍过,这次就乘着这次机会补一补。 这个问题有几个关键词: 没有开启 keepalive; 一直没有数据交互; 进程崩溃; 主机崩溃; 我们先 阅读全文
posted @ 2023-07-13 07:40 酷酷- 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们来看个问题,就是 TIME_WAIT 状态持续时间过短或者没有,会有什么问题? 或者net.ipv4.tcp_tw_reuse 参数可以快速复用处于 TIME_WAIT 状态的 TCP 连接,那为什么 Linux 默认是关闭状态呢?也就是为什么要保留这个 TIME_WAIT 状态呢 阅读全文
posted @ 2023-07-13 07:28 酷酷- 阅读(72) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 47 下一页