Linux 高速服务器编程(审查TCP/IP协议的具体细节) -- -- 更新

      最后更新:2021-11-28 23:38:34 手机定位技术交流文章

      Linux 高性能服务器的程序编程

      对高性能服务器高性能服务器编程进行密集分析

      (第一,2021年,11年) 这个项目是我们对2011年巴勒斯坦抗议的特别报道的一部分。

      一、Linux网络方案拟订基金会

      1. 字节顺序是什么:

      内存中八个字节的顺序影响扩大的整数/浮动点类型/异构体数据结构的价值,即字节序列,其中字节序列分为大字节和小字节序列,大字节序列是指一个浮动点/长整数,机器内存中地址低,字节字节中位数较低的高字节。 (对等低字节字节)

      二,主机的字节顺序是什么?网络的字节顺序是什么?

      由于最近的个人电脑是小端方法,小端字节序列被称为主机字节序列。

      ps:问题引入:

      当主机和数据(两者均为短字节序列)直接将数据(流传)发送到对方(流传)时,错误的解读不可避免地会流到自己的数据中。 如何避免小字节序列造成的所有错误?

      解决方法:
      发送方将数据修改为大端字节序列,接收端知道从端传送的数据总是大字节序列,因此接收端可以选择是否根据所使用的字节序列转换收到的数据。

      因此,大端办法被称为网络字节序列。

      3. LINUX o 包括完成主机字节与网络字节之间转换的下列四项功能:

      #include<netinet/in.h> //库文件名

      未签名的长 htonl (未签名的长 htonl (未签名的长 hostalong) // / 将主机转换为净长主机字节序列, 如长整数 IP 地址 。

      未签名的长 Ittohl (未签名的长英特网) 网络字节命令转换主机字节, 如长整数 IP 地址

      将主机字节转换成网络字节,如矫形端口号。

      将主机字节从 / net 转换为主机字段字节序列,如短的矫形端口号

      4.通用套接字地址

      结构套接字器是网络编程界面中的套接字地址,定义如下:

      sa_ family_ 成员_ 人数_ 四.1:

      协议家庭、共同协议家庭(也称为域)和配对住址家庭如下:

      协议族 地址族 描述
      PF_UNIX AF_UNIX UNIX地理协议组
      PF_INET AD_INET TCP/IPV4
      PF_INET6 AF_INET6 TCP/IPV6协定

      PF与AFh 页眉文档中的两个值相同,因此可以混合。

      [14] 与会者:

      地址用于维持套接字地址,但其长度和含义因时间和含义而异:

      协议族 地址值含义和长度
      PF_UNIX 文件路径名的长度可高达108字节。
      PF_INET 端口号是16比特,IPV 4地址是32比特,总共6字节。
      PF_INET6 16BIT 港口号、32BIT流号、128BIT IPV6 地址、32BIT 范围

      由于只有14字节的sa_data[14]元素,UNIX和IPV6社区的储存限制无法满足,Linux操作系统提供以下通用套接字地址结构:

      五. 特殊套接字地址

      由于这两种通用套接字结构显然不起作用,例如在配置和获取IP地址和端口号时需要耗时的咬字操作,Linux为每个协议组提供特定的套接字地址结构。

      Unix地理协议界使用以下专用套接字地址结构:

      IPv4采用以下结构:

      IPv6 使用以下结构:

      使用 addr- type 的套接字程序接口, 所有特定的套接字地址和 sockaddr_ storage- type 变量必须更改为通用套接字类型 。

      第六,有一个IP地址转换功能。

      通常情况下, 小数点字符串或十六进制字符串用于表示 IPv4 地址,但在编程中,我们必须先将其转换成整数(二进制),然后才能使用,而日志本必须将整数 IP 转换成可读字符串、小数点字符串或十六进制字符串来表示 IPv4 地址,但在编程中,我们必须先将其转换成整数(二进制) 数字,然后才能使用,而日志簿必须将整数 IP 转换成可读字符串。下面列出的三种程序被用来将小数点字符串中的 IPv4 地址转换成网络的 IPv4 位数 :

      Inet_entoa 函数将 IPV4 地址转换为网络字节序列整数中的小数点字符串 IP 地址。 该函数存储转换结果为静态变量, 函数的返回值指向静态内存, 使 Net_ intoa 无法再填充 。

      运行结果:

      3⁄4 ̄ ̧漯B

      协议组由 Inet_pton 函数中的 af 参数代表, src 参数是 pass- in 字符串 ip 地址,转换后的位数整数作为 dst 指针的引用保存在内存中。 (成功返回 1, 失败返回 0; 错误被设定)

      与pton相反,Cnt表示,目标储存装置的大小用来区分 Ipv4 和 ipv6 (成功返回目标储存装置的地址,未能返回 NULL和设定ERRNO)。

      构造套接字 。

      在Linux/Unix中,系统中的每个元素都被称为抽象文档,可读、可写、打开、关闭、可以控制,套接字也不例外。

      套接字法在成功构造时返回 1, 无法返回并设置 ERRNO 时返回 0 。

      域选项表示软件包使用的组类型,对于 TCP/IP 组,可指定为 PF_INET(IPV4)或 PF_INET6(IPV6),对于 unix 组,可指定为 PF_UNIX 组。

      服务类型按服务类型表示,TCP/IP有两个传输协议:TCP当前传输,设于SOCK_STREAM;UDP数据电文传输,设于SOCK_DGRAM。

      协议参数是由前两个参数组成的协议集,其中选择了特定协议,但这个数值一般是唯一的,一旦确定了前两个参数,该参数应定为0,这表示协议使用前两个参数的默认值。

      第八. 识别插接插接(待更新)

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13877.html

          热门文章

          文章分类