JAVA实习找工作——网络编程

常见的网络模型

应用层

传输层:TCP、UDP

网络层:IP

数据链路层

物理层

问题一:TCP协议和UDP协议

TCP:1.使用TCP协议前,必须建立TCP连接,形成传输数据通道;2.传输前采用“三次握手”的方式,是可靠的;3.在连接中可以进行大数据量的传输;4.传输完毕,需要释放连接,效率低

UDP:1.将数据、源、目的封装成数据包,不需要建立连接;2.每个数据包不能超过64k;3.可以广播发送,不需要确认;4.发送结束后无需释放资源,效率高。

问题二:TCP的三次握手和四次挥手

TCP的三次握手

第一次握手:客户端发送syn=x包到服务端,syn:同步序列编号

第二次握手:服务端接受syn包,生成确认包ack=x+1,并且发送自己的syn=y包,所以服务端发送syn+ack包,此时服务端状态为SYN_RECV

第三次握手:客户端接收到syn+ack,发送确认包ack=y+1。此时连接建立成功,客户端和服务端均为ESTABLISHED状态

TCP的四次挥手

第一次挥手:客户端发送FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。

第二次挥手:服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。

第三次挥手:服务器关闭了服务器到客户端的连接,发送一个FIN给客户端。

第四次挥手:客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

发布了111 篇原创文章 · 获赞 60 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Haidaiya/article/details/105577066