其他分享
首页 > 其他分享> > 一文打败TCP/IP五层协议基础知识

一文打败TCP/IP五层协议基础知识

作者:互联网

注意:

文章如有抄袭部分,请私信我。

未经允许,不得转载,如需转载,可以私信我。


前言

在很久之前,计算机刚刚被研究出来,当时的计算机还不能上网,玩游戏等,它只用于科学家,并没有给普通人使用。

后来,科学家们想要让两台计算机之间互相通讯,但是如果想要两台计算机互相通讯,则需要满足一样的协议,只有计算机遵守了这种协议,才能够实现通讯。

然而,让计算机通讯可不是一件简单的事,需要很多的协议,才能实现通讯,例如:

基本知识:局域网的组成和IP地址

在这里插入图片描述

(本人画画不太美观,凑合着看吧)

以上就是局域网的基本组成,圈圈代表计算机,两台计算机,用网线连接到了交换机。

科学家为了让计算机可以通讯,于是发明了IP地址。

IP地址

什么是IP地址呢?你可以理解为他是每台计算机在局域网内的住址。每台计算机在局域网内都有一个独一无二的IP地址,目前最新一代的IP地址是ipv6,也就是第六代IP地址,据说他的数量非常多,可以给地球每一粒沙子分配一个IP地址。但是目前我们仍然在使用ipv4网络。

现在我们给计算机分配一个IP地址:

在这里插入图片描述

OK,现在我们的计算机有了一个IP地址,IP地址的组成是:X.X.X.X,X的取值范围是0-254.

这里还要和大家讲一下子网掩码和网段。子网掩码决定了网段。子网掩码有这么几个格式:

例如255.255.255.0,那么该局域网内的所有IP地址都必须是10.1.1.X,当然,前三位是可以任意改变的。但是一旦确认了,就不会变了。例如确定为10.2.2.X,就不能改变了。

网关的IP地址一般是10.1.1.1或10.1.1.254。

此外还需注意,我们每台计算机还有一个公网的IP地址,通过这个IP地址,我们可以获取你的地理位置,一般性误差在5公里左右。

MAC地址

MAC地址指的是每一台计算机的唯一地址,可以用来分辨发给那一台计算机,一般性交换机都会有一个MAC地址缓存表,可以绑定MAC地址和IP地址,当交换机接收到消息之后,就可以根据MAC地址给到IP地址,从而发送到计算机上。他也有一种格式,是XX-XX-XX-XX-XX-XX。例如:0E-4R-8F-ER-3C-4F.

在这里插入图片描述

这些都属于局域网的基本学习要点,本章主要不是讲解局域网,而是讲解TCP/IP协议簇,所以对这些知识只是基本讲解,如果大家想要继续学习的话,可以在网上找寻一些资料来看看,都不错。

补充:运行一个软件后,他会做什么?

这里是为后文做一些基本的讲解,所以建议大家读一下,如果你会了,你可以直接跳过。

当你在计算机上运行了一个软件之后,例如聊天软件,他会在你的电脑上运行一个进程,例如Edge浏览器,他会在你的电脑上运行msedge.exe的进程。当一个聊天软件开启之后,他还会在你的电脑上开启一个端口,用来接收数据。这个端口是由软件开发者决定的。而且软件开发者可以选择TCP和UDP两种协议,这两种协议在之后也会和大家讲。

OSI七层模型

1974年,ISO国际标准化组织发布了OSI参考模型:
在这里插入图片描述

OSI(开放式系统互联,Open System Interconnection)模型分为应用层,表示层,会话层,传输层,网络层,数据链路层和物理层。其中每一层都有非常重要的作用。

网络通讯极其复杂,设计到的协议也很多,所以科学家在发明网络通讯协议时,使用了分层的思想,将复杂问题简单化,提高效率。

可惜的是,OSI模型并没有被人们使用,因为后来有科学家又提出想法,把表示层和会话层的功能合并到应用层里面。其中有两个协议非常重要,一个叫IP协议,一个叫TCP协议,于是取名叫TCP/IP五层协议。

TCP/IP五层模型

在这里插入图片描述

TCP/IP五层协议,包括了应用层,传输层,网络层,数据链路层和物理层。

请记住以下的重要知识点,我会和大家解释一下:

电脑是工作在引用层的,也就是说电脑自己就明白了传输层,网络层,数据链路层和物理层的知识。

什么叫“两台计算机的相同层之间的协议都是相同的”呢?也就是说两台电脑的相同层使用一样的协议。例如TCP协议,他就是在传输层,那么所有使用TCP/IP五层协议模型的计算机,他们的传输层都知道TCP协议。

一些科学家又说,要把数据链路层和物理层归并为网络接口层,但是现在全世界仍然在使用TCP/IP五层架构。

