不同主机间通信及网络基础

Linux系统的思想是“一切皆文件”,所以Linux系统把文件的类型分为七种,分别是普通文件、目录文件、管道文件、链接文件、字符设备文件、块设备文件、套接字文件。其中管道文件(pipe)的作用是为了实现同一台主机中不同进程间通信的,而套接字文件(socket)的作用则是用于实现不同主机中的进程间通信的。
socket在Linux系统中指的是一种特殊接口,该接口可以实现互联网中不同主机上的应用进程之间进行双向通信。socket的中文翻译具有“插座/插孔”的含义,而插座需要选择合适的线才可以正常连通,如果把插座理解为互联网中的主机,则合适的线指的是网络协议。
socket接口一般采用的是C/S架构,C指的是客户端(client),S指的是服务器(server)。也就是说利用该接口可以实现支持多个客户端对同一个服务器进行并发访问,也可以实现一对一通信。
IP地址的概念
IP协议中规定IP地址的格式为:高阶位、网络编号、本地地址组成。其中网络编号是用于标识互联网中的不同网络,而本地地址是用于标识处于该网络的唯一主机。IP地址中用网络编号来标识全世界不同网络的原因是因为互联网采用的是分布式模型,该模型可以避免由于战争等因素导致网络瘫痪。

IP地址的分类
image
通过IP协议的数据报格式可以看到,数据报中需要包含源地址和目的地址,并且源地址和目的地址的长度都是固定为32bit。
image
可以看到,IP协议中把网络地址主要分为三类,分别是A类地址、B类地址、C类地址,对于IP地址范围的划分需要阅读相关标准,标准如下:
image
通过标准可以知道,IP协议提供的IP地址是32bit的,并且把32bit分为4个段,每个段由8bit组成,每个段的值指定为十进制数(也就是范围是0~255),并且每个段使用英文句号分隔,一般把这种表示方式称为“点分十进制”。

IP地址的组成
IP地址中的高阶位用于区分IP地址的类型,由于一个IP地址是32bit的,并且分为4个字段,每个字段8bit(1字节)。而A类地址的第一个字节最高位固定是0,B类地址的第一个字节最高位固定是10,C类地址的第一个字节的最高位固定是110。
另外,通过标准可以看到,IP地址的网络编号中其实就包含了固定的高阶位,所以可以把IP地址的组成分为两部分:高阶位和网络编号看作是一部分,本地地址看作是另一部分即可!

子网掩码的作用
想要知道双方主机是否处于同一个网络,则只需要知道双方主机的网络编号是否一致即可,但是主机的IP地址是两部分(网络编号+本地地址)组成的,所以可以使用子网掩码方便的得到主机IP地址的网络编号。
image
比如C类地址的子网掩码默认是255.255.255.0,假设主机的IP地址是192.168.5.120,则只需要把主机的IP地址和子网掩码进行位与&操作,可得到主机的网络编号为192.168.5,然后就可以确定主机的所在网络,也可以称为主机的网段。

网络模型的结构
image
OSI模型只获得了一些理论研究的成果,但在市场化方面则事与愿违地失败了,属于概念性模型。TCP/IP模型经过市场验证并且简化了OSI模型,属于实践类模型,所以目前互联网都是基于TCP/IP模型设计的。
image

posted @ 2025-08-16 11:03  Lè_Sage  阅读(25)  评论(0)    收藏  举报