一、什么是网络

所谓网络,是利用通信设备和线路将功能独立的多个计算机或设备互联起来,通过功能完善的管理软件实现网络中资源共享和信息交互。在同一个网络中,任意两台设备都可以直接通信,因为所有设备都需要遵循同一种网络协议。

互联网是由全球各种网络相互连接而成的庞大网络。它是一个全球性的网络基础设施,通过使用标准化的互联网协议套件(如TCP/IP协议),使得全球各地的计算机和设备能够彼此连接和通信。互联网是一个去中心化的网络,没有单一的主控制节点,而是由各种网络提供商、服务提供商、机构和个人共同构成。

网络把许多计算机连接在一起。

因特网则把许多网络连接在一起。

1

二、网络模型

OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。OSI参考模型是学术上和法律上的国际标准,是完整的权威的网络参考模型。而TCP/IP模型是事实上的国际标准,即现实生活中被广泛使用的网络模型。

TCP/IP概念层模型 OSI七层模型 功能 通信协议
应用层
应用层 HTTP、FTP、SMTP、TFTP、SNMP、DNS、Telnet 提供应用程序之间的通信,如电子邮件、文件服务、虚拟终端等
表示层 处理数据格式,加解密等等
会话层 负责建立和维护会话
传输层 传输层 TCP、UDP 负责提供端到端的可靠传输
网络层 网络层 IP、ICMP、RIP、OSPF、BGP、IGMP 负责将分组从源机送到目的机,包括寻址和最优路径选择等
链路层
数据链路层 SLIP、CSLIP、PPP、ARP、RARP、MTU 提供可靠的帧传递,实现差错控制、流控等等
物理层 ISO2110、IEEE802、IEEE802.2 以二机制数据形式在物理媒体上传输数据

三、网络协议

​ 计算机网络客户端与服务端通信必须实现约定和彼此遵守的通信规则。常用的协议有:

  1. HTTP(专用于做浏览器开发的协议)。
  2. FTP(专用于文件上传的协议)。
  3. TCP(更低层的协议,一种面向连接,保证可靠通信的,保证数据不丢失)。
  4. UDP(底层的协议,一种无连接,但是是不安全的,可能会丢数据)。
  5. SSH(与服务器交互的协议)。
  6. SMTP(简单邮件传输协议)
  7. IP (网络中传输数据包,并为每个数据包提供源和目标地址,IP协议是一个分组交换,它不保证可靠传输)

TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

网络通信的三要素

协议

计算机网络通信必须遵守的规则

IP地址

​指互联网协议地址(Internet Protocol Address),俗称IP。IP地址用来给一个网络中的计算机设备做唯一的编号。假如我们把“个人电脑”比作“一台电话”的话,那么“IP地址”就相当于“电话号码”。

  • ​ IPV4是32位的二进制数,通常被分为4个字节,表示成a.b.c.d的形式,例如192.168.65.100 。其中a、b、c、d都是0~255的十进制整数,最多可以表示42亿个。

  • 由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。有资料显示,全球IPv4地址在2011年2月分配完毕。为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。

端口号

​网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?

​ 如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

​ 端口号用两个字节表示的整数,它的取值范围是0~65535。其中,0~1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。

一次完整的Http请求过程

简要过程

1、使用DNS域名解析;

2、发起TCP的3次握手

3、建立TCP连接后发起http请求;

4、服务器响应http请求,浏览器得到返回response;

5、浏览器解析response,并请求其它的资源(如js、css、图片等);

6、浏览器对页面进行渲染。