JavaEE-26-网络
网络:
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,实现资源共享和信息传递。
在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都遵循同一种网络协议---TCP/IP协议。
TCP/IP协议泛指互联网协议,其中最重要的两个协议就是TCP协议和IP协议。
一.网络模型:
1.OSI模型(open system interconnect):开放式系统互联,是ISO组织在1985年研究的网络互连模型,其含义就是推荐所有公司使用这个规范来控制网络,使得所有公司的网络能进行互联。
每一层实现各自的功能和协议,并完成与相邻层的接口通信。
应用层:提供应用程序之间的通信。
这是最接近用户的一层,为用户提供应用接口和各种网络服务:HTTP、HTTPS、FTP、POP3、SMTP等。
表示层:处理数据格式,加解密等。
提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
会话层:负责建立和维护会话。
该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
传输层:负责提供端到端的可靠传输。
我们常说的TCP和UDP就在这一层,端口号即这里的“端”。
网络层:负责根据目标地址选择路由来传输数据。
通过IP寻址来建立两个节点之间的连接,即我们常说的IP协议层。
链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
物理层:通过物理介质传输比特流,规定了电频、速度、电费针脚。常用设备有:集线器,中继器,调制解调器,网线等。
2.TCP/IP五层模型(Transmission Control Protocol/Internet Protocol):传输控制协议/因特网互联协议,是Internet最基本的协议。
二.网络协议
如同人与人之间相互交流需要遵循一定的规则(如语言)一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议,如下图:
网络协议之间的关系图:
1.IP协议(Internet protocol)
IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个最重要的条件就是IP地址和MAC地址。
IP地址分为五类,其中D类(多播地址)和E类(保留地址)一般我们用不上,常用的有以下三类:
A类(1.0.0.0-126.0.0.0):用于大型网络
B类(128.0.0.0-191.255.0.0):用于中型网络
C类(192.0.0.0-223.255.255.0):用于小型网络
2.TCP协议(Transmission Control Protocol):传输控制协议
TCP是面向连接的传输层协议,位于IP层和应用层的中间。不同主机的应用层之间经常需要可靠的像管道一样的连接,但是IP层不提供这样的流机制,所以需要用到TCP。
TCP连接分为3个阶段:连接建立、数据传送、连接释放,通常称为“三次握手”。
第一次握手(客户端发送请求)--->第二次握手(服务端回传确认)--->第三次握手(客户端回传确认)
注意:握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
TCP关闭分为4个阶段,称为“四次握手”。
3.UDP协议(User Datagram Protocol):用户数据报协议
UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;
在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
TCP与UDP的区别:
1.TCP基于连接,UDP无连接;
2.对系统资源的要求,TCP较多,UDP较少;
3.UDP程序结构较简单;
4.TCP是流模式,而UDP是数据报模式;
5.TCP保证数据正确性,而UDP可能丢包;TCP保证数据顺序,而UDP不保证。
4.HTTP协议(Hypertext Transfer Protocol):超文本传输协议
HTTP是一种应用层协议,它是基于TCP协议之上的请求/响应式的协议,是Web浏览器和Web服务器之间通信的标准协议。
对于客户端到服务器的每一个请求,都有4个步骤:
i).默认情况下,客户端在端口80打开与服务器的一个TCP连接(URL也可以指定其他端口);
ii).客户端向服务器发送消息,请求指定路径上的资源;
iii).服务器向客户端发送响应;
iv).服务器关闭连接。
注意:HTTP和HTTPS的区别
-
-
- https协议需要使用到ca申请证书,一般免费证书很少,需要缴费;
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
- http的连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输、身份谁的网络协议,比http协议安全。
-