建站多少钱一个,品牌推广工作内容,天津到天津天津网站开发,西宁设计网站网络的一些名词和基础知识讲解 前言正式开始一些基础知识发展背景运营商和生产商 协议协议的分层TCP/IP五层(或四层)模型#xff08;可以不看#xff0c;对新手来说太痛苦了#xff0c;我这里只是为了让屏幕前的你过一遍就好#xff0c;里面很多概念新手是不太懂的#xf… 网络的一些名词和基础知识讲解 前言正式开始一些基础知识发展背景运营商和生产商 协议协议的分层TCP/IP五层(或四层)模型可以不看对新手来说太痛苦了我这里只是为了让屏幕前的你过一遍就好里面很多概念新手是不太懂的 两个主机间的通信在同一个局域网中的主机报头如何做到直接通信 在不同局域网中的主机MAC地址和IP地址 数据包封装和分用 前言
我前面写的博客都是Linux系统相关的知识再往前就是C/C和数据结构的这写也都写的差不多了从这篇博客起就开始讲网络相关的知识了。
前面Linux部分的知识学起来比较枯燥因为大多数人还没学网络之前都不知道学os到底能干啥什么进程线程的好像没什么用这是因为没有数据来源有了网络就可以从网络中接收数据再让进程/线程来处理这些数据了处理的时候有的线程用来读取IO有的用来做计算还有的用来连接数据库等等所以当网络中有数据传来时我们就要对其做系统级的处理所以学习系统部分是学习网络的基础我后面的博客讲讲网络然后再让os和网络一结合就可以写出网络级的代码了。
我前面也没写过网络的博客所以本篇的知识不会涉及特别深只是讲网络相关的一些名词、概念介绍介绍讲讲其与系统的初步关系关于网络的深度剖析后面的博客会再详谈。本篇的名词和概念有了就能简单的上手写一些网络相关的代码带大家见见猪跑能写出一些简单的客户端和服务端间通信的代码就行。
正式开始
本篇重点讲解
了解网络发展背景, 对局域网/广域网的概念有基本认识了解网络协议的意义, 重点理解TCP/IP五层结构模型学习网络传输的基本流程, 理解封装和解包
一些基础知识
发展背景
发展背景就简单介绍一下这个对于新手来说了解了解还是很有必要的。
首先是先有的计算机然后才有的网络。第一台计算机名字叫埃尼阿克感兴趣的同学自行百度一下我就不讲这个了 起初计算机都是独立使用的多个计算机之间没有联系 后来多台计算机可以连接在同一个服务器上 当一个人处理完数据后可以再交给服务器然后其他人可以从服务器上拿数据进行进一步的处理处理完后还可再次发送。 这里已经可以算是局域网了比如早些年某些实验室就是多台计算机连在一个服务器上。像什么贝尔实验室、伯克利的、麻省理工的等等。 但此时若两个实验室间有一个合作的项目需要一块处理某些数据就可以让两个局域网通过一个路由器连接进行数据交互。这样局域网和局域网之间就可以进行通信了 上面图中的交换机、路由器什么的稍后再简单讲讲在后面深度讲网络的时候再详谈本篇只是进行简单的扫盲。 再来说广域网就是将远隔千里的计算机都连在一起 可能各位的学校教材上还会有城域网的说法。 这里给小白解释解释所谓的“局域网”、“城域网”、“广域网”只有规模上的差别无非就是介入网络的主机个数不同看一块网是哪个网在不同的视角下也是有一定的差异的。比如站在你们村子的角度来看你家就可以看作局域网整个村子的网络就可以看做是广域网但是站在整个市或者整个省来看你的村子又可看做是一个局域网而整个城市才是一个广域网。
所以广域网什么的知识为了在学术上区分一下但从技术角度都是一些相对的概念不过这里讲解的时候还是要说一说的。
运营商和生产商
我们生活中的这些网络是由谁建设和维护的呢 答案是运营商像移动、联通、电信啥的。
还有一个和运营商关系非常密切的叫生产商后者负责硬件上的支持像华为、诺基亚等公司负责通信设备的生产。
有这两个角色各位才能看到手机上的B站、淘宝等APP若有没有这两个角色为基础那么就不可能存在什么APP若有一方没做好就会出现问题比如若运营商没做好网络方面的维护网速很慢各位刷CSDN的时候特别卡半天才蹦出来一个页面那这就很痛苦相应的顾客就会减少。
协议
网络中一个很重要的东西叫做协议。
啥是协议呢 像我们买车 / 买房 / 工作的时候签合同这就算是协议。 而在我们网络中协议是指软硬件都要遵守的一种约定用于在计算机网络中传输数据和进行通信。 网络中传输的数据是有类别的有的数据只是一个普通的数据比如说某人的姓名、性别等而有的数据可以控制对方主机的操作等等也就是说数据也是有其内容和属性的就像文件一样有其内容和属性。 为了让两个相隔千里的主机能够快速的区分出数据是什么类别每种类别中的特定内容又代表着什么含义就要提前让这两台电脑约定好不同内容代表何种信息这样就能减少双方通信带来的成本。那么这里的约定就可以说是协议。 不知屏幕前的你看过姜文的《让子弹飞》没其中有一个场景就是张麻子一伙人去“剿匪”他们在“剿匪”时通过吹哨来进行沟通这就是一种通信方式。想要实现这种通信就得让张麻子一伙的人都学会分辨出不同的哨声所代表的特定含义并且还要会吹出代表着不同含义的哨声。 假如说吹两声短的就是全体进攻的意思我瞎编的两声长的就是撤退的意思也是我瞎编的这两声短和两声长的的哨声得让一伙人都得铭记在心不同的声音对应不同的行为这就是用哨子通信的协议。 来分析一下为什么要这么做 减少成本。 如果有一句话非常长而且打仗着嘞你得吆喝着喊不然可能队友听不见但是吆喝着时间长了又容易暴露位置敌人有可能发现你有点危险万一说之前气没喘上来中间又换了一口气换气的时候有一个队友以为你说完了而且还误解了你的意思直接冲出去了这不就会造成数据不一致问题么那这个队友不就小命不保了么。而通过简短的哨声来发送数据队友就能立马意识到该干什么事你也不容易暴露。所以协议的设定能让双方通信更加高效。
只要通信的两台主机, 约定好协议就可以了么? 不是的即便当两台主机约定好了协议单仍可能无法进行通信。计算机生产厂商有很多计算机操作系统也有很多计算机网络硬件设备还是有很多如何让这些不同厂商之间生产的计算机能够相互顺畅的通信就需要有人站出来约定一个共同的软硬件标准大家都来遵守, 这就是网络协议;
这就好像说方言一样你让一个广东人和一个西藏人交流西藏人说藏语广东人说客家话虽然都能表达出那个意思但是讲出来是完全不一样的。虽然都是中国的但对方都听不懂对方的语言。
协议的分层
说几点
协议有很多种os也要进行协议管理其本质在内核的层面上的体现就是有很多的结构体故os也是要对协议进行先描述再组织的。听不懂没关系留个印象就好协议在设计的时候是被层状划分的。什么叫层状划分呢比如说C中的继承基类、子类、“孙类”……再往下就不说了整个继承体系中的每一辈都可看做是一层。
先不说协议被分成了哪几层先来说说生活中现实场景分层的好处。 比如说两个人打电话
在我们普通人看来打电话时是两个人在直接通信但是在技术人员的角度来看并不是这么简单比如AB两方打电话A方先和其电话交流然后A方的电话再将A方人的信息经过一系列操作交给B方的电话然后B方的电话再将收到的消息经过一系列操作交给B方的人。这里就有分层的体现这里人有人的语言层人和人用中文在沟通而底层是两部电话在用电话能够识别的语言在通信所以人打电话至少是两层通信的机制。
当两个老外打电话时人和人的协议用的是盈余但是并不会影响二者通信底层还是用电话的协议。
当两个中国人用无线电沟通时此时底层用的协议就变成了无线电的协议。 上面这个例子就能说说为啥要分层了。
一是因为场景比较复杂如果不复杂就不需要分层。 比如两个人不能面对面说话时得用电话来实现交流但如果当面说话还得要当面打电话说那不就是脱裤子放屁么。但如果是两个大老板比较忙那就得由二者的秘书传话可能二者的秘书还要用电话来交流这样就至少分了三层场景就更复杂了。二是会实现功能解耦每一层只解决每一层的问题不需要关注其上下层的问题。 比如说秘书替老板传话A老板说最近比较忙等闲下来找B老板打高尔夫那么A老板的秘书就只负责传A老板的话就行了不能说A秘书直接擅自私下传话时将A老板的决定改为等闲下来了去找B老板旅游A秘书给B秘书打电话A和B的电话只负责用什么频率进行通信等硬件上的功能B的秘书也是只负责接收这个信息并传递给B老板。如果中间有一方除了差错那就找具体的问题就行比如说A的电话坏了那是电话的问题换一个或修一下就好如果说A秘书真的改了A老板的决定那就找A秘书的问题。 让同层A老板和B老板、A秘书和B秘书、A电话和B电话的只关注自己本身的任务再通过接口互相调用便于人们进行各种维护。故网络协议就被分成了层状。
网络协议是怎么分层的呢 通过通信时出现的问题来分不同层解决不同问题。
通信的复杂程度是和距离成正相关的。 单从通信范畴来说千里之外的两个主机通信时可能出现的问题有
接收方没接收到数据即丢包问题。发送方怎么确定接收方的位置如何确保不会发错即定位问题。千里之外数据发送出去要经过多个路由器转发不懂的话看看刚刚那张广域网的图比如数据先发给一号路由器一号路由器再跳到二号路由器然后继续往下一个路由器跳即解决下一跳主机的问题。
上面三个问题那么就可以有三层
丢包问题由传输层解决。定位问题由网络层解决。下一跳的主机问题由数据链路层来解决。
其实还会有一个问题就是传输的时候用什么频率等硬件上的问题这里的问题是物理层结局的不过物理层太偏硬件了我的博客中主要讲软件的内容所以就不详细说物理层了。
还要从应用的范围来说接收方在接收到数据后如何处理数据这个问题由应用层来解决。所以共五层协议
上面也说了主要讲软件所以物理层不做讨论只关注上面四层
这样的分层模型是最经典的网络协议分层模型——TCP/IP模型。
我前面讲进程概念的博客中有这么一张图
这里也分层了那么网络协议的分层和这里的计算机的分层有什么关联吗 答案是有的
都是对应的。
后面博客中重点讲的是应用层的如何写还有传输层和网络层的os怎么做。以后在进行通信的时候使用的是传输层向上提供的system call系统调用接口所以网络编程的本质依旧是系统编程。因为用的依旧是os故本质上依旧是在学os。
TCP在传输层/IP在网络层是在操作系统中实现的主要完成通信细节的处理上面的应用层是用户进程来完成的主要处理应用程序处理数据的细节。
但定制标准网络协议的组织并不是严格按照上面的5层来搞得而是7层
这里的分层模型是OSI七层模型。比TCP/IP多了两层一个叫表示层一个叫会话层。 但是TCP/IP是在OSI之后才有的二者的关系就像蓝图的实际建造的房子一样。
OSI只是由专业组织定义出来的并不是他们实现出来的在真正实现OSI的时候人们发现到应用程、表示层和会话层没法拆开是一体的所以就将三者合在一块了。
TCP/IP五层(或四层)模型可以不看对新手来说太痛苦了我这里只是为了让屏幕前的你过一遍就好里面很多概念新手是不太懂的
TCP/IP是一组协议的代名词它还包括许多协议组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构每一层都呼叫它的下一层所提供的网络来完成自己的需求 物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。
一般而言 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容; 对于一台路由器, 它实现了从网络层到物理层; 对于一台交换机, 它实现了从数据链路层到物理层; 对于集线器, 它只实现了物理层;
但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发)。 物理层: 负责光/电信号的传递方式。 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. 数据链路层: 负责设备之间的数据帧的传送和识别。 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层. 网络层: 负责地址管理和路由选择。 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. 传输层: 负责两台主机之间的数据传输。 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机. 应用层: 负责应用程序间沟通。 如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等. 我们的网络编程主要就是针对应用层
两个主机间的通信
在同一个局域网中的主机
在同一个局域网中的两台主机是可以直接通信的通信时在逻辑上是当前主机的应用层直接将数据传给了另一台主机的应用层
但是实际上并不是就像刚刚打电话的那个例子一样。
通信时一方的数据必须先自顶向下将数据报文从应用层传递到最下面然后再通过局域网下面的那个以太网就是应用最广泛的局域网传递到另一方的链路层然后再自底向上传到应用层 w
为啥要这样干呢我来讲一个生活中的例子。
假如你和你朋友住在同一个小区但是你俩不在同一栋楼中你在A楼TA在B楼但是你俩都在第五层如果你朋友想要给你送一个礼物这时候TA得从B楼的第五层下到第一层然后再通过AB楼间的路走到A的楼下然后再跑到A的五层此时就送到你手上了。所以逻辑上来说是你朋友把礼物直接送到了你手中但是从物理方面来说TA是先从上到下然后再经过中间的路然后再从下到上把礼物送过来的。就和这里的数据传输一样。一个是从用户的角度去理解一个是从工程师的角度去理解。
报头
层状结构中每一层都有自己的协议定制方案每层协议都要有自己的协议报头从上到下传递数据的时候要添加报头从下到上递交数据时要去掉报头比如说我现在QQ发了一个你好整个向下传输的流程大致就是这样的
向上传输时每一层都会进行解包解包就是将自己得到的数据的报头和有效载荷有效载荷就是每一层最外层长方形框出来的东西分离并将有效载荷交给上层就是这样
完整流程就是
那报头是干啥的呢 想想各位寄快递和取快递的时候寄快递时需要填一张单子那张单子就贴在你的递上这张快递并不是给寄件人或收件人看的而是给快递公司看的这里的快递单就可以看作是报头对于寄取双方并没有什么作用就是一个多出来的东西寄 》快递公司 》快递公司 》收件人一共是两层。收到快递进行解包解包后拿到数据即交付不过说只有两层解包的工作是自己一个人干的。
上层向下传递数据时下层要根据自身协议来为上层传下来的数据添加某些字段而另一方的同层在接收到数据时也要根据其协议来为下层传上来的数据中的相应字段做解析和处理。协议报头就是收到的报文当中多出来的数据内容。报头能够决定交给上层的哪一个协议。
自上到下封装添加报头。 自下到上解包去掉报头 展开分析后面说。
添加报头类似于入栈解包类似于弹栈这样同层在逻辑上就是在直接通信 这样效率能更高一点每一层不需要找报头在哪直接找栈顶就行。
如何做到直接通信
前面说了局域网中的两台主机可以直接通信那么是怎么做到的呢
先来讲个例子 教室上课老师点名张三回答问题此时全班的同学动能听到但只有张三一个人站起来了二者对话时全班的人是都能听见的但老师只是和张三在沟通也即在所有人都能接受到信息时二者进行了定向通信老师 》张三张三 》老师。
问为什么老师点名张三时其他同学不站起来问题有点二 因为老师没叫其他人但这句话的前提是所有同学都收到了这个消息。
局域网就很类似通信的时候就相当于某台主机在整个局域网中开麦然后点名某个主机就可以给那个主机发消息了。看图 此时有ABCDEF六台主机连在同一个局域网中当B想和E通信时B发数据前会点名要把这个数据发给E但是点名的时候ACDEF都可以听见不过他们都会先对比一下B主机叫的D主机名和自己的主机名是否一样发现不是在叫自己就会直接丢掉这个信息所以最终只有D接收到了这个数据并将数据向上传递做后续处理同样的D若想回B消息也是同样的原理。
当上课时有一门捣蛋分子不断打断老师上课节奏课就没法上了。在整个教室这个介质中所有的人都可以说话当老师上课时有同学在不断发出很大的噪音就会影响老师的发言也就会影响老师和其他学生的通信。
同样B和E主机通信时是通过局域网这个介质来通信的而局域网中只要连上的主机就可以往局域网中发送光电信号若此时A主机在BE联系的正欢的时候随便发消息这样就会导致BE发送的和A发送的光电信号混合在一块这样B和D的信息就识别不了了这就叫做局域网内数据通信时发生了碰撞问题。
在不同局域网中的主机
在不同局域网中的主机通信的时候稍微有点不一样不过加报头和去报头的流程还是一样的。
不同的局域网种类可能是不同的。注意我加粗了可能目前最流行的局域网类型有以太网和无线局域网。
如果各位想看看局域网有哪些可以看看这篇博客局域网有哪些种类?目前流行哪几类局域网?。
当不同的局域网种类可能相同也可能不同想要通信的时候要通过路由器前面最开始的那几张发展历史的图也说了。
看图
想要讲一下详细流程的话得先说说两个地址MAC地址和IP地址。
MAC地址和IP地址
MAC地址是数据链路层用的IP地址是网络层用的。 Linux下可以用ifconfig来查看二者(我这里用的是云服务器如果你是虚拟机的话会和我这里的显示不太一样) 先来说说IP地址和MAC地址都是干啥的举个例子 西游记应该都看过吧唐僧应该都知道吧。就拿唐僧来说。 唐僧从头到尾在别人问他从哪来到哪去时他总是说的是“贫僧从东土大唐而来到西天拜佛求经”。这一路上他就要干这个源头到目的地永远不会改变一直是东土大唐源头到西天目的地。 假如唐僧是个路痴每到一个地就得问一个人下一站往哪走。假设此时唐僧师徒四人在碧波潭已经把万圣龙王给端了此时他问路人去西天要往哪走时路人给他说往荆棘岭走唐僧一行人就屁颠屁颠的往荆棘岭去然后通关荆棘岭后又在荆棘岭问路人该去哪时路人说去七绝山然后四人又去七绝山了。 至此就可以说说IP地址和MAC地址了。 这里唐僧身上有两套地址。 . IP地址就是从头到尾一直不变的东土大唐 》西天那么东土大唐就是源IP西天就是目的IP。IP地址从头到尾一直不变。但是IP地址可以为唐僧从当前站到下一站往哪走提供方向。 . MAC地址是会随着唐僧所在位置的变化而变化的唐僧在碧波潭时下一站要往荆棘岭走此时的出发地是碧波潭目的地是荆棘岭那么这里的源MAC地址就是碧波潭目的MAC地址就是荆棘岭。而当唐僧跑到荆棘岭后下一站要往七绝山去那么此时源MAC地址就是荆棘岭目的MAC地址就是七绝山。每次的目的MAC地址都是受目的IP西天影响的不能说唐僧要去西边下一站的MAC地址跑到了东边的高老庄。 唐僧在取经时源IP和目的IP永不变。每次经过一个地方就相当于数据经过了一台路由器问路人西天怎么走时路人会为唐僧回答下一站在哪这个过程就叫做路由那么路由的本质就是根据数据的目的地选择下一站去哪里。 MAC地址能够表示局域网中某一主机的唯一性。
IP地址在整个互联网中是唯一的。
能听出来区别不MAC的唯一性是局部的而IP的唯一是全局的。
在局域网中MAC地址是指网络设备如计算机、路由器、交换机等所拥有的唯一标识符。MAC地址由48位二进制数字组成通常用十六进制表示。每个网络设备的MAC地址都是唯一的这是通过设备制造商在生产过程中分配给每个设备的。
再看一下我刚刚给的ifconfig的图
看上面的MAC地址一共六个字节也就是48位用十六进制表示一个十六进制数字能表示4位那么就会有12个十六进制数两两一块人家都给你分好了。这里的地址就是以太网地址前面的那个单词ether就有以太的意思。俗称MAC地址。
MAC地址用来识别数据链路层中相连的节点长度为48位, 也就是6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 27:70:87:a3:f0:09)在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
MAC地址的唯一性保证了在局域网中不会出现重复的地址这样可以确保数据包能够正确地从源设备传输到目标设备。当设备在局域网上发送数据包时它将目标设备的MAC地址包含在数据包的头部这样交换机或路由器就能根据MAC地址将数据包传送到正确的设备。
尽管MAC地址在局域网中是唯一的但它只在局域网范围内具有唯一性。当数据包离开局域网并经过路由器进入广域网时源设备的MAC地址将被替换为路由器的MAC地址。
再来看图 这里的inet为IPnet的简写代表主机的IP地址云服务器上该IP为内网IP我们平时用的是公网IP。 关于公网IP和内网IP的区别可以看这篇什么是公网IP?公网IP与内网IP的区别。 IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4 IP地址是在IP协议中, 用来标识网络中不同主机的地址; 对于IPv4来说, IP地址是一个4字节, 32位的整数; 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
再来拿出这张图
图中有两个局域网通过路由器连在一起了。 此时A向B发送数据还是先从上到下添加报头但是不能直接通过A所在局域网发给B所在的局域网了要先把A的数据发给路由器然后再由路由器发给B所在的局域网令牌环网此时再从下到上解包给主机B。
同样的操作不过中间多了几步而且这几步非常重要。
来画画图解
封装时网络侧也就是图中IP的那一层会将源IP和目的IP源IP就是A主机的IP目的主机就是B主机的IP封装到该层的报头中。
而数据链路层会将源MAC地址和目的MAC地址此处的源MAC地址就是A主机的MAC地址目的MAC地址就是路由器的MAC地址封装到该层的报头中。
此时最重要的几步开始了封装好的数据会通过以太网发送到路由器那个虚线长方形中的以太网驱动程序也就是数据链路层而这一步就根据的是数据包中数据链路层的报头中的源MAC和目的MAC:
并在此处对数据链路层的数据的报头和有效载荷分开去掉报头就是去掉其原来数据的源MAC地址和目标MAC地址并将有效载荷传给路由器的网络层
此时路由器网络层接收到数据时一看数据的源IP和目的IP说我知道B主机在哪下一站你往右边的那个局域网走就行所以此时数据继续从路由器的网络层去往数据链路层然后添加报头添加报头时用的是令牌环网的报头源MAC地址就变成了路由器的MAC目的MAC地址就变成了B主机的MAC
然后下面的步骤就是从下到上了
各位有没有发现在整个流程中数据只有数据链路层时是不一样的而网络层以上的层都是一样的
同层拿到的都是一个数据所以可以说无论两台主机跨了多远在网络层网上的同层看到的数据都是一样的。只有底层是稍有差异的。
所以整个TCP/IP协议的网络流程中IP及其以上的协议看到的报文都是一样的。
再假设两台主机间有多个路由器
我就画两个就行了多个同理。数据传输的大致流程就是这样。中间不断更新源MAC地址和目的MAC地址。
到这就讲的差不多了再来点专业术语。
数据包封装和分用 不同的协议层对数据有不同的称谓,在传输层叫做数据段(segment),在网络层叫做数据报 (datagram),在链路层叫做数据帧(frame)。其实都是数据叫法不同罢了我上面讲解时就同一用数据来说了。 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。就是添加报头。 首部信息中包含了一些类似于首部有多长, 有效载荷(payload)有多长, 上层协议是什么等信息. 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。也就是解包。 下图为数据封装的过程 上面图中的以太网尾部帧是以太网数据帧的最后一个字段它的作用是提供错误检测和纠正功能以确保数据的完整性。尾部帧通常由4个字节的FCSFrame Check Sequence组成它是通过对数据帧中的所有比特进行计算得到的校验值。接收方可以使用FCS值来检测数据传输过程中是否发生了错误并且在检测到错误时可以丢弃该数据帧。 下图为数据解包的过程 我前面也讲了首部还决定了将当前的数据交给上层的哪个协议这里就体现出了这一点。这里图中网络层有三个协议IP、ARP、RARP传输层有四个TCP、UDP、ICMP、IGMP当然不止这么些 这里不讲那么深入了等后面博客再详谈。只要记住当前层解包后的有效载荷要交给上层的那个协议是有当前层的报头决定的。发送方同层用的是哪个协议都会写在报头中所以交付的时候就会对应交给的协议。
除去掉最上层的应用层每一层的协议都要考虑数据如何解包问题。就像各位小时候上课传小纸条一样你写一个小纸条要传给你朋友别人不能看只能由规定的人看也就是你朋友如果非常机密的话中间被人看到了你很生气下课直接给偷看的人揍了一顿开个玩笑就是为了让屏幕前你记住有效载荷由上层的固定协议来拿。
到此结束。。。 文章转载自: http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn http://www.morning.tkrdg.cn.gov.cn.tkrdg.cn http://www.morning.mpyry.cn.gov.cn.mpyry.cn http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn http://www.morning.swdnr.cn.gov.cn.swdnr.cn http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.gynkr.cn.gov.cn.gynkr.cn http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn http://www.morning.rzsxb.cn.gov.cn.rzsxb.cn http://www.morning.qjrjs.cn.gov.cn.qjrjs.cn http://www.morning.ghccq.cn.gov.cn.ghccq.cn http://www.morning.qklff.cn.gov.cn.qklff.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn http://www.morning.clfct.cn.gov.cn.clfct.cn http://www.morning.npfkw.cn.gov.cn.npfkw.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn http://www.morning.cczzyy.com.gov.cn.cczzyy.com http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn http://www.morning.wdlg.cn.gov.cn.wdlg.cn http://www.morning.jqhrk.cn.gov.cn.jqhrk.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.jhxtm.cn.gov.cn.jhxtm.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.qnhcx.cn.gov.cn.qnhcx.cn http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.kpnpd.cn.gov.cn.kpnpd.cn http://www.morning.lqlc.cn.gov.cn.lqlc.cn http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn http://www.morning.kdldx.cn.gov.cn.kdldx.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn http://www.morning.jsphr.cn.gov.cn.jsphr.cn http://www.morning.dsprl.cn.gov.cn.dsprl.cn http://www.morning.rqkck.cn.gov.cn.rqkck.cn http://www.morning.npmx.cn.gov.cn.npmx.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn http://www.morning.qlsyf.cn.gov.cn.qlsyf.cn http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.rkfh.cn.gov.cn.rkfh.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.hdscx.cn.gov.cn.hdscx.cn http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn http://www.morning.lngyd.cn.gov.cn.lngyd.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn http://www.morning.fewhope.com.gov.cn.fewhope.com http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.xnyfn.cn.gov.cn.xnyfn.cn http://www.morning.xyrw.cn.gov.cn.xyrw.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.rttkl.cn.gov.cn.rttkl.cn http://www.morning.jcypk.cn.gov.cn.jcypk.cn http://www.morning.mhnxs.cn.gov.cn.mhnxs.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.gtqws.cn.gov.cn.gtqws.cn http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn http://www.morning.bqdgr.cn.gov.cn.bqdgr.cn