Java—网络编程知识简单整理

1. 前言:

        简单介绍了下网络编程,感觉理论方面没什么特别多的知识点,多练习相关编程吧,写个客户端,服务器端。然后和面试相关的问题这里也没整理,可自行百度。
        学习视频链接:https://www.bilibili.com/video/BV1LJ411z7vY

2. 如何实现网络中的主机相互通信?

        要实现主机间的相互通信,就要准确的定位网络上的一台或多台主机,然后使用特定的规则传输数据。
        我们可以通过ip和端口号找到特定主机上的特定应用。然后通过网络通信协议传输数据。

3. 通信协议模型

        如下图,OSI参考模型分为7层,TCP/IP模型分为4层
Java—网络编程知识简单整理

4. TCP、UDP协议

        TCP(用户传输协议):
        类似于打电话,对方接通了才进行数据传输。
        使用TCP协议前,必须建立TCP连接,形成传输数据通道。
        传输前,采用‘三次握手’方式,点对点通信,可靠,传输后,四次挥手
        TCP协议进行通信的两个应用进程:客户端和服务端
        在连接中可进行大数据量的传输
        传输完毕,需要释放已建立的连接,效率低。
Java—网络编程知识简单整理
        UDP协议(用户数据报协议):
        像发短信,不用确报对方是否已经准备好了,直接发,只管发,不管对方能不能收到
        将数据,源,目的封装成数据包,不需要建立连接。
        每个数据的大小限制在64k内
        发送数据结束时,无需释放资源,开销小,速度块。