Java工作知识

网络

2019-07-09  本文已影响1人  谁家的猪

OSI开放式互联参考模型——7层协议

1、物理层 传输比特流,数模转换,模数转换

2、数据链路层 比特转为帧

3、网络层 网络地址映射物理地址 例如路由器在这一层、TCP/IP中的IP协议

4、传输层 传输协议、流量控制、分割数据 例如TCP/IP中的TCP协议

5、会话层 建立、管理不同应用程序的通信

6、表示层 加密、转换翻译

7、应用层 例如TCP/IP中的HTTP协议

image.png

TCP/IP——OSI的一种实现

image.png

TCP三次握手

传输控制协议TCP简介

TCP Flags

image.png

为什么要三次握手?

为了初始化Sequence Number的值

第一次握手隐患——SYN超时

SYN Flood攻击 攻击者只发送SYN,不ACK,耗尽服务器SYN连接

防御措施

建立连接后,Client出现故障怎么办?

保活机制

TCP四次挥手

image.png

为什么会有TIME_WAIT状态?

为什么要四次挥手?

因为全双工,发送方和接收方都需要FIN报文和ACK报文

服务器出现大量CLOSE_WAIT状态的原因?

对方关闭socket连接,我方忙于读或写,没有及时关闭连接

TCP与UDP区别

UDP特点

结论

TCP滑动窗口

RTT和RTO

TCP使用滑动窗口做流量控制与乱序重排

HTTP简介

超文本传输协议HTTP主要特点

请求/响应的步骤

在浏览器地址栏键入URL,按下回车之后经历的流程

HTTP状态码

常见状态码

GET请求和POST请求的区别

从三个层面来解答

Cookie和Session的区别

Cookie

Session

Session的实现方式

结论

HTTP和HTTPS的区别

SSL(Security Sockets Layer,安全套接层)

加密方式

HTTPS数据传输流程

结论

Socket简介

Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口

Socket通信流程


image.png
public class TCPClient {

    public static void main(String[] args) throws Exception{

        Socket socket = new Socket("127.0.0.1",65000);

        OutputStream os = socket.getOutputStream();

        InputStream is = socket.getInputStream();

        os.write(new String("Hello").getBytes());

        byte[] buff = new byte[1024];

        int length = is.read(buff);

        String msg = new String(buff,0,length);

        System.out.println("客户端收到:" + msg);

        os.close();

        is.close();

        socket.close();

    }

}
public class TCPServer {

    public static void main(String[] args) throws Exception{

        ServerSocket socket = new ServerSocket(65000);

        while(true){

            Socket ss = socket.accept();

            InputStream is = ss.getInputStream();

            OutputStream os = ss.getOutputStream();

            byte[] buff = new byte[1024];

            int length = is.read(buff);

            String msg = new String(buff,0,length);

            System.out.println("服务器收到:" + msg);

            os.write(new String("OK").getBytes());

            os.close();

            is.close();

            ss.close();

        }

    }

}
上一篇 下一篇

猜你喜欢

热点阅读