数据的封装和解封装的大致流程

那么,现在问题来了,他们每一层的功能是什么呢?当你在QQ软件里面写好内容一回车,你的电脑做了什么呢?当对方QQ回你消息之后,你的电脑又做了什么呢?

注意,这里是数据封装和解封装的基本流程,事实上复杂得多,这里知识写一个大致流程。

应用层

首先,假设现在我们开发了一款聊天软件TT聊天,他的开放端口号是TCP/1888(TCP协议会讲),然后,我的电脑使用TT软件给小爱发了一条Hello。首先,TT软件他又一个进程名,例如tt.exe,那么,Hello的信息就会给到传输层。
在这里插入图片描述

传输层

这里要给大家讲一下TCP协议和UDP协议,以便大家更好的理解。

UDP协议

UDP协议(User Datagram Protocal),是传输层的一个重要协议,该协议的特点是快速,高效,使用UDP的服务有:DNS,TFTP,SMB等。该协议定义了端口,并要求数据帧在传输过程中必须加上端口号,在到达对方计算机之后,就可以根据端口号找到进程。因为其简单,容易实现的特点,所以在互联网初期,数据在传输层的封装都是用UDP协议。但是UDP协议没有确认机制,也就是说如果数据包发出之后,无法知道对方计算机有没有接收到,所以可靠性较差。因此,人们又开发出了TCP协议。

TCP协议

TCP协议(Transmission Control Protocol),是目前主流的数据段封装协议。TCP在UDP的基础上,增加了重发机制和三次对话机制,一旦对方计算机没有接收到数据,就会重新发送,这样提高了数据传输的可靠性。但是与其同时,这样会加满数据的传输速度,影响性能。目前很多服务都在使用TCP作为他们的数据段封装协议。例如HTTP,HTTPS,FTP.POP3等。TCP协议是目前主流的传输层封装协议。

理解完了UDP和TCP协议之后,我们再来看,由于我们的TT软件是TCP/1888,所以我们在这一层会被加上一段东西。这段东西里面包括:我们使用的协议(TCP),我们使用的端口(1888)。只有这样,当数据发送到对方计算机后,对方计算机的传输层才能把数据发到对方计算机的TT软件里面。这段包含端口和协议的数据叫做TCP/UDP头,由数据和TCP/UDP头组成的数据叫数据段。
在这里插入图片描述

这样,数据段被传输层扔到了下一层:网络层。

网络层

在传输层,数据已经有了目标:就是对方计算机的TT软件,可是,他还不知道对方计算机是哪台计算机。于是,我们必须告诉这个数据对方计算机的IP地址。这个重大的任务就交给了网络层,网络层要给数据段加上一段东西,让他明白他要前往哪一台计算机。

在这一层里面,有一个非常重要的协议叫做IP协议,当传输层知道了IP相关内容后,才能够有能力告诉数据段他的目标IP。加上去的这段IP,叫做IP包头。IP包头里面含有自己的IP地址和对方的IP地址,这样,数据段就知道了目标IP是什么。加上了IP包头的数据段,叫做IP包,也叫做报文。

在这里插入图片描述

就这样,数据完成了网络层的游行,网络层会把他扔给数据链路层,当然,在这里,我要再给大家讲一下网络层的另外几个重要协议:ICMP和ARP协议,这里暂时不讲解,之后我会出一篇计算机网络协议的内容,把ICMP,ARP,IP等重要协议以及TCP/IP各层的详细内容讲解一下。

数据链路层

数据链路层的主要任务是将IP包里面添加目标MAC地址,让这个数据能够知道目标的MAC地址,在这一层中的主要协议就是MAC子层协议。当数据包有了目标MAC地址之后,其实就已经可以发送出去了。数据链路层加上的数据表MAC子层,其中包括自己的MAC地址和目标的MAC地址,这时候,这个包的名字叫做数据帧。与此同时,数据链路层还会加上一个叫做FCS的数据,一边核对前面数据的完整性。

在这里插入图片描述

物理层

物理层接收到数据帧之后,就会通过网线把这个数据帧发到对方计算机的物理层上,对方计算机接收到了这个数据帧之后,就会一步步解包。从而把Hello发送到tt.exe进程中,这样,小爱就能接收到我的数据了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AMGAJOM3-1612094168182)(C:\Users\Eric\AppData\Local\Temp\1612077411975.png)]

结束

本文讲解了OSI七层模型,TCP/IP五层模型和每一层的基本功能,之后还会出一篇计算机通讯协议的讲解,敬请期待。同时推荐大家阅读《计算机网络》补一点基础知识。

标签:协议,计算机,数据,IP,TCP,IP地址,五层
来源: https://blog.csdn.net/to_run_with_wind/article/details/113483868