Linux内核--网络协议栈(一)Socket通信原理和实例讲解

目录

一、引言
二、Socket
------>2.1、socket编程
------>2.2、Socket的创建
三、收发数据
四、断开连接
五、删除套接字
六、网络 IO

一、引言

本章开始进入linux内核中网络部分的学习,先简单介绍一下socket套接字

二、Socket

一个数据包经由应用程序产生,进入到协议栈中进行各种报文头的包装,然后操作系统调用网卡驱动程序指挥硬件,把数据发送到对端主机。整个过程的大体的图示如下。
在这里插入图片描述
我们大家知道,协议栈其实是位于操作系统中的一些协议的堆叠,这些协议包括 TCP、UDP、ARP、ICMP、IP等。

通常某个协议的设计都是为了解决某些问题,比如 TCP 的设计就负责安全可靠的传输数据,UDP 设计就是报文小,传输效率高,ARP 的设计是能够通过 IP 地址查询物理(Mac)地址,ICMP 的设计目的是返回错误报文给主机,IP 设计的目的是为了实现大规模主机的互联互通。

应用程序比如浏览器、电子邮件、文件传输服务器等产生的数据,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/328050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

特斯拉难挽倒退?比亚迪为中国汽车市场改写历史

对于电动汽车这个新兴产业,特斯拉长期以来一直处于领头羊的位置,近年来也面临诸多测试。去年底欧洲报道特斯拉在瑞典遭遇罢工冲击,运营陷入诸多困扰,实在出人意料。更让人讶异的是,年终宣布新王者比亚迪在全球销量首次…

配色方案的参考

一、好的配色方案 这篇文章的第三和第四部分——单配色 https://zhuanlan.zhihu.com/p/621445823 这篇文章的配色方案—组合配色 https://zhuanlan.zhihu.com/p/498789884 常用色 二、调色板界的palettable也可以参考、可以用在seaborn上

OpenCV的安装和vscode的配置

在图像处理领域,OpenCV的使用是必不可少的,这里介绍一下OpenCV的安装及其在vscode中的配置 1.OpenCV的安装 (1)安装依赖 sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavc…

VS Code结合Live Server插件快速搭建小游戏并发布至公网可随时远程访问

文章目录 前言1. 编写MENJA小游戏2. 安装cpolar内网穿透3. 配置MENJA小游戏公网访问地址4. 实现公网访问MENJA小游戏5. 固定MENJA小游戏公网地址 前言 本篇教程,我们将通过VS Code实现远程开发MENJA小游戏,并通过cpolar内网穿透发布到公网,分…

RDD入门——RDD 代码

创建RDD 程序入口 SparkContext val conf new SparkConf().setMaster("local[2]").setAppName(spark_context") val sc: SparkContext new SparkContext(conf) SparkContext 是 spark-core 的入口组件,是一个 Spark 程序的入口,在 Sp…

RocketMQ源码 发送顺序消息源码分析

前言 rocketmq 发送顺序消息和普通消息的主流程区别大部分一致的,区别在于:普通消息发送时,从所有broker的队列集合中 轮询选择一个队列,而顺序队列可以提供用户自定义消息队列选择器,从NameServer 分配的顺序 broker…

CRM市场营销管理功能,如何进行客户细分和数据分析?

CRM管理系统中的营销管理模块,它的锋芒常被销售管理所掩盖,但对于企业的业务来说同样重要。营销部门虽然不像销售人员一样直接面对客户,却是挖掘线索、商机的重要角色。CRM在市场营销领域的关键功能包括:营销漏斗、客户细分、营销…

二手买卖、废品回收小程序 在app.json中声明permission scope.userLocation字段 教程说明

处理二手买卖、废品回收小程序 在app.json中声明permission scope.userLocation字段 教程说明 sitemapLocation 指明 sitemap.json 的位置;默认为 ‘sitemap.json’ 即在 app.json 同级目录下名字的 sitemap.json 文件 找到app.json这个文件 把这段代码加进去&…

2024PMP考试新考纲-【人员领域】近期典型真题和超详细解析(5)

今天华研荟继续为您分享PMP新考纲下的【人员People领域】近年真题,帮助大家举一反三,一次性通过2024年的PMP考试。 2024年PMP考试新考纲-【人员领域】真题解析21 题:项目经理正在为一个项目工作。该项目由于人员流动,相关方登记册…

STM32入门教程-2023版【3-2】STM32如何使用库函数及几种方法

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 五、库函数的使用方法 (1)第一种 想使用库函数,可以先打开.h文件&…

C语言第三方库Melon开箱即用之词法分析器使用

之前的文章中,笔者介绍了Linux/UNIX C语言库Melon的基本功能及框架使用。 本文将介绍Melon中的词法分析器组件。 Melon的Github仓库为:https://github.com/Water-Melon/Melon 词法分析器在Melon中并不依赖于自身框架,因此可以在不初始化框…

2.3_7 生产者-消费者问题

2.3_7 生产者-消费者问题 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据) 生产者、消费者共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才…