IP、UDP、TCP,HTTP---7.20学习笔记

149 阅读3分钟

页面文件如何送达到浏览器?-IP、UDP、TCP

一、数据包如何送达主机?

  1. IP:网际协议,把数据包送达主机。
  • IP头:数据包开头的信息,包含IP版本,IP源地址、IP目标地址、生存时间
  • 一个数据包从主机A传输到主机B的过程:
a)主机A的上层将数据包交给网络层,
b)网络层给数据包添加IP头,形成新的数据包,传送给底层
c)底层通过物理网络传送给主机B
d)网络层分析数据包,将数据包拆开成数据包+IP头
e)主机B将数据包传送给主机B的上层

2. UDP: 用户数据包协议,把数据包传送给应用程序。

  • UDP中的重要信息就是端口号
  • UDP头:把端口号(目标端口号,源端口号)装在UDP头中,和数据包结合形成新的数据包
  • 为了支持UDP协议,一个数据包是怎样传输的呢?
a)主机A的上层应用程序将数据包传输给传输层
b)传输层给数据包添加UDP头,形成新的数据包
c)新的数据包在网络层添加IP头
d)新的数据包通过物理网络从主机A传送给主机B
e)在网络层解析IP头和数据包
f)数据包在创数层解析出来UDP头和新的数据包创数给上层应用程序
  • UDP缺点:
a)数据包在传输过程中容易丢失,不能保证数据可靠性
b)大文件传输时会被拆分成多个小数据包,但是UDP不知道如何拼装这些数据包

优点:

速度快

3. TCP: 完整的把数据送达到应用程序

  • 应用场景:浏览器请求、邮件
相对于UDP,TCP的优点
a)数据包丢失,有重传机制
b)TCP引入数据排序机制,把错乱的数据重新整合
  • TCP传输的三个过程
a)三次握手,建立连接。
为什么要三次握手才能连接上呢?因为要确保接受和发送数据的双方的发送和接受数据能力都正常。
b)传输数据
c)四次挥手,断开连接。
为什么要挥手四次呢?
第一次是发送数据一端发送给接收数据一端信号,告诉他我数据发送完了,
第二次,接收数据端接收信号,告诉发送端我知道了
第三次,接收端告诉发送端,我接收完了
第四次,发送端告诉接收端,我知道了,准备断开连接

HTTP

HTTP(超文本传输协议)是基于TCP的协议,是一种允许浏览器和服务器之间通信的协议。

  • 浏览器发起一个HTTP请求的过程,都发生了什么?
1、构建请求
2、查找缓存
3、DNS解析域名,DNS查找缓存
4、等待TCP队列,Chrome的机制是统一域名下,最多只能建立6个TCP连接,如果少于6个直接建立TCP连接
5、建立TCP连接
6、发送HTTP请求
7、服务器端处理HTTP请求
8、断开连接
9、重定向

思考题:

  1. 为什么很多站点第二次打开速度会很快?
第一次加载过程中缓存了一些第一次比较耗时的数据。包括DNS缓存和页面资源缓存。