网络编程基础概念

网络编程基础概念

  • 什么是网络编程?
  • IP地址
  • 端口号(port)
  • 协议
  • 请求和响应

什么是网络编程?

网络编程,指的是网络上的主机通过不同的进程以编程的方式实现网络通信或称网络数据传输)。
网络编程基础概念_第1张图片

  • 进程1:编程来提供网络资源
  • 进程2:编程来获取网络资源

当然,我们只需要满足不同主机就行;即便是同一个主机,只要是不同的进程,基于网络进行传输,也属于网络编程。

特殊的,对于开发来说,在条件有限的情况下,一般都是在一个主机中运行多个进程来完成网络编程。

IP地址

概念: IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
IP地址和我们内存地址类似,一个指定的内存地址可以找到我们指定数据,而网络上的IP地址则可以定位到网络上的一台主机。
作用: IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主句分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址表示形式:
IP地址是一个32位的二进制数,通常被分隔为4个8位二进制数(也就是4个字节),如01010001.10110001.10101000.11111101。

通常用点分十进制来表示,即a.b.c.d的形式(a,b,c,d都是0 ~ 255之间的十进制数)。如127.0.0.1。
IP地址的组成:
IP协议分为ipv4和ipv6

Ipv4的数量为2^32,大约有43亿左右,而TCP/IP协议规定,每一个主机都需要一个IP地址。对于全世界计算机来说,这个数量是不够的,所以就推出了IPv6,IPv6就是针对Ipv4数量不够而推出的,IPv6数量是非常庞大的,可以为地球上的每一粒沙子都分配一个IP都不为过。IPv6的长度是128位,是Ipv4的4倍。
特殊的IP地址:

  • 将IP中的主机全部设为0,就成了网络号,代表局域网
  • 将IP地址中的主机全部设为1,就成了广播地址,用于给同一个链路中相互连接的所有主机发送数据包
  • 127.*的IP地址用于本机环回,通常是127.0.0.1
  • 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输)

端口号(port)

前者IP地址是用来标识网络上的主机,而我们的端口号是用来标识某一主机进行通信的不同应用程序,因此,它也被称为程序地址。
端口号范围: 端口号是用16位来表示,因此范围就是1 ~ 2^16 来表示端口号。其中1 ~ 1023 用来表示一些知名端口号,在这之后就是不固定分配给某个服务,也就是说许多服务器都可以使用这些端口号,在关闭程序进程之后就会释放端口号。

协议

什么是协议: 协议就是Internet中实现通信所需要的一些约定,我们都遵守这一约定才能识别网路通信中的数据。
计算网络五层模型:

应用层 HTTP、Telnet、FTP、TFTP、DNS、SMTP
传输层 TCP、UDP
网络层 IP、ICMP、RIP、IGMP、
数据链路层 ARP、RARP、IEEE802.3、PPP、CSMA/CD
物理层 FE自协商、Manchester、MLT-3、4A、PAM5
  • 应用层:为用户的应用进程提供网络通信服务(DNS协议、HTTP协议、HTTPS协议)
  • 传输层:负责两台主机之间的数据传输,将数据从发送端传输到接收端(TCP协议、UDP协议)
  • 网络层:负责传输地址管理和路由选择, 在从多复杂网络传输路径中确定一条合适的路径
  • 数据链路层:负责设备之间数据帧的传送和识别, 将网路层传输的数据报封装成帧,在处于同一个数据链路节点的两设备之间传输(ARP协议、MTU协议)
  • 物理层:负责光电信号的传递方式, 实现相邻计算机节点之间比特流的透明传输。

请求和响应

请求: 客户端向服务器发出数据请求,例如在浏览器地址栏输入地址,点击回车请求服务器,这个过程就是一个请求过程。
响应: 服务器根据客户端发送的请求,返回数据到客户端就是一个响应,例如返回数据到浏览器网页上进行显示这个过程也称之为响应。

你可能感兴趣的:(网络,tcp/ip,网络协议)