个人学习记载,复习用,若侵删。
https://www.yuque.com/u41716106/ni1clp/pllgo1gkoyhcvf8w?singleDoc#
《【学习】1. TCP/IP协议栈概述(体系、四/五层模子、IP、MAC)》
参考资料:
网络通讯协议
盘算机网络的团体学习认知(OSI七层参考模子&TCP/IP四层参考模子)_osi参考模子中有比向上的7个层分别是什么tcpip模子有哪4层-CSDN博客
LWIP 教程
硬汉
汇总:
TCP/IP 协议栈模子:
这里还没侧重详细协议
TCP/IP 协议栈&&TCP/IP 协议族模子:
这里侧重详细的差别层的协议
【示例】HTTP哀求的封装过程
- 应用层(HTTP):天生HTTP哀求报文。
- 传输层(TCP):添加TCP头(端标语、序列号),封装为TCP段。
- 网络层(IP):添加IP头(源/目标IP所在),封装为IP数据包。
- 网络接口层(Ethernet):添加MAC头(源/目标MAC所在)和CRC校验,形成以太网帧,通过物理层发送。
1. TCP/IP 协议栈(TCP/IP 协议族、四层 / 五层参考模子)
OSI 是理论模子,TCP/IP 是实践标准
- OSI 模子:由国际标准化构造(ISO)提出,理论分层清晰,夸大各层职责分离,用于教学和网络筹划参考。
- TCP/IP 模子:源于互联网实际发展,简化分层(四层),直接对应实际协议(如TCP、IP),是互联网的究竟标准。
以太网数据帧详细分析 逐字节分析 - jueyuanfengsheng - 博客园
协议丛林01 邮差与邮局 (网络协议概观) - Vamei - 博客园
https://www.zhihu.com/question/19718686
1.1. 前言
1.2. TCP/IP 协议栈——体系概述
- TCP/IP 协议是针对Internet开发的一种体系结构和协议标准
- TCP/IP 协议是国际互联网Internet采取的协议标准
- TCP/IP 是一组通讯协议的代名词,是由一系列协议构成的协议簇
- 如应用层(HTTP/FTP/...)、传输层(TCP/UDP)、网络层(IP/ICMP/ARP)、网络接口层(以太网/WiFi/PPP)
这里实在指的是详细协议,留意 OSI 一样寻常是不绑定详细协议的,TCP/IP 的话反之,比方传输层绑定了 TCP、UDP;应用层……
1.3. TCP/IP 协议栈——体系结构(TCP/IP 四层或五层参考模子)
针对互联网优化
五层参考模子将OSI七层参考模子的应用层、表现层、会话层归并到一起。而TCP/IP四层参考模子又将数据链路层、物理层归并在一起。
- 协议族:是一个协议的聚集,界说了通讯规范
- 协议栈:是协议的详细软件实现,包罗了实际的代码实现
1.4. TCP/IP 协议栈——TCP/IP 四层或五层参考模子 中 各层的重要功能
- 网络接口层:也称作数据链路层或链路层,即是物理层+数据链路层
TCP/IP 将 OSI 的 数据链路层、物理层 归并为 网络接口层,比方:
以太网(数据链路层)通过网线(物理层)传输数据。
- 物理层:负责光/电信号的转达方式。 比如现在以太网通用的网线(双绞线)、早期以太网采取的的同轴电缆 (现在重要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的本领决定了最大传输速率、传输间隔、抗干扰性等。集线器(Hub)工作在物理层,集线器的重要作用是放大信号。
- 数据链路层:负责装备之间的数据帧的传送和辨认。比方网卡装备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、辩论检测(如果检测到辩论就主动重发)、数据不对校验等工作。 有以太网、令牌环网、 无线LAN等标准。 交换机(Switch)工作在数据链路层。
详细先容:网络接口层层 = 物理层 + 毗连层/数据链路层
物理层(physical layer)
所谓的物理层,是指光纤、电缆大概电磁波等真实存在的物理前言。这些前言可以传送物理信号,比如亮度、电压大概振幅。对于数字应用来说,我们只必要两种物理信号来分别表现0和1,比如用高电压表现1,低电压表现0,就构成了简单的物理层协议。针对某种前言,电脑可以有相应的接口,用来吸取物理信号,并解读成为0/1序列。
毗连层(link layer)
在毗连层,信息以帧(frame)为单位传输。所谓的帧,是一段有限的0/1序列。毗连层协议的功能就是辨认0/1序列中所包罗的帧。比如说,根据肯定的0/1组合辨认出帧的起始和竣事。在帧中,有收信所在(Source, SRC)和送信所在(Destination, DST),尚有可以大概探测错误的校验序列(Frame Check Sequence)。固然,帧中最告急的最告急是所要传输的数据 (payload)。这些数据通常符合更高层协议,供网络的上层使用。与数据相配套,帧中也有数据的范例(Type)信息。毗连层协议不关心数据中到底包罗什么。帧就像是一个信封,把数据包裹起来。
以太网(Ethernet)和WiFi是现在最常见的毗连层/数据链路层协议。通过毗连层协议,我们可以创建局域的以太网大概WiFi局域网,并让位于同一局域网络中的两台盘算机通讯。毗连层就像是一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信(帧)交给他,让他送给同一社区的另一户人家。
- 网络层:负责所在管理和路由选择。比方在IP协议中,通过IP所在来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。 路由器(Router)工作在网路层。
- 通过TCP大概UDP协议绘制网络舆图,数据包选取符合的路径举行传输(网络层根本单位 : 数据包 Package)
详细先容:
差别的社区之间该怎样通讯呢? 换句话说,怎样让WiFi上的一台盘算机和以太网上的另一台盘算机通讯呢?我们必要一个“中心人”。这个“中心人”必须有以下功能: 1. 能从物理层上在两个网络的吸取和发送0/1序列,2. 能同时明白两种网络的帧格式。路由器(router)就是为此而产生的“翻译”。一个路由器有多个网卡(NIC,Network Interface Controller),每个NIC可以接入多个网络,并明白相应的毗连层协议。在帧颠末路由到达另一个网络的时间,路由会读取帧的信息,并改写以发送到另一个网络。以是路由器就像是在两个社区都有分支的邮局。一个社区的邮差将信送到本社区的邮局分支,而邮局会通过自己在另一个地区的分支将信转交给另一个社区的邮差手中,并由另一个社区的邮差终极送到目标地。
整个通讯过程如下:
WiFi上的盘算机1 -> 路由WiFi接口 -> 路由以太网接口 -> 以太网上的盘算机2
(蓝色表现WiFi网络,绿色表现以太网络)
在毗连层,我们的一个帧中只能记载SRC和DST两个所在。而上面的过程必要颠末四个所在 (盘算机1,WiFi接口,以太网接口,盘算机2)。显然,仅仅靠毗连层协议无法满意我们的必要。由于毗连层协议开发在先,我们无法改动毗连层协议,只能在毗连层的数据(payload),也就是信纸内部下功夫了。IP协议应运而生。
盘算机1,路由器和盘算机2都要懂得IP协议。当盘算机1写信的时间,会在信纸的开头写上这封信的出发所在和终极到达所在 (而不是在信封上),而在信封上写上要送往邮局。WiFi网的邮差将信送往邮局。在邮局,信被打开,邮局工作职员看到终极所在,于是将信包装在一个新的信封中,写上出发地为邮局,到达地为盘算机2,并交给以太网的邮差,由以太网的邮差送往盘算机2。
(IP协议还要求写如诸如校验等信息,交通状态等信息,以掩护通讯的稳固性。)
在毗连层,邮差只负责在本社区送信,以是信封上的所在总是“第一条街第三座房子”大概说“中央十字路口拐角的小房子”如许一些本地人才相识的所在形貌,这给邮局的工作带来未便。以是邮局要求,信纸上写的所在必须是一个符合官方规定的“邮编”,也就是IP所在。这个所在为天下上的每一个房子编号(邮编)。当信件送到邮局的时间,邮局根据邮编,就能查到对应的所在形貌,从而能顺遂改写信封上的信息。
每个邮局一样寻常毗连多个社区,而一个社区也可以有多个邮局,分别通往差别的社区。偶然间一封信要通过多个邮局转交,才气终极到达目标地,这个过程叫做route。邮局将分离的局域网络毗连成了internet,并终极构成了覆盖环球的互联网。
详细先容:
上面的三层协议让差别的盘算机之间可以通讯。但盘算机中实际上有许多个进程,每个进程都大概有通讯的需求(参看Linux进程根本和Linux进程间通讯)。这就似乎一所房子里住了好几个人(进程),怎样让信准确的送到某个人手里呢?依照之前类似的逻辑,我们必要在信纸上写上新的信息,比如收信人的姓名,才大概让信送到。以是,传输层就是在信纸的空缺上写上新的“收信人”信息。每一所房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。
传输层协议,比如TCP和UDP,使用端标语(port number)来辨认收信人(某个进程)。在写信的时间,我们写上目标地的端口。当信到达目标地的管理员手中,他会根据传输层协议,辨认端标语,将信送给差别的人。
TCP和UDP协议是两种差别的传输层协议。UDP协议类似于我们的信件交换过程。TCP协议则似乎两个情人间的频仍通讯。一个小情人要表达的感情太多,以致于一连写了好几封信。而另一方必须将这些信按序次分列起来,才气看明白全部的意思。TCP协议尚有控制网络交通等功能。
- 应用层:负责应用步伐间沟通。如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络长途访问 协议(Telnet)等。 网络编程重要就是针对应用层。
TCP/IP 将 OSI 的应用层、表现层、会话层归并为应用层。比方:
HTTP(应用层)通过 SSL/TLS(表现层)加密,由 Socket API(会话层)管理毗连。
详细先容:
通过上面的几层协议,我们已经可以在恣意两个人(进程)之间举行通讯。然而每个人实际上从事的是差别的行业。有的人是状师,有的人交际官。比如说状师之间的通讯,会用严酷的状师术语,以免产生纠纷。再比如交际官之间的通讯,必须符合肯定的交际格式,以免发生交际误会。再比如特工通过暗号来转达加密信息。应用层协议是对信件内容进一步的用语规范。应用层的协议包罗用于Web欣赏的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。
各层分别存在哪些工作装备:
留意:上述内容并不绝对。许多交换机也实现了网络层的转发。许多路由器也实现了部门传输层的内容(比如端口转发)
- 对于一台盘算机,它的操纵体系实现了从传输层到物理层
- 对于一个路由器,实现了从网络层到物理层
- 对于交换机,实现了从数据链路层到物理层
- 对于集线器,只实现了物理层
1.5. TCP/IP 协议栈——根本工作原理(网络输出传输、数据封装与解封装)
上面的先容分析:
总过网络分层,我们从原始的0/1序列抽象出
本地所在(邮差)、邮编(邮局)、收信人(管理员)、收信人行业(用语规范)
这些概念。这些概念终极答应互联网上的分布于两台盘算机的两个进程相互通讯。
写信人必须按照各层的协议,封装好整个信封 (encapsulation);而收信人则按照相反的序次,来拆开这个信封。整个过程是可读信息 -> 二进制 -> 可读信息。盘算机只能明白和传输0/1序列,而盘算机的用户则总是输入和输出可读信息。网络协议包管了可读信息在整个转换和传输过程中的完备性。
盘算机协议自己尚有更多的细节必要深入。这篇文章只是从分层的角度形貌各个条理所实现的功能。
1.5.1. 网络传输流程图:
在同一个网段下,两台主秘密举行通讯,可直接交付。只要根据ARP(所在分析协议)找到主机IP和MAC所在的映射,即可直接交付。
同一个网段下两台主机的TCP/IP通讯:
跨网段的主机通讯,数据从一台盘算机到另一台盘算机传输过程中要颠末一个或多个路由器,颠末路由器的存储转发,才可以到另一个网段下的主机。
1.5.2. 数据封装与解封装:
- 数据分用:下一层向上一层交付数据,以太网驱动步伐根据MAC协议将报头和有效载荷分离,根据首部中所包罗上一层的协议决定交付给上一层谁,其他层也是一样的。
通讯过程中,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示。
差别的协议层对数据包有差别的称呼:
- 在传输层叫做数据段(segment)
- 在网络层叫做数据报(datagram)
- 在链路层叫做数据帧(frame)
数据封装成帧后发到传输介质上,到达目标主机后每层协议再剥掉相应的首部,末了将应用层数据交给应用步伐处置处罚。
第三行是以太网帧数据报的根本格式。
1.6. TCP/IP 协议族——重要协议
协议族:详细协议
协议栈:框架
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|