您的位置 首页 java

一分钟了解java网络编程

一、OSI七层网络模型

应用层:Http协议、电子邮件传输、文件服务器等;

表示层:数据转换,解决不同系统的兼容问题(跨语言);

会话层:建立与应用程序的会话连接;

传输层 :提供了端口号和传输协议(TPC/ UDP );

网络层 :为数据实现路由(路由器、 交换机 );

数据链路层:传输地址的帧以及错误检测;

物理层 :以二进制形式,在物理机器上实现传输(光纤、专线各种物理介质传输);

网络通讯协议图连接:

二、TCP与UDP协议

Socket 技术 :任何编程语言都支持Socket技术开发(网络编程技术),目的就是解决两个应用程序通讯的问题;

Socket技术支持两种协议 :TCP与UDP协议;

TCP与UDP协议区别

TCP协议 :是一个面向连接可靠的协议,因为在建立连接的时候必须通过三次握手才可以实现数据传输;因此数据不会丢失;应用场景: http协议, rpc 框架等;

UDP协议:是面向无连接的协议,因为UDP在通讯的时候不需要接受方存在;属于不可靠协议;应用场景:直播, 微信 聊天等;

TCP协议三次握手:

1. 第一次握手:客户端会向服务端发送消息SYN=1,SEQ=x(随机数);

2. 第二次握手:服务端接确认收到客户端的消息SYN和SEQ,服务端会给客户端回复消息ACK=1+x,SEQ=y(随机数);

3. 第三次握手:客户端会收到服务端的回复SYN,ACK,SEQ(y),客户端就会给服务端发送消息ACK=1+y;

三次握手成功开始建立连接,传输数据;

四次挥手

1. 第一次挥手:客户端向服务端发送一个释放连接通知;

2. 第二次挥手:服务端接受到释放通知之后,告诉给客户端说等待一下,因为可能存在有其他的数据没有发送完毕,等待数据全部传输完毕之后就开始关闭连接;

3. 第三次挥手:服务器端所有的数据发送完毕之后,就告诉客户端说现在可以释放连接了;

4. 第四次挥手:客户端确认是最终释放连接通知,ok 就开始向服务端发送我们可以开始关闭连接啦;

注:SYN(建立连接)、ACK(确认标记)、FIN(终止标记)

总结:三次握手目的:就是确保连接可靠;四次挥手就是关闭连接;

三、HTTP协议实现原理

Http协议一种 超文本 传输的协议,基于TCP/IP协议的包装,应用场景:img、css、js、html等;

http协议版本:1.0和1.1

http协议1.0: 规定客户端和服务端传输完成之后,立马关闭连接(短链接);(如果请求非常多,这样频繁去关闭连接,非常耗资源);

http协议1.1: 开始支持长链接;

四、长链接与短链接

长链接:客户端与服务端建立连接之后,不会立马关闭连接,会保持一定的复用机制,默认情况下在300s空闲情况下自动断开连接;

短链接:客户端与服务端发送消息后,立马关闭连接,如果频繁发送请求,可能消耗服务器端资源;

文章来源:智云一二三科技

文章标题:一分钟了解java网络编程

文章地址:https://www.zhihuclub.com/182193.shtml

关于作者: 智云科技

热门文章

网站地图