首页 > 编程语言 >网络编程基础知识

网络编程基础知识

时间:2023-10-05 17:56:42浏览次数:35  
标签:协议 IP 编程 网络 基础知识 地址 IPv4 IP地址

一、计算机网络

  由2台或更多计算机组成的网络。

  在同一个计算机网络下,不同的计算机可以直接进行通信,是因为:

    不同的计算机具有相同的网络号:会被认为在同一个计算机网络下,网络号是IP地址通过子网掩码过滤后得到的(IP是101.202.99.2,子网掩码是255.255.255.0,网络号是101.202.99.0),通常情况下,同一个计算机网络下的子网掩码是相同的,为255.255.255.0。

    默认遵循同一种网络协议:计算机可通过相同的通信规则和格式进行数据交换。

 

二、互联网

  由不同的计算机网络组成的网络,即网络的网络(Internet)。

  从技术上讲,只有一个全球性的互联网。从逻辑上讲,可以将互联网看作是由许多不同的子网络组成的网络集合,可以存在不同的区域性互联网,但它们都连接到全球互联网。

  在当前的互联网架构中,只有使用TCP/IP协议的计算机才能够直接联入互联网。

  不同的计算机网络通常具有不同的网络号,需要通过网络交换机(Switch)或路由器(Router)或网关(Gateway)等网络设备进行间接通信

    网络交换机:通过学习和存储设备的物理地址(MAC地址),将数据包从发送方直接发送到目标设备,用于在局域网内部实现设备之间的数据交换和转发

    路由器:通过查看目标IP地址,并根据路由表决定数据包的最佳路径,将数据从源网络转发到目标网络,用于在不同的网络之间进行数据传输和路由选择,网络交换机和路由器通常一起使用

    网关:它可以是物理设备或者软件实现,用于连接不同网络的设备并实现不同网络之间的通信,将数据包从一个网络传递到另一个网络,网关可以是一台路由器。

    路由:将一个网络的数据包发送到另一个网络的过程。

 

三、网络接口

  计算机系统或设备与网络之间的物理或逻辑连接点,用于实现数据在计算机网络中的传输和交换,通常具有一个或多个网络接口,每个接口可以连接到不同的网络或子网络。

  它可以是硬件设备(如网卡、调制解调器)或软件实体(如虚拟网络适配器、网络协议栈)。

  每个网络接口都有一个唯一的标识符,称为MAC地址(Media Access Control Address):用于在局域网中唯一标识设备,在数据链路层(第二层)上使用的,由网络接口卡(NIC)或网络设备的制造商分配。

 

