最近关于网络学习总结
应用层
a设备访问了一个网页(服务器b) ,就是发送了http请求,这一层 发送的是(玩意儿M),http协议是应用层的协议
数据传输层
走到下一层,一看要用tcp发送,这里面发送都是(玩意儿N),这是数据传输层,socket套接字
tcp需要a先发个(玩意儿N)给b,然后b说我收到了(玩意儿N)发给a,然后a再发送b(玩意儿N)我也收到了,然后咱俩开始发送各种(玩意儿N)
一开始的(玩意儿N)里面并没有(玩意儿M)的实际内容,后来三次握手以后发的才是有(玩意儿M)的(玩意儿N)
传完了就是四次分手 a说我要断开了 b说好啊我知道你断开了 b说我断开了 a说我知道你断开了
网络层
(玩意儿N)到了下一层网络层,去哪走就是跟着b的IP地址,b的IP地址和域名是通过DNS服务器记着对应
拿到IP以后,和本地的子网掩码比较一下,一样就是在一个网段,那就直接去吧,不是那就去网关路由器啊,各种去找吧,总能找到这个IP地址
链路层
有了IP还得有mac地址啊,在上面说一步一步的找,这里才是真正干活的。这里mac地址才是各种玩意儿真正可以发往的地方啊,上面走一步包里面都放的是下一个目标的mac地址,到了这个节点再把下一步的mac地址放进去。
我从北京发上海某地址,卡车司机不管,就是要拉货去济南,然后另一个司机要送济南拉货去上海
另外
下面那几层对程序员来说,也操作不了啥。程序是放在a或者b上,a和b连接上了,就是各自在存储空间开辟了一块地方,然后程序将数据从内核中读取到自己的内存中。这个部分就是传说中的nio和bio模型,bio就是一直在那儿读数据,nio是一会儿来读一次。
说到nginx 四层代理就是nginx压根儿没有读这个事,就是把包的下一站地址改改,然后扔出去
七层代理是nginx也要从内核中读数据,然后干各种事情,然后转发给下一个目的地