• 协议栈处理过程


    下面是解释协议栈处理过程

    发送数据的时候,先套接字,有套接字队列。                             // socket module      
    然后调用套接字模块,将数据放到对应的套接字发送队列。tcp模块会为每一个tcp     // tcp module   
    链接建立tCB(传输控制块),用来控制tcp的发送队列,窗口,拥塞,当tcp模块收到     
    来自套接字的消息时,就会根据相应的TCB信息,加头部信息,封装tcp报文,加入tcp
    发送队列。然后是IP模块,收到TCP发送消息时,同样会添加IP头部,封装成IP数     // ip module      
    据报,同时根据目的IP地址查询路由表找到下一跳IP地址和出口,并加入IP发送队列。
    ip模块调用网络接口层的write()函数,来完成IP数据报的发送和接收。它将帧放入        
    if发送队列,通过网卡输出程序将队列中的帧发送。  
     // ip module->Network interface layer write 
    网卡收数据放到if队列,产生中断,操作系统开始工作,CPU执行中断处理程序,   //  if send queue
     // if receive queue then,interrupt                                                                 
    根据中断向量码执行收到数据后,软中断IP模块,开始自下而上传送,先ip,看ip address// ip rout table                       
    find rout table 选择丢弃还是转发,收下后,中断tcp模块,然后到达网络接口层,最后    
    转移到应用程序。         // tcp module->tcp queue
  • 相关阅读:
    点评cat系列-服务器开发环境部署
    [FreeRTOS].FreeRTOS CortexM3 M4中断优先级设置总结
    [FreeRTOS]FreeRTOS使用
    [Ethernet].以太网总线详解
    [USB].USB总线详解
    [CAN].CAN总线详解
    [LIN].LIN总线详解
    [SDIO].SDIO总线详解
    [eMMC]eMMC读写性能测试
    [通信]Linux User层和Kernel层常用的通信方式
  • 原文地址:https://www.cnblogs.com/shenxiaodou/p/12608027.html
Copyright © 2020-2023  润新知