![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
韩运畅
这个作者很懒,什么都没留下…
展开
-
客户端请求需要携带几个参数
原创 2020-11-22 17:33:55 · 230 阅读 · 0 评论 -
从网卡收到电信号到应用层拿到数据
不考虑零拷贝这种优化技术总体的流程应该是这样的网卡收到电信号,转成信息,传入网卡缓存细节见书,《网络是怎样连接的》 ,6.2节对于网卡接收数据的描述网卡中断cpu,cpu调用网卡驱动程序讲数据读入内核,对应的数据结构是input_pkt_queue见链接博客当操作系统一直运行在中断上下文中时,也就是说一直处于内核态,每层协议栈可能会将下层的数据复制到自己的空间,也可能只是操作指针就好了。我比较倾向于第二种,当然ip分片重组不可避免地要copy数据。数据从内核中copy到用户空原创 2020-11-22 17:13:02 · 395 阅读 · 0 评论 -
为什么有了交换机还要路由器?
这个问题的核心点在于为什么要有网络层这个概念,交换机是工作在链路层的,路由器工作在网络层。让我们回到起点,假如只有小规模的计算机,他们都通过一个交换机连接是可以正常工作的。那么当计算机数量增多呢,增多到几十亿台,一个交换机绝对不能完成工作,这时候最自然的想法是将大规模的计算机切分成若干小规模的网络,这些网络中的计算机由集线器连接。那么,问题来了,如果想要跨网络访问呢,最自然的想法是,在集线器的上层有一个器件,记录各个网络中的mac地址,当需要跨网络访问时查询该期间然后进入对应的网络,但是问题时当数量上升到原创 2020-11-21 11:41:37 · 4024 阅读 · 0 评论 -
TCP为什么是面向连接的,为什么是面向数据流的
tcp的核心是它要提供一个可靠的传输协议。第一个问题: tcp如果想要提供一个可靠的传输协议,一定需要每次都建立连接吗?三 次招手的意义在于让通信两端确定,信息刚才是可以从任意一端传到另 一端的。如果传送数据前我们没有三次招手。那么,由于tcp是一个可靠 的传输协议,所以一定会提供超时重试的机制,而且允许的重试的次数 应该不只是一次或两次那么少。那么问题来了,如果刚一开始通信两端 其实就是不通的,上来就刷刷发送数据,但是一直收不到ack,然后就一 直重试知道达到重试次数。这样原创 2020-10-28 20:59:05 · 2043 阅读 · 0 评论 -
实际窗口=MIN(cwnd,awnd)
发送端实际发送的窗口大小是接收端通知窗口与拥塞窗口的最小值,其中tcp数据格式中的win字段是指的通知窗口其中的win字段就是说我这边可用的缓存空间原创 2020-07-20 14:32:04 · 609 阅读 · 0 评论