网络协议的基础知识

2024-08-25 08:04
文章标签 基础知识 网络协议

本文主要是介绍网络协议的基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

了解OSI模型和TCP/IP模型

在上一篇关于互联网的工作原理的数据传输中,我们了解到,两台计算机之间传输数据时,需要将数据封装成数据包。这些数据包中不仅包含我们实际要传输的信息,还包括很多额外的内容,比如目标地址、发件人的地址等等。

那么问题来了:这些额外的信息应该放在数据包的哪里?我们又如何区分哪些是我们需要传输的核心数据,哪些是为了保障传输顺利而添加的附加信息?

显然,这些信息不能随意塞进数据包里。就像快递包装一样,只有遵循一套标准的打包方式,才能确保在传输过程中不出岔子。所以,为了规范和标准化网络通信,工程师们设计了OSI模型TCP/IP模型,用来规范数据的封装和传输。

OSI模型与TCP/IP模型的区别

或许你会问:既然有了一个模型,为什么还要有两个呢?它们之间有什么区别和联系?

其实很简单,OSI模型是一个理论框架,它把网络通信分为7层,每一层都有各自的职责。这个模型非常详细和规范,非常适合我们用来学习和理解网络是如何运作的。但是,OSI模型更多地是一种理想化的设计,并没有广泛地应用在实际中。

而TCP/IP模型就不一样了。它只有4层或5层,设计更简化,目的就是为了解决实际网络通信中的问题。TCP/IP模型广泛应用于互联网,是我们日常使用的计算机网络中实际运行的“规矩”。

换句话说,OSI模型更适合研究和学习,而TCP/IP模型则是在现实中“干活”的那个。正因为如此,在实际网络中,TCP/IP模型成为了更常用的协议栈,而OSI模型则更多地作为理解网络原理的理论工具来使用。

OSI模型

OSI(Open Systems Interconnection,开放式系统互连)模型是由国际标准化组织(ISO)在1984年提出的一个网络通信模型。它的目的是为了定义网络通信的标准框架,使得不同的网络设备和系统能够互操作。OSI模型将网络通信过程分成了7个层次,每一层都有特定的功能和职责,这种分层的设计使得网络通信过程更加清晰和模块化。

一、物理层

物理层负责在物理媒体上传输原始的比特流,即将数据以电信号、光信号或无线信号的形式传输。它定义了网络设备之间的物理连接方式、信号的电压、电流、光的强度等特性。

典型的设备有:网线、集线器、交换机(工作在物理层模式下)等。

协议与标准:以太网标准(Ethernet)、光纤标准(Fibre Channel)等。

二、数据链路层

数据链路层负责将物理层传输的原始比特流组织成帧(Frame),并提供错误检测和纠正功能,确保数据在同一网络中的可靠传输。数据链路层还负责控制网络中多个设备之间的访问权(如媒介访问控制MAC)。

典型的设备有:交换机、网卡。

协议与标准:以太网(Ethernet)、Wi-Fi(IEEE 802.11)、PPP(Point-to-Point Protocol)等。

三、网络层

网络层负责数据包的路由和转发,决定数据从源到目的地的路径。它解决的是跨越多个网络的传输问题,因此它是实现不同网络之间互连的关键层次。

典型的设备:路由器。

协议与标准:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等。

四、传输层

传输层负责端到端的数据传输和控制,确保数据可靠、有序地传输到目标应用程序。它提供了数据分段、流量控制、差错校验、数据重传等功能。

典型的协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。

协议的特点:TCP提供可靠的、面向连接的服务,而UDP则提供无连接的、尽力而为的数据传输服务。

五、会话层

会话层负责建立、管理和终止应用程序之间的会话。它提供了会话建立、数据同步、恢复等功能,以确保会话数据的顺序和完整性。

使用场景:如远程过程调用(RPC)、会话管理协议等。

