网络编程

java网络编程

www.cnblogs.com/weijie4611/… 为什么需要三次握手连接? 第一次握手,A让B知道A连B 第二次握手,B让A知道B收到了消息,证明A可以发送数据了 第三次握手,A让B知道,收到消息,B知道可以接受数据了 为什么要四次握手 blog.csdn.net/baidu_39486…

什么是内核: 现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这一部分称之为操作系统的内核。

阻塞io:当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。 典型的阻塞IO模型的例子为: data = socket.read(); 如果数据没有就绪,就会一直阻塞在read方法 2.非阻塞IO模型 当用户线程发起一个read操作后,并不需要等待,而是马上就得到了一个结果。如果结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。一旦内核中的数据准备好了,并且又再次收到了用户线程的请求,那么它马上就将数据拷贝到了用户线程,然后返回。 所以事实上,在非阻塞IO模型中,用户线程需要不断地询问内核数据是否就绪,也就说非阻塞IO不会交出CPU,而会一直占用CPU。 信号驱动IO模型? 异步IO模型? Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点 reactor 

简单说一下http协议? http是超文本传输协议,从万为网到浏览器的传输。 基于tcp/ip 协议传输(HTML 文件, 图片文件, 查询结果等) http特点: 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接 HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。

http协议下客户端请求报文是什么? 客户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行(request line) 请求头部(header) 空行 请求数据

四个部分组成

下面是常见的HTTP状态码: l 200 - 请求成功 l 301 - 资源(网页等)被永久转移到其它URL l 404 - 请求的资源(网页等)不存在 l 500 - 内部服务器错误

网络传输协议本质和作用是什么 协议本质是双方约定好的一种传输规则,为了让传输数据的双方节点能建立连接,按照约定去传输和解析数据

请说出TCP和UDP的区别? TCP应用场景: 效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。

UDP应用场景: 效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。 TCP: 一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议 。 特点: 面向连接; 点到点的通信; 高可靠性; 占用系统资源多、效率低;

UDP: 一种无连接的、提供面向事务的简单不可靠信息传送服务的传输层通信协议。 特点: 非面向连接 传输不可靠,可能丢失 发送不管对方是否准备好,接收方收到也不确认 可以广播发送 非常简单的协议,开销小

原文地址:https://www.cnblogs.com/zj-xu/p/13790710.html