网络编程基础(一)

前言

本节简单介绍网络编程相关的网络概念尝试,简单建立概念即可,对于网络编程而言无需深入学习。其中绝大多数为计算计网络的知识,感兴趣的朋友可自行学习相关知识。

计算机的ip

IP地址是计算机在互联网中的唯一标识(就像人在社会中的身份证号码)

  • 局域网(内网)ip:
  • 公网ip:运营商提供的,诸如家庭网络、小区网络等;所谓的唯一标识指公网ip中的唯一标识
  • 本机IP:127.0.0.1/localhost(无论是否接入网络都可以接入本机)
ip地址的分类
  1. ipv4
    它是一个32位的二进制数字,通常被分割成4个“八位字节”(0-255)例如192.168.1.1。
  • 用等效的十进制数表示
  • 在每段数字之间加上一个小数点,故称为点分十进制记法
  1. ipv6:
    是新一代的IP地址,一个128位的数字,通常被分割成8个“16位字节”,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 用冒号(:)分隔
  • IPv6地址的引入是为了解决IPv4地址耗尽的问题。

IPv4地址的耗尽是一个逐步发生的过程,而不是一个具体的时间点。这主要是因为IPv4地址是由各个地区的互联网注册机构(Regional Internet Registries,RIRs)分配的,每个RIR的IPv4地址耗尽的时间都不同。 全球范围内,第一个宣布IPv4地址耗尽的RIR是亚洲互联网号码信息中心(APNIC),这发生在2011年4月。随后,欧洲网络协调中心(RIPE NCC)在2012年9月,拉丁美洲和加勒比海网络信息中心(LACNIC)在2014年6月,北美数字地址分配机构(ARIN)在2015年9月,非洲互联网号码分配机构(AFRINIC)在2020年1月,分别宣布他们的IPv4地址已经耗尽。 需要注意的是,即使RIRs的IPv4地址已经耗尽,但在实际的网络中,仍然有大量的IPv4地址正在使用,或者被ISP和企业保留。此外,通过各种技术手段(如NAT,CIDR等)也可以在一定程度上缓解IPv4地址的耗尽问题。 总的来说,IPv4地址的耗尽是一个长期的过程,而且并不意味着IPv4地址无法使用,只是新的IPv4地址无法再从RIRs获取。这也是推动IPv6部署的一个重要原因。

域名

  • 域名可以简单的理解为IP地址的别名. 更方便记忆
  • 当输入域名后(例如www.baidu.com) , 计算机会访问域名解析商 , 然后得到ip地址, 再进行访问.

可以类比ip为电话号码,而域名是联系人名称

计算机的端口号

与ip地址很相似, IP地址是计算机在网络中的唯一标识 ,端口号是计算机中程序的标识

  • 端口号的范围 0-65535 之间 .
  • 用于在一台计算机中区分不同的应用程序
  • 端口号在使用时 , 应尽量避免0-1024之间的端口号, 因为已经被一些知名的软件 和 windows操作系统所占用

计算机的通信协议

是计算机与计算机之间交流的标准,对数据的传输速率,传入接口, 步骤控制,出错控制等等制定的一套标准 。

常用的通信协议:

  1. http协议 : 超文本传输协议 . 80端口号
  2. https协议: 安全的超文本传输协议 443端口号
  3. ftp协议: 文件传输协议 21端口号
  4. TCP协议: 传输控制协议
  5. UDP协议: 数据报协议

两种常见协议(TCP和UDP)

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是两种最常见的互联网协议,它们都位于OSI模型传输层

七层网络模型: 应用层 / 表现层 / 会话层 / 传输层 / 网络层 / 数据链路层 / 物理层

TCP协议
  • TCP是一种面向连接的协议,它提供了一种可靠的、有序的和错误检测的数据流服务。
  • TCP通过握手过程建立连接,通过确认和重传机制保证数据的可靠传输。
  • TCP还提供了流量控制和拥塞控制机制。由于这些特性,TCP通常用于需要高可靠性的应用,如Web服务器、邮件服务器和数据库服务器。
三次握手(连接建立)

三次握手的过程如下:
SYN:客户端发送一个SYN(同步)包到服务器,请求建立连接。这个包包含一个随机的序列号A。
SYN-ACK:服务器收到SYN包后,返回一个SYN-ACK(同步确认)包。这个包包含一个自己的随机序列号B,和对客户端序列号A的确认(即A+1)。
ACK:客户端收到SYN-ACK包后,返回一个ACK(确认)包。这个包包含对服务器序列号B的确认(即B+1)。

四次挥手(连接断开)

四次挥手的过程如下:
FIN:当一方(比如客户端)完成数据发送后,发送一个FIN(结束)包到另一方(比如服务器),请求断开连接。
ACK:另一方(比如服务器)收到FIN包后,返回一个ACK(确认)包,确认收到了FIN包。
FIN:当另一方(比如服务器)也完成数据发送后,发送一个FIN(结束)包到一方(比如客户端),请求断开连接。
ACK:一方(比如客户端)收到FIN包后,返回一个ACK(确认)包,确认收到了FIN包。

UDP协议
  • UDP是一种无连接的协议,它不保证数据的可靠传输,也不提供流量控制或拥塞控制。
  • 因此,UDP的开销比TCP小,速度也更快。由于这些特性,UDP通常用于对实时性要求高的应用,如视频流、音频流和在线游戏。

网络编程的分类

1.B/S 程序 : 浏览器与服务器程序
2.C/S 程序 : 客户端与服务器程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值