基础网络图解|分层 TCP Socket

请求流程

  • 浏览器请求
  • socker到内核
  • dns解析
  • tcp udp 八万多端口,随机来一个
  • ip 源id目标ip
  • mac 原mac 目标mac
  • 经过路由器层层转发,就到了目标地址,然后反向解析出来
CNI、负载均衡、防火墙、sermash截留

Socket

linux socket 基层 文件
socket本身就是一个文件
五元组(端口(原目)、ip(原目 )、协议)
  • socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式Linux中的一切都是文件,为了表示和区分已经打开的文件,UNIX/Linux会给每个文件分配一个ID,这个ID就是一个整数,被称为文件描述符
  • 网络连接也是一个文件,它也有文件描述符
  • 服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接
  • 在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了
  • 服务端的Accept接收到请求以后,会生成连接FD,借助这个FD我们就可以使用普通的文件操作函数来传输数据了,例如 :
notion image
用read0读取从远程计算机传来的数据
用write0向远程计算机写入数据
notion image
notion image
notion image
notion image
notion image
notion image
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP