套接字及分层模型(一)

2023-11-09

套接字通信

1.内核开发的工程师将网络相关的头文件存储到一个专门目录include/net中,而不是存储到include/linux
2.ISO/OS和TCP/IP参考模型
在这里插入图片描述
应用层:网络服务与最终用户的接口;
表示层:数据的表示,安全及压缩:格式(jpeg,ascii等)
会话层:建立,管理及终止会话;
传输层:定义传输数据的协议端口,以及流控和差错检测;(数据包一旦离开网卡就进入网络传输层)
网络层:进行逻辑地址建立、实现不同网络之间的路由选择;
数据链路层:建立逻辑链接、进行硬件地址寻址、差错检验等等这些功能(由底层网络定义协议)将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

3.核心基本术语
数据帧----->数据链路层(帧头部和帧数据),帧头部包含接收方主机物理地址的定位等
IP数据由两部组成:数据体头部和帧数据,帧头部包括IP源地址和IP目标地址及其他信息。
数据包----->网络层
数据报----->无连接网络服务的网络层
数据段----->传输层
信息----->网络层以上,经常在应用层
元素----->数据链路层(异步传输模式和交换多兆位数据服务)
数据单元 (data unit):服务数据单元(SDU),协议数据单元(PDU)。

4.创建套接字
套接字不仅可以用于各种传输协议的IP链接,也可以用于内核支持的所有其他地址和协议类型(IPX,Appletalk,本地UNIX套接字,还有在<socket.h>中列出的许多其他类型)
(1)
在这里插入图片描述
sa_family:是地址族类型的变量(取值:AF_UNIX、AF_INET或AF_INET6),地址族类型通常与协议族类型相对应,一般可以混用。所有专用socket地址类型的变量在实际使用时都必须强制转换成通用socket地址类型(sockaddr),因为所有socket编程接口函数使用的地址参数的类型都是sockaddr。
sa_data:14字节协议族
这个数据结构用作bind,connect,recvfrom,sendto等函数参数,指明地址信息。
(2)
在这里插入图片描述
(3)
typedef uint32_t in_addr_t;
在这里插入图片描述
struct in_addr其实就是一个32位的IP地址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

套接字及分层模型(一) 的相关文章

