网络编程概述
java是Internet上的语言,java从语言级上提供了对网络应用程序的支持
java提供的网络类库可以实现"无痛的"网络连接
- 这里的"无痛的"指的是: 联网的底层细节被隐藏在java中的本机安装系统中,由jvm控制
java还实现了一个跨平台的网络库
- 也就是我们的程序员面向的就是一个统一的网络编程系统
什么是计算机网络?
把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大,功能强的网络系统,从而使得众多的计算机可以方便的互相传递信息,共享硬件,软件数据信息等资源
网络编程的目的:
直接或者间接的通过网络协议与其它计算机实现数据交换,进行通讯
注意: 也就是我们先通过计算机网络将我们的计算机使用网络连接起来,然后使用网络编程进行具体的计算机之间的信息传输
网络编程中有两个主要的问题:
- 如何准确的定位网络上的一台或者多台主机, 定位了主机之后我们又如何定位计算机上的某个特定的应用程序
- 找到主机之后如何可靠的,高效的进行数据传输
网络编程中的两个要素:
- IP + 端口号( 对应网络编程中两个主要问题中的问题一 )
- 提供网络通信协议
- 网络通信协议我们一般分为两种:
- OSI参考模型
- 理想化的参考模型,未能推广
- TCP/IP参考模型(也称之为: TCP/IP通信协议)
- 实际中的国际标准
网络模型
OSI参考模型 TCP/IP参考模型 TCP/IP参考模型各层对应的协议
应用层
表示层 应用层 HTTP , FTP , IeInet , DNS …
会话层
传输层 传输层 TCP , UDP …
网络层 网络层 IP , ICMP , ARP …
数据链路层
物理层 物理 + 数据链路层 Link …
- TCP/IP参考模型中的应用层对应了OSI参考模型中的应用层 , 表示层 , 会话层
注意: 这里使用了分层的思想
由于网络通信协议太过复杂,这个时候我们通过通信协议分层的思想,在制成协议时: 将复杂的一份分解为简单的多层
TCP/IP参考模型中的上一层和下一层是可以进行数据传输的
- 这里我们举一个数据传输的例子(在OSI参考模型之下)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjPVMrka-1641404218888)(E:\非凡英才\java笔记\图解\无标题.png)]