【网络编程】网络基础

这篇具有很好参考价值的文章主要介绍了【网络编程】网络基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【网络编程】网络基础


需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。


 目录

一、协议分层

1、为什么要分层

2、OSI七层模型

3、TCP/IP四层协议(五层协议)

二、网络传输流程

1、同一个网段内的两台主机进行文件传输

2、跨网段的主机的文件传输

三、IP地址和MAC地址

1、IP地址

2、MAC地址


网络通信的本质就是跨主机的进程间通信,用于通信的共享资源是网络。

一、协议分层

1、为什么要分层

网络相关的模块很多,分层是借鉴了软件设计的优势,降低模块间的耦合性。分层的依据是将耦合度较高的模块放在同一层,实现高内聚,每一层都将解决不同的问题。

2、OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;

它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

层数

分层名称

功能

每层功能

7

应用层

针对特定应用的协议。

【网络编程】网络基础

6

表示层

设备固有数据格式和网络标准数据格式的转换。

【网络编程】网络基础

5

会话层

通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。

【网络编程】网络基础

4

传输层

管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。

【网络编程】网络基础

3

网络层

地址管理与路由选择。

【网络编程】网络基础

2

数据链路层

互连设备之间传送和识别数据帧。

【网络编程】网络基础

1

物理层

以“0”“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格.

【网络编程】网络基础

传输层请求和响应叫数据段,网络层叫数据包,数据链路层叫数据帧。

3、TCP/IP四层协议(五层协议)

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(本质上TCP/IP协议也是OSI七层模型,只不过它把会话层、表示层、应用层合为应用层罢了)

物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. (硬件层搞软件的不关注哦,仅讨论TCP/IP上四层)

数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.

网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.

传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.

应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 我们的网络编程主要就是针对应用层:

【网络编程】网络基础

二、网络传输流程

封装:有效载荷+各层报头

解包:将报头和有效载荷分离的过程

分用:将有效载荷交给指定协议解包的过程

1、同一个网段内的两台主机进行文件传输

【网络编程】网络基础

每一层的协议有很多种,右侧的那台计算机是如何将报文交给指定协议进行解包分用的呢?1、将报头和有效载荷分离2、将有效载荷正确的交给上层协议进行处理。

【网络编程】网络基础

2、跨网段的主机的文件传输

【网络编程】网络基础

数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

如果两边数据链路层协议不一样怎么办?如图,左侧计算机将报文封装好后交给路由器,路由器将该报文先进行解包,这将去除以太网协议的报头,路由器再将该报文添加令牌环报头,这样就解决了底层协议的差异性,实现了不同数据链路层协议的数据传输。

当然,这可能经过多个路由器,通过MAC地址实现指定路由器的跳转。

三、IP地址和MAC地址

【网络编程】网络基础

1、IP地址

IP地址通常在广域网使用,图上的是内网IP的地址,IPV4一共4个字节,每个字节范围0-255;IPV6是16个字节。

IP地址可以理解为起点到终点。

2、MAC地址

MAC地址通常在局域网使用,占6个字节。

MAC地址可以理解为起点到终点的一个个站点。文章来源地址https://www.toymoban.com/news/detail-431028.html

到了这里,关于【网络编程】网络基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络编程】Linux网络编程基础与实战第三弹——网络名词术语

    数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。 某个路由节点为数据包选择投递方向的选路过程。 路由器工作原理 路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。

    2024年02月08日
    浏览(44)
  • linux【网络编程】之网络基础

    “协议” 是一种约定 软件设计方面的优势—低耦合 分层依据:功能比较集中,耦合度较高的模块—高内聚 每一层都要解决特定的问题 每一层都有自己匹配的协议,每一层协议都解决自己的问题 OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参

    2024年02月04日
    浏览(53)
  • 【Linux网络编程】网络基础一

    从今天开始我们将要从系统横跨到网络的学习了,因此有些书我们就可以读起来了。 操作系统 原理: 《操作系统精髓与设计原理》、《现代操作系统》 Linux原理方面的书 : 《Linux内核设计与实现》–陈莉君、《深入理解Linux内核》(选读–不作为重点) Linux编程方面的书: 《

    2024年04月15日
    浏览(58)
  • 【Linux网络编程一】网络基础1(网络框架)

    本篇开始总结网络知识,系统部分到此结束。 网络的本质就是在获取和生产数据,而系统的本质就是在处理数据。从网络中获取到数据利用系统调用来处理数据。而网络的本质也就是文件,我往文件里写,就是往网卡里写,往网卡里写,就是往网络里写。 我们在生活中都是

    2024年02月19日
    浏览(38)
  • 「网络编程」第一讲:初识网络_网络基础1

    「前言」文章是关于网络编程方面的,今天内容大致是网络基础,讲解下面开始! 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、计算机网络背景 1.1 网络发展 1.2 认识 \\\"协议\\\" 二、网络协议初识 2.1 协议分层 2.2 OSI七层模型 2.3 TCP/IP五层(或四层

    2024年02月08日
    浏览(55)
  • Linux网络编程 网络基础知识

    目录 1.网络的历史和协议的分成 2.网络互联促成了TCP/IP协议的产生 3.网络的体系结构 4.TCP/IP协议族体系 5.网络各层的协议解释 6.网络的封包和拆包 7.网络预备知识      Internet-\\\"冷战\\\"的产物 1957年十月和十一月,前苏联先后欧两颗”Spuinik”卫星上天 1958年美国总统艾森豪威尔向

    2024年02月10日
    浏览(44)
  • 网络编程 tcp udp http编程流程 网络基础知识

    OSI分层:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip: 应用层 传输层 网络层 数据链路 ip地址:唯一标识一台主机 ipv4 32位 ipv6 128位 寻址 可以反映物理上的一个变化 MAC地址:48 固化在计算机中 ip地址又两部分构成:网络号+主机号 端口号:标识一个应用程序

    2024年02月13日
    浏览(71)
  • 《3.linux应用编程和网络编程-第8部分-3.8.网络基础》 3.8.1.网络通信概述 3.8.3.网络通信基础知识2

        进程间通信: 管道 、 信号量、 共享内存, 技术多,操作麻烦     线程就是解决 进程间 通信 麻烦的事情,这是线程的 优势 3.8.1.网络通信概述 3.8.1.1、从进程间通信说起: 网络域套接字socket , 网络通信其实就是位于网络中不同主机上面                   的 

    2024年02月15日
    浏览(53)
  • 学习网络编程No.1【网络基础知识】

    北京时间:2023/8/4/22:40,天苍苍野茫茫,风吹造地见牛羊,此时心潮澎湃,非常开心,啊哈哈哈!因为就在刚刚我们终于把系统编程方面的知识给学完了,啊哈哈哈!真是功夫不负有心人呀!呜呜呜,仰天而泣,算了,不能发神经,哈哈!今天把最后一节有关多线程知识的课

    2024年02月14日
    浏览(54)
  • NIO基础 - 网络编程

    non-blocking io 非阻塞 IO 1.1 Channel Buffer channel 有一点类似于 stream,它就是读写数据的 双向通道 ,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层 常见的 Channel 有 FileChannel DatagramChannel SocketCh

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包