随机推荐

  • Python 字符串Ⅱ

    Python 字符串格式化 Python 支持格式化字符串的输出 尽管这样可能会用到非常复杂的表达式 但最基本的用法是将一个值插入到一个有字符串格式符 s 的字符串中 在 Python 中 字符串格式化使用与 C 中 sprintf 函数一
  • Python之算法与时间复杂度

    目录 一 算法的概念 1 1 算法是计算机处理信息的本质 二 时间复杂度T n 2 1 程序执行的基本操作与时间复杂度 2 3 大O记法 2 4 常见时间复杂度 2 5 时间复杂度的几条基本计算规则 重点 2 6 python内置类型时间复
  • Palindrome(补全回文串+最长公共子序列的应用)hdu1513+poj1159+动态规划

    Palindrome Time Limit 4000 2000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 4277 Accepted S
  • 计算机网络基础知识归纳总结整理

    计算机网络基础 基础知识 1 网络模型 OSI分层 7层 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP分层 4层 网络接口层 网际层 运输层 应用层 五层协议 5层 物理层 数据链路层 网络层 运输层 应用层 每
  • typeid与decltype

    C 在C 98标准中就部分支持动态类型了 C 98对动态类型支持就是C 中的运行时类型识别RTTI RTTI的机制是为每个类型产生一个type info类型的数据 程序员可以在程序中使用typeid随时查询一个变量的类型 typeid就会返
  • modelsim crack找不到文件packages on . Failed to load package info... 找不到文件 - mgls.dll 找不到文件 - mgls64.dll

    问题描述 最近下载了Modelsim SE 64 2020 4版本 按照提示操作后显示找不到文件packages on Failed to load package info 找不到文件 mgls dll 找不到文件 mgls64 dll
  • MATLAB 软件功能简介

    MATLAB 的名称源自 Matrix Laboratory 1984 年由美国 Mathworks 公司推向市场 它是一种科学计算软件 专门以矩阵的形式处理数据 MATLAB 将高性能的数值计算和可 视化集成在一起 并提供了大量的内置函数
  • imx6ull移植mplayer

    linux开发板播放许嵩的温泉 本文在imx6ul上移植mplayer 软件包 https download csdn net download qq 32605451 12510469 文件包含mplayer zlib alsa lib和
  • java包机制

    包机制是java中管理类的重要手段 开发中 我们会遇到大量同名的类 通过包我们很容易对解决类重名的问题 也可以实现对类的有效管理 包对于类 相当于文件夹对于文件的作用 我们通过package实现对类的管理 package的使用有两个要点 1
  • VS2013写代码时几个常用的快捷键

    0 查看函数具体实现 说明 组合键是同时按 非组合键是按住Ctrl依次按后面的键 1 格式化 格式化全部代码 Ctrl A K F 格式化选中的代码 Ctrl K F 2 注释代码 注释代码 Ctrl K C comment 反注释代码 C
  • Python基本函数:np.multiply()

    Python基本函数 np multiply 一 函数说明 二 函数用法 格式 np multiply a b 注意 文中用到了arange dot reshape函数以及转置 T 一 函数说明 由于multiply是ufunc函数 ufu
  • 【C++】string类浅拷贝的解决方式

    1 浅拷贝 对内存地址的复制 让目标对象指针和源对象指向同一片内存空间 最终在释放的时候造成了多次释放导致程序崩溃 如果类中设计到资源管理时 用户必须要显式实现拷贝构造函数以及赋值运算符重载 因为编译器默认是按照浅拷贝的方式生成的 2 深拷
  • MySQL错误:1146-table 'mysql.proc' doesn't exist

    出现错误原因为 误删除了mysql数据库 解决方案 运行安装程序setup exe修复 repair 博主在删除其他数据库的时候 调用命令drop 误删mysql原数据库 使用mysql安装程序的修复解决 其他mysql命令 source
  • Interview Questions : Linux Device Drivers and Linux Kernel

    本文转载至 http priyaranjan technicalzone blogspot com 2014 01 interview questions embedded system html 1 Describe different
  • 反应器(Reactor)模式-golang探索

    反应器模式 在以前的博文模式设计概述 反应器 Reactor 模式介绍过相关的概念和流程 当时使用了python但是从结果上来看并没有起到很明显的效果 最近在处理有关proxy的项目中 刚刚好涉及到有关性能的问题 故本文探索一下go的反应器
  • vue全局使用sass变量

    需求 框架需要使用scss 之后不想把很多重复的css一个一个写 就提取出来咯 到时候只需要更改scss文件就可以了 不用一个一个的找 1 下载sass 这我下的俩个版本 如果你们下载最新版不兼容可以参考我的版本下载 sass 1 66 1
  • etcd安装

    ETCD安装 windows版本 下载 下载地址https github com etcd io etcd releases 安装 其实也不用安装 下载解压后 得到如下 选中etcd exe 右键 属性 兼容性 以管理员身份运行此程序勾上
  • ajax实现前后端传输流文件(图片)

    ajax实现前后端传输流文件 图片 在参考了一众CSDN大神的帖子之后终于实现了从后端获取图片并正确显示在canvas中 下面是代码 var xmlhttp xmlhttp new XMLHttpRequest xmlhttp open G
  • 解决使用pip无法安装rasa与无限依赖告警:INFO: This is taking longer than usual. You might need to provide the....

    在直接使用 pip install rasa时几乎无限告警 INFO pip is looking at multiple versions of sanic to determine which version is compatible
  • 套接字及分层模型(一)

    套接字通信 1 内核开发的工程师将网络相关的头文件存储到一个专门目录include net中 而不是存储到include linux 2 ISO OS和TCP IP参考模型 应用层 网络服务与最终用户的接口 表示层 数据的表示 安全及压缩