欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

网络结构 - 计算机网络 (1) - TCP/IP 参考模型

最编程 2024-04-18 09:15:22
...

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),这些并无本质区分都可统称为数据包。

推荐阅读