摘要: 我们可以看到,TCP 的三次握手完全是在内核中实现的,对上层应用来讲完全是透明的。上层应用只负责收发数据,并不知道底层发生了什么哦。 这样三次握手完了,可以看到三次握手,也就是建立连接时,双方交换三个报文。为什么是三次,这主要是为了防止已失效的连接请求报文段又传送到服务器端 而产生差错。 在正常情况 阅读全文
posted @ 2019-03-25 22:43 水果无味~ 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 当服务器端接收到该报文后,处理流程和上边一样,会唤醒阻塞在该sock 上的接口,通知进程可以对该文件进行读写。 下面服务器端会调用 accept 函数,该函数的主要作用是从已经实现过三次握手的sock 中取出一个sock,来进行通信。 至此双方的 sock 都处于 TCP_ESTABLISHED 状 阅读全文
posted @ 2019-03-25 22:20 水果无味~ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 当发现 tcp 头部的 ACK 为 1 ,则进入下面函数处理 ,重点看一下:tcp_finish_connect sock状态改变时调用,比如从TCP_SYN_SENT或TCP_SYN_RECV变为TCP_ESTABLISHED, sock状态改变时调用,比如从TCP_SYN_SENT或TCP_SY 阅读全文
posted @ 2019-03-25 22:07 水果无味~ 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 上一步分析到,服务器端将客户端发送的sk_buff,里面sock->sk_state 修改为 TCP_SYN_RECV,然后将该数据包发送给客户端。 接下来,我们进一步分析,客户端接收到来自服务器端的tcp报文后,会发生什么。 客户端处理该报文的顺序和服务器端处理该报文的顺序是一致的,为什么,因为他 阅读全文
posted @ 2019-03-25 09:52 水果无味~ 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 最后看一下这个函数 将客户端发起连接请求的报文修改一下,发回给客户端。 阅读全文
posted @ 2019-03-24 23:48 水果无味~ 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 服务器端在接收到一个sk_buff 以后,会调用函数 tcp_v4_rcv ,进入传输层处理 在该处理函数中 会调用以下函数 其中 sk 为客户端的 sock ,真很好理解,在客户端填充 sk_buff 后,会给 sk_buff 的成员赋予本地的 sock 结构体。 找到客户端的 sock 后。进入 阅读全文
posted @ 2019-03-24 22:49 水果无味~ 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 很幸运,在华为的上机考试中一道题,也没有做,然后就去参加面试,鬼知道时怎么回事,方正比其他人幸运多了。 但可悲的是二面没过,天哪,我知道是什么原因,我先简单谈一谈我的面试经历。 第一面的时候,起始很随意,就考察一些基本知识,没有什么难度,然后讲一讲自己的项目经历,这些都挺简单的,过了一面,然后做了下 阅读全文
posted @ 2019-03-24 21:10 水果无味~ 阅读(3068) 评论(0) 推荐(0) 编辑
摘要: 跟着李航干了差不多有半年了,我简单谈一谈我的收获吧。 我个人觉得自己是那种比较笨的人,唯一支撑我做一件事做下去的理由就是热情,这也是我在反思的东西。把很多精力花在了本来不应该花的地方,浪费了好多时间,我觉得我以前做事情的时候,没有考虑到我最后想要一个什么样的结果,凡是没有规划。 我做了三件事,第一件 阅读全文
posted @ 2019-03-06 17:37 水果无味~ 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Linux 设备模型中有最重要的四个基本概念 : device bus class Linux 认为总线是 CPU和其他设备的通信的通道。基于设备模型,linux 认为所有的设备都需要和总线连接. 阅读全文
posted @ 2019-03-03 21:02 水果无味~ 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 今天觉得情绪比较低落吧,可能要很多原因。 我可能一直在给自己编制一个美好的未来,可能就我目前的现状来看。今天和老师说话的时候,我真的不知道我自己在说什么,甚至于我以为我自己讲的很好,后来发现这完全时胡扯。我说我跟着他学习的目标就是让自己对着门课有个更深层次的认识,甚至于能够在这里面发现多学科交叉的地 阅读全文
posted @ 2018-10-15 20:27 水果无味~ 阅读(107) 评论(0) 推荐(0) 编辑