您是否曾经想过您的计算机如何与本地LAN上的其他计算机或Internet上的其他系统通信?
理解计算机交互方式的复杂性是网络的重要组成部分,对于系统管理员和开发人员而言,都同样感兴趣。在本文中,我们将尝试从每个人都必须理解的最基本的基础层面来讨论通信的概念。
TCP协议 / IP协议套件
网络上的计算机之间的通信是通过协议套件完成的。 TCP协议 / IP协议套件是使用最广泛,使用最广泛的协议套件。协议套件由分层体系结构组成,其中每个层都描述了可以由协议执行的某些功能。每个层通常具有多个协议选项来执行该层所遵循的职责。 TCP协议 / IP通常被认为是4层系统。 4层如下:
- 应用层
- 传输层
- 网络层
- 数据链路层
1.应用层
这是TCP / IP协议套件的顶层。该层包括使用传输层协议将数据传递到目标计算机的应用程序或过程。
在每一层都有某些协议选项可以执行指定给该特定层的任务。因此,应用程序层也具有应用程序用来与第二层(传输层)进行通信的各种协议。一些流行的应用层协议是:
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- SMTP(简单邮件传输协议)
- SNMP(简单网络管理协议)等
2.传输层
该层为两台主机之间的数据流提供了主干。该层从其上方的应用程序层接收数据。在此层有许多协议可用,但在传输层上最常用的两个协议是TCP和UDP。
TCP协议 is used where a 可靠的连接 is required while UDP协议 is used in case of 连接不可靠s.
TCP协议 将数据(来自应用程序层)划分为适当大小的块,然后将这些块传递到网络上。它确认收到的数据包,等待发送的数据包的确认,如果未及时收到确认,则设置超时以重新发送数据包。期限‘reliable connection’如果不需要释放通过此连接通过网络传输的任何信息,则使用。因此,用于这种类型的连接的协议必须提供实现此所需特性的机制。例如,在下载文件时,不希望丢失任何信息(字节),因为它可能导致下载内容的损坏。
UDP协议 通过将数据包从一台主机发送到另一台主机,提供了一种相对简单但不可靠的服务。 UDP协议不会采取任何额外措施来确保发送的数据是否被目标主机接收。期限‘连接不可靠’用于某些信息丢失不会妨碍通过此连接完成任务的情况。例如,在流式传输视频时,由于某些原因而丢失几字节信息是可以接受的,因为这不会严重损害用户体验。
3.网络层
此层也称为Internet层。该层的主要目的是组织或处理网络上的数据移动。所谓数据移动,通常是指通过网络路由数据。在此层使用的主要协议是IP。而ICMP(流行‘ping’命令)和IGMP也在此层使用。
4.数据链路层
该层也称为网络接口层。该层通常由操作系统中的设备驱动程序和连接到系统的网络接口卡组成。设备驱动程序和网络接口卡均会处理与用于通过网络传输数据的媒体的通信详细信息。在大多数情况下,该介质为电缆形式。在此层使用的一些著名协议包括ARP(地址解析协议),PPP(点对点协议)等。
TCP协议 / IP概念示例
值得一提的是,两台计算机之间通过TCP / IP协议套件在网络上的交互是以客户端服务器体系结构的形式发生的。
服务器处理客户端请求时,客户端请求服务。
现在,由于我们已经讨论了有助于数据从主机通过网络流向目标的基础层。让我们举一个非常简单的例子来使概念更清晰。
打开网站时请考虑数据流。
如上图所示,信息向下流经主机上的每一层。在第一层,由于使用了http协议,因此形成了HTTP请求并将其发送到传输层。
此处,协议TCP为来自上层的数据分配更多信息(例如序列号,源端口号,目的端口号等),以便通信保持可靠,即可以保持对发送数据和接收数据的跟踪。
在下一层,IP在来自传输层的数据上添加了自己的信息。此信息将有助于通过网络传输数据包。最后,数据链路层确保与物理介质之间的数据传输正确完成。同样,在数据链路层进行的通信可能是可靠的也可能是不可靠的。
该信息在物理介质(例如以太网)上传播并到达目标计算机。
现在,在目标计算机(在我们的示例中是托管网站的计算机)中,发生了相同系列的交互,但是顺序相反。
首先在数据链路层接收该分组。在这一层,读取信息(由主机的数据链路层协议填充),并将其余数据传递到上层。
类似地,在网络层,读取由主机的网络层协议设置的信息,其余信息在下一个上层传递。在传输层也会发生同样的情况,最终由主机应用程序(您的浏览器)发送的HTTP请求被目标应用程序(网站服务器)接收。
人们会想知道,当目标机上的相应协议读取每一层特有的信息时,会发生什么情况,或者为什么需要它呢?好吧,让我们通过传输层上存在的TCP协议示例来了解这一点。在主机上,此协议向该层发送的每个数据包添加序列号之类的信息。
在目标计算机上,当数据包到达此层时,此层的TCP记下数据包的序列号并发送确认(接收到的序列号+ 1)。
现在,如果主机TCP在指定的时间内未收到确认,它将重新发送相同的数据包。因此,通过这种方式,TCP确保不会丢失任何数据包。因此,我们看到协议的每一层都读取其对应方设置的信息,以实现其所代表的层的功能。
端口,服务器和标准
在特定机器上,端口号与机器的IP地址一起被称为套接字。客户端和服务器上IP和端口的组合称为四个元组。这四个元组唯一地标识一个连接。在本节中,我们将讨论如何选择端口号。
您已经知道一些非常常见的服务(例如FTP,telnet等)在众所周知的端口号上运行。当FTP服务器在端口21上运行时,泰伦特服务器在端口23上运行。因此,我们看到由TCP / IP的任何实现提供的某些标准服务都具有在其上运行的某些标准端口。这些标准端口号通常从1到1023之间选择。众所周知的端口由Internet分配号码授权机构(IANA)管理。
尽管大多数标准服务器(由TCP / IP套件的实现提供)在标准端口号上运行,但是客户端不需要任何标准端口即可运行。
客户端端口号称为临时端口。短暂的意思是短暂的。这是因为客户端可能会连接到服务器,执行其工作,然后断开连接。所以我们用这个词‘short lived’因此,它们不需要标准端口。
另外,由于客户端需要知道与之连接的服务器的端口号,因此大多数标准服务器都在标准端口号上运行。
为客户端保留的端口通常在1024到5000之间。大于5000的端口号保留给那些非标准或众所周知的服务器。
如果我们看一下文件‘/etc/services’,您将找到大多数标准服务器及其运行的端口。
$ cat / etc /服务 systat 11/tcp users daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/udp chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp ssh 22/tcp ssh 22/udp telnet 23/tcp ... ... ...
从/ etc / services文件中可以看到,FTP的端口号为21,telent的端口号为23等。您可以使用‘grep’该文件上的命令以查找任何服务器及其关联的端口。
就标准而言,以下四个组织/组管理TCP / IP协议套件.IRTF和IETF都属于IAB。
- 互联网协会 (ISOC)
- 互联网架构委员会(IAB)。 IAB属于ISOC。
- 互联网工程任务组 (IETF)
- 互联网研究工作组 (IRTF)
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
您忽略了最流行的应用程序层协议– HTTP!