首页 > 系统相关 >Linux网络——从《计算机网络》到网络编程

Linux网络——从《计算机网络》到网络编程

时间:2024-09-10 21:52:23浏览次数:10  
标签:协议 计算机 网络层 网络 计算机网络 Linux 数据 链路层

文章目录

从《计算机网络》到网络编程

科班的同学大多学过计算机网络,而非科班的同学也多多少少听说过一些

计算机网络体系十分繁杂且精妙,这三四十年来计算机网络技术不断进步,但是核心是TCP/IP、UDP协议

从计算机到计算机网络

我们说一个计算机中的进程可以处理一定的任务

当他想与另一个进程进行通信时,就需要IPC的各种方式

但无论是管道、共享内存都是利用内存作为中转

如果想让另一台计算机的进程也能与这个计算机的进程进行通信呢

聪明的你肯定想到,把内存连起来呗,让他们都能访问到就行

诶,恭喜你,发明了计算机网络

所谓的计算机网络其实就是若干台计算机进程之间进行通信的一个过程

但是这里就有了很多问题

  1. 当时的计算机系统各异,Linux、MacOS、Windows,怎么样让他们也能进行通信,甚至同一个操作系统搭载在不同型号的计算机上都有可能不同
  2. 如果传输过程中出错了怎么办,要重传吗,还是将就着用
  3. 如果计算机之间怎么认得彼此,要知道计算机网络中可不止两台计算机,找到计算机了之后又要怎么找到你想找的进程呢
  4. 怎样让我在合肥的计算机访问到在北京的服务器
  5. 为什么无线网跟有线网都能进行通信呢

怪不得说计算机网络复杂呢,这些问题解决起来可是一点都不轻松

解决问题

大家其实都遇到了同样的问题,那么最好的解决方式就是开大会,定标准

这个标准我们就称之为协议,学过计算机网络的同学都懂,那些协议名字看起来就脑袋瓜疼

除此之外,我们在组织数据,处理任务的时候,从来都是将大问题化成小问题,解决了小问题再将各个模块拼起来,就成了如今庞大的知识体系

如果有过项目开发经验,会更有切身的体会

计算机网络也是如此,OSI标准将从下向上设计了七层网络模型,他设计的非常非常好,但是在实践中四层模型就能很好的解决问题,也称之为TCP/IP四层模型,在我们学习的过程中将物理层和数据链路层分开,变成五层模型

TCP和UDP是传输层协议,IP是网络层协议,TCP和IP都单独拿出来命名整个计算机网络协议,可想而知这两个协议簇对于计算机网络的重要性

我们这里简单介绍一下五层协议,并且说明一下这五层协议是如何解决那些个问题的

  • 物理层:规定了广电信号的传递方式,用什么线,以前用电缆,现在用双绞线,远距离会用光纤什么的,wifi的电磁波频率也算,主要是规定了传输距离、传输速率等等,集线器工作在物理层,稍后我们会讲这些网络设备有什么用
  • 数据链路层:这一层规定了设备之间数据的传送和识别,主要是让计算机分得清楚,什么样的01信号算这个数据包(数据帧)的开始,什么样的01信号算这个数据帧的结束,冲突检测(又冲突就自动重发),数据纠错,还有以太网、令牌环网、无线LAN的标准,交换机工作在数据链路层
  • 网络层:网络层主要负责地址管理和路由选择,数据走在大街上,他需要一个可以问路的人(路由器),才能知道自己下一步是直走还是左转,为了描述目的地,就需要一个地址,也就是ip地址,路由器工作在网络层
  • 传输层:主要负责主机之间的数据传输,如果传输出错了怎么办,是重传(TCP),还是放弃(UDP)
  • 应用层:负责应用程序之间的沟通,电子邮件传输协议SMTP,文件传输协议FTP,网络远程访问协议Telnet,还有耳熟能详的HTTP协议

下面是网络设备的介绍

  • 集线器:其实就是延长版的网线,解决了网线不够长的问题,三台计算机如何连接的问题,总不能用剥线钳吧
  • 交换机:交换机就稍微带点脑子了,他可以解决计算机互联时数据冲突的问题,一条线不能既往左发数据又往右发数据,就像一条路不能既有向左开的车又有向右开的车一样,数据也会发生碰撞,而交换机就能屏蔽两个接口的碰撞,把他们分为两个碰撞域,而上面的集线器就没有这个功能了,因为他的本质就是网线
  • 路由器:路由器就像是热心大叔一样,你想去哪里他都知道,你只管问,他不仅能让你不撞车,还能告诉你怎么走,让你不绕弯子,也就是路由器可以划分广播域,让你知道往这条路走一定是对的,而上面的交换机和集线器就没有这个功能,因为他们也不认识路

网络与计算机系统

除了上面说的搭积木原理,其实这些层次也对应着操作系统的层次

因为是计算机先生出来的,才有的计算机网络

如果计算机网络违背了计算机系统的设计原则,那还有什么用

仔细看其实就可以发现,网络和计算机的对应关系

物理层对应着计算机的硬件,各种接口、设备

数据链路层对应着驱动,网卡驱动、显卡驱动

传输层和网络层对应着操作系统,他们处理了来自各个设备的信息,让上层用户看起来并没有什么区别

应用层对应着各种库,shell,应用软件

计算机网络的传输流程

在这里插入图片描述

网络的每一层都有着自己的协议方案,因此也有着自己专门的标识(报头)

当应用层的两个进程想要通信时,实际上的数据是自己的电脑从应用层到传输层到网络层到链路层,层层套上自己的包头,让别人认识自己,让对方认识自己

通过以太网或者无线网传输

当对方收到之后,从下到上一层一层剥开,才能拿到最终的想要的报文数据

但是如果每一层对应着看,他们似乎都是和对面的同一层进行交流

在数据传输的过程中,可能经历了数个路由器,这是一个艰难的旅程

在这里插入图片描述

IP地址与MAC地址

IP地址有两个版本,IPv4和IPv6,是网络层协议的内容

6是4的升级版,但是还是以4为基础的,毕竟现在6还是推广阶段,4仍然在使用

一般我们常用的还是4,使用点分十进制来表示,例如,192.168.0.1、127.0.0.1等等,每一个数字是32位,取值从0到255

MAC地址也算物理地址

用来标识数据链路层的地址,一般来说,一个设备就有一个甚至多个MAC,长度是48位一共6字节,一般来说MAC地址是全球唯一的

从下一篇开始我们就着手实践,将从前学习的内容全部串联起来,C++、Linux系统编程、进程间通信

标签:协议,计算机,网络层,网络,计算机网络,Linux,数据,链路层
From: https://blog.csdn.net/ye_yumo/article/details/142110250

相关文章

  • 【Linux进程详解】进程地址空间
    目录1.直接写代码看现象2.引入最基本的理解3.细节问题-理解它1.直接写代码看现象#include<stdio.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<unistd.h>intg_val=100;intmain(){printf("fatherisrunning,pid:%d,......
  • Chapter 14 计算机网络基本概述
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1.边缘部分2.核心部分六、网络协议前言计算机网络是现代信息社会的基础,本章详细......
  • Linux命令实践
    Linux命令实践学习Linux核心命令1.ls列出当前目录中的文件和目录djy666@ubuntu:~$ls20221307公共的模板视频图片文档下载音乐桌面Desktopdjyhellohello.chello.osnapls-l列出详细信息使用长格式列出目录内容,包括文件权限、所有者、文件......
  • 卷积神经网络多输入和多输出的通道数(李沐老师课程)
    多通道卷积计算特殊的卷积层1*1卷积核代码:"""​多输入多输出的互相关运算"""importtorchfromtorchimportnnfromd2limporttorchasd2l​"""实现多输入通道互相关运算"""​​defcorr2d_multi_in(x,k): returnsum(d2l.corr......
  • linux中vim常用命令大全
    前言Linux有大量的配置文件,所以Linux的文本处理工具也是比较多的,其中编辑一些配置文件时,常用的工具就是vim。在Linux中,Vim编辑器是一个非常强大的文本编辑工具,它提供了多种模式和命令来满足不同的编辑需求。以下是Vim的一些常用命令和操作:一、启动与退出Vim‌直接启动Vim......
  • Baichuan-13B 大模型的网络带货博客​
    Baichuan-13B是由百川智能继Baichuan-7B之后开发的包含130亿参数的开源可商用的大规模语言模型,在权威的中文和英文benchmark上均取得同尺寸最好的效果。本次发布包含有预训练(Baichuan-13B-Base)和对齐(Baichuan-13B-Chat)两个版本。Baichuan-13B有如下几个特点:更大尺寸......
  • 从学习到的因果网络中估计因果效应
    本文介绍了一种新的因果效应推断方法,它不同于传统的先构建概率表达式再用观测数据评估的方法。该研究提出了一种替代方案,即直接从观测数据中学习因果贝叶斯网络(CBN)及其潜在变量,然后利用学习到的模型来回答因果效应查询。这种方法特别适用于离散的可观测变量。通过实验评估表明,这种......
  • 【Linux】命令行参数和环境变量
         ......
  • 计算机网络:概述 - 计算机网络概述
    目录一.  互联网概述1.1  网络1.2  互联网1.3  因特网 二.  互联网发展的三个阶段三.  互联网的标准化工作四.  互联网的组成五.  计算机网络的类别5.1  计算机网络的定义5.2  计算机网络的不同类别一.  互联网概述起源于美国......
  • Day5网络编程:epoll+服务器模型+ftp
    1.io多路复用:epollepoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;eg:1GB机器上,这个上限10万个左右。每个fd上面有callback(回调函数)函数,只有产生事件的fd才有主动调用callback,不需要轮询。注意:Epoll处理高并发,百万级1.红黑树:是特殊的二叉......