TCP-IP协议详解
本篇文章将主要介绍网络通信中的TCP/IP协议的知识
引子
在现实的生活通信当中,不同的国家会用到不同的语言,然而在我们人与人之间需要进行沟通,但我们不能精通所有国家的语言。这个时候怎么办呢?于是国际上规定了英语为人类的通用语言。那么像这种在事先约定好的统一规定我们就称它为一种协议。
随着互联网的不断发展,网络通信成为了我们日常必不可少的一件事,那么在我们的网络世界中,我们是通过怎么样的一种协议进行的通信呢?
早期的计算机网络,都是由各厂商自己规定的一套协议,互不兼容。为了把全世界的所有不同的计算机连接起来,就必须要有一套统一的全球通用的协议,这个协议就是互联网协议族,这是一个互联网通用协议标准(TCP/IP协议)。
TCP/IP协议
简单的来说,TCP/IP协议他是一类协议的总称,这类协议包含了上百种协议,但最重要的两个协议是TCP和IP协议,所以大家把互联网的协议统称为TCP/IP协议。
我们先来看一张简单的网络传输协议图:
-
分析:
前面说过了,TCP/IP协议族里包含了上白种协议,这里这是简单列出部分常见协议
1.网络传输协议中总共包含了
应用层、传输层、网络层、数据链路层
2.我们从图中可以发现,每一层都有不同的协议,比如,在传输层中有TCP、UDP协议,在网络层中有ICMP、IP协议。
3.我们日常使用的应用软件则会在应用层中自己规定一些协议,比如我们打开浏览器浏览网页的时候就有http协议,当我们访问一个web服务器获取数据时,浏览器发送数据时需要遵循http协议,即当一个网页需要发送数据给用户的时候一定会按照requests_header+body的形式发送数据。
这里再来看一张TCP/IP协议网络传输示意图:
-
分析:
假如有两个QQ,QQ1给QQ2发送一个“你好”数据,应该怎样发呢?
1. QQ1首先“你好”这个数据会经过应用层,通过APP开发者规定的协议组装数据:APP | “你好”
2. 接着,数据来到传输层,通过TCP协议组装数据,比如添加:TCP的源端口、目的端口等:TCP | APP | “你好”
3. 数据再来到IP层,通过IP协议组装数据,比如添加上源IP、目的IP:IP | TCP | APP | “你好”
4. 经过IP层的组装,数据来到到了最后一层,也就是链路层,通过链路层协议组装数据,比如添加:源MAC地址、目的MAC地址:帧头 | IP | TCP | APP | “你好” | 帧尾
5. 最后通过网卡将数据发送到路由器,路由器负责将数据发送到互联网。
06. QQ2通过链路层检测获取到的数据中的目的MAC地址是否为本身网卡的序列号,来拆解一层数据。
07. 当链路层根据自身协议确认无误之后将帧头与帧尾拆去,把剩余的数据发送给IP层,IP层再检测目的IP是否为本身IP,来拆解第二层数据。
08. 当IP层根据自身协议确认无误之后将IP拆去,把剩余的数据发送给传输层,传输层再再通过查看是否具有有目的端口,来拆解第三层数据
09. 当传输层根据自身协议确认信息无误之后将端口号等数据拆去掉,把剩余的数据给至应用层
10. 当应用层根据自身协议确认信息无误之后,将剩余协议数据拆除掉,把“你好”这段数据显示给QQ2用户
想要把一个数据正确的传递到对方,其实是一个很复杂的过程,那么这一个过程需要保证数据的稳定性需要很多种协议来配合使用。所以这就是为什么TCP/IP协议族里为什么有上百种协议
OSI标准协议
OSI标准协议七层模型:
-
分析:
从图中我们大致可以表示为:
1.“应用层”被分为了“应用层、表示层、会话层”
2.“运输层”还是“运输层”
3.“网际层”可以称为“网络层”
4.“网络接口层”被分为了“数据链路层、物理层”
这套协议只是一个理论标准协议,人们按照功能不同,分工不同,人为的将OSI分为七层。实际上这七层是并不存在的,也就是说没有这些概念,而我们今天提到的七层概念,只是人为的划分而已。目的只是为了让大家更好地理解这些都是用来做什么的。