网络原理与网络的基本概念,TCP/IP协议

一、什么是网络

当我们谈论网络时,我们指的是将多个计算设备连接在一起,使它们能够相互通信和共享资源的系统。网络可以是物理上的连接,例如使用电缆或光纤,也可以是逻辑上的连接,例如通过无线信号或互联网连接。

在网络中,这些计算设备可以是计算机、服务器、智能手机、平板电脑、路由器、交换机等。它们通过特定的网络协议进行通信,例如TCP/IP协议。网络允许设备之间传输数据、共享文件、访问远程服务、通信和合作,从而实现信息交换和资源共享。

网络可以根据其范围和连接方式分为不同类型,包括局域网(LAN)、广域网(WAN)、城域网(MAN)、互联网和内联网等。局域网通常覆盖一个较小的地理区域,例如家庭、办公室或校园;而广域网则覆盖更大范围,通常跨越城市、国家甚至是全球。互联网则是全球范围的网络,由数百万个网络互相连接而成,为人们提供了丰富的信息资源和服务。

总的来说,网络是连接计算设备和资源的系统,它为我们提供了无限的可能性,使得人们能够在全球范围内进行通信、协作和信息交换,从而推动了科技的发展和社会的进步。

二、网络的构成

网络是由多个设备和连接它们的通信链路组成的系统。网络的构成包括以下几个主要方面:

  1. 设备

    • 网络中的设备包括计算机、服务器、路由器、交换机、集线器、无线接入点等。
    • 计算机和服务器用于处理和存储数据,路由器和交换机用于转发数据,集线器用于连接多台设备,无线接入点用于提供无线网络连接。
  2. 通信链路

    • 通信链路是连接设备之间的物理连接,可以是电缆、光纤或无线信号。
    • 通信链路包括局域网(LAN)中的以太网、广域网(WAN)中的电话线、光纤等。
  3. 协议

    • 协议是设备之间通信的规则集,定义了数据如何在网络中传输、接收和处理。
    • 常见的网络协议包括TCP/IP协议、以太网、WiFi、HTTP、FTP等。
  4. 服务和应用程序

    • 网络中的服务和应用程序包括Web服务器、电子邮件服务器、文件共享服务、远程登录服务等。
    • 这些服务和应用程序允许用户在网络上进行通信、数据交换和资源共享。

三、网络的基本概念

  1. IP地址

    • IP地址是用于标识网络上设备的唯一地址。
    • IPv4地址由32位二进制数表示,通常以点分十进制的形式显示,如192.168.1.1。
    • IPv6地址由128位二进制数表示,以冒号分隔的八组十六进制数显示,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
    • IP地址的作用是定位和识别设备,使其能够在网络上相互通信。
  2. 端口号

    • 端口号用于标识设备上运行的特定应用程序或服务。
    • 端口号是一个16位的数字,范围从0到65535。
    • 一台设备可以同时运行多个应用程序,每个应用程序都会监听不同的端口号,以便与其他设备进行通信。
  3. 协议

    • 协议是设备之间通信的规则集,它定义了数据如何在网络中传输、接收和处理。
    • 常见的网络协议包括TCP(传输控制协议)、UDP(用户数据报协议)、HTTP(超文本传输协议)、FTP(文件传输协议)等。
    • 不同的协议有不同的功能和特点,例如TCP提供可靠的数据传输,而UDP则是一种无连接的协议,用于快速传输数据。

四、TCP/IP协议

TCP/IP协议族采用分层的设计,通常按照 OSI 模型或 TCP/IP 模型分为以下几层:

  1. 应用层:负责处理特定应用程序的通信细节,如HTTP、FTP、SMTP等协议。
  2. 传输层:提供端到端的数据传输服务,包括TCP和UDP协议。
  3. 网络层:负责数据包的路由和转发,实现IP协议。
  4. 数据链路层:负责相邻节点之间的数据传输,包括物理寻址和数据帧的传输。

