java网络编程

网络的构建方式:网络的结构分为

 1.客户端 服务器结构模式(餐厅服务员),顾客是主动的

   2.对等结构网络,每个人即是服务端又是客户端(自助餐模式)【范围特别小,一间办公室的wifi和蓝牙设备就是基于对等网络结构实现的】

高层次网络编程 URL,  采用http,https等协议 

 https  需要申请证书

http是超文本传输协议,明文传输,https则是安全的  ssl加密协议,连接方式不一样,端口也不一样

http连接是无状态的(无状态的意思就是异步处理,各管各的),https=http+ssl  更安全的协议(身份认证,网站认证,加密传输)。

低层次网络编程socket          采用TCP,UDP等协议

     

tcp

  建立连接通道,三次握手,效率变低
udp   无连接,数据量小,速度快,不可靠协议连接

TCP/ip协议          因为原生的ip协议,将数据拆成数据包,并发到目的地,不保证数据的完整性和顺序性。

三次握手

客户端是a,服务器端是b

1) 
a发送数据文本给服务器,进入同步序号发送状态,等待服务器确认
2)
服务器接收到请求,如果同意建立连接,就会像客户端发确认反馈信息,为tcp协议分配缓存和变量
3)
客户端收到服务器端的确认消息后,向服务器端发送确认消息,并为tcp连接分配缓存和变量,

进入tcp连接成功状态

四次挥手

1.客户端发送FIN为1的协议给服务器端,释放链接
2.服务器端接受到要释放连接的信号,返回给客户端一个ack校验码
3.服务器端发送给客户端一个fin为1的信号
4.客户端接受到信息,两者都关闭

发送  fin为1的意思仅仅代表输入方没有数据给接受方了(就像两个人上网吧,a说我没钱了,b说 等我一会,我马上走,然后b说 我也没钱了,a说那走吧,于是一起走了)

 https://www.cnblogs.com/lms0755/p/9053119.html  

这比较详细

RUSH B
原文地址:https://www.cnblogs.com/tangsonghuai/p/11481222.html