四、IP地址

  用于唯一标识设备的网络接口、定位设备和网络位置,支持网络通信和路由,以及进行网络管理和监控,在网络层(第三层)上使用的,用于在互联网中唯一标识设备。

  IP地址分配是一个层次化的过程,从互联网核心路由器开始,通常是先通过互联网服务提供商(ISP)分配给网络管理员,再由网络管理员分配给特定网络中的设备或用户。

    ISP是负责将互联网连接提供给终端用户的组织,用于将用户设备连接到互联网。它可提供静态公共IP地址与动态公共IP地址,静态公共IP地址是固定的,不会随时间或连接的变化而改变;动态公共IP地址通常是通过动态主机配置协议(DHCP)自动从ISP的IP地址池中分配IP地址和其他网络配置信息如子网掩码、网关、DNS服务器等给连接到网络上的设备,用户的IP地址可能在不同的时间段内发生变化,当用户断开连接后,分配给他们的IP地址将返回到IP地址池中供其他用户使用。

    网络管理员负责管理特定网络的IP地址分配,一般指一个独立的网络环境,如企业内部的局域网。

  IP地址分类:

    根据IP地址长度可区分为IPv4地址和IPv6地址:

      IPv4地址(32位二进制数字组成)

        A类地址:使用第一个字节表示网络部分,范围从1.0.0.0到126.0.0.0,它可以为全球范围内的大型组织提供大量的主机地址。

        B类地址:使用前两个字节来表示网络部分,范围从128.0.0.0到191.255.0.0,它可以为中等规模的组织提供主机地址。

        C类地址:使用前三个字节来表示网络部分,范围从192.0.0.0到223.255.255.0,它可以为小型组织或局域网提供主机地址。

        D类地址:用于多播(Multicast)的特殊地址范围,范围从224.0.0.0到239.255.255.255,它用于将数据传输到多个目标设备。

        E类地址:是保留地址,范围从240.0.0.0到255.255.255.255,这些地址没有被分配给特定的用途,保留用于未来的用途或实验。

      IPv6地址(128位二进制数字组成):

        为了解决IPv4地址空间不足的问题而提出的新版本,IPv6地址(128位)已经逐渐取代了IPv4的使用:2001:0db8:85a3:0000:0000:8a2e:0370:7334 2001:db8:85a3::8a2e:370:7334。

        由于IPv6是IPv4的升级版本,所以IPv6可以兼容IPv4,IPv6设备可以通过IPv4网络进行通信,但IPv4设备无法直接与IPv6网络通信,需要通过转换机制(如IPv6-over-IPv4隧道、NAT64等)进行互通。

    根据不同网络环境可区分为公网IP和内网IP:

      使用范围:公网IP用于全球范围的互联网上,在全球范围内唯一标识设备;内网IP用于局域网(LAN)或者私有网络,仅在特定的局域网环境中有效。

      唯一性:每个设备在互联网上使用的公网IP必须唯一;内网IP地址在局域网环境中可以重复使用,不需要唯一。

      可路由性:公网IP是可路由的,可在互联网上通过路由器和其他网络设备进行通信;内网IP在互联网上无法直接进行路由,需要通过网络地址转换(NAT)等技术将内网IP地址转换为公网IP地址才能与外部网络通信。

      分配方式:公网IP由ISP分配,通常是有限的IP地址资源,内网IP在局域网中由网络管理员或者路由器自动分配,使用私有IP地址范围,如IPv4中的192.168.0.0/16、172.16.0.0/12、10.0.0.0/8等。

      可访问性:公网IP可以被其他设备在互联网上直接访问,内网IP不能直接从互联网上访问,只能在局域网内部进行通信。

    特殊的IP地址:本地IP地址(主机IP地址)

      通常指的是回环地址(Loopback Address),一个设备在局域网中使用的IP地址,仅用于在本地网络中进行通信和自我测试。

      在IPv4中表示为127.0.0.1,在IPv6中表示为::1,当设备使用回环地址时,数据包将被发送到设备本身,而不会离开网络接口。

    DNS(Domain Name System)

      用于将域名转换为对应IP地址的系统,因为域名相较于IP地址更易于记忆。

 

五、一台计算机的一个网卡的三个关键配置

  IPv4地址、IPv4子网掩码、IPv4默认网关

 

六、TCP/IP协议

  一组用于计算机网络通信的协议集合,由多个协议组成,核心协议如下:

    IP协议(Internet Protocol)

       网络层的基础协议,提供了数据包的寻址和路由功能。

       通过在计算网络上通过分组交换进行数据包的传输,将这些数据包从源地址传输到目标地址。

       分组交换是指将数据分割成一系列的数据包(IP数据报)后传输,不保证顺序和正确性,因此是不可靠传输。

    TCP协议(Transmission Control Protocol)

       传输控制协议,面向连接的传输层协议,建立在IP协议之上,支持可靠传输和双向通信。

       它通过控制数据包的传输,在传输之前需先建立连接才可传输数据,传输过程支持接收确认、超时重传机制,传输之后需断开连接,通信双方可以同时发送和接收数据。

       通过数据分段、流量控制、拥塞控制和数据重传等机制,确保数据的可靠性和顺序性。

       HTTP协议、SMTP协议建立在TCP协议之上。

    UDP协议(User Datagram Protocol)

       数据报文协议,无连接的传输层协议,提供了简单的数据传输功能。与TCP相比由于无连接,UDP不提供可靠性和顺序性,传输效率较高,适用于对实时性要求较高的应用,如流媒体和语音通话。

    ICMP(Internet Control Message Protocol):用于网络错误报告和诊断的协议,它用于发送和接收错误和状态信息,例如网络不可达、主机不可达等。

