3 网络协议入门

  1. 从淘宝买东西举例来说明一次请求中的,网络有关的部分
  2. 是打开浏览器,输入购物网站的地址:
java 复制代码
https://www.taobao.com/
  1. 那么浏览器是怎么打开购物网站的首页的呢?
    (1)首先受到了一段http报文
xml 复制代码
HTTP/1.1 200 OK
Date: Tue, 27 Mar 2018 16:50:26 GMT
Content-Type: text/html;charset=UTF-8
Content-Language: zh-CN
<!DOCTYPE html>
<html>
<head>
<base href="https://www.taobao.com/" />
<meta charset="utf-8"/> <title> 淘宝3 周年主会场 </title>

(2)由于客户只是在浏览器地址栏输入:

java 复制代码
https://www.taobao.com/
1.但是浏览器并不知道具体的淘宝的ip地址,因此浏览器需要去打开地址簿去查找,这个一般的地址簿使用的是DNS,或者是更精准的HTTPDNS
2.无论是用的哪一种,最终都会得到一个ip:106.1xx.13x.2x

(3)知道了目标地址,浏览器开始打包请求:

java 复制代码
1.对于普通的浏览请求,往往会使用HTTP协议
2.但是对于购物的请求,往往需要进行加密传输,因而会使用HTTPS协议
3.无论是什么协议,里面都会写明"你要买什么和买多少"(请求参数)

(4)DNS、HTTP、HTTPS 所在的层我们称为应用层

java 复制代码
1.经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现
2.下一层是传输层,传输层有两种协议:
  a.一种是无连接的协议UDP
  b.一种是面向连接的协议TCP
3.对于支付来讲,往往使用 TCP 协议。所谓的面向连接就是,TCP 会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达.
4.TCP 协议里面会有两个端口:
  a.一个是浏览器监听的端口
  b.一个是电商的服务器监听的端口
5.操作系统往往通过端口来判断,它得到的包应该给哪个进程。
6.传输层封装完毕后,浏览器会将包交给操作系统的网络层
7.网络层的协议是 IP 协议:
   IP 协议里面会有源 IP 地址,即浏览器所在机器的 IP 地址和目标 IP 地址,也即电商网站所在服务器的 IP 地址.
8.既然知道了目标ip,那么改如何找到这个目标ip呢?
  a.操作系统往往先判断这个ip是本地ip,还是远程ip
  b.既然知道了目标ip是远程ip,不在本局域内,那么就需要通过网关去奔向目标ip
9.本地网关之间的通讯基本靠吼(也就是ARP协议),网关响应之后,就会告诉客户端自己的地址,即MAC地址。
10.于是这个ip包就给到了下一层:MAC层
   网卡再将包发出去,这个包里面就包含了MAC地址
11.网关收到包之后,会根据自己的知识,判断下一步应该怎么走。网关往往是一个路由器,到某个 IP 地址应该怎么走,这个叫作路由表
12由于请求带着目标的ip,路由器就会告诉请求,你的下一跳应该去哪里才可以访问到目标ip
  因为路由器之间也会经常通信,这种沟通成为路由协议,常用的有OSPF和BGP

(5)当网络包平安到达 TCP 层之后,TCP 头中有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听这个端口号,假设一个 Tomcat,将这个包发给电商网站。

相关推荐
物联网软硬件开发-轨物科技18 分钟前
【轨物洞见】什么是产品碳足迹(PCF)?ISO 14067 计算方法与应用场景深度解读
大数据·网络·人工智能
姜鱼问生3 小时前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器
qq_543447823 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
刘马想放假3 小时前
网络链路备份与高可用技术详解:从 Dual-WAN、LACP 到 SD-WAN 与 MPTCP
网络协议
Zelman4 小时前
第07章-数据中心网络
后端·网络协议
威胁猎人5 小时前
网络水军产业风险研究报告
网络
独钓寒江雨5 小时前
路由器单MAC多IP支持功能未开启致业务异常
网络·数通·故障·中兴·m6000·单mac多ip
桀人6 小时前
USART帧格式
网络·stm32·单片机·嵌入式硬件
2301_777998346 小时前
TCP粘包问题:原理、解决方法与UDP为什么没有粘包
网络
马六六i6 小时前
市面上专业的IP驱动产业新场景新工具哪家好
网络·人工智能·python·tcp/ip