| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux网络通信之原始套接字SOCKET_RAW -> 正文阅读 |
|
[系统运维]Linux网络通信之原始套接字SOCKET_RAW |
1.原始套接字与标准套接字传输区别 a.标准SOCKET APP--->STD_SOCKET--->TCP--->IP--->ETH APP--->STD_SOCKET--->UDP--->IP--->ETH b.原始SOCKET APP--->RAW_SOCKET--->IP--->ETH 2.数据处理区别 a. SOCK_RAW可读写内核没处理的IP数据, SOCK_STREAM只处理TCP数据 SOCK_DGRAM只处理UDP数据 (数据报最大长度为32kb) b.内核不能将TCP或者UDP产生的IP数据传递给任何原始套接字,内核会将TCP或UDP产生的IP数据对应的TCP或UDP处理 c.IP数据不关注内核是否是有已注册句柄来处理这些数据,都会复制一份IP数据并传递给与协议匹配的原始套接字 d.内核会对不能识别的协议类型数据进行校验后,查看是否有与该协议匹配的原始套接字负责处理这些数据,如果有,复制一份并传递给原始套接字,如果没有,内核丢弃该数据并返回主机不可达消息给原主机 e.如果原始套接字绑定了固定本机IP, 内核只将目的地址为本机绑定IP 的数据传递给原始套接字,如果 原始套接字没有绑定本机固定IP,内核会把所有IP数据报都传递给这个原始套接字. f.原始套接字在调用了绑定与连接(connect)函数后,内核只将源地址为连接IP地址的IP数据报传递给这个套接字 g.原始套接字没调用绑定与连接(connect)函数时,内核会将所有与协议匹配的IP数据报传递给这个原始套接字 3. 原始套接字实现类别: a.链路原始套接字 --->接收发送链路层报文数据 (自行构造封装报文首部) b.网际原始套接字 --->接收发送网际层报文数据 (发送时自行构造IP报文头) 4.协议及所在层 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:44:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |