Linux系统编程中的网络编程基础是什么

发布时间:2022-01-25 10:31:27 作者:柒染
来源:亿速云 阅读:104

这篇文章主要为大家分析了Linux系统编程中的网络编程基础是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统编程中的网络编程基础是什么”的知识吧。

Linux可以算是当先最流行的开源的操作系统,网络在系统中出于一个核心地位。

一 计算机网络的组成

1.网络结构

根据局域网的组成形式,可以将局域网分为星型网络环状网络总线网络3种基本网络结构。
Linux系统编程中的网络编程基础是什么
Linux系统编程中的网络编程基础是什么
Linux系统编程中的网络编程基础是什么
各种网络优缺点

2.OSI参考模型

开放式系统互联参考模型。该模型为计算机间开放式通信所需要定义的功能层次建立了全球标准:

Linux系统编程中的网络编程基础是什么

3.TCP/IP参考模型

以OSI参考模型为基础设计的。TCP/IP协议是一个协议集,其核心为TCP协议和IP协议。具有如下4个特点:

TCP/IP参考模型有4个层次,与OSI模型的对应关系如下:

Linux系统编程中的网络编程基础是什么

(1)应用层

TCP/IP参考模型的最高层,向用户提供一些常用应用程序。应用层包括了所有的高层协议,并且总是不断有新的协议加入。主要协议有:

(2)传输层

也称TCP层,主要功能是负责应用进程之间的端到端通信。
传输层定义了两种协议:传输控制协议TCP用户数据包协议UDP

(3)网络层

又称为IP层,负责处理互联网中计算机之间的通信,向传输层提供统一的数据包。主要功能有:

(4)物理链路层

主要功能是接收IP层的IP数据包,通过网络向外发送,或接收处理从网络上传送来的物理帧,抽出IP数据包,向IP层发送。该层是主机与网络的实际连接层。

二 TCP/IP协议

1.IP协议与Internet

规定:数据包由数据包正文报头两部分组成:

IP层协议主要功能:

数据包采用“无连接”方式传递,即两台主机在通信之前不要建立连接。网络主机间使用统一的IP数据包,这样能保持不同物理网络间能够传递和识别数据。
乳沟目的地为同一网段的计算机,那么数据包将被直接传输过去。如果两台主机处于Internet上的不同子网,IP协议将通过路由器获得主机间的传输路径,通过交换机或服务器接力的方式,将数据包传递过去。

2.IP互联网协议地址

IP地址是一个32位二进制数,即4字节。通常将其表示为w.x.y.z的形式。字母对应0-255的十进制整数,对应二进制表示法中的一个字节。(点分十进制表示)
IP地址分为如下三类:

(1)A类地址

最高位为0,其前8位为网络地址,是在申请地址时由管理机构设定的,后24位为主机地址,可由网络管理员分配给本机构子网的各主机。第一个十进制整数的值在1-126之间。最多可有127个A类地址。

(2)B类地址

前16位为网络地址,后16位为主机地址,且第一位为1,第二位为0。B类地址的第一个十进制整数的值在128-191之间。

(3)C类地址

前24位为网络地址最后8位为主机地址,且第一位,第二位为1,第三位为0。第一个整数值在192-223之间。

有几个特殊的IP地址:

  1. 回送地址(127.0.0.1):用于网络测试或本机进程间通信

  2. 广播地址:用于呼叫整个网络内的计算机,子网中最后一个地址即被用作广播地址

  3. 子网地址:用于识别子网,子网中第一个地址即是子网地址

3.TCP协议

TCP是重要的传输层协议,必须保证数据传递的完整性。另外,数据报文中有计算机端口号信息,可以用来区别同一计算机上不同应用程序的数据。
数据报文中还有一个顺序编号,使接收的计算机能够根据编号重新按顺序还原数据。
TCP协议的另一个重要功能是把大的数据切成较小的数据包,或者将接收到的数据包按顺序还原为原始数据。如果发现某一数据包丢失,TCP协议会向源计算机发送请求,要求重新传递丢失的数据包。这种处理能力,被称为全双工
TCP协议最小的处理单位为字节,因此TCP是面向字节的顺序协议。数据包内每个字节都会被分配一个顺序编号,以及为了验证数据真实性的奇偶校验位。
TCP报文结构如下图所示:
Linux系统编程中的网络编程基础是什么
字段定义如下:

Linux系统编程中的网络编程基础是什么
TCP提供的主要服务有:

4.UDP协议

又称用户数据包文协议,也是TCP/IP的传输层协议。它是无连接的、不可靠的传输服务。当接收数据时它不向发送方提供确认的信息,它不提供输入包的顺序。如果出现丢包或重复包的情况,也不会向发送方发出差错报文,与IP协议非常类似。
UDP的主要作用是分配和管理端口编号,以正确无误地识别运行在网络站点上的个别应用程序。
报文结构如下图所示:
Linux系统编程中的网络编程基础是什么

关于“Linux系统编程中的网络编程基础是什么”就介绍到这了,更多相关内容可以搜索亿速云以前的文章,希望能够帮助大家答疑解惑,请多多支持亿速云网站!

推荐阅读:
  1. 浅谈java网络编程基础知识
  2. 关于网络编程之基础知识的学习

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:Linux系统route命令怎么用

下一篇:Linux系统中pid与tgid是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》