Java—网络编程知识简单整理
1. 前言:
简单介绍了下网络编程,感觉理论方面没什么特别多的知识点,多练习相关编程吧,写个客户端,服务器端。然后和面试相关的问题这里也没整理,可自行百度。
学习视频链接:https://www.bilibili.com/video/BV1LJ411z7vY
2. 如何实现网络中的主机相互通信?
要实现主机间的相互通信,就要准确的定位网络上的一台或多台主机,然后使用特定的规则传输数据。
我们可以通过ip和端口号找到特定主机上的特定应用。然后通过网络通信协议传输数据。
3. 通信协议模型
如下图,OSI参考模型分为7层,TCP/IP模型分为4层
4. TCP、UDP协议
TCP(用户传输协议):
类似于打电话,对方接通了才进行数据传输。
使用TCP协议前,必须建立TCP连接,形成传输数据通道。
传输前,采用‘三次握手’方式,点对点通信,可靠,传输后,四次挥手。
TCP协议进行通信的两个应用进程:客户端和服务端
在连接中可进行大数据量的传输
传输完毕,需要释放已建立的连接,效率低。
UDP协议(用户数据报协议):
像发短信,不用确报对方是否已经准备好了,直接发,只管发,不管对方能不能收到
将数据,源,目的封装成数据包,不需要建立连接。
每个数据的大小限制在64k内
发送数据结束时,无需释放资源,开销小,速度块。