微信发出消息后,消息走过哪些路

网络传输的基本流程
模拟例子:


网络传输流程图
1.同一个网段内的两台主机进行文件传输

2.跨网段的主机的文件传输.
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.


数据包封装和分用
不同的协议层对数据包有不同的称谓:
   在传输层叫做段(segment),
   在网络层叫做数据报(datagram),
   在链路层叫做帧(frame). 

应用层数据通过协议栈发到网络上时,
每层协议都要加上一个数据首部(header),称为封装(Encapsulation). 

首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息. 

数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 
根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.
1
2
3
4
5
6
7
8
9
10
11
12
数据的封装过程:

数据的分用过程:


访问一个浏览器过程
在浏览器中输入 http://www.baidu.com/ 后执行的全部过程。

现在假设如果我们在客户端浏览器中输入 http://www.baidu.com, 
而 baidu.com 为要访问的服务器,
下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作:

    1)客户端浏览器通过 DNS 解析到 www.baidu.com 的 IP地址220.181.27.48,
       通过这个 IP地址 找到 客户端到服务器 的路径。
       客户端浏览器 发起一个HTTP会话到220.161.27.48,
       然后通过TCP进行封装数据包,输入到网络层。
    
    2)在 客户端的传输层,把 HTTP会话请求 分成报文段,添加源端口和目的端口,
       如 服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,
       与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。
       然后使用IP层的IP地址查找目的端。
    
    3)客户端的网络层不用关系应用层或者传输层的东西,
       主要做的是 通过查找路由表确定如何到达服务器,期间可能经过多个路由器,
       这些都是由路由器来完成的工作,不作过多的描述,
       无非就是通过查找路由表决定通过那个路径到达服务器。
    
    4)客户端的链路层,包通过链路层发送到路由器,
       通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,
       如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,
       然后发送IP数据包到达服务器的地址。

 

eg2:

 

PC-A向PC-B传输消息,首先是用户打开消息应用例如QQ,然后给小黑发消息(你吃了吗),

1)在应用层生成数据”你吃了吗(小黑IP)“,然后数据传入表示层节点-表示层,

2)在表示层将数据进行转换(针对计算机系统编码如IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码等等的不同)加密,压缩-会话层

3)在会话层将这个qq消息的回话区分出来,然后将会话内容以及相关信息传到下一层-网络层

4)在网络层将会话内容和相关信息(小黑IP)封入数据包-运输层

5)在运输层需要在数据包中插入写信人IP,跟快递一样写明寄件人-数据链路层

6)在数据链路层(对应网卡和相应驱动程序)将小黑IP对应到他的硬件地址(MAC地址网络适配器唯一标识)-物理层

7)在物理层将数据包由帧转换为电信号/光信号,然后通过光纤传输,中途跋山涉水,不断的转发到达目的地,中间万一丢东西了咋办呢,所以这个节点加入了校验值,万一目的地校验后出现了丢失那么重新发送一次,-光纤。

8)剩余的就是和上述相反的过程,由PC-B接收,然后小黑回复(我没喝水)。

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值