HTTP和IP通信原理

HTTP和IP通信原理


前言

一、在学习之前可以思考以下问题:

  • 在数据库连接(TCP)的时候,如果并发的时侯,是一个并发对应一个连接还是一个连接可以给多个并发复用的?如果数据库有事务怎么办?
  • HTTP协议在多个并发下,连接是复用的吗?不行,连接在计算机上就是IO
  • RPC框架能不能复用连接?

二、OSI 7层参考模型

在这里插入图片描述

三、应用程序的HTTP连接模型

在这里插入图片描述

  • 应用程序可以在应用层通过各种协议来和内核(传输控制层,网络层,链路层,物理层)的建立连接
    1.在服务器上通过nc命令完成网络建立连接的过程,并在应用层通过HTTP协议去获取连接
    在这里插入图片描述
    2.通过netstat -natp命令查看nc命令
    在这里插入图片描述

  • 应用程序想要建立一个连接,首先是先要通过内核的传输控制层去控制数据包的来回的一些事情,传输控制层有UDP和TCP协议(三次握手 --------> 数据的发送 --------> 四次分手)

  • 三次握手
    1.TCP协议是面向连接的,可靠的传输协议(三次握手,之所以要三次是因为连接是双向的)
    在这里插入图片描述
    2.通过三次握手(未算建立连接)后客户端和服务端双方都要开辟资源(只能当前连接使用)

  • 发送数据
    3.发送数据其实就是把需要发送的数据搁到开辟的资源里面,由传输控制层把资源拿出来通过底层发送,然后对方给出确认,如果对方想要返回数据,那也把数据放入资源里面通过传输控制层封装成包给网络层,在找链路层发出去,然后对方接受到在返回确认,这样通过资源层的各种队列来解耦了应用程序和底层虚无的所有连接的过程,和完成确认的可靠性。

在这里插入图片描述

  • 四次分手
    4.分手是任意一端都可以发起,第一次的FIN和第二次FIN+ACK是基于可靠性传输的,不参与行为(也就是说不代表同意的),只有四次都走完了,双方才会释放数据包
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值