网络体系结构——计算机网络(1)

185 阅读5分钟

计算机网络之网络体系结构

OSI参考模型

协议的分层

OSI参考模型将通信功能划分成七个分层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

B分层接受C分层的服务,同时B分层向A分层提供服务

将通信协议进行分层具有以下好处:

  • 分层独立化,各个分层之间相互独立,A分层发生变化不会影响B分层
  • 分层将协议细化,易于单独实现每个分层的协议

7个分层的作用

应用层:针对特定应用的协议

表示层:将应用处理的信息转化为适合网络传输的格式,即格式化应用层信息。具体来说,将固有设备的数据格式(大/小端)转化为网络标准传输格式。

会话层:确定数据传输的方式,负责决定建立连接和断开连接的时机

传输层:管理两个节点之间的数据传输,实际上地进行建立连接和断开连接的处理。为确保所传输的数据到达目标地址,会再通信两端之间进行确认,如果没有到达,它会负责进行重发。

网络层:负责选择地址和路由,将数据传输到目标地址。

数据链路层:在物理的传输介质互联设备之间传输和识别数据帧

物理层:负责0、1比特流与电压的高低、灯的闪灭之间互换

TCP/IP参考模型

TIP/IP参考模型与OSI参考模型

image-20240229125801280

应用层

传输层及以下是工作在操作系统内核态,而应用层位于最上层是工作在操作系统用户态,是我们能够直接接触到的。

日常生活中使用的一些软件就是在应用层实现的,当我们使用软件进行数据传输(例如微信聊天)时,应用只需要把数据传递给传输层,而不需要关系数据后续是如何被传送到另一端的。

因此应用层只需要为用户提供应用功能如HTTP、TELENET、SNMP等。

传输层

传输层为应用层提供网络支持

image-20240229135607778

在传输层有两个传输协议:TCP协议和UDP协议

TCP协议全称是传输控制协议,能够保证数据包传送至接收方。TCP协议会在应用层的数据包上添加传输层头部信息,包括源端口和目标端口号,这些端口号用于标识数据发送和接收的应用程序

UDP协议较简单,只负责传输数据包,不保证数据包是否抵达对方,但其实时性和传输效率较高

当来自应用层的数据过大,超过MSS(TCP最大报文长度)时,就要将数据进行分段,在TCP协议中每一段叫做TCP段。这样即使在传输过程中数据丢失,只需重新传输丢失的TCP段,而不需要重新发送整个数据包

image-20240229140224165

当设备作为接收方,传输层需要将数据包转至对应的应用。但一台设备上运行的不止一个应用,因此需要编号标识不同的应用,这个编号就是==端口==

网络层

传输层只充当应用间数据传输的媒介,而实际的传输功能由网络层负责。

网络层最常使用IP协议,网络层会将来自传输层的报文作为数据部分,再加上IP包头,形成IP报文。

如果IP报文的大小超过MTU,就会再次进行分片,得到一个可发送的IP报文。

image-20240229192358112

对于IPv4协议,IP地址共32位,分成四段各表示一个十进制数,每段8位。例如192.168.1.1

IP地址根据==子网掩码==分成两种意义:

  • 网络号:负责标识IP地址属于哪一个子网
  • 主机号:表示设备在子网中特有的编号

比如:10.100.122.0/24,后面的/24表示从左往右数,共有24个1,即11111111-11111111-11111111-00000000。将四段二进制分别化成十进制得到子网掩码255.255.255.0

得到子网掩码后,再将子网掩码和IP地址==按位与==得到网络号

将子网掩码==取反==再和IP地址==按位与==得到主机号

image-20240229194400486

网络层将数据从一个设备传输至另一个设备时,先匹配网络号找到子网,再匹配主机号找到对应的设备。

IP协议除了上述寻址功能外,还具有==路由==功能。在设备之间传输数据时,大部分情况下设备间不是直接相连,中间存在很多网关、路由器、交换机等网络设备。这样设备与设备之间经过不同网络节点就会形成很多很多路径,因此当数据包到达一个网络节点,就需要通过路由算法决定下一步走哪儿。

image-20240229195914660

形象地说,IP协议的寻址功能就是导航决定目的地,而路由则是方向盘决定具体路径。

网络接口层

IP报文交给网络接口层后,在IP报文头部加上MAC头部,用于确定接收方物理地址,并封装成数据帧发送到网络上

IP头部中接收方的IP地址就是网络包的目的地,可以匹配IP地址进而找到接收方,但这种匹配方式不适用于数据在以太网中传输,因为在以太网中通讯需要MAC地址来标识网络上的设备

MAC头部包含了接收方和发送方的MAC地址信息,在网络接口层加上MAC头部后数据就能在以太网确定目的地了

总结

网络接口层的传输单位是帧(frame),网络层的传输单位是包(packet),传输层的传输单位是段(segment),应用层的传输单位是报文或消息(message),这些并无本质区分都可统称为数据包。