博客
关于我
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/

    你可能感兴趣的文章
    pdf转图片、提取pdf文本、提取pdf图片
    查看>>
    springMvc 3.0 使用基本原理
    查看>>
    springCloud整合RabbitMQ实现消息中间件
    查看>>
    pdo sqlserver
    查看>>
    SpringCloud实战(十一)-更优的分布式配置解决方案(Apollo)
    查看>>
    PDO中捕获SQL语句中的错误
    查看>>
    SCP和SFTP相同点和区别
    查看>>
    SpringCloudAlibaba中使用Sentinel实现熔断降级之熔断策略详解
    查看>>
    peek和pop的区别
    查看>>
    Pelemay 项目教程
    查看>>
    Penetration Testing、Security Testing、Automation Testing
    查看>>
    Pentaho业务分析平台 SQL注入漏洞复现
    查看>>
    PentestGPT:一款由ChatGPT驱动的强大渗透测试工具
    查看>>
    PeopleTools 8.54 first install note
    查看>>
    PEP 8016 获胜,成为新的 Python 社区治理方案
    查看>>
    PEP8规范
    查看>>
    PEPM Cookie 远程代码执行漏洞复现(XVE-2024-16919)
    查看>>
    Percona Server 5.6 安装TokuDB
    查看>>
    SpringBoot(十四)整合MyBatis
    查看>>
    percona-xtrabackup 备份
    查看>>