博客
关于我
Java 网络编程(一) 网络基础知识
阅读量:445 次
发布时间:2019-03-06

本文共 1245 字,大约阅读时间需要 4 分钟。

网络编程基础

网络编程的核心目标

网络编程的核心目标是通过网络协议与其他计算机进行信息交换。网络编程需要解决两个关键问题:如何准确地定位网络上的主机,以及如何在主机之间可靠、高效地进行数据传输。

常见的网络编程模型

目前主流的网络编程模型是客户端/服务器(C/S)结构。在这个模型中,通信双方一方作为服务器,等待另一方(客户端)提出请求并提供相应服务。服务器通常运行在固定的位置,持续监听特定的网络端口。一旦接收到客户端的请求,服务器会启动一个服务线程来响应客户端的需求,同时继续监听,确保后续客户端请求也能得到及时处理。

IP地址的作用

IP地址是网络中每台主机的唯一标识符,属于逻辑地址。互联网中的IP地址具有全球唯一性。IP地址由四个字节组成,共计32位,通常用点分十进制格式表示。例如:192.168.0.200。

协议的定义

协议是网络中数据交换的规则和标准,用于确保数据在不同主机之间能够正确传输。网络中的协议分为不同的层次,例如:

  • 应用层:负责数据的具体应用需求,如HTTP、FTP、DNS等。
  • 传输层:提供端到端的通信服务,如TCP和UDP协议。
  • 网络层:负责数据的路由和寻址,如IP协议。
  • 数据链路层:负责数据在物理介质上的传输,如以太网协议。
  • 物理层:负责二进制数据的传输。

OSI参考模型将这些功能分为七个层次,并强调各层之间的严格依赖关系。通信实体之间通过对等层间接通信,实际的数据传输依然发生在物理层。

OSI七层模型详解

OSI参考模型将网络功能划分为七个层次:

  • 应用层:处理具体的网络应用需求,如文件传输、网络查找等。
  • 表示层:定义数据的表示方式。
  • 会话层:管理主机间的通信会话。
  • 传输层:提供端到端的通信服务,如TCP和UDP协议。
  • 网络层:负责数据的寻址和路由选择。
  • 数据链路层:负责数据在物理介质上的传输。
  • 物理层:实现二进制数据的传输。
  • 通信实体之间通过对等层进行交互,实际的数据传输依然发生在物理层。这种分层架构使得网络互联问题得以有效解决。

    端口号的作用

    在网络传输中,数据不仅需要目标主机的IP地址,还需要目标应用程序的端口号。端口号是一个16位的数字(0~65535),用于标识应用程序。

    端口号的作用是:

  • 在网络中区分同一主机上的多个应用程序。
  • 指定数据的具体处理程序。
  • TCP和UDP协议各自维护独立的端口号空间。例如,HTTP协议通常使用80端口,FTP协议使用21端口。

    数据封装

    在网络通信中,数据需要经过封装的过程。封装是指在数据前面添加特定的协议头部。例如,OSI参考模型中,数据在不同的层面会被多次封装,形成多层“信封”。

    封装的过程包括:

  • 数据打包:将数据按照特定格式进行整理。
  • 头部添加:在数据前面添加协议头部,包含控制信息。
  • 传输:通过物理介质进行数据传输。
  • 拆封:在目标主机中逐层拆除协议头部,提取原始数据。
  • 这种多层封装机制确保了数据在复杂网络环境中的准确传输。

    参考资料

    • 《圣思园张龙老师Java SE系列视频教程》

    转载地址:http://xyqyz.baihongyu.com/

    你可能感兴趣的文章
    nginx 代理解决跨域
    查看>>
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
    查看>>
    nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 多端口配置和访问异常问题的排查与优化
    查看>>
    Nginx 如何代理转发传递真实 ip 地址?
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 学习(一):Nginx 下载和启动
    查看>>
    nginx 常用指令配置总结
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 结合 consul 实现动态负载均衡
    查看>>