Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1296345
  • 博文数量: 436
  • 博客积分: 7854
  • 博客等级: 少将
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 16:30
文章分类

全部博文(436)

文章存档

2013年(2)

2012年(56)

2011年(70)

2010年(308)

分类:

2010-07-30 21:09:41

当我们在七层协议最上层,主机A想和其它主机通信,比如telnet到主机B,

各层都为数据打包后再封装上自己能识别的数据标签,现在我们只说四层以

下的通信过程。
1、当一个高层的数据包到达传输层,由于telnet使用TCP协议,传输层将上

层传过来的数据不变在封装TCP的包头以便目标主机可以正确解包,继续向下

层(网络层)传递。
2、网络层同样不会改变之前的数据包,当然也包括之前封装的任何包头,首

先主机A要对目标主机作判断,他会用自己的IP地址和自己的子网掩码进行与

运算结果是172.16.12.0,然后在拿自己的掩码和主机B的IP地址作与运算,

假若结果是172.16.12.0,这个时候他知道他们在同一网段内,这时他会封装

自己的IP及目标的IP地址,同上层传下来的数据一下向下传。假若是

61.152.251.0,发现不在同一个网段,注意:这时也是用自己IP和目标IP进

行封装,然后向下层传递。在数据链路层这时就不会封装目的的MAC地址,他

也不知道MAC地址是什么,这时他会封装网关的MAC地址,而让网关将数据转

发出去。同时在网关收到数据时候,他会查看目标IP地址,当然不是他自己

的IP地址了,所以他知道这个数据发是要由他路由出去的,然后把数据包发

给了他的邻居或网络运营商的路由器上去,重复以上动作,在TTL值为0之前

将数据传递给黑X官方网站,数据传递成功!
3、数据链路层其实包括两个子层,一是LLC子层另一个是MAC子层。我们知

道在以太网中通信是物理寻址的,在这层中会封装自己的MAC地址及对方的

MAC地址。当然用户是没有通知他MAC地址是多少的,这时主机会查自己的缓

存表,看有没有主机B的MAC地址,如果有就封装,否则他会发一个ARP的地址

解析广播包,该包只会存活在该网段,虽说所有的主机都可以收到该广播包

,但只会传递到该主机的数据链路层,更确切的说传递到了数据链路层的高

层就给丢弃了。

4、接着该数据会从我们的网线等传输介质传出去,主机B当收到数据的时候

进行相同的工作但是作相反的操作

 
----------------------------------
使用FTP,telnet进行文件传输,这个是在应用层完成的,应用层下面是传输层,也就是楼上说的用TCP或者UDP,这个时候的数据包已经封装成TCP或者uDP报文了,再往下是网络层,一般都是IP协议,把上层封好的TCP或者uDP报文封装成IP报文,再往下就是链路层,把数据封装成以太报文就可以传出去了,接收方再把上面的过程逆过来,就得到传出来的数据了
阅读(2910) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~