‘壹’ OSI鍙傝冩ā鍨嬬殑涓冨眰缁撴瀯
🔌鐗╃悊灞
鐗╃悊灞傝В鍐充袱涓纭浠朵箣闂存庝箞阃氢俊镄勯梾棰桡纴甯歌佺殑鐗╃悊濯掍粙链夊厜绾ゃ佺数缂嗐佷腑缁у櫒绛夈傚畠涓昏佸畾涔夌墿鐞呜惧囨爣鍑嗭纴濡傜绣绾跨殑鎺ュ彛绫诲瀷銆佸厜绾ょ殑鎺ュ彛绫诲瀷銆佸悇绉崭紶杈扑粙璐ㄧ殑浼犺緭阃熺巼绛夈
🔗鏁版嵁阈捐矾灞
鏁版嵁阈捐矾灞备粠缃戠粶灞傛帴鏀舵暟鎹鍖咃纴鏁版嵁鍖呭寘钖鍙戦佹柟鍜屾帴鏀舵柟镄処P鍦板潃銆傛暟鎹阈捐矾灞傛墽琛屼袱涓锘烘湰锷熻兘銆傚畠鍏佽镐笂灞备娇鐢ㄦ垚甯т箣绫荤殑钖勭嶆妧链𨱒ヨ块梾浠嬭川锛屾带鍒跺备綍鏀剧疆鍜屾帴鏀舵潵镊浠嬭川镄勬暟鎹銆
🌐缃戠粶灞
浼犺緭灞傚皢鏁版嵁娈典紶阃掑埌缃戠粶灞伞傜绣缁滃眰鐢ㄤ簬灏嗘帴鏀跺埌镄勬暟鎹娈典粠涓鍙拌$畻链轰紶杈揿埌浣崭簬涓嶅悓缃戠粶涓镄勫彟涓鍙拌$畻链恒傜绣缁滃眰镄勬暟鎹鍗曞厓绉颁负鏁版嵁鍖咃纴缃戠粶灞傜殑锷熻兘鏄阃昏緫瀵诲潃銆佽矾鐢卞拰璺寰勭‘瀹氥
📡浼犺緭灞
浼犺緭灞傛槸阃氢俊瀛愮绣鍜岃祫婧愬瓙缃戠殑鎺ュ彛鍜屾ˉ姊侊纴璧峰埌镓夸笂钖涓嬬殑浣灭敤銆侽SI涓3灞傜殑涓昏佷换锷℃槸鏁版嵁阃氢俊锛屼笂3灞傜殑浠诲姟鏄鏁版嵁澶勭悊锛屼紶杈揿眰鏄绗锲涘眰锛屽洜姝よュ眰鏄阃氢俊瀛愮绣鍜岃祫婧愬瓙缃戠殑鎺ュ彛鍜屾ˉ姊侊纴璧峰埌镓夸笂钖涓嬬殑浣灭敤銆
👥浼氲瘽灞
浼氲瘽灞傛槸鐢ㄦ埛搴旂敤绋嫔簭鍜岀绣缁滀箣闂寸殑鎺ュ彛锛屼富瑕佷换锷℃槸缁勭粐鍜屽岗璋冧袱涓浼氲瘽杩涚▼涔嬮棿镄勯氢俊锛屽苟瀵规暟鎹浜ゆ崲杩涜岀$悊銆
💻琛ㄧず灞
琛ㄧず灞傛寚浠庡簲鐢ㄥ眰鎺ユ敹鏁版嵁锛岃繖浜涙暟鎹鏄浠ュ瓧绗﹀拰鏁板瓧镄勫舰寮忓嚭鐜扮殑锛岃〃绀哄眰灏呜繖浜涙暟鎹杞鎹㈡垚涓烘満鍣ㄥ彲浠ョ悊瑙g殑浜岃繘鍒舵牸寮忥纴涔熷氨鏄灏佽呮暟鎹鍜屾牸寮忓寲鏁版嵁锛屼緥濡傚皢ASCII镰佽浆鍖栦负鍒镄勭紪镰侊纴杩欎釜锷熻兘绉颁负钬灭炕璇戋濄
📱搴旂敤灞
搴旂敤灞傛槸OSI鍙傝冩ā鍨嬬殑链楂桦眰锛屽畠浣胯$畻链虹敤鎴蜂互鍙婂悇绉嶅簲鐢ㄧ▼搴忓拰缃戠粶涔嬮棿镄勬帴鍙o纴鏄缃戠粶搴旂敤绋嫔簭镓浣跨敤镄勶纴渚嫔侣TTPS鍗忚銆丠TTP鍗忚锛屽簲鐢ㄥ眰鏄阃氲繃鍗忚涓虹绣缁沧彁渚涙湇锷★纴镓ц岀敤鎴风殑娲诲姩銆
‘贰’ 什么是数据包,数据包是用来干什么的
数据包是TCP/IP协议通信传输中的数据单位。数据包包含发送者和接收者的地址信息。这些数据包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合。
任意一台主机都能够发送具有任意源地址的数据包。当数据包进行长距离的传输时需要经过许多中继站。每个中继站就是一台主机或路由器,他们基于路由信息,将数据包向下一个中继站传递。在数据传输的路途上,如果路由器遇到大数据流量的情况下,它可能在没有任何提示的情况下丢掉一些数据包。
较高层的协议(如TCP协议)用于处理这些问题,以便为应用程序提供一条可靠的链路。如果对于下一个中继站来说数据包太大,该数据包就会被分片。也就是说,大的数据包会被分成两个或多个小数据包,每个小数据包都有自己的IP头,但其净荷仅仅是大数据包净荷的一部分。
每个小数据包可以经由不同的路径到达目的地。在传输的路途上,每个小数据包还可能会被继续分片。当这些小数据包到达目标机器时,他们会被重新拼装到一起。按照规则规定,在中间节点上,不允许对小数据包进行拼装组合。
(2)数据包是从哪里传出的扩展阅读
数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成,包括包头和包体,包头是固定长度,包体的长度不定,各字段长度固定,双方的请求数据包和应答数据包的包头结构是一致的,不同的是包体的定义。
数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。
正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。
‘叁’ 什么是数据包
“包”(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是
TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所
以在局域网中,“包”是包含在“帧”里的。
名词解释:OSI(Open System
Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同
通信级别的协议。OSI模型有7层,17层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI模型在逻辑上可分为两个部分:低
层的14层关注的是原始数据的传输;高层的57层关注的是网络下的应用程序。
我们可以用一个形象一些的例子对数据包的概念加以说明:我
们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专
用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。
“包”
听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在Windows 2000
Server中,把鼠标移动到任务栏右下角的网卡图标上(网卡需要接好双绞线、连入网络),就可以看到“发送:××包,收到:××包”的提示。通过数据包
捕获软件,也可以将数据包捕获并加以分析。
(见:附件图)就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,大家可以很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。
附:数据包的结构
数据包的结构非常复杂,不是三言两语能够说清的,在这里我们主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成。
数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。
正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。
‘肆’ 数据包是如何在网络中传输的
我们电脑上的数据,是如何“走”到远端的另一台电脑的呢?这是个最基础的问题,可能很多人回答不上来,尽管我们每天都在使用网络。这里我们以一个最简单的“ping”命令,来解释一个数据包“旅程”。
假设:我的电脑A,向远在外地的朋友电脑B传输数据,最简单的就是“ping”一下,看看这个家伙的那一端网络通不通。A与B之间只有一台路由器。(路由器可能放在学校,社区或者电信机房,无所谓,基本原理是一样的)
具体过程如下------
1.“ping”命令所产生的数据包,我们归类为ICMP协议。说白了就是向目的地发送一个数据包,然后等待回应,如果回应正常则目的地的网络就是通的。当我们输入了“ping”命令之后,我们的机器(电脑A)就生成了一个包含ICMP协议域的数据包,姑且称之为“小德”吧~~~~
2.“小德”已经将ICMP协议打包到数据段里了,可是还不能发送,因为一个数据要想向外面传送,还得经过“有关部门”的批准------IP协议。IP要将你的“写信人地址”和“收信人地址”写到数据段上面,即:将数据的源IP地址和目的IP地址分别打包在“小德”的头部和尾部,这样一来,大家才知道你的数据是要送到哪里。
3.准备工作还没有完。接下来还有部门要审核------ARP。ARP属于数据链路层协议,主要负责把IP地址对应到硬件地址。直接说吧,都怪交换机太“傻”,不能根据IP地址直接找到相应的计算机,只能根据硬件地址来找。于是,交换机就经常保留一张IP地址与硬件地址的对应表以便其查找目的地。而ARP就是用来生成这张表的。比如:当“小德”被送到ARP手里之后,ARP就要在表里面查找,看看“小德”的IP地址与交换机的哪个端口对应,然后转发过去。如果没找到,则发一个广播给所有其他的交换机端口,问这是谁的IP地址,如果有人回答,就转发给它。
4.经过一番折腾,“小德”终于要走出这个倒霉的局域网了。可在此之前,它们还没忘给“小德”屁股后面盖个“戳”,说是什么CRC校验值,怕“小德”在旅行途中缺胳膊少腿,还得麻烦它们重新发送。。。。。我靠~~~~注:很多人弄不清FCS和CRC。所谓的CRC是一种校验方法,用来确保数据在传输过程中不会丢包,损坏等等,FCS是数据包(准确的说是frame)里的一个区域,用来存放CRC的计算结果的。到了目的地之后,目的计算机要检查FCS里的CRC值,如果与原来的相同,则说明数据在途中没有损坏。
5.在走出去之前,那些家伙最后折磨了一次“小德”------把小德身上众多的0和1,弄成了什么“高电压”“低电压”,在双绞线上传送了出去。晕~~出趟门就这么麻烦吗?
6.坐着双绞线旅游,爽!可当看到很多人坐着同轴电缆,还有坐光纤的时候,小德又感觉不是那么爽了。就在这时,来到了旅途的中转站------路由器。这地方可是高级场所,人家直接查看IP地址!剩下的一概不管,交给下面的人去做。够牛吧?路由器的内部也有一张表,叫做路由表,里面标识着哪一个网络的IP对应着路由器的哪一个端口。这个表也不是天生就有的,而是靠路由器之间互相“学习”之后生成的,当然也可以由管理员手工设定。这个“学习”的过程是依靠路由协议来完成的,比如RIP,EIGRP,OSPF等等。
7.当路由器查看了“小德”的IP地址以后,根据路由表知道了小德要去的网络,接着就把小德转到了相应的端口了。至此,路由器的主要工作完成,下面又是打包,封装成frame,转换成电压信号等一系列“折腾”的活,就由数据链路层和物理层的模块去干吧。
8.小德从路由器的出口出来,便来到了目的地----电脑B----所属的网络的默认网关。默认网关可以是路由器的一个端口,也可以是局域网里的各种服务器。不管怎样,下面的过程还是一样的:到交换机里的ARP表查询“小德”的IP地址,看看属于哪个局域网段或端口,然后就转发到B了。
9.进了B的网卡之后,还要层层“剥皮”,基本上和从A出来的程序是一样的------电脑B先校验一下CRC值,看看数据是否完整;然后检查一下frame的封装,看到是IP协议之后,就把“小德”交给IP“部门”了;IP协议一看目的地址,正确,再看看应用协议,是ICMP。于是知道了该怎么做了------产生一个回应数据包,(可以命名为“回应小德”),并准备以同样的顺序向远端的A发送。。至于刚刚收到的那个数据包就丢弃了。
10.“回应小德”这个数据包又开始了上述同样的循环,只不过这次发送者是B而接收者是A了。
以上是一个最简单的路由过程,任何复杂的网络都是在次基础之上实现的。
‘伍’ 数据包和数据帧分别代表什么
1,包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。
TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,帧工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。
2,所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包,等等。
(5)数据包是从哪里传出的扩展阅读
数据包在传输过程中是以数据帧的形式传输的,数据帧由帧头+IP头+TCP/UDP头+数据+帧校验组成;
在每一个路由器上帧头与帧校验都会变化以适应不同的链路,其他内容基本不变;
所有数据都是以二进制数据进行编码的,根据各个链路类型在不同的物理链路上编码传输。
‘陆’ 用udp协议,假如A发送一个数据包到B,B电脑有多个网卡,怎么知道数据包从哪个网卡出。
不管是tcp还是udp,最后都是根据路由表来决定下一跳的,也即决定从哪个网口发出。
在 windows上查看路由表的命令是
route print,
在 unix/linux下查看的命令
route
根据你发送包的 destination IP,可以从路由表中找到对应的条目,然后就知道从哪个网口发了,比如我的机器上路由信息是
Destination Gateway Genmask Flags Metric Ref Use Iface
135.252.213.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
0.0.0.0 135.252.213.1 0.0.0.0 UG 202 0 0 eth0
第一条说明如果目的地址是 135.252.213.x ,那么就匹配第一条路由表项,那么是从 eth0 网口发出。第二条全0的那条,就是默认路由,如果无法和任何一条表象匹配,那么就会使用默认路由。
更多细节,这里一时半会也说不清,总之你知道是根据路由表来决定就行了,具体的你去网上查一些跟路由表有关的内容就知道了。