基于LINUX内核中的TCPIP的核心过程分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于LINUX内核中的TCPIP的核心过程分析

已完成--基于LINUX内核中的TCP/IP的核心过程分析 在我的博客中的《如何从应用程序进入linux内核》日志中我详细分析了Unix的socket的创建、发送、接收、关闭的过程,而你看到下边这些文章是基于IPV4的追踪分析的过程。从围绕着服务器端的socket的建立--监听--接收连接--客户端发送连接请求--与服务器对接--数据接收--数据发送整个过程为主线分析。本文是核心过程分析所以重点对内核的代码进行剖析,在另一篇中《TCP/IP协议内核源码分析》中将完善理论及协议方面的内容,希望大家多提宝贵的意见,使本文成为一部经典的学习材料。 ·内核中的TCP的追踪分析-1-追踪TCP(IPV4)的socket的初始化 ·内核中的TCP的追踪分析-2-追踪TCP(IPV4)的socket的创建 ·内核中的TCP的追踪分析-3-TCP(IPV4)的socket的地址绑定 ·内核中的TCP的追踪分析-4-TCP(IPV4)的socket的地址绑定-续 ·内核中的TCP的追踪分析-5-再谈TCP(IPV4)的socket的地址绑定 ·内核中的TCP的追踪分析-6-TCP(IPV4)的socket的监听 ·内核中的TCP的追踪分析-7-TCP(IPV4)的socket接收连接 ·内核中的TCP的追踪分析-8-TCP(IPV4)的socket连接 ·内核中的TCP的追踪分析-9-TCP(IPV4)的socket连接-续1 ·内核中的TCP的追踪分析-10-TCP(IPV4)的socket连接-续2 ·内核中的TCP的追踪分析-11-TCP(IPV4)的socket连接-续3 ·内核中的TCP的追踪分析-12-TCP(IPV4)的socket连接-续4 ·内核中的TCP的追踪分析-13-TCP(IPV4)的socket连接-续5 ·内核中的TCP的追踪分析-14-TCP(IPV4)的客户端与服务器端socket连接过程-1 ·内核中的TCP的追踪分析-15-TCP(IPV4)的客户端与服务器端socket连接过程-2 ·内核中的TCP的追踪分析-16-TCP(IPV4)的客户端与服务器端socket连接过程-3 ·内核中的TCP的追踪分析-17-TCP(IPV4)的客户端与服务器端socket连接过程-4 ·内核中的TCP的追踪分析-18-TCP(IPV4)的客户端与服务器端socket连接过程-5 ·内核中的TCP的追踪分析-19-TCP(IPV4)的服务器端数据的接收 ·内核中的TCP的追踪分析-20-TCP(IPV4)的服务器端数据的接收-续 ·内核中的TCP的追踪分析-21-TCP(IPV4)的客户端数据的发送 ·内核中的TCP的追踪分析-22-TCP(IPV4)的客户端数据的发送-续 内核中的TCP的追踪分析-1-追踪TCP(IPV4)的socket的初始化 在我的博客中的- 如何从实践引领进入linux内核类别日志中我详细分析了Unix的socket的创建、发送、接收、关闭的过程,这节开始进入探讨IPV4的TCP的socket的创建,我们在linux/unix的socket从实践到内核分析部分?/u2/64681/showart.php?id=1287300中看到了关于socket的系统调用的总入口函数sys_socketcall()然后根据 ????case SYS_SOCKET: ????????err = sys_socket(a0, a1, a[2]); 进入sys_socket()函数 asmlinkage long sys_socket(int family, int type, int protocol) { 。。。。。。 ????retval = sock_create(family, type, protocol, sock); 。。。。。。 ? } 再进入sock_create()最后进入__sock_create(),然后在那里执行 err = pf-create(net, sock, protocol); 这个过程我们在socket的实践到内核开始都追踪过了,不再细说了,我们这里直接从ipv4的socket的创建开始说起,我们回忆一下在有关的重要记忆点首先是net_families这个管理所有的网络协议的数组,我们说过在__sock_create()会在支持动态安装模块的前提下首先调用 ????if (net_families[family] == NULL) ????????request_module(net-pf-%d, family); 也就是检查相应的协议有没有安装,我们在实践练习中曾经在创建socket用过这句 server_sockfd = s

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档