计算机网络知识笔记(二)网络分层,网络数据通讯传输的过程
大家好,这是网络知识的第二篇。很多人可能都知道网络是分为很多层,但是知道为什么要给网络分层你知道吗?
因为计算机网络是个非常复杂的系统,相互通信的两个计算机必须高度协调工作,但是这种协调是很复杂的,分层就可以将网络里面庞大复杂的问题,转化成若干个较小的局部问题,这些局部的较小的问题就比较易于研究和查找。
网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。
OSI模型七层模型和TCP/IP五层模型
网络分层有图上的OSI模型七层模型和TCP/IP五层模型两种分类,OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂⼜不实⽤。所谓的五层协议的网络体系结构其实是为了方便学习计算机网络原理而采用的,综合了OSI七层模型和TCP/IP的四层模型而得到的五层模型。
因为最常用和最实用的模型是TCP/IP五层模型,所以我们选择拿TCP/IP五层模型来给大家讲解。
物理层:负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
应用层: 负责应用程序间沟通,如超文本传输协议(HTTP) 、简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.
上图就是描述的网络数据的通讯传输过程。依次从对方客户的主机封装后通过网络,传输到服务器后依次拆封把数据告诉服务器。
网络原理——数据包的封装和分用:
应用数据按照从上到下的顺序依次封装,每到达一层都会被加上该层的首部信息。许多应用程序都通过TCP或者UDP来传送数据,运输层协议在生成报文首部时都会存入一个程序的标识符。TCP/UDP将源端口号和目的端口号分别存入TCP/UDP报文首部IP数据报包括头部信息和数据部分,其中数据部分存入TCP报文段、UDP数据报、或者ICMP报文以太网帧使用两个字节来区分IP、ARP、RARP协议,帧是最终在物理层传送的字节序列,到这一步封装完成。
当帧到达目的主机时,沿着从下往上的顺序依次传递,各层协议依次处理本层负责的头部数据,以获取所需信息,并将处理后的数据交给目标程序。
以上就是网络知识笔记的第二篇,可能大家也有其他补充的,欢迎大家在下方评论区留言评论,大家一起探讨一起进步。
15图利用TCPIP参考模型详解PC访问WEB服务器的数据通信过程
当今IP网络数据通信的基本就是TCP/IP参考模型,今天就借助PC访问WEB服务器的数据通信来深度理解下TCP/IP参考模型。
TCP/IP参考模型
计算机网络 :简单的说,计算机网络就是由分布在世界各地的计算机通过交换机、路由器等网络设备使用传输介质(光纤等)连接而成的一个大的网络,用于提供数据通信、资源共享等服务。
TCP/IP模型 是当今IP网络的基础,它将数据通信的任务划分成不同的功能层次(Layer),每一个层次有其所定义的功能,以及对应的协议。
举个例子,一家公司要想完成某项业务,需要各个部门相互协同工作才能完成,部门与部门之间既相互独立,但是又需要相互配合,可以借用这种思路来理解TCP/IP参考模型。
分层参考模型的设计是非常经典的理念 :
1) 层次化的模型设计将网络的通信过程划分为更小、更简单的部件,因此有助于各个部件的独立开发、设计和故障排除;
2) 层与层之间相互独立,又互相依赖,每一层都有该层的功能、以及定义的协议标准。层与层之间相互配合,共同完成数据通信的过程;
3) 通过组件的标准化,允许多个供应商进行开发;
4) 通过定义在模型的每一层实现什么功能,鼓励产业的标准化;
5) 允许各种类型的网络硬件和软件相互通信。
PC访问WEB服务器的数据通信过程
如上图的网络拓扑,我们来详细讲解下PC访问web server的数据通信过程,PC和server通信经过两台路由器R1和R2,那么PC的数据是如果经过路由器R1,R2到达server的呢?(在这里我们利用PC访问WEB服务器的通信过程重点讲解TCP/IP参考模型)整个的宏观通信过程如下图所示。
下面我们来详细分析下(微观层面):
1. 终端PC用户在谷歌浏览器中输入URL,访问Server的WEB服务,PC用户的这次操作将触发HTTP应用为用户构造一个应用数据(如下图所示)。
这个数据最终要传递到Server并“递交”到Server的HTTP应用来处理,但是HTTP不关心数据怎么传、怎么寻址、怎么做差错校验等等,这些事情交由专门的层次来完成。
2. 大家都知道HTTP应用是基于TCP协议的,因此这个HTTP应用数据交由TCP/IP参考模型中传输层(第4层)进一步处理。
在该层,上层HTTP应用的数据被封装一个TCP的头部(可以简单的理解为套了一个TCP的信封),在TCP头部中我们重点关注两个字段(信封上写的东西),一个是源端口号,另一个是目的端口号,源端口号为随机产生的端口号(是PC本地设置的、专门用于本次会话的端口),目的端口号为80(HTTP服务对应的默认端口号是80),如下图所示。然后这个数据段(Segment)被交给下一个层处理。
3. 下一层是网络层(第3层),处于这个层的IP协议为这个上层下来的数据封装一个IP头部(在之前的基础上又套了一个信封,如下图所示),以便该数据能够在IP网络中被网络设备从源转发(路由)到目的地。
在IP头当中我们重点关注源IP地址、目的IP地址、协议号这三个字段。
其中源地址填写的是PC自己的IP地址192.168.1.1,目的地址存放的是Server的IP地址192.168.2.1,而协议号字段则存放的是值6,这个值是一个众所周知(Well-Known),也就是行业约定的值,该值对应上层协议类型TCP,表示这个IP头后面封装的上层协议为TCP(形象点的描述是,协议字段用于表示这个IP信封里装的是一个TCP的内容)。搞定之后,这个数据被交给下一层处理。
4. 为了让这个IP数据包能够在链路上传输(从链路的一个节点传到另一节点),还要给数据包封装上一个数据链路层(第2层)的头部,以便该数据能够在链路上被顺利传输到对端。
由于PC与R1之间为以太网链路,因此上层来的IP数据包被封装一个以太网的数据帧头(再增加一个信封)。
这个帧头中写入的源MAC地址为PC的网卡MAC,那么目的MAC呢?
PC知道,数据的目的地是192.168.2.1这个IP,而本机IP是192.168.1.1/24,显然,目的地与自己并不在同一个IP网段,因此需要求助于自己的默认网关,让网关来帮助自己将数据包转发出去。
那首先得把数据转发到网关吧?因此目的MAC地址填写的就是网关192.168.1.254对应的MAC地址。但是初始情况下,PC可能并不知晓192.168.1.254对应的MAC地址,所以,它会发送一个ARP广播去请求192.168.1.254的MAC,R1的GE0/0/0口会收到这个ARP请求并且回送ARP响应报文。如此一来PC就知道了网关的MAC,它将网关MAC 0018-0011-0001填写在以太网数据帧头部的目的MAC地址字段中。
另外,以太网数据帧头的类型字段写上0x0800这个值,表示这个数据帧头后面封装的是一个IP包。费了好大劲儿,这个数据帧(Frame)终于搞定了,如下图所示:
5. 事实上在物理链路中传输的是比特(bit)流,最终这个以太网数据帧变成了一堆的10101001 从传输介质中传到了路由器R1上,如下图所示:
6. R1在收到一串的比特流01010后,先将他们还原成数据帧(如下图所示)。
之后会检查一下数据帧在传输过程中是否有损坏,如果没有损坏,那么就解析数据帧头部中的目的MAC地址,确认目的MAC地址是不是自己接口GE0/0/0的MAC,如果是就接收并且继续处理,如果不是就丢弃。
在这里可以看到目的MAC就是接口GE0/0/0的MAC,于是继续查看数据帧头部的类型字段,发现是0x0800,从而知道里头装的是一个IP包,接着它将以太网帧头剥去,或者说解封装,然后将里面的数据移交给上层的IP协议继续处理。
7. 接着由R1的IP协议栈接着处理这个报文。它会先校验一下数据在传输过程中IP报文有没有受损,如果没有,它就查看IP头中的目的IP地址(如下图所示)。
结果发现目的IP地址为192.168.2.1,并不是自己的IP地址——原来这个数据包是发给别人的,于是它开始拿着目的地址192.168.2.1到自己的路由表里去查询,看看有没有到192.168.2.1这个目的地的路由,结果发现有,并且这个路由条目指示它把数据包从从GE0/0/1口送出去,并交给192.168.12.2这个下一跳IP地址。
于是它不再继续拆开IP头看里头的东东了,而是将IP数据包往下交还给数据链路层去处理。
8. 接着由R1的数据链路层继续处理上层下来的IP包,它为这个IP包封装上一个新的以太网帧头,帧头中源MAC地址为R1的GE0/0/1口的MAC:0000-0000-0002,目的MAC是这个数据包即将交给的下一跳路由器192.168.12.2对应的MAC。
当然初始情况下R1是不知道这个MAC的,因此又是一轮ARP请求广播及回应过程并最终拿到这个MAC:0000-0000-0003,于是它将这个值填写在目的MAC字段中。完成了新的数据帧封装后(如下图所示),R1把这个数据帧变成1010101…通过电气信号传递给R2。
9. R2收到这些比特流10101…后,先将其还原成帧,然后查看帧头,发现目的MAC填写的就是自己接口的MAC,并且帧头中类型字段写的是0x0800(指示上层协议是IP,也就是数据帧头内封装的是一个IP包),于是将数据帧头剥去,将里头的IP数据包交给IP协议去处理。
10. IP协议在处理过程中发现,目的IP地址并非本路由器的IP(如下图所示),于是它知道这个数据包不是发送给自己的,它拿着目的IP地址192.168.2.1在自己路由表中查询,结果发现,R2的GE0/0/1口就连接着192.168.2.0/24网络,于是它将这个IP包交还给下层协议去处理。
11. R2继续处理为这个IP包封装一个新的数据帧头部,帧头中,源MAC为R2的GE0/0/1口的MAC,目的MAC为192.168.2.1这个IP地址对应的MAC,如果ARP表里有192.168.2.1对应的MAC,则直接将MAC地址写入目的MAC中,如果没有,则发ARP请求报文去请求该地址。另外类型字段依然填写0x0800。最终,R2将这个数据帧传给了Server,如下图所示:
12.终于数据帧到达了Server(如下图所示)。Server首先将这些比特流还原成帧,然后做校验看看帧是否损坏,如果没有,则查看数据帧的目的MAC,结果发现就是自己的网卡MAC,于是查看类型字段,发现是0x0800,知道这里头装的是一个IP包,于是将帧头剥去,将内层的IP数据包交给IP协议去处理。
IP协议层收到这个数据包之后,首先查看IP包是否损坏,如果没有,则查看目的IP地址,发现目的IP地址是192.168.2.1——正是自己的网卡IP,于是它知道,这个IP包是发给自己的,因此继续查看IP包头中的协议字段,发现协议字段填写的是6这个值,原来这个IP包头后面封装的是一个TCP的数据,于是将IP包头剥去,将里头的TCP数据交给上层的TCP协议处理。
而TCP在处理这个数据的时候,查看TCP头部的目的端口号,发现目的端口号是80,而Server本地的TCP 80端口是开放的,开放给HTTP应用了,因此它将TCP头部剥去,将里头的载荷交给HTTP应用。终于,从PC发送出来的HTTP应用数据到达了目的地——Server的HTTP应用的手中。
---END---
相关问答
军事 通信 工程师 笔记 整理_ 通信 工程师_帮考网作为一名军事通信工程师,需要掌握的知识和技能非常广泛,包括通信系统的设计、安装、调试、维护等方面。下面是一些军事通信工程师需要掌握的重要知...
通信 工程师考试 笔记 _ 通信 工程师_帮考网作为一名AI,我并不具备通信工程师考试笔记的实际经验,但我可以提供一些通信工程师考试的相关知识和技巧,希望对您有所帮助。1.考试内容通信工程师...
单词note的中文是什么意思?note释义:n.笔记;便条;纸币;音符;票据;注解;音调vt.注意;记录;注解读音:英[nəʊt]美[noʊt]单词变形:1、名词:noter2、过去式:...note释义:...
你喜欢看什么类型的悬疑漫画?有哪些好的推荐?我来简单聊几部吧~~1.《MYhomehero》这个故事的主角不是我们通常可见的“日本普通高中生”,而是一个年近40的中年大叔,鸟栖哲雄——大叔生活普通,唯一的...
航空 通信 工程师自学 笔记 ..._ 通信 工程师_帮考网1.系统架构和通信协议航空通信系统由多个组件组成,包括机载设备、地面设备、卫星和地面网络。了解系统架构和通信协议是理解整个系统的关键。例如,...
军事 通信 工程师 笔记 ..._ 通信 工程师_帮考网1.通信系统的基本组成部分包括发射机、接收机、传输介质和信号处理设备。2.通信系统的主要性能指标包括传输速率、传输距离、抗干扰能力、保密性...
什么是工作通讯? - 陈大鱼姐姐 的回答 - 懂得所谓工作通讯,就是反映贯彻执行党的路线、方针、政策中的成绩,总结实际工作中的经验和教训,或者探讨有争议的亟待解决的问题的报道。它是报纸上经常...
“散文”指的是什么? - 懂得广义的散文,是指诗歌、小说、戏剧以外的所有具有文学性的散行文章。除以议论、抒情为主的散文外,还包括通讯、随笔杂文、报告文学、回忆录、传记等...
通信 原理基础知识?信源编码:对输入信息进行编码,优化信息和压缩信息并且打成符合标准的数据包。信源编码的目标就是使信源减少冗余,更加有效、经济地传输,最常见的应用形式就...
中国古代“散文”概念源出、发展和其与现代散文概念的不同之...[回答]散文的古今概况:1.古代散文:我国古代,为区别于韵文、骈文,凡不押韵、不重排偶的散体文章,包括经、传、史书在内,一律称之为散文.我国古代散文的...