浏览器知识点2:TCP/IP 数据包传输过程

1,096 阅读2分钟

数据包如何送达主机:IP通过IP地址把数据包发给指定电脑

IP(Internet Protocol):计算机的地址

IP数据包开头信息:IP版本、源IP地址、目标IP地址、生存时间等

网络层:数据包+IP头,拆开数据包的IP头、将数据交给上层

主机如何将数据包转交给应用:UDP 通过端口号把数据包分发给正确应用

UDP(User Datagram Protocol):用户数据包协议,IP和应用打交道的协议

传输层:数据包+UDP头,解开UDP头、识别端口、交给上层应用

问题:

  • UDP传输 容易丢包,不重发
  • 大文件会被拆分成小数据包,经过不同路由,不同时间到达接收端,UDP不知道如何组装还原

UDP通信不建立链接,所以传输速度非常快,可以应用在在线视频、互动游戏等

数据是如何被完整地送达应用程序:TCP

TCP(Transmission Control Protocol 传输控制协议):面向连接的、可靠的、基于字节流的传输层通信协议

  • 丢包可以重传
  • 引入了数据包排序机制,可以把乱序数据包组合成完整文件

TCP 生命周期

  • 建立连接:三次握手->建立TCP链接的时候,客户端和服务器总共要发送3个数据包以确认连接的建立
  • 传输数据:接收端对每个数据包进行确认操作(接收到content-type请求头开始渲染)
  • 断开连接:四次挥手

总结

  • tcp协议和http协议的关系:

  • http 和 websoket 都是应用层,用来封住请求的文本信息

  • tcp 属于传输层

  • http 协议位于 tcp 上层

  • tcp和udp 都是传输层协议:只能二选一

  • 丢包原因:网络波动、物理线路故障、设备故障、恶意程序拦截、网络阻塞等

  • 浏览器打开多个页签:每个页签的端口是一样的,网络进程知道每个TCP连接对应的标签是哪一个,接收到数据后,会把数据分发给对应的渲染进程