标签:参考 各类 链路层 硬件 str protoc 关心 udp协议 com
? 想一想人与人之间交流需要什么?我们是不是要掌握一种我们都能体会到对方意思的语言。那么计算机与网络设备之间进行通信,是不是不同设备之间是不是也要确定一种让两者能够通信的方法。不同的硬件,不同的操作系统,等等不同的设备,他们想要通信,必须要有一种规则来保证它们之间能够通信。而这种规则就是协议。
? 很多人都认为TCP/IP协议指的是TCP和IP这两种协议
,也有人认为TCP/ IP 是在 IP 协议的通信过程中,使用到的协议族的统称
。但我认为其实不是这样,因为TCP(传输控制协议)和IP(传输控制协议)都属于一个协议家族,而他们就是这个家族中最先出生的。同时也是这个协议家族的最核心的协议。所以就用TCP/IP协议来代表这个协议家族。它通称为TCP/IP协议族,简称为TCP/IP。又因为网络通讯协议采用分层的结构,各个层次配合完成工作,和计算机中的堆栈很相似,所以亦被称为TCP/IP协议栈。
## 0x01 TCP/IP参考模型
? 首先来了解一下OSI模型,OSI模型(开放式系统互联模型), 是一种概念模型,由国际标准化组织提出,一个试图将世界上各种计算机互连为网络的标准框架。共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如下图所示。
?
下面来看 TCP/IP参考模型,它是一个抽象的分层模型,在这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的“层”中(分别是:应用层,传输层,网络互连层,网络访问(链接)层)。每一抽象层创建在低一层提供的服务上,并且为高一层提供服务。 完成某些特定的任务需要众多的协议协同工作,这些协议分布在模型的不同层。 TCP/IP参考模型为TCP/IP协议栈制作。其中IP协议只关心如何使得数据能够跨越本地网络边界的问题,而不关心如何利用传输媒体,数据如何传输(当作黑盒处理)。整个TCP/IP协议栈则负责解决数据如何通过许许多多个点对点通路(一个点对点通路,也称为一“跳”, 1 hop)顺利传输,由此不同的网络成员能够在许多“跳”的基础上创建相互的数据通路。
把TCP/IP协议族中的协议对照OSI七层模型,如下图示,
?
? 而通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。 网络传输协议能够大致匹配到一些厂商喜欢使用的固定7层的OSI模型。然而这些层并非都能够很好地与基于IP的网络对应。
?
不难看出,OSI更加抽象,注重功能,而TCP/IP则更加注重与功能的实现。
把 TCP/IP 层次化是很有必要的。比如说,如果只有一个协议,当某个地方需要改变设计时,那我们就必须把所有部分替换掉。而分层之后呢,我们的协议分为几个层面,让每个层面有专门的协议去负责,这样们既可以做到详细和完整,又可减轻工作量,如我们要修改协议,我们不需要将所以的协议都改,只需要修改我们需要的部分。
TCP/IP 协议族各层的作用如下。
该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。
应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。
数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。
TCP/IP 协议族内预存了各类通用的应用服务。
在应用层上有一些特定的程序。它们提供直接支持用户应用的服务。如:HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS(名称<-> IP地址寻找)等
网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。
[1] TCP/IP四层模型
[2] TCP/IP协议
[3] 互联网协议套件
[4] 图解HTTP (图灵程序设计丛书) [日]上野 & 宣
标签:参考 各类 链路层 硬件 str protoc 关心 udp协议 com
原文地址:https://www.cnblogs.com/delongzhang/p/12419280.html