热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【网络协议突击指南01】前言和网络基础知识

恶补前的疑问作为技术人员,平时是会经常接触网络的,也常会听到一些诸如:TCP、UDP、IP、MAC之类的词(这些常用的肯定是知道大概意思的)我是非科班出身,没有系统学习过计算机网络

恶补前的疑问

作为技术人员,平时是会经常接触网络的,也常会听到一些诸如:TCP、UDP、IP、MAC之类的词(这些常用的肯定是知道大概意思的)

我是非科班出身,没有系统学习过计算机网络组成或者原理,在认识上很难对这些松散的知识有整体的一个认识。因此时常处于"知其然不知其所以然"的状态。

于是便将自己想的一些问题罗列出来作为恶补知识的目标,以上便是前言

下面列出关心的问题【可能会有一些想当然的问题,不过没关系,我会继续学】


0、网络的构成

网络是怎么构成的?为什么通过几个协议就可以定义网络?


1、什么是网络协议?

网络协议的定义?网络协议在网络的构建中的角色是什么?


2、网络协议分类和作用

网络协议分为哪些?分别对应于七层模型的哪些层?具体的作用是什么?


3、网络协议与网络流量的关系

不同网络协议对于网络流量的影响是只体现在比如数据段的构成不同上吗?还是干脆整个数据包的结构都有区别?

这些是我目前想知道的关于网络协议的问题,之后会回来解答

总的来说,恶补是基于《图解http 第五版》进行的,每个章节的内容会以总结和讨论的方式记录,其中也会有对于网上一些优秀解答的引用(我会标注),那么开始吧


第一章 网络基础知识


网络是如何出现的?

这与计算机的发展密不可分。总结为以下阶段

批处理时代---单机使用,设备昂贵;
分时系统时代---多个终端同时连一台计算机,一机可供多人使用;(计算机之间虽然也连接,但无法通信)
计算机间通信---计算机之间通过通信线路连接实现数据交换;
计算机网络---通过路由器等设施构建的计算机之间的通信网;
互联网---不同厂商的计算机之间建立的一个成本更低的网络环境;
IP(Internet Protocol)网---以协议为支撑的网络,取代过去由电话网支持的通信网络;

什么是协议?

先说在前,TCP/IP指的是一种网络体系结构(协议集合),其中包含着许多种类的协议

TCP/IP包含:

IP,ICMP,TCP,UDP,HTTP,TELNET,SNMP,SMTP...

因此,我之前会想:“是先学TCP/IP还是先学HTTP”这种想法就是多余的了,因为TCP/IP包含有HTTP。

回到正题,什么是协议


感性理解

《图解TCP/IP》中所举的例子就很形象

协议可以理解为我们使用的语言,不同的人说不同的语言,但只有说相同语言的人才能进行沟通。(可以理解为通信)

但这只是一个有助于理解的例子,实际情况还是有不同的。

人类在使用语言交流时,可以借助表情、语气等修正自己所要表达的语义。显然计算机没有达到这种智能程度。

因此,计算机中的协议必须是充分考虑通信过程中可能遇到的各种异常之后再制定的。因此遵循相同协议的计算机之间自然可以进行通信。


分组交换协议

分组交换指将大数据分割为一个一个的小块,称为包(Packet),分组交换就是将大数据分装在多个包中交给对方的过程

image-20221105170415493


协议的标准化

为了统一不同厂商间所使用的协议,简化通信成本

【严格定义:标准化是指不同厂商所生产的易购产品之间具有兼容性以及便于使用的规范化过程】

ISO指定了国际标准OSI(开放式通信系统互联参考模型)

很不幸,OSI作为一个标准,其中的很多协议至今都没有普及,但是作为OSI指导方针的OSI参考模型(七层模型),却常被用于制定网络协议

OSI协议和OSI参考模型不是一回事


协议分层

OSI参考模型将通信协议中的必要功能分成7层以简化一些复杂的网络协议。

每个分层都接受由它下一层提供的特定服务,并负责为自己的上一层提供特定服务。

上下层之间进行交互时所遵循的约定称为"接口";

同一层之间的交互所遵循的约定叫"协议";

image-20221105192933076

