前面的话
上一篇中,介绍了网络基础。本文将详细介绍客户机在浏览网页abc.com时,数据在网络中的传输过程
以图为例,PC1通过HTTP协议访问位于Server上的网页。那么,网页数据在网络中是如何传输的呢?下面是具体的实现步骤
客户机处理
HTTP协议的职责是生成针对目标WEB服务器的HTTP请求报文,该报文就是需要传递的数据
下沉到传输层后,由于HTTP协议使用的是TCP协议,为了方便通信,将HTTP请求报文按序号分为多个报文段(segment),并对每个报文段进行封装。PC1使用本地一个大于1024以上的随机TCP源端口(这里假设是1030)建立到目的服务器TCP80号端口的连接,TCP源端口和目的端口被加入到报文段中,学名叫协议数据单元(Protocol Data Unit, PDU)。因TCP是一个可靠的传输控制协议,传输层还会加入序列号、窗口大小等参数
传输层封装后的数据分段下沉到网络层后,封装网络层的头部,主要就是添加源和目的IP地址,成为数据包。用户通常使用主机名或域名来访问服务器,这时就需要通过应用层的DNS服务来通过域名查找IP地址,或逆向从IP地址反查域名。这里的源IP地址是193.1.1.2,目的IP地址是195.1.1.2
网络层封装后的数据包下沉到数据链路层,封装帧头和帧尾。帧尾是添加被称做CRC的循环冗余校验部分。帧头主要是添加数据链路层的地址,即数据链路层的源地址和目的地址,用在以太网上的体现就是添加源MAC地址和目的MAC地址。PC1比较要去往的目标IP地址,发现服务器的IP地址195.1.1.2不在本地网络中,PC1知道要发往不同网络中的数据包,首先要发往网关,也就是图中路由器R1快速以太网接口Fa0/0的1P地址193.1.1.1。PC1査询本地的ARP缓存,如果找到193.1.1.1对应的MAC地址则进行封装;如果在ARP缓存中没有找到193.1.1.1对应的MAC地址,则使用ARP协议,査询到网关对应的MAC地址 “00-11-BC-7D-25-03” 。于是,这里的源MAC地址是PC1的MAC地址“00-1B-24-7D-25-01”,目的MAC地址是网关的MAC地址 “00-11-BC-7D-25-03”
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26