协议与标准:NetBIOS、PPTP(Point-to-Point Tunneling Protocol)等。

六、表示层

表示层负责数据的格式化和转换,以便不同系统之间能够理解和正确处理数据。它还负责数据的加密、解密、压缩和解压缩。

使用场景:例如,将不同字符集的数据转换成通用格式、加密数据传输。

协议与标准:SSL/TLS(用于数据加密)、JPEG、MPEG、GIF等格式。

七、应用层

应用层为用户提供网络服务的接口,它直接与用户的应用程序交互。应用层提供了很多网络服务,如文件传输、电子邮件、远程登录、网络管理等。

使用场景:用户常用的网络操作,如浏览网页、发送电子邮件等。

协议与标准:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)等。

TCP/IP模型

TCP/IP模型的设计初衷是为了更好地支持互联网的通信需求,因此它的层次划分更贴近实际的网络通信过程。TCP/IP模型有四层(或五层,取决于具体分类),它们分别是:

  1. 网络接口层(Network Interface Layer):对应OSI模型的物理层和数据链路层。这一层负责处理数据如何在同一网络(通常是局域网)内传输,包括如何访问物理介质、如何组装和解析帧等。
  2. 互联网层(Internet Layer):对应OSI模型的网络层。这一层负责数据包的路由和转发,决定数据如何通过不同的网络传输到达目的地。
  3. 传输层(Transport Layer):对应OSI模型的传输层。这一层提供端到端的通信服务,确保数据可以可靠、有序地从一个进程传输到另一个进程。
  4. 应用层(Application Layer):综合了OSI模型的会话层、表示层和应用层的功能。它为用户提供直接的网络服务,如文件传输、电子邮件、远程登录等。

如果有五层的话,就是将网络接口层划分为物理层和数据链路层

OSI模型与TCP/IP模型在这里只是写出了它的功能,但是你并不能够理解实际的数据联通过程和很深刻的了解在每个层中都完成了那些事情,所以仅仅了解到这里是远远不够的,还需要你再深入地去学习。

但作为入门的博客,你大致的理解就已经是一个不错的开端了,山之千仞,始于垒土,这里也只是告诫大家要进一步的去学习,而不是浅尝辄止。

关键网络协议简介(HTTP/HTTPS、TCP/UDP、DNS)

HTTP/HTTPS
HTTP(Hypertext Transfer Protocol)

HTTP,全称超文本传输协议,是用于传输网页数据的应用层协议。当我们在浏览器中输入一个网址并访问网页时,浏览器和服务器之间的通信就是通过HTTP进行的。

HTTP的工作流程非常简单:

  1. 客户端(浏览器)发起请求:当你在浏览器中输入一个网址(URL)时,浏览器会向服务器发送一个HTTP请求,要求访问特定的资源(如网页、图片、视频等)。
  2. 服务器响应请求:服务器接收到请求后,处理请求并返回相应的资源(如网页内容)给客户端。
  3. 浏览器显示内容:浏览器接收到服务器返回的资源后,会将这些资源渲染成我们看到的网页。

HTTP的特点:

  • 无状态性:每一次HTTP请求都是独立的,与之前的请求没有关联。这意味着服务器不会记住前一次请求的状态。为了实现“记住用户”的功能(如登录状态),通常会使用CookieSession技术。
  • 明文传输:HTTP传输的数据是明文的,意味着数据在传输过程中容易被窃听和篡改。这也是HTTP不够安全的原因之一。
HTTPS(Hypertext Transfer Protocol Secure)

HTTPS是HTTP的加密版本,使用了SSL/TLS协议来加密数据,确保数据传输的安全性。HTTPS解决了HTTP的几个重要问题:

  1. 数据加密:HTTPS通过SSL/TLS协议加密传输的数据,确保数据在传输过程中不会被窃听。
  2. 数据完整性:HTTPS能够检测数据在传输过程中是否被篡改,确保数据的完整性。
  3. 身份验证:通过数字证书,HTTPS能够验证服务器的身份,确保客户端访问的是合法的服务器,而不是伪装的服务器。