还是用之前"对话语言"的例子拓展一下

若A、B两人使用同种语言交流通过电话交流,表面上看他们是直接对话,但实际上A与B都只是通过电话机的听筒听取声音,都是对着麦克风说话。

在这个场景中,他们使用的语言协议作为麦克风的音频输入,在通信设备层被转换为电信号传出去。传到对方的电话机后,又被通信设备层转换为音频输出。A与B实际上是利用电话机之间的"音频转化声音"接口实现的对话

上述过程中,

双方使用的"电话机"的协议不同,会影响通话;

若双方同时更换"电话机"为"无线电",不会影响通信;(只需学会无线电方法即可)

若双方同时更换语言为"英语",不会影响通信;(电话机不会受"语言层"的影响)

感受一下协议分层的特点


OSI参考模型中各个分层的作用

============================================
7.应用层
针对特定应用的协议【例如电子邮件、文件传输等】
============================================
6.表示层
设备固有数据格式和网络标准数据格式的转换
【接收文字流、图像、声音等】
实际应用中用于保证异构机型之间的数据一致性
例如:从网易邮箱发往QQ邮箱的数据,在表示层中转换为各自软件的专属数据格式,而在表示层之下则使用统一的网络数据格式进行传输
============================================
5.会话层
通信管理。负责建立和断开通信连接,是数据流动的逻辑通路。管理传输层以下的分层【何时建立\断开连接,连多久】
还是用发邮件举例,该层决定邮件应该怎么发,在其收到的数据前端附加首部或标签信息,这些部分记录着数据传送顺序的信息
============================================
===========以下层负责具体数据的传输=============
4.传输层
管理两个节点(互联的网络终端设备)之间的数据传输,负责传输的可靠性,确保数据传送至目的地
【判断数据是否有丢失】
若传输过程中出现异常导致目的机器未收到数据,目的机器会再次询问发送方,发送方会将剩余部分重新发送并再次确认是否送达。
=================↑=协作=↓===================
3.网络层
地址管理和路由选择【选择经过哪个路由传递到目标地址】
实际将数据从A送到B
============================================
2.数据链路层
互联设备之间传送和识别数据帧【数据帧与比特流(如0101)之间的转换,数->比->数】

通过传输介质互联的设备,进行数据处理
============================================
1.物理层
以0、1代表高低电平和灯光的亮灭,界定连接器和网线的规格【比特流与电子信号(模拟信号)之间的切换,比->电->比】
直连设备之间采用地址实现传输,这种地址称为MAC地址,目的是为了识别连接到同一个传输介质上的设备。

补充知识:路由

https://zhuanlan.zhihu.com/p/149243461

路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。

image-20221107100355842

问题:一台计算机在收发信息时会独占线路,其他计算机只能等待。


分组交换

image-20221107100445159

分组交换机(路由器,也叫3层交换机)负责连接通信线路

发送端计算机将数据分组发送给路由器,路由器接收到分组数据并缓存后发送给目标。顺序是先进先出

image-20221107100516414

问题:由于线路中传输速度的不同,可能出现拥堵、阻塞甚至分组数据丢失的情况



推荐阅读
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 端口转发(Port Forwarding)类似于服务重定向,许多路由器中也称其为虚拟服务器(Virtual Server)。通过合理配置端口转发,可以实现外部网络对内部网络中特定设备和服务的高效访问,从而提高通信效率和灵活性。此外,正确设置端口转发还能增强网络安全,确保只有授权的流量能够进入内网,有效防止未授权访问和潜在威胁。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
  • Spring框架下发送嵌入图片邮件时遇到的技术挑战与解决方案
    在Spring框架中发送嵌入图片的HTML格式邮件时,常遇到技术挑战。一种有效的解决方案是在邮件内容中直接使用``标签来引用图片。此外,还可以通过MimeMessageHelper类的addInline方法将图片作为内联资源添加到邮件中,确保图片能够正确显示。这种方法不仅提高了邮件的可读性,还增强了用户体验。 ... [详细]
  • 如何使用专业软件打开和编辑PHP电影文件?
    如何使用专业软件打开和编辑PHP电影文件? ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
author-avatar
小梅LMY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有