网络编程基础知识

发布时间 2023-10-05 17:51:56作者: sTruth

一、计算机网络

  由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协议等。