Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

发布于:2024-04-26 ⋅ 阅读:(24) ⋅ 点赞:(0)

Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

一、计算机网络

计算机网络是指将多台计算机通过通信设备互相连接起来,以便彼此之间可以进行数据交换和资源共享的系统。计算机网络的基本概念和组成部分包括以下内容:

基本概念:

  1. 通信协议:计算机网络中的通信规则和约定,确保不同设备之间可以正确地交换数据。
  2. 网络拓扑:计算机网络中设备之间的物理或逻辑连接方式,如总线、星型、环形等。
  3. 网络协议栈:由多个层次组成的网络协议集合,常见的有TCP/IP协议栈和OSI模型。
  4. IP地址:用于标识网络中设备的唯一地址,分为IPv4和IPv6。
  5. 域名系统(DNS):将域名解析为对应的IP地址的系统,方便用户记忆和访问网站。

组成部分:

  1. 通信设备:如路由器、交换机、网卡等,用于实现设备之间的数据传输。
  2. 传输介质:如光纤、铜缆、无线信道等,用于在设备之间传输数据。
  3. 网络协议:如TCP、IP、HTTP、FTP等,用于规定数据传输的格式和规则。
  4. 网络服务:如Web服务、电子邮件、文件传输等,提供不同的网络功能和应用。

主要技术:

  1. 局域网(LAN):覆盖较小范围的网络,如家庭、办公室等。
  2. 广域网(WAN):覆盖较大范围的网络,如跨城市、跨国家等。
  3. 无线网络:通过无线信号进行数据传输的网络,如Wi-Fi、蜂窝网络等。
  4. 互联网:由多个计算机网络互相连接而成的全球性网络,提供丰富的信息和资源。

注意: 网络安全和隐私保护等问题,确保网络的稳定和安全运行

二、网络编程

基本概念:

网络编程是指通过计算机网络实现不同设备之间数据交换和通信的程序开发过程。在网络编程中,开发人员可以利用各种网络协议和技术来实现客户端和服务器之间的通信,实现数据传输、资源共享和远程控制等功能。以下是网络编程的一般步骤和常用技术:

基本步骤:

  1. 创建Socket:在客户端和服务器端分别创建Socket对象,用于建立网络连接。
  2. 建立连接:客户端向服务器端发起连接请求,服务器端接受连接并建立通信。
  3. 数据传输:通过Socket对象进行数据的发送和接收。
  4. 关闭连接:通信结束后,关闭Socket连接。

常用技术和工具:

  1. Socket编程:基于TCP/IP协议的Socket编程是网络编程的基础,可以使用Java、Python等语言进行Socket编程。
  2. HTTP协议:用于Web服务的通信协议,常用于浏览器和Web服务器之间的通信。
  3. RESTful API:基于HTTP协议的API设计风格,用于实现客户端和服务器之间的数据交互。
  4. WebSocket:一种在单个TCP连接上进行全双工通信的协议,用于实时通信和推送服务。
  5. RPC框架:远程过程调用框架,如gRPC、Dubbo等,用于实现跨网络的方法调用。
  6. 异步编程:利用异步编程模型提高网络应用的性能和并发能力,如使用回调函数、Promise等机制。

安全性和性能优化:

  1. 加密和认证:使用SSL/TLS等加密协议保障数据传输的安全性,实现身份认证和数据加密。
  2. 防火墙和安全策略:设置网络防火墙、访问控制列表等安全策略,保护网络免受攻击。
  3. 负载均衡和缓存:利用负载均衡技术和缓存机制优化网络性能,提高系统的吞吐量和响应速度。

**理解:**实现多台计算机之间实现数据的共享和传递,网络应用程序主要组成为:

网络编程+IO流+多线程

三、网络模型

基本概念:

网络模型是用来描述计算机网络体系结构和通信协议的抽象框架,通常将网络通信的功能划分为多个层次,每个层次负责特定的功能,从而实现网络通信的分层管理和协作。两个最常用的网络模型是 OSI 模型和 TCP/IP 模型。

OSI 模型:

  1. 物理层:负责传输比特流,定义物理介质和传输速率等。
  2. 数据链路层:负责建立和管理直接连接的设备之间的数据传输。
  3. 网络层:负责在不同网络之间传输数据包,实现路由和转发。
  4. 传输层:负责端到端的数据传输,提供可靠的数据传输和错误恢复。
  5. 会话层:负责建立、管理和终止会话连接。
  6. 表示层:负责数据的格式化、加密和压缩。
  7. 应用层:提供用户接口和应用程序之间的通信服务。

TCP/IP 模型:

  1. 应用层:包含应用层协议,如HTTP、FTP、SMTP等。
  2. 传输层:包含传输层协议,如TCP、UDP,负责端到端的数据传输。
  3. 网络层:包含网络层协议,如IP,负责数据包的路由和转发。
  4. 链路层:包含数据链路层和物理层,负责直接相连设备之间的数据传输。

区别和联系:

  • OSI 模型是一个七层模型,提供了更加详细的网络通信功能划分,而 TCP/IP 模型是一个四层模型,更加贴近实际网络通信的需求。
  • TCP/IP 模型中的网络层和链路层合并了 OSI 模型中的网络层和数据链路层的功能。
  • OSI 模型是一个理论模型,而 TCP/IP 模型是实际应用最广泛的网络模型,符合实际网络通信的需求。

网络模型理解图

在这里插入图片描述

四、 网络编程三要素

1. IP地址:

  • 作用:IP地址是用来唯一标识网络中的设备(如计算机、路由器等)的地址,类似于房屋的门牌号,用于在网络中准确定位设备。
  • 分类:IP地址分为IPv4和IPv6,IPv4是32位地址,通常以点分十进制表示(如192.168.1.1),IPv6是128位地址,以冒号分隔的八组十六进制数表示(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
  • 用途:在网络通信中,发送方和接收方通过IP地址来确定数据包的发送和接收位置。
  • IP地址的组成网络号段+主机段

A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码

----可以配置256256256台主机

B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码

C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码

注意一个IP可以对应多个域名,但是一个域名在一个时刻只能对应一个IP

2. 端口号:

  • 理解:正在运行的程序的标识
  • 作用:端口号是用来标识主机上运行的进程或服务的编号,类似于房屋中的门牌号,用于在主机内部定位具体的应用程序。

  • 范围:端口号范围从0到65535,其中0到1023为系统保留端口,用于常见的服务(如HTTP的80端口、FTP的21端口)。

  • 用途:在网络通信中,数据包通过目标主机的IP地址和目标端口号来确定具体的应用程序或服务。

    注意:端口与协议有关:TCP和UDP的端口互不相干,同一个协议的端口不能重复,不同协议的可以重复

3. 协议:

  • 作用:协议是规定数据传输的格式和规则,确保通信双方能够正确地解析和处理数据。
  • 常见协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等。
  • 选择:根据需求选择合适的协议,如TCP提供可靠的数据传输,而UDP提供更快的数据传输但不保证可靠性。

协议理解图

(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等。

  • 选择:根据需求选择合适的协议,如TCP提供可靠的数据传输,而UDP提供更快的数据传输但不保证可靠性。

协议理解图
在这里插入图片描述