首页 > 其他分享 >小林图解网络-基础篇

小林图解网络-基础篇

时间:2023-10-03 21:11:41浏览次数:32  
标签:协议 UDP 中断 IP 网络 TCP 网卡 小林 图解

2.1 TCP\IP有哪几层

TCP、IP协议栈主要有应用层、传输层、网络层

它们的功能作用、拥有哪些协议?

应用层主要为用户提供服务,完成特定的功能。
场景的协议有HTTP、FTP、DNS

传输层主要提供应用进程之间的通信,以端口标识应用
主要协议有TCP、UDP协议

UDP提供不可靠、无连接的数据传输服务
TCP提供可靠的、面向连接的数据传输服务
TCP具有差错控制、超时重传、拥塞控制等功能

网络层主要传输端到端之间的数据,以IP地址标识设备,主要具有寻址、路由等功能
主要有IP协议、ICMP协议和ARP协议

网络接口层主要负责通信设备的数据传输,添加mac帧的帧头和帧尾

image

2.2 输入网址到网页显示之间发生了什么?

浏览器解析URL地址
通过DNS获得网络IP地址
通过系统调用socket库委托操作系统的协议栈工作,
协议栈包括TCP、UDP、IP协议
操作系统根据IP发起TCP请求,网卡发送数据帧,经由交换机、路由器等通信设备,达到服务器,
与之建立TCP连接
然后,将HTTP请求发送给服务器,服务器解析请求内容进一步处理,获得相应的数据,封装到HTTP响应中返回,显示在浏览器中。

2.3 Linux如何收发网络包?

linux的应用程序主要通过系统调用socket库,委托协议栈来进行网络通信
涉及的协议栈有TCP、UDP、IP、ICMP、ARP和MAC
TCP、UDP给应用数据加上端口信息头
IP给数据包加上IP头
网络接口层给数据加上帧头和帧尾

linux程序接受网络包时
网卡收到数据将其写在ring buffer 环形数据缓冲区,然后通过中断的方式通知操作系统,网络包已经到达
(现在通过DMA技术发起硬件中断通知CPU,CPU调用硬件中断处理函数,处理函数会先暂时屏蔽中断,然后调用软中断。软中断有装门的ksostirpd线程处理,通过轮询从Ring buffer中获得一个sk_buff,作为网络包交给协议栈处理)

image

linux程序发送网络包时

应用程序发送数据时,首先会进行系统调用,由用户态进入内核态,socket会将用户数据拷贝一份到内核空间sk_buff
TCP或UDP协议,加上端口信息,TCP为了后续可能超时重传会复制一次sk_buff
IP协议会对进行切片、加上ip头,
网络接口层会调用ARP协议获得下一条mac地址,封装帧头、帧尾
之后通过软中断,通知网卡进行发送,驱动会读取sk_buff将其挂载到RingBuffer中,再映射到DMA区域,由网卡进行发送

标签:协议,UDP,中断,IP,网络,TCP,网卡,小林,图解
From: https://www.cnblogs.com/qiuye98/p/17741656.html

相关文章

  • 网络设备ssh远程登录
    <Huawei>sysEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameroute[route]aaa[route-aaa]local-userdyhpasswordcipher         123创建用户dyh,密码123Info:Addanewuser.[route-aaa]local-userdyhservice-typessh  ......
  • 【网络篇】1-H3C实验室(HCL)与认识网络设备
    第1章 前言华三模拟器(HCL)提供的用于模拟和测试其网络设备和解决方案的软件工具。这些模拟器可以创建一个虚拟的网络环境,让用户在没有实际物理设备的情况下进行网络配置、测试和验证。用户可以使用这些模拟器进行网络设计、配置调试、性能测试和故障排除等操作。在本系列的网络技术......
  • 图解各种流行的网络协议 All In One
    图解各种流行的网络协议AllInOneNetworkprotocolsarestandardmethodsoftransferringdatabetweentwocomputersinanetwork.HTTP(HyperTextTransferProtocol)HTTPisaprotocolforfetchingresourcessuchasHTMLdocuments.Itisthefoundationofa......
  • 网络编程之Socket
    在之前的文章《网络编程杂谈之TCP协议》中,我们阐述了TCP协议的基本概念,TCP作为一种可靠的、面向连接的数据传输协议,确保了数据在发送和接收之间的可靠性、顺序性和完整性,特点可以概括如下:1、面向连接:在进行数据传输之前,TCP需要客户端和服务器之间建立一个连接,这个连接包括一系列......
  • Linux(CentOS7)定时执行任务Crond详细说明&操作图解
    一、Cron服务1)概念介绍cron是服务名称。crond是后台进程,用来执行脚本,在系统中一直会运行。crontab是一个工具,用来管理定时任务列表,定制好的计划任务,需要启动crond服务(系统默认安装),crond服务是通过crontab命令实现。2)crontab工作运行linux后,开机自启动crond任务,系统会每分钟......
  • 102 网络
    1.......
  • 天线去耦网络的意义
    1、天线去耦网络的意义大多数无线系统天线单元的都尽可能的松散排布,其相互之间的间隔足够大,因此天线间的互耦效应较弱。但是在手机等移动终端,由于空间狭窄,天线单元之间间距很小,从而会产生强烈的电磁耦合。研究表明,当天线间的间距小于或等于信号波长的一半时,接收天线上所收到的信......
  • 内网穿透:实现远程访问和测试内部网络的关键技术
    ......
  • 彻底弄懂ip掩码中的网络地址、广播地址、主机地址
    本文为博主原创,转载请注明出处:概念理解:IP掩码(或子网掩码)用于确定一个IP地址的网络部分和主机部分。它是一个32位的二进制数字,与IP地址做逻辑与运算,将IP地址划分为网络地址和主机地址两部分。在理解IP地址段中的网络地址、广播地址和主机地址之前,首先需要了解IP地址的构......
  • 2023ICPC网络赛第二场
    2023ICPC网络赛第二场MDirtyWork解题思路:算出解决每道题的时间的期望,升序排序,前缀和累加即可。时间复杂度:\(O(nlogn)\)代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;typedefpair<int,int>pii;#definefi#defineseintn;voidsolv......