接下来,我会结合TCP/IP 五层协议,讲解数据在网络中的传输和接收过程。

  1. 封装(Encapsulation)

    • 封装是指将数据添加首部信息,形成符合网络传输要求的数据包的过程。
    • 在TCP/IP协议中,数据在发送端从应用层向下逐层封装,直到物理层,然后在接收端从物理层向上逐层解封装。
    • 封装过程的具体步骤如下:
      1. 应用层:将数据封装成应用层数据报(如HTTP请求或FTP文件)。
      2. 传输层:在应用层数据报的基础上添加传输层头部信息,形成TCP或UDP报文段。TCP头部包括源端口号和目的端口号等信息。
      3. 网络层:在传输层报文段的基础上添加网络层头部信息,形成IP数据报。IP头部包括源IP地址和目的IP地址等信息。
      4. 数据链路层:在网络层数据报的基础上添加数据链路层头部信息,形成数据帧。数据帧包括源MAC地址和目的MAC地址等信息。
  2. 分用(Demultiplexing)

    • 分用是指接收端根据报文中的目的端口号将数据分发给相应的应用程序的过程。
    • 在TCP/IP协议中,数据在接收端从物理层向上逐层分用,直到应用层,然后交给相应的应用程序进行处理。
    • 分用过程的具体步骤如下:
      1. 数据链路层:接收数据帧,并从中提取出数据以及源MAC地址和目的MAC地址等信息。
      2. 网络层:接收IP数据报,并从中提取出数据以及源IP地址和目的IP地址等信息。
      3. 传输层:接收TCP或UDP报文段,并从中提取出数据以及源端口号和目的端口号等信息。
      4. 应用层:根据目的端口号将数据交给相应的应用程序进行处理,实现数据的递交。
  3. 服务器与客户端的建立联系
    • 建立连接

      • 客户端向服务器发送连接请求,这是一个三次握手的过程:
        1. 客户端向服务器发送一个SYN(同步)报文,其中包含客户端的初始序列号。
        2. 服务器收到SYN报文后,回复一个SYN-ACK(同步-确认)报文,其中包含服务器的初始序列号和确认号,同时也会对客户端的SYN报文进行确认。
        3. 客户端收到服务器的SYN-ACK报文后,回复一个ACK(确认)报文,确认服务器的SYN报文,并告知服务器已经收到。
    • 数据传输

      • 在连接建立之后,客户端和服务器之间可以开始传输数据。
      • 数据被封装在TCP报文段中,并根据需要分割成合适的大小进行传输。
      • TCP协议通过滑动窗口、确认应答、超时重传等机制来保证数据的可靠传输。
    • 响应

      • 服务器接收到客户端发送的数据后,进行相应的处理并生成响应。
      • 响应数据被封装在TCP报文段中,并通过连接发送给客户端。
      • 客户端接收到服务器的响应后,进行相应的处理。
    • 断开连接

      • 通信结束后,客户端和服务器之间会断开连接,这是一个四次挥手的过程:
        1. 客户端向服务器发送一个FIN(结束)报文,表示客户端已经完成发送数据并准备关闭连接。
        2. 服务器收到客户端的FIN报文后,发送一个ACK报文,确认客户端的FIN报文。
        3. 服务器在准备关闭连接时,发送一个FIN报文给客户端。
        4. 客户端收到服务器的FIN报文后,发送一个ACK报文给服务器,确认服务器的FIN报文。此时连接关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/442102.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Day 8.TCP包头和HTTP

TCP包头 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时、确认号才有用); TCP为什么安全可靠 1.在通信前建立三次握手 SYP SYPACK ACK 2.在通信过程中通过序列号和确认号和…

Django会话

一、Cookie介绍 1.1、背景介绍 HTTP协议有一个特性就是无状态的,是指协议对于交互性场景没有记忆能力 随着动态交互的web应用的出现,HTTP的无状态特性严重阻碍了动态交互应用程序的发展,例如一些购物网站在进行购物时候都会进行了页面跳转/刷新,按照HTTP的无状态协议岂不…

《JAVA与模式》之策略模式

系列文章目录 文章目录 系列文章目录前言一、策略模式的结构二、使用场景三、认识策略模式四、策略模式的优点五、策略模式的缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

【LeetCode 算法专题突破】---二分查找(⭐⭐⭐)

前言 我在算法题目的海洋中畅游已久,也曾在算法竞赛中荣获佳绩。然而,我发现自己对于算法的学习,还缺乏一个系统性的总结和归类。尽管我已经涉猎过不少算法类型,但心中仍旧觉得有所欠缺,未能形成完整的算法体系。 因…

微服务超大Excel文件导出方案优化

1、在导出Excel时经常会碰到文件过大,导出特别慢 2、微服务限制了请求超时时间,文件过大情况必然超时 优化思路: 1、文件过大时通过文件拆分、打包压缩zip,然后上传到oss,并设置有效期(30天过期) 2、把…

gitte上传项目操作

一、项目背景 打比赛,多个人合作,选择github,顺便了解下git的代码操作。 二、步骤 2.1 新建仓库 2.2 打开你要上传到库的项目 2.2 选择 Git Bash Here 输入指令 git init 2.3 查找github的仓库 2.2 将文件放入暂缓区 git add . 2.3填写…