除上述核心协议外,还包括如ARP(Address Resolution Protocol),DHCP(Dynamic Host Configuration Protocol),DNS(Domain Name System),FTP(File Transfer Protocol),HTTP(Hypertext Transfer Protocol)等其他协议。

 

 

     

 

    

    

 

 

 

常见的网络协议包括IP协议、以太网协议、TCP协议等。

标签:协议,IP,编程,网络,基础知识,地址,IPv4,IP地址
From: https://www.cnblogs.com/sTruth/p/17743695.html

相关文章

  • 网络图片下载工具
    1、首先要创建一个下载器类 这个类来实现图片下载功能  导入的commons-io-1.4.jar中有一个FileUtils(文件工具类)有一个方法能够实现这个功能 2、要把创建的类设置为Thread类的子类并且重写run()方法  因为要用到url(网络地址)和name(文件名字)所以创建了两个属性!!! ......
  • Unix/Linux系统编程第七八章
    第七章文件操作7.1文件操作级别文件操作分为五个级别(1)硬件级别:fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。(2)操作系统内核中的文件系统函数:每个操作系统内核均可为基本文件操作提......
  • 网络协议适用场景区别
    网络协议,简单说,就是计算机之间“聊天”的方式。1.HTTP想象你正在网上浏览一篇文章,那么你的浏览器就在用HTTP这种“聊天”方式获取文章内容。它像一个桥梁,连接你和网络上的数据。2.HTTP/3这是HTTP的升级版。为了应对越来越多的移动设备,它使用了一个名为QUIC的新技术。有了......
  • 计算机网络之DNS解析过程
    一、什么是DNSDNS(DomainNameSystem),域名解析系统,它的作用就是域名和IP相互映射。二、域名解析过程假设要查询www.baidu.com的IP地址:1、首先会查找浏览器缓存,看看能否找到www.baidu.com对应的IP地址,找到就直接返回;否则进行下一步。2、将请求发往本地DNS服务器,如果查找到也直接返回,......
  • 实验1_c语言输入输出和简单程序应用编程
    实验一1-1#include<stdio.h>intmain(){printf("O\n");printf("<H>\n");printf("II\n");printf("O\n");printf("<H>\n");printf("II\n");......
  • 使用ensp搭建路由拓扑,并使用isis协议实现网络互通实操
    转载请注明出处:1.通过拓扑搭建如下拓扑:               其中R7、R8为L1,R6为L1/2,R9为L2。2.配置isis实现网络互通R7配置如下:[Huawei]isis1[Huawei-isis-1]dith#isis1is-levellevel-1network-entity10.0000.0000.0001.00#r......
  • Java基础知识29--主线程、子线程执行顺序
    1、主线程与子线程互不影响最常见的情况,主线程中开启了一个子线程,开启之后,主线程与子线程互不影响各自的生命周期,即主线程结束,子线程还可以继续执行;子线程结束,主线程也能继续执行。publicclassTestThread{publicstaticvoidmain(String[]args)throwsInterruptedExcepti......
  • PowerBuilder编程新思维10.5:外传2(PowerPlume下一代开发解决方案)
    万里归来年愈少 PowerBuilder编程新思维10.5:外传2(PowerPlume下一代解决方案) 前言今天我们就来盘点一下,PB下一代开发的所有技术可能性。所谓下一代开发技术,就是指脱离或半脱离PBVM的应用开发技术,主要指后端。 后端技术汇总  前端PB+JSON前端PB+BLOBWEB后端P......
  • 实测 亚马逊 AI 编程助手 Amazon CodeWhisperer(全网最全)
    文章作者:疯狂的驸马一、CodeWhisperer简介CodeWhisperer是亚⻢逊出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。在编写代码时,它会自动根据我们现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为我们提供各种大小和范围的个性化建议。亚马逊云科......
  • PowerBuilder现代编程方法X11:PB程序完全跨平台方案
     PB可能要支持Windows、macOS、Linux、iOS、Android与鸿蒙操作系统和X86、ARM、RISC-V与国产龙芯CPU的原生应用了! PowerBuilder现代编程方法X11:PB程序完全跨平台方案 前言《PowerBuilder编程新思维》在写到了WebUI后,陷入了沉寂。原因是我对PB发展的下一代技术方案不太满......