51CTO订阅专栏 庖丁解牛Linux网络核心 ...

小程序订阅 省¥12

15篇  338人已订阅

专栏介绍

本专栏从理解和应用socket网络编程接口开始我们的探索之路,以Linux网络核心代码运作机制为例,从socket接口的系统调用、内核处理过程中socket接口层代码、UDP和TCP的协议处理过程、IP数据的选路及路由表的代码实现、ARP及ARP缓存表、二层交换网络中的学习转发即过滤数据库等互联网底层架构的核心机制贯通起来。


并通过DNS域名解析过程从整体上梳理互联网底层结构的工作过程,通过网络协议栈在Linux内核线程中的协作机制从系统层面理解协议之间的数据传递和协作。最后对互联网架构设计背后的渊源进行了讨论。


专栏入口


专栏订阅成功后,即可通过以下4个途径永久阅读

1.“51CTO订阅专栏”小程序端

2.“51CTO”微信服务号端

3.“51CTO博客”web端

4.“51CTO学院”Android App端

适用人群

1.网络软件工程师
2.网络运维工程师
3.对互联网底层运作机制感兴趣的爱好者

作者介绍

51CTO孟宁

人气5648 文章1 粉丝371

孟宁 高校教师/资深码农
主讲课程获国家精品在线开放课程认定,在读行学/网易云课堂/学堂在线/实验楼等在线教育平台累计注册学员10万+人次
在Linux内核、互联网架构、软件工程、区块链、人工智能等技术领域兴趣广泛,与华为、IBM等多家国内外知名企业/创业公司有技术合作
曾出版著作《庖丁解牛Linux内核分析》和《区块链投资实操——数字货币、钱包、项目策划、投资与风险》

订阅说明

1.本专栏为图文专栏,共计15篇
2.专栏定期更新,更新频次为每周1-2篇
3.专栏一经订阅永久阅读,可与作者留言互动
4.本专栏为虚拟产品,一经订阅,概不退款,请慎重订购
5.专栏阅读过程中,如有任何问题请联系51CTO小助手(微信:cto51boke/QQ:3591348659)

学习本专栏您能收获什么

1.从整体上理解互联网运作的方式;
2.能分析上网打开一个网页的过程中互联网底层具体做了哪些工作,从而在遇到网络相关问题时能独立分析定位问题;
3.由于我们涉及的实验都是在Linux系统完成的,您还会进一步熟悉Linux系统;
4.分析Linux内核中网络部分当然也少不了对网络协议及RFC文档的讨论,相信您也能对网络标准有更多的了解。

专栏目录

  • 序:从理解和应用socket网络编程接口开始我们的探索之路

    学习要由浅入深、由易到难,分析Linux内核中网络部分就要从内核对外提供的socket封装接口说起,我们以TCP协议C/S方式socket通信过程作为起点。

  • 1.构建调试Linux内核网络代码的环境MenuOS系统

    将C/S方式的网络通信程序的服务端程序集成到MenuOS系统中,成为MenuOS系统的一个命令,跟踪分析MenuOS在执行这这个命令的过程中对Linux内核发出的系统调用请求,以及与socket接口函数的关系。

  • 2.Socket接口对应的Linux内核系统调用处理代码分析

    理解Linux内核中socket接口层的代码,找出112号系统调用socketcall的内核处理函数sys_socketcall,理解socket接口函数编号和对应的socket接口内核处理函数的对应关系,为进一步理解网络协议处理过程找到入口点。

  • 3.初始化MenuOS系统的网络功能

    搞清楚如何激活Linux网络设备,并将MenuOS系统的网络设备用简便的方式配置好,使我们将TCP客户端也集成进去后可以完整的运行TCP网络程序的服务端和客户端程序

  • 4.Linux内核源代码简介

    Linux内核源代码简介前面跟踪分析Sockt接口层的代码,已经先动手了解了Linux内核源代码,但要继续深入还需要全面了解Linux内核源代码的结构,以便能从总体上看到网络核心部分在整个内核中所处的位置。

  • 5.Linux内核初始化过程中是如何加载TCP/IP协议栈的?

    Linux内核初始化过程中加载TCP/IP协议栈,从start_kernel、kernel_init、do_initcalls、inet_init,找出Linux内核初始化TCP/IP的入口位置,即为inet_init函数。

  • 6. TCP的三次握手源代码跟踪分析

    本文从TCP的基本概念和TCP三次握手的过程入手,结合客户端connect和服务端accept建立起连接时背后的完成的工作,在内核socket接口层这两个socket API函数对应着sys_connect和sys_accept函数,进一步对应着sock->opt->connect和sock->opt->accept两个函数指针,在TCP协议中这两个函数指针对应着tcp_v4_connect函数和inet_csk_accept函数,进一步触及TCP数据收发过程tcp_transmit_skb和tcp_v4_rcv函数,从整体上理解TCP协议栈向上提供的接口和向下提供的接口。

  • 7.敢问路在何方?—— IP协议和路由表

    IP协议和路由表是整个互联网架构的核心基础设施,从本文开始我们将深入理解互联网架构的核心,其中包括IP协议和路由表是核心中的核心,本文将从IP地址及无类别区间路由CIDR谈起,先从原理上理解选路路由的方法,然后再阅读Linux内核中IP协议相关的代码,原理和代码相互印证,感兴趣的同学还可以基于我们的MenuOS进一步跟踪分析路由表查询相关的代码。

  • 8.网络层与链路层的中间人——ARP协议及ARP缓存

    路由选择得到输出结果是下一跳Next-Hop的IP地址和网络接口号,但是在发送IP数据包之前还需要得到目的MAC地址,这就需要用到ARP(Address Resolution Protocol)地址解析协议了。ARP用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位),也就是将路由选择得到输出结果下一跳Next-Hop的IP地址通过查询ARP缓存得到对应的目的MAC地址。

  • 9.以太网数据帧的格式及数据链路层发送和接收数据帧的处理过程分析

    前面我们重点分析了网络层,其中包括IP协议、路由选择、ARP协议和地址解析。地址解析之后的下一步就是数据链层的工作了。数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。

  • 10.路由器的原理及Linux实现 更新中

    10.路由器的原理及Linux实现

  • 11.交换机的原理及Linux实现 更新中

    11.交换机的原理及Linux实现

  • 12.CDN内容分发网络的原理和实现 更新中

    12.CDN内容分发网络的原理和实现

  • 13.SDN软件定义网络的原理和实现 更新中

    13.SDN软件定义网络的原理和实现

  • 14.互联网架构设计背后的渊源 更新中

    14.互联网架构设计背后的渊源

试读 ¥51.00/永久订阅

已自动为您匹配最优优惠券

不使用优惠券

总金额:¥51.00

去支付
¥39 拼团价

您可以通过以下途径参加拼团

参团方式一:手机扫码(建议iOS终端

参团方式二:小程序

加入作者互动群

和作者近距离提问 &交流 &互动

扫描二维码 回复 ZL032 + 昵称 入群