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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 网络通信基础(网络通信基本概念+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)真实网络环境中的封装分用

相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
30 11
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
8天前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
35 2
|
10天前
|
网络协议 Java
谈谈TCP/IP网络编程
【9月更文挑战第1天】在当今数字化的世界中,网络通信是连接各种设备和系统的关键。TCP/IP协议作为互联网通信的基石,被广泛应用于各种网络场景。了解TCP/IP网络编程的概念,并掌握如何在Java中实现TCP/IP通讯,对于开发人员来说是非常重要的。
39 4
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习模型之深度神经网络的特点
深度神经网络(Deep Neural Networks, DNNs)是一类机器学习模型,通过多个层级(层)的神经元来模拟人脑的工作方式,从而实现复杂的数据处理和模式识别任务。
14 1
|
17天前
|
算法
基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
该程序基于GA遗传优化设计了离散交通网络的双层规划模型,以路段收费情况的优化为核心,并通过一氧化碳排放量评估环境影响。在MATLAB2022a版本中进行了验证,显示了系统总出行时间和区域排放最小化的过程。上层模型采用多目标优化策略,下层则确保总阻抗最小,实现整体最优解。
|
17天前
|
网络协议 安全 网络安全
C语言 网络编程(四)常见网络模型
这段内容介绍了目前被广泛接受的三种网络模型:OSI七层模型、TCP五层模型以及TCP/IP四层模型,并简述了多个网络协议的功能与特性,包括HTTP、HTTPS、FTP、DNS、SMTP、TCP、UDP、IP、ICMP、ARP、RARP及SSH协议等,同时提到了ssh的免费开源实现openssh及其在Linux系统中的应用。
|
2天前
|
SQL 安全 算法
网络安全与信息安全:保护你的数字世界
【9月更文挑战第18天】在这个数字信息时代,网络安全和信息安全的重要性不言而喻。从网络漏洞的发现到加密技术的应用,再到安全意识的提升,每一个环节都至关重要。本文将深入探讨这些主题,并提供实用的建议和代码示例,以帮助读者更好地保护自己的数字世界。
23 11
|
3天前
|
SQL 安全 网络安全
网络安全与信息安全:保护你的数字世界##
网络安全和信息安全是现代社会中至关重要的话题。随着数字化进程的加速,网络攻击和数据泄露事件频发,给个人、企业乃至国家安全带来了巨大威胁。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的关键知识,帮助你提升对网络安全的认知,保护自己的数字资产。 ##
22 5
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第19天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地了解网络安全的重要性,提高自己的网络安全防护能力。
26 13
|
1天前
|
存储 安全 网络安全
云计算与网络安全的协同进化:探索云服务中的信息安全技术
【9月更文挑战第19天】 在数字化浪潮中,云计算已成为企业和个人存储、处理数据的心脏。然而,随着其广泛应用,网络安全问题亦步亦趋,成为制约云服务发展的关键因素。本文将深入探讨云计算环境下的网络安全挑战,分析当前信息安全技术的应对策略,并通过实际代码示例,揭示如何在云计算架构中实现安全加固。我们将一同见证,如何在数据流动与保护之间找到平衡点,确保云计算的健康稳定发展。