HTTPS已经成为互联网上的主流协议,尤其是在需要传输敏感信息的场合(如登录页面、支付页面)中,使用HTTPS是必不可少的。

2. TCP/UDP
TCP(Transmission Control Protocol)

TCP,即传输控制协议,是一种面向连接的、可靠的传输层协议。它保证了数据从发送端到接收端的可靠传输,常用于需要高可靠性的数据传输场景,如文件传输、网页浏览、电子邮件等。

TCP的主要特点:

  1. 连接管理:TCP在数据传输之前,需要先建立连接(即“三次握手”),在传输结束后,需要断开连接(即“四次挥手”)。这种连接管理确保了数据传输的可靠性。
  2. 数据分段与重组:TCP会将大块数据分成多个小段进行传输,并在接收端重新组装。这保证了数据能够有序、完整地到达接收端。
  3. 可靠传输:TCP通过确认应答机制,确保每一个数据段都被成功接收。如果接收端未收到某个数据段,TCP会重新发送该数据段,直到确认成功接收。
UDP(User Datagram Protocol)

UDP,即用户数据报协议,是一种面向无连接的传输层协议。与TCP相比,UDP更加轻量,不保证数据的可靠性、有序性和完整性,但传输速度快,适用于实时传输或对丢包不敏感的场景,如视频会议、在线游戏、实时语音等。

UDP的主要特点:

  1. 无连接:UDP在发送数据之前不需要建立连接,直接将数据发送给接收端。这使得UDP具有较低的延迟。
  2. 不保证可靠性:UDP不会追踪已发送的数据包,也不会确认是否成功接收。发送端只管发送,接收端如果漏掉数据包,UDP不会重发。
  3. 更快的传输速度:由于UDP省去了连接管理和确认应答机制,因此传输速度比TCP更快。
3. DNS(Domain Name System)

DNS,即域名系统,是互联网的“电话簿”,负责将人类易读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.0.2.1)。当你在浏览器中输入一个域名时,DNS会将其解析为IP地址,从而使浏览器能够找到相应的服务器并访问网站。

DNS的工作流程:

  1. 查询DNS服务器:当用户输入域名时,浏览器会首先查询本地的DNS缓存,如果没有命中缓存,就会向DNS服务器发起请求,询问该域名对应的IP地址。
  2. 递归解析:如果DNS服务器没有缓存请求的域名,它会向更高级别的DNS服务器(如根DNS服务器)递归查询,直到找到正确的IP地址。
  3. 返回结果:最终,DNS服务器将找到的IP地址返回给浏览器,浏览器再使用该IP地址访问目标网站。

DNS的重要性:

  • 便捷性:用户不需要记住复杂的IP地址,只需要记住简单的域名。
  • 灵活性:域名可以指向不同的IP地址,便于网站迁移和服务器更换。
  • 全球分布式系统:DNS采用分布式架构,全球各地的DNS服务器共同维护域名解析的效率和稳定性。

这篇关于网络协议的基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105002

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

VC网络协议

// PCControlDlg.cpp : 实现文件//#include "stdafx.h"#include "PCControl.h"#include "PCControlDlg.h"#include "afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框#ifde

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结构:总线型 星型(逻辑总线型) 介质访问控制  静态划分信道 信道划分介质访问控制 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 动态分配信道 轮询访问介质访问控

Gitflow基础知识

0.理想状态 现状 听完后的理想状态 没使用过 git 知道 git 是什么,会用 git 基础流程命令 用过 git,但只通过图形化界面操作 脱离图形化界面操作,通过 git 命令操作 会 git 命令 掌握 gitflow 规范,合理使用 rebase 和解决代码冲突问题 1.Git 的基础流程&命令 1.1 基础概念 工作区:代码生产基地,pycharm