图解TCP/IP;

OSI七层参考模型

image-20200405195932930 img

HTTP协议

image-20200405200118533
  1. 应用层协议: HTTP协议, SSH协议

    应用层想建立通信, 先阻塞, 调内核, 告诉内核想和谁通信

  2. 传输控制层, 如果是TCP协议, 制作一个握手的包, 制作之后阻塞, 调网络层

  3. 网络层触发路由条目判定, 拿着目标的IP地址, 从路由表(有网络层就有路由表)去找, 从哪个口出去合适(找到哪个下一跳合适), 调链路

  4. 链路层根据你要下一跳的IP地址, 通过ARP协议, 获取MAC地址, 有了映射之后, 封了一个数据包 {源端口号->目标端口号 源IP地址->目标IP地址 源MAC地址->目标MAC地址} 三层完成寻址

image-20200406173649038
  1. arp广播, 可获得目标MAC地址
  2. 每一跳MAC地址都会改变, 目标IP地址不变
  3. 交换机衔接同一网络, 两层, 没有路由表
  4. 路由器衔接不同网络, 三层, 有路由表, 可以做路由转发和判定
image-20200406172106856

image-20200406171335574

image-20200406173740380

image-20200406173811840

image-20200406173837272

高并发负载均衡:

tomcat为什么慢?
是应用层, 要走很多层

LVS负载均衡服务器为什么快, 数据包级别, 没有七层, 要求后端服务器是镜像的
LVS四层, Nginx七层

一层lvs hold住流量(流量负载层) 一层nginx hold住握手(接入层,接到后边tomcat)

image-20200406174544842

image-20200406181203062

负载均衡两块网卡, VIP虚拟网课, DIP分发网卡

方案一慢, D-NAT(基于三层,换ip): 保证去回的IP能对应 非对称 去的时候赛车,回来的时候变卡车 能力有限

方案二快, DR(基于二层,换mac): 直接路由模型 MAC欺骗 企业用得最多的

image-20200406180132566
  1. 路由器有两个地址, 一个内网地址, 一个公网地址
  2. 私有地址解决IP地址不够用问题, 不会出现在互联网上
  3. S-NAT: (源地址)路由器修改1.8和1.6的端口号,
  4. 上边图: VIP->RIP

公开课

1.和百度建立连接 : 应用层 走的是HTTP协议

image-20200413201303047

2.发送get请求 / 根目录,主页

image-20200413201650607

3.查看响应

image-20200413202032204

image-20200413202554457

image-20200413202541641

image-20200413203550480

image-20200413205903398

https://blog.csdn.net/pashanhu6402/article/details/96428887

img

img

服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。

共同开辟资源

image-20200413204352374

image-20200413204543971

image-20200413210433311

每个socket都能开65536个端口
AC只占用一个端口
一个

多层映射, 唯一路径

image-20200413205547335

image-20200413210039092

image-20200413210411534

抓包
image-20200413210521953

监听
image-20200413210614147

image-20200413210838852

不可被分割的对小粒度: 三次握手->数据传输->四次挥手

image-20200413211230556

LVS四层 高并发负载均衡器 不能随便发包

image-20200406174544842

image-20200413211648782

三次握手, 传输控制层做第一个包, 阻塞住, 给网络层, 网络层给链路层

image-20200413212157100

IP地址:点分字节,0-255
掩码: ip和11111100按位与,得到网络号192.168.150.0, 前三字段,
网关: 链路层下一跳的地址
DNS: 域名解析

路由表
image-20200413212638496

局域网不用走网关
image-20200413213004272

下一跳
链路层再封一层MAC地址

image-20200413214944503

软件是工程学, 层与层是依赖的
先有arp, 再有三次握手

image-20200413214126593

arp协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

iconfig lo:3 192.168.88.88/24

image-20200413214639062

image-20200413214812426

image-20200413214823949

image-20200413214856112

跳板机
image-20200413215151587