【MySQL 系列】MySQL 语句篇_DML 语句

DML(Data Manipulation Language),即数据操作语言,用于操作数据库对象中所包含的数据。常用关键字包括:插入(INSERT)、更新(UPDATE)、删除(DELETE&#xff09…

第一个 Angular 项目 - 添加路由

第一个 Angular 项目 - 添加路由 前置项目是 第一个 Angular 项目 - 添加服务,之前的切换页面使用的是 ngIf 对渲染的组件进行判断,从而完成渲染。这一步的打算是添加路由,同时添加 edit recipe 的功能(同样通过路由实现) 用到的内容为&…

快速上手:使用Hexo搭建并自定义个人博客

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

UUU.咕咚视频批量混剪软件下载,批量剪辑个体无限批量生成,批量合成视频,批量混剪视频的软件是什么样的?批量剪辑软件在哪下载?批量混剪软件下载容易吗?

[md]# 前言 工具的产生源于dy出的火山引擎的云视频混剪制作是按分钟数收费的,这个软件既能实现正常混剪也能避免二次收费。属于FFMPEG合成的。 欢迎大家给一些好的建议和功能,回复可见,附加了一些天卡,周卡,请大家不要…

Milvus 向量数据库实践 - 1

假定你已经安装了docker、docker-compose 环境 参考的文档如下: Milvus技术探究 - 知乎 MilvusClient() - Pymilvus v2.3.x for Milvus 一文带你入门向量数据库milvus 一、在docker上安装单机模式milvus数据库 1、 进入milvus官网: Install Milvus Stand…

【linuxC语言】dup、dup2函数

文章目录 前言一、dup函数二、dup2函数三、将标准输出重定向到文件总结 前言 在Linux环境下,dup、dup2以及原子操作都是用于文件描述符管理和处理的重要工具。这些功能提供了对文件描述符进行复制和原子操作的能力,使得在多线程或多进程环境中更加安全和…

Randoop 报错 Cannot find the Java compiler 的解决方案

编写测试用例是一项困难且耗时的工作,但同时又是好的软件工程的重要部分。Randoop是一个随机测试的测试用例生成的工具,能够自动的为Java代码中的类生成单元测试。 官网链接: https://randoop.github.io/randoop/manual/index.html。 正确的…

新手小白剪辑视频知识点:视频分辨率和位深度,有什么区别?

新手小白需要了解的视频剪辑知识点,什么是视频分辨率尺寸(文件大小)和位深度? 分辨率尺寸/文件大小 常见的视频分辨率是高清和 4K。高清素材的屏幕像素(宽度 x 高度)测量值通常为 1920 x 1080,而 4K 素材是其四倍&am…

【Linux通识】之端口到底是个什么?

端口的本质是计算机上的一小块内存! 端口的概念 在Linux系统(以及其他所有支持网络通信的操作系统)中,端口(Port)可以理解为计算机在网络上与外界沟通的虚拟通道或门牌号码。当我们谈论网络通信时&#xf…

【教程】Github环境配置新手指南(超详细)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、Github初始设置(一)登入Github(二)新建仓库 二、本地Git配置&am…

在Leaflet中使用Turf.js生成范围多边形的两种实现方式

目录 前言 一、场景需求 1、Leaflet.js的不足 2、Turf.js 二、原始数据展示 1、点位数据展示 2、定义样式 3、定位数据初始化 三、Turfjs中bbox生成 1、官网讲解 2、轨迹bbox生成 四、Turfjs生成外包多边形 1、官网例子 2、凸多边形生成 总结 前言 在一些共享出…

机器学习--循环神经网路(RNN)2

在这篇文章中,我们介绍一下其他的RNN。 一.深层RNN 循环神经网络的架构是可以任意设计的,之前提到的 RNN 只有一个隐藏层,但 RNN 也可以是深层的。比如把 xt 丢进去之后,它可以通过一个隐藏层,再通过第二个隐藏层&am…

三  超级数据查看器   讲解稿    主界面和系统功能介绍

三 超级数据查看器 讲解稿 主界面和系统功能介绍 APP百度下载地址 下载地址4 ​讲解稿全文: 大家好。 今天我们讲解一下,超级数据查看器主界面。 首先,我们打开超级数据查看器。 打开之后,进入的第一个界面就是主界面。这个页面由三…

网络编程---网络编程入门、UDP通信程序、TCP通信程序

1.网络编程入门 1.网络编程概述 网络编程: 在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据传输 计算机网络: 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来&#…