【网络基础】当我的浏览器上输入了“baidu.com”……

今天宏观的说一说网络传输的流程
我在浏览器上输入baidu.com到底会发生什么?
在这里插入图片描述
总的来说是这样的

  1. 浏览器查找域名的IP地址(DNS服务器)
  2. 封装好HTTP数据报
  3. TCP三次握手建立连接(商议MSS最长报文长度MSS=MTU-网络层-传输层)
  4. 添加TCP/UDP头部(端口号80),发送HTTP数据(看情况决定要不要分段)
  5. 添加IP协议头部,通过网络层管理地址、选择路径
  6. 通过ARP查询IP地址对应的MAC地址
  7. 添加以太网协议头部,链路层传输数据
  8. 到服务器后一层一层解析协议头,拿到真实数据并处理
  9. 接着通过刚才的方式,一层一层加协议头、发送响应报文给浏览器。

1.域名解析

不管是网络层还是链路层(ARP转换),都得用的IP地址进行下一步传输。
这时候可以使用DNS解析IP地址。

  • 浏览器会先从主机的Hosts文件中查看是否有百度域名和IP地址的映射
  • 如果Hosts文件没有,浏览器会查看自己的缓存
  • 如果都没有,就请求DNS服务器来获取IP地址在这里插入图片描述

2.建立连接、发送数据

  • 发送HTTP请求报文前要先发送一个HTTPS报文建立一个安全信道,并且确定网站的真实性。
  • 建立TCP连接。
  • 加上TCP的头部,发送真正的HTTP报文。(主要加HTTP的端口号)

3.寻找地址

  1. 把包封装好交给路由器,接下来是网络层的工作了
  2. 路由器在转发IP包时,首先确定目的IP地址,再查路由表。
  3. 如果查到了,直接转发给目标主机对应的接口。如果没查到就走缺省路由地址(一般是上一层路由地址),继续重复2、3步。

这里有一点就是,如果跨局域网了,那会使用NET技术,发送的时候每次把源IP地址换成公网IP。返回的时候,根据公网IP的记录表给到对应的主机。(这张表在三次握手时创建、FIN确认应答后删除对应记录)

4.ARP得到MAC地址

现在到目的主机的路已经选好了,传输也有TCP保证可靠性。
就差链路层在设备之间对数据的传输协议了。
在链路层,什么IP和域名都不管用,它关注的是设备,而能唯一区分设备的,就是MAC地址。(但但但……还是需要IP地址的哈……)
所以用到了IP转MAC的ARP协议。

  • 通过广播发送一个ARP请求包到同一链路的每个主机上(包中有想要知道的IP地址)
  • 每个主机收到广播,解析包中IP,若有和自己IP一致的,就把自己的MAC地址打包进ARP响应包中,发回去。如果没有直接丢弃。

顺便提一嘴RARP,看名字也知道是干嘛的。
在有接口的设备(比如主机),就可以使用DHCP动态分配IP(其实也是解决了IP数量问题)。但是没有接口的话就得利用RARP服务器,“问”服务器我MAC地址对应的IP应该是什么?

5.物理层转为01二进制光电信号

……
基本上就这样了……

还是那句话,如有错误请评论赐教!谢谢~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值