计算机网络学习之路

本文详细介绍了计算机网络中的OSI参考模型和TCP/IP模型,包括各层的功能、协议以及数据传输过程。从应用层到物理层,阐述了数据如何在不同层次进行封装和处理,如TCP的三次握手、IP寻址和路由选择、数据链路层的帧头以及物理层的二进制数据传输。此外,还提到了端口的概念以及其在不同协议中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习计算机网络知识的过程中记录一些自己觉得有用的知识点。会根据复习进程不断增添。

如果我们以 POST 方法提交一个搜索请求给淘宝服务器,那么最终在数据链路层构建出来的数据帧大概是这个样子,这里假设 IP 数据包的大小没有超过链路层的最大传输单元。

在这里插入图片描述

App 要发送的数据只是 key="a"这样一个 JSON 字符串,每一层协议都会在上一层协议基础上添加一个头部信息,最后封装成一个链路层的数据帧在网络上传输,发送给淘宝的服务器。淘宝的服务器在收到这个数据帧后,在通信协议的每一层进行校验检查,确保数据准确后,将头部信息删除,再交给自己的上一层协议处理。HTTP 应用服务器在最上层,负责 HTTP 协议的处理,最后将 key="a"这个 JSON 字符串交给淘宝工程师开发的应用程序处理。

OSI参考模型中各个分层的作用

分层名称功能每层功能概览
7应用层针对特定应用的协议针对每个应用的协议,如电子邮件的电子邮件协议,远程登陆的远程登录协议,文件传输的文件传输协议等
6表示层设备固有数据格式和网络标准数据格式的转换接受不同表现形式的信息,如文字、图像、声音等
5会话层通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。何时建立连接,何时断开连接以及保持多久的连接?
4传输层管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠的传输到目标地址)是否有数据丢失?
3网络层地址管理与路由选择经过哪个路由传递到目标地址?
2数据链路层互连设备之间传送和识别数据帧数据帧与比特流之间的转换
1物理层以“0”,“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格。比特流和电子信号的切换,连接器与网线的规格
应用层

为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登陆(虚拟终端)等协议。

表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。
具体来说,就是将设备固有的数据格式转换为网络标准传输格式。不同设备对同一比特流解释的结果可能会不同。因此,使它们保持一致是这一层的主要作用。

会话层

负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。需要注意的是,会话层负责建立连接和断开连接的时机,而传输层则进行实际的建立和断开处理。

传输层

起着可靠传输的作用。只在通信双方节点上进行处理,而无需再路由器上处理。

TCP 也会在数据包上添加 TCP 头,TCP 头除了包含一些用于校验数据正确性和控制数据流量的信息外,还包含通信端口信息,一台机器可能同时有很多进程在进行网络通信。如何使数据到达服务器后能发送给正确的进程去处理,就需要靠通信端口进行标识了。HTTP 默认端口是 80,当然我们可以在启动 HTTP 应用服务器进程的时候,随便定义一个数字作为 HTTP 应用服务器进程的监听端口,但是 App 在请求的时候,必须在 URL 中包含这个端口,才能在构建的 TCP 包中记录这个端口,也才能在到达服务器后,被正确的 HTTP 服务器进程处理。

网络层

将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。

网络层的数据需要交给链路层进行处理,而链路层帧的大小定义了最大传输单元,网络层的 IP 数据包必须要小于最大传输单元才能进行网络传输,这个数据包也有一个 IP 头,主要包括的就是发送者和接受者的 IP 地址。

IP 协议不是一个可靠的通信协议,并不会确保数据一定送达。要保证通信的稳定可靠,需要传输层协议 TCP。TCP 协议在传输正式数据前,会先建立连接,这就是著名的 TCP 三次握手。

数据链路层

负责物理层面互连的,节点之间的通信传输。例如与一个以太网相连的两个节点之间的通信。
将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接受)。

数据链路层就是将数据进行封装后交给物理层进行传输,主要就是将数据封装成数据帧,以帧为单位通过物理层进行通信,有了帧,就可以在帧上进行数据校验,进行流量控制。数据链路层会定义帧的大小,这个大小也被称为最大传输单元。

像 HTTP 要在传输的数据上添加一个 HTTP 头一样,数据链路层也会将封装好的帧添加一个帧头,帧头里记录的一个重要信息就是发送者和接受者的 mac 地址。mac 地址是网卡的设备标识符,是唯一的,数据帧通过这个信息确保数据送达到正确的目标机器。

前面已经提到,网络层 IP 协议使得互联网应用根据 IP 地址就能访问到淘宝的数据中心,请求离开 App 后,到达运营服务商的交换机,交换机会根据这个 IP 地址进行路由转发,可能中间会经过很多个转发节点,最后数据到达淘宝的服务器。

网络层的数据需要交给链路层进行处理,而链路层帧的大小定义了最大传输单元,网络层的 IP 数据包必须要小于最大传输单元才能进行网络传输,这个数据包也有一个 IP 头,主要包括的就是发送者和接受者的 IP 地址。

物理层

负责数据的物理传输,计算机输入输出的只能是 0 1 这样的二进制数据,但是在真正的通信线路里有光纤、电缆、无线各种设备。光信号和电信号,以及无线电磁信号在物理上是完全不同的,如何让这些不同的设备能够理解、处理相同的二进制数据,这就是物理层要解决的问题。


其他的一些参考模型:
在这里插入图片描述
在这里插入图片描述

这么多参考图片的目的是用来更好的理解。

各种设备及其对应网络的分层概览

在这里插入图片描述这里没找到电子版本只能自己拍了,害。

TCP/IP基础知识

TCP/IP的具体含义

从字面意义来讲,有人可能会认为TCP/IP是指TCP与IP两种协议。实际生活中有时也确实是指这两种给协议。然后很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP的协议。它们与TCP或IP的关系紧密,是互联网必不可少的组成部分。TCP/IP一词泛指这些协议,因此,有时也称TCP/IP为网际协议族。
在这里插入图片描述

TCP/IP协议分层协议

TCP/IP与OSI参考模型

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020031623523839.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NvZGluZ05PMQ==,size_16,color_FFFFFF,t_70OSI的模型注重通信协议必要的功能是什么,而TCP/IP的模型则更强调在计算机上实现协议应该开发哪种程序。

了解下数据包

包、帧、数据包、段、消息

以上五个术语都用来表述数据的单位,大致区分如下:

包可以说是全能性术语;
帧用于表示数据链路层中包的单位;
数据包是 IP 和 UDP 等网络层以上的分层中包的单位;
段则表示 TCP 数据流中的信息;
消息是指应用协议中数据的单位。

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

了解下端口

端口号是由其使用的传输层协议规定的,因此,不同的传输协议可以使用相同的端口号。例如,TCP和UDP使用同一个端口号,但使用的目的各不相同。这是因为端口号上的处理是根据每个传输协议的不同而进行的。所以即使是同一个端口号,由于传输协议是各自独立地进行处理,因此相互之间不会受到影响。
此外,那些知名端口号与传输层协议并无关系,只要端口一致都将分配同一种程序进行处理。例如,53号端口在TCP和UDP中都用于DNS服务,而80端口用于HTTP通信。从目前看来,由于HTTP通信必须使用TCP,因此UDP地80端口并未投入使用。但是将来,如果HTTP协议的实现也开始应对UDP协议以及应用协议被相应扩展的情况下,就可以原样使用与TCP保持相同的80端口了。

TCP/IP各层
硬件(物理层)

最底层就是负责数据传输的硬件

网络接口层(数据链路层)

利用以太网中的数据链路层进行通信,因此属于接口层。也就是说,把它当作让NIC起作用的“驱动程序”也无妨。

互联网层(网络层)

互联网层使用IP协议,IP协议基于IP地址转发分包数据。互联网就是具备互联网层功能的网络。
TCP/IP分层中的互联网层与传输层的功能通常由操作系统提供。尤其是路由器,它必须得实现通过互联网层转发分组数据包得功能。此外,连接互联网得所有主机和路由器必须都实现IP的功能。其他连接互联网的网络设备如网桥、中继器、集线器就没必要一定实现IP或TCp的功能。(当然,有时为了监控和管理功能,这些设备也需要具备IP、TCP的功能)
IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。使用IP地址作为主机的标识。IP还隐含数据链路层的功能。通过IP,相互通信的主机之间无论经过怎样的底层数据链路都能够实现通信。虽然IP也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达端主机也不会重发。因此属于非可靠传输协议。
ICMP:IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。它有时也被用来诊断网络的健康状况。
ARP:从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。

传输层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值