You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 网络基础
>-java是一门基于Internet的语言它提供很多网络的支持主要集中java.net包中;
>什么是网络
>
网络就是将分散在不同位置的网络终端设备通过网络介质连接到一起,实现资源共享和通讯;
>-iP地址
>
网络中某个设备的唯一标识通过IP可找到网络中的某个设备;
>-端口
>
通过端口可以找到设备中的一个网络程序;每个计算机中可以使用65535个;
>-协议
>
通讯规则Http
>TCP/IP
>
TCP/IP以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具
有不同功能且
互为关联的协议。
TCP/IP协议模型从更实用的角度出发形成了高效的四层体系结构即网络接口层、IP层、传输层和应用层。下图表示了TCP/IP的分层结构和与OSI参考模型的对应关系。
### TCP传输控制
1. 面向连接的协议
2. 有服务端客户端
3. 基于流的通信
4. 创建服务端的Socket并等待接收客户端的连接请求
5. 客户端发送连接请求;
6. 服务端接收到客户端的请求后创建一个与之匹配的Socket,此时两个Socket就可以相互通信了﹔l
### Socket 套接字,网络终端
>- 连接到远程主机绑定到端口
>- 接收从远程机器来的连接请求监听到达的数据
>- 发送数据
>- 接收数据关闭连接。
>- 代表网络套接字,是通信的网络终端设备,屏蔽了网络通信的细节;
>- Socket s=new Socket(InetAdderss.getLocalHost(),8888;
![img_3.png](img_3.png)
### ServerSocket 服务端
>- 代码服务端的socket ,有来接受客户端的请求;
>- //1.创建serversocketIP地址是本机的端口号是8888serversocket server=new serversocket(8888);
>- //2.接受客户端的请求,如果没有客户端发请求,则一直阻塞(等待)socket=server.accept(;
### UDP协议 用户数据包
>-用户数据报协议
> User Datagram protocal ;特点;
> 1.非连接,类似于邮局发邮件;2.没有明确的服务端和客户端;3.不安全,不可靠;
> 4.传递效率高;
### DatagramSocket
>-此类表示用来发送和接收数据报包的套接字UDP)。
>-DatagramSocket(int port):创建数据报套接字并将其绑定到本地主机上的指定端口普通方法
>-send(DatagramPacket p):从此套接字发送数据报包。
>-receive(DatagramPacket p):从此套接字接收数据报包。
![img_4.png](img_4.png)
### TCP/IP
>- 报文+报头
>- 三次握手 ,客户开始,保证能够确立连接
>- 四次挥手结束
### Redis
>- 数据类型int raw embstr list hash set
>- 缓存雪崩通过随机设置Redis key失效时间解决大量缓存同时失效的问题
>- 数据穿透redis没有id直接访问数据库会在高并发情况挂掉利用校验进行过滤
>- 将redismysql搭建成高可用的集群防止单点
>- 10万/秒
### 消息队列 ActiveMQ RabbitMQ RocketMQ kafka中间件
>- 优点,解耦,异步处理,流量控制(秒杀),服务解耦
>- 解决上下游速度不一致的问题,起到缓冲的作用
### 自增Id用完了怎么办
>- 重新循环INdb覆盖原来的值