网络通信基础(网络通信基本概念+TCP/IP 模型)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 网络通信基础(网络通信基本概念+TCP/IP 模型)

一、网络通信基本概念

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。

1、局域网 & 广域网

局域网 LAN:Local Area Network 其中 local 标识局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;

广域网 WAN:Wide Area Network 通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。


所谓 “局域网” 和 “广域网” 只是一个相对的概念。如果属于全球化的公共型广域网,则称为互联网(又称公网,外网),属于广域网的一个子集。有时在不严格的环境下说的广域网,其实是指互联网。

2、IP地址

概念:IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。


格式:IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:

01100100.00000100.00000101.00000110。常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。


特殊 IP:127.*的IP地址用于本机环回(loop back)测试,IP 地址是127.0.0.1 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

3、端口号

概念:端口号是用于标识网络通信中特定应用程序或服务的数字标识符。在网络通信过程中,数据通过不同的端口号来传输到正确的应用程序或服务。类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。


格式:端口号是 0~65535 范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

注意事项:同一主机两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

4、协议

有了 IP 地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制 0/1 数据来传输,如何告诉对方发送的数据是什么样的呢?


网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢?基于网络数据传输,需要使用协议来规定双方的数据格式。


概念:协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。协议(protocol)最终体现为在网络上传输的数据包的格式。

5、知名协议的默认端口

系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议,如:

  • 22端口:预留给SSH服务器绑定SSH协议
  • 21端口:预留给FTP服务器绑定FTP协议
  • 23端口:预留给Telnet服务器绑定Telnet协议
  • 80端口:预留给HTTP服务器绑定HTTP协议
  • 443端口:预留给HTTPS服务器绑定HTTPS协议

二、TCP/IP 五层模型

1、TCP/IP 协议簇

在网络通信中,面对复杂度的环境就需要约定复杂的协议,协议太过于复杂,可以拆分为多个协议,通过对拆分的协议进行分类,对不同的类别进行分层,就约定了层级和层级之间的调用关系:要求上层协议调用下层协议,下层协议给上次协议提供支持,不能跨层调用。

协议分层的好处

  1. 类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
  2. 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可。
  3. 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

这里所说的 TCP/IP 协议是一种网络协议套件,它包含了多个协议,包括物理层数据链路层网络层传输层应用层 等多个层次。这些不同层次的协议共同构成了一个完整的网络协议体系。

TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求:

  • 应用层:应用层是TCP/IP模型的最顶层,包含了各种网络应用程序,它主要关注的是传输过来的数据要干啥用。其中一种广泛使用的应用层协议 HTTP、HTTPS。
  • 传输层:负责两台主机之间的数据传输,不考虑中间路径,只关心起点和终点,能够确保数据可靠的从源主机发送到目标主机。比较常见的传输层协议有 TCP、UDP。
  • 网络层:负责地址管理和路由选择,进行两个遥远网络结点之间路径规划。例如在网络层 IP 协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。
  • 数据链路层:负责设备之间的数据帧的传送和识别,主要关注两个相邻结点之间的传输。例如通过物理地址(如MAC地址)在相邻节点之间传输。数据链路层最典型的协议 以太网协议。
  • 物理层:负责光/电信号的传递方式,通常指网络通信的基础设施。网线、光纤、网络接口等。

2、在协议分层的背景下,数据如何通过网络传输?

答案就是:封装和分用

  1. 封装:发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装。
  2. 分用:接收方接收数据,要把数据从下到上,依次交给对应的层次的协议,进行解析。

(1)忽略中间转发过程的封装分用

以李华使用微信给小明发送一条消息“Hello world”为例。下面是李华发送消息的封装过程:

  1. 首先在应用层,李华主机上的微信应用程序拿到上述数据后,首先会使用相应的应用层协议,将数据封装为应用层数据包。
  2. 接着应用层调用传输层提供的 API 来处理这个数据,传输层拿到上述数据后,会使用传输层的协议对数据再次封装,上图以 UDP 协议为例。
  3. 传输层调用网络层,网络层拿到 UDP 数据包后,使用网络层协议继续进行封装,上图以 IP 协议为例。
  4. 网络层调用数据链路层,数据链路层拿到 IP 数据包后,使用数据链路层协议进行封装,上图用经典的以太网协议为例:
  5. 数据链路层调用物理层,物理层拿到以太网数据帧后,就将上述的 0/1 二进制数据转化为光信号、电信号等进行传输。

以下是小明接收消息的分用过程:

在物理层,小明的主机通过网卡接收到高低电平的二进制信号,通过信号解析,还原成 0/1 这样的二进制序列。


接着物理层调用数据链路层,使用以太网协议,将上述 0/1 二进制数据还原成以太网帧,然后把帧头、帧尾去掉,取出以太网数据包的载荷,向上提交给网络层(以太网中有一个字段标志着网络层协议类型)。


网络层拿到载荷后,根据载荷协议类型,这里是 IP 数据包进行解析,然后去掉 IP 报头,取出载荷向上提交给传输层(IP 数据包中有一个字段标志着传输层协议类型)。


传输层拿到载荷,根据载荷协议类型,这里是 UDP 数据包进行解析,去掉 UDP 报头,取出载荷,根据端口号上交给应用层。


应用层中的微信应用程序拿到载荷后,根据相应的应用层程序对载荷内容进行解析,取出相应的字段显示到前端页面。

(2)真实网络环境中的封装分用

相关文章
|
25天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
|
24天前
|
网络协议 网络架构
TCP/IP协议架构:四层模型详解
在网络通信的世界里,TCP/IP协议栈是构建现代互联网的基础。本文将深入探讨TCP/IP协议涉及的四层架构,以及每一层的关键功能和作用。
111 5
|
24天前
|
网络协议
网络通信的基石:TCP/IP协议栈的层次结构解析
在现代网络通信中,TCP/IP协议栈是构建互联网的基础。它定义了数据如何在网络中传输,以及如何确保数据的完整性和可靠性。本文将深入探讨TCP/IP协议栈的层次结构,揭示每一层的功能和重要性。
53 5
|
23天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
35 2
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
86 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
47 4
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
51 13
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
下一篇
DataWorks