网络编程先验知识1

介绍

  • 互联网
      • [1. 什么是互联网?](#1. 什么是互联网?)
      • [2. 网络与网络之间是通过什么连接在一起的?](#2. 网络与网络之间是通过什么连接在一起的?)
      • [3. 路由器是不是主机,为什么?](#3. 路由器是不是主机,为什么?)
  • OSI七层体系结构
  • TCP/IP协议与五层体系结构
  • IP地址与端口号
      • [1. 分类IP](#1. 分类IP)
      • [2. 无分类编址(CIDR)](#2. 无分类编址(CIDR))
      • [3. 子网掩码](#3. 子网掩码)
      • [4. IPv6的表示方式](#4. IPv6的表示方式)
      • [5. 协议端口号](#5. 协议端口号)

互联网

1. 什么是互联网?

互联网(Internet)是一个全球性的计算机网络系统,通过一系列标准化的协议(如TCP/IP)将世界各地的计算机和网络设备连接在一起。它允许用户通过网络进行信息交换、资源共享、通信和各种在线服务。互联网的关键特征包括:

  • 全球互联:连接全球范围内的各种网络,包括局域网(LAN)、广域网(WAN)等。
  • 开放标准:使用统一的协议(如TCP/IP)确保不同设备和网络之间的互操作性。
  • 分布式架构:没有中央控制机构,网络中的每个节点都可以通过路由和交换技术自主传输数据。
  • 多样化服务:提供电子邮件、网页浏览、文件传输、在线游戏、社交媒体等多种服务。

2. 网络与网络之间是通过什么连接在一起的?

网络与网络之间主要通过以下几种方式连接在一起:

  • 路由器(Routers):负责在不同网络之间传输数据包,根据目标IP地址选择最佳路径进行转发。路由器是互联网的骨干设备,通过路由表和路由协议实现网络之间的互连。
  • 交换机(Switches):主要用于局域网内部的设备连接,也可以用于不同网络之间的连接,但通常需要通过路由器进行更广泛的网络互连。
  • 网关(Gateways):充当不同网络协议之间的桥梁,进行协议转换和数据转发。常用于连接不同类型的网络,如将内部网络与互联网连接。
  • 光纤、电缆、卫星链路等传输介质:物理层面的连接方式,传输介质提供数据在不同地理位置的网络之间进行物理传输的通道。
  • 网络服务提供商(ISPs):提供网络接入和互连服务,通过其基础设施和服务将用户网络连接到更大的互联网。

3. 路由器是不是主机,为什么?

路由器不是主机。以下是原因及其区别:

  • 路由器(Router)

    • 功能:路由器的主要功能是连接不同的网络,转发数据包,并根据目标地址选择最佳路径。它使用路由表和路由协议来管理网络间的通信。
    • 特点:具有多个网络接口(如多个以太网端口),用于连接不同的网络。主要用于网络间的数据传输和管理。
    • 示例:家庭网络中的Wi-Fi路由器,企业网络中的核心路由器,ISP使用的骨干路由器。
  • 主机(Host)

    • 功能:主机是网络中的终端设备,运行应用程序,提供和使用网络服务。主机可以是服务器、个人电脑、智能手机等。
    • 特点:通常有一个或多个网络接口,用于连接到一个网络。主要用于数据的生成、处理和存储。
    • 示例:个人电脑、服务器、智能手机等。

总结

  • 功能区别:路由器主要用于连接网络和转发数据包,而主机主要用于运行应用程序和提供服务。
  • 网络角色:路由器在网络层工作,负责网络间的通信;主机在应用层工作,负责数据的生成和使用。

因此,尽管路由器和主机都是网络中的关键设备,它们的功能和角色有显著区别,路由器不被视为主机。

OSI七层体系结构

OSI(Open Systems Interconnection)七层模型是一个标准化的网络框架,用于定义网络通信的各个阶段。每一层都为上一层提供服务,并从下一层接收服务。七层模型从底层到顶层依次为:

  1. 物理层(Physical Layer)

    • 作用:负责实际的硬件传输,包括电缆、网卡、集线器等。它定义了物理设备的电气和物理规范,如电压、电流、传输速率、物理连接等。
    • 功能:信号的传输和接收。
  2. 数据链路层(Data Link Layer)

    • 作用:负责节点间的数据传输和错误检测、纠正。它在物理层之上,提供了可靠的数据传输。
    • 功能:帧的组装和拆解、MAC地址寻址、错误检测与校正。
  3. 网络层(Network Layer)

    • 作用:负责数据包的路由选择、转发、逻辑地址(如IP地址)的分配和管理。
    • 功能:路径选择和网络互连、路由选择、逻辑地址管理。
  4. 传输层(Transport Layer)

    • 作用:提供端到端的通信服务,包括数据的分段和重组、流量控制、错误检测与恢复。
    • 功能:端口地址(如TCP/UDP端口)管理、数据分段与重组、流量控制、可靠数据传输。
  5. 会话层(Session Layer)

    • 作用:负责建立、管理和终止会话。会话层控制对话(连接)的建立、管理和终止。
    • 功能:会话建立与管理、同步、对话控制。
  6. 表示层(Presentation Layer)

    • 作用:负责数据的表示、翻译、加密和解密。它确保来自不同系统的数据可以互相理解。
    • 功能:数据格式化、加密与解密、数据压缩。
  7. 应用层(Application Layer)

    • 作用:为应用程序提供服务,直接面向用户。它是用户与网络交互的界面。
    • 功能:文件传输、电子邮件、远程登录等应用服务。

这个分层模型的设计旨在简化网络通信的设计、开发和故障排除,并确保不同类型的网络硬件和软件可以互操作。

TCP/IP协议与五层体系结构

五层模型是对OSI七层模型的简化,用于描述计算机网络的分层结构。五层模型包括以下层次,从底层到顶层依次为:

  1. 物理层(Physical Layer)

    • 功能:负责物理设备的传输和接收。它定义了硬件设备、传输介质、信号的电气特性和物理连接标准。
    • 作用:实现比特流的传输,通过介质传输原始的二进制数据。
  2. 数据链路层(Data Link Layer)

    • 功能:负责在相邻节点间的可靠数据传输,包括帧的组装和拆解、物理地址(MAC地址)寻址、错误检测与纠正。
    • 作用:提供可靠的点到点的帧传输,处理物理层传输中的错误。
  3. 网络层(Network Layer)

    • 功能:负责数据包的路由选择和转发。它管理网络间的逻辑地址(如IP地址),选择最佳路径传输数据。
    • 作用:路径选择、数据包的路由和转发、逻辑地址管理。
  4. 传输层(Transport Layer)

    • 功能:提供端到端的通信服务,确保数据传输的可靠性和完整性。它包括数据的分段和重组、流量控制、错误检测与恢复。
    • 作用:端到端连接的建立与管理、数据分段与重组、流量控制、可靠数据传输。
  5. 应用层(Application Layer)

    • 功能:为用户提供直接的网络服务,如文件传输、电子邮件、远程登录等。它是用户与网络交互的接口。
    • 作用:提供各种网络应用服务,直接面向用户。

五层模型简化了OSI七层模型,将表示层和会话层的功能合并到应用层中,使网络层次结构更加简洁易懂,同时保留了主要的网络功能。

IP地址与端口号

1. 分类IP

分类IP地址是早期IP地址分配方法,将IPv4地址划分为不同类别,每类具有不同的网络和主机位数。

  • A类

    • 范围:1.0.0.0 到 126.255.255.255
    • 网络位:8位
    • 主机位:24位
    • 默认子网掩码:255.0.0.0
    • 特点:适用于拥有大量主机的大型网络。例如,大型公司或机构。
    • 特殊地址:127.0.0.0 到 127.255.255.255保留用于环回测试(通常是127.0.0.1)。
  • B类

    • 范围:128.0.0.0 到 191.255.255.255
    • 网络位:16位
    • 主机位:16位
    • 默认子网掩码:255.255.0.0
    • 特点:适用于中型网络,例如大学或中型公司。
  • C类

    • 范围:192.0.0.0 到 223.255.255.255
    • 网络位:24位
    • 主机位:8位
    • 默认子网掩码:255.255.255.0
    • 特点:适用于小型网络,例如小企业或家庭网络。
  • D类(多播):

    • 范围:224.0.0.0 到 239.255.255.255
    • 特点:用于多播组,不用于主机寻址。应用于视频会议和直播等多点传送服务。
  • E类(保留地址):

    • 范围:240.0.0.0 到 255.255.255.255
    • 特点:保留供未来使用或研究目的,不用于常规网络通信。

2. 无分类编址(CIDR)

**无分类域间路由(Classless Inter-Domain Routing, CIDR)**是一种灵活的IP地址分配和路由聚合方法,取代了传统的A、B、C类网络划分。

  • 表示方法 :采用IP地址后跟斜杠和网络前缀长度表示法,例如192.168.1.0/24。
    • 192.168.1.0/24 表示前24位为网络地址,后8位为主机地址。
  • 优点
    • 灵活性:允许任意长度的网络前缀,提供了更灵活的地址分配。
    • 路由聚合:可以通过聚合多个网络前缀减少路由表的大小,优化路由性能。

3. 子网掩码

子网掩码用于区分IP地址中的网络部分和主机部分,通过掩码来确定网络地址。

  • 表示方法:与IP地址一样,用点分十进制表示,例如255.255.255.0。
  • 功能 :与IP地址进行按位与运算(AND),以获得网络地址。
    • 例子
      • IP地址:192.168.1.10
      • 子网掩码:255.255.255.0
      • 网络地址计算:192.168.1.10 AND 255.255.255.0 = 192.168.1.0

4. IPv6的表示方式

IPv6地址是128位长,用于解决IPv4地址不足的问题。

  • 标准表示:用冒号分隔的8组16进制数,每组4个16进制数字,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 简化表示
    • 省略前导零:每组16进制数字前的零可以省略,例如2001:db8:85a3:0:0:8a2e:370:7334。
    • 双冒号表示一组连续的零:例如2001:db8:85a3::8a2e:370:7334。双冒号只能出现一次。

5. 协议端口号

端口号用于标识网络中不同应用程序的通信终端。主要分为三类:

  • 知名端口(Well-known Ports)

    • 范围:0-1023
    • 用途 :用于常见的网络服务和协议。例如:
      • HTTP:80
      • HTTPS:443
      • FTP:21
      • SSH:22
  • 注册端口(Registered Ports)

    • 范围:1024-49151
    • 用途 :分配给特定应用程序和服务,但不作为知名端口。例如:
      • Microsoft SQL Server:1433
      • MySQL:3306
  • 动态或私有端口(Dynamic or Private Ports)

    • 范围:49152-65535
    • 用途 :用于临时或私有端口,通常由客户端应用程序在通信过程中动态分配。例如:
      • 客户端应用程序在建立TCP连接时可能使用这些端口。

每个端口号结合IP地址形成完整的套接字地址(Socket Address),用于网络通信中的特定应用程序。

相关推荐
MC何失眠1 小时前
vulnhub靶场【哈利波特】三部曲之Fawkes
网络·python·学习·网络安全
小袁顶风作案1 小时前
Ubuntu桥接模式设置静态IP
网络·tcp/ip·桥接模式
闲人-闲人2 小时前
CIA安全属性简介
网络·安全
Looper03315 小时前
【Shell 脚本实现 HTTP 请求的接收、解析、处理逻辑】
网络·网络协议·http
m0_689618285 小时前
亚毫米级纤维机器人,如何在腔内“大显身手”
网络·笔记·机器人
夜星辰20237 小时前
网络相关问题
服务器·网络
xing.yu.CTF8 小时前
攻防世界-fileclude-文件包含
网络·安全·web安全·文件包含漏洞·基础漏洞
肘击鸣的百k路8 小时前
网络和通信详解
java·开发语言·网络
Ning_.8 小时前
C语言链表分区问题
c语言·网络·链表
哎呦,帅小伙哦9 小时前
brynet源码阅读——http组件和wrapper组件
网络·网络协议·http