©作者:凡人编程传
©系列:计算机网络基础
©说明:以凡人之笔墨,书写未来之大梦

文章目录

  • ₪前言
  • ₪网络基础TCP/IP
  • ₪应用层
  • ₪传输层
  • ₪网络层
  • ₪网络接口层
  • ₪结言

₪前言

这是这个科目的开篇章,由于博主本人对计算机网络这个科目也是仅仅入门学习中而且也感到这个科目的难学。可能有些讲的不恰当的地方还请大佬们指教,我会尽力把做到没有错误。好了,这一节我们主要介绍计算机网络现在的主要使用模型TCP/IP模型,废话不多说,咱们直接进入正题。

₪网络基础TCP/IP

计算机网络中的设备要进行通信,双方就要基于相同的方法,如:如何发起通信,如何建立通信,通信的时候用什么语言,如何结束通信。而这一系列操作就需要一个规则约定。而我们就把这个规则统称为协议(protocol)。而TCP/IP协议族最重要的一点就是分层。TCP/IP按层次分别把层次分为四层:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 网络接口层

TCP/IP层次化是有好处的。如果互联网由一个协议统筹的话,那么当某个设计需要改变的时候,那么就需要连着把不需要改动的地方都一起改了。而层次化后就只需要改动那单独一层的设计而不影响其他层次的部分。

₪应用层

最上层的,也就是离我们用户最近的层次就是应用层了。我们用的手机和电脑中的应用软件就是在应用层中实现。当两个不同设备之间要进行通信的时候,应用层就需要把数据传给下一层——传输层。所以应用层只需要专心给用户提供一系列网络服务,如SMTP、HTTP、DNS、Telent等。而不需要关注传给传输层的数据如何。

举个例子:也就是相当于我们生活中寄快递,我们只需要把快递交给快递员即可,不需要关注快递员是如何送达目的地的。

₪传输层

应用层会把数据交给传输层(Transport Layer)

如图:

传输层有两个主要的协议:

  1. TCP协议:中文名是传输控制协议(Transmission Control Protocol),大部分应用都是用的这个协议,因为他具有流量控制,超时重传,拥塞控制等特性。具有可靠性。
  2. UDP协议:中文名是用户数据报协议(User Datagram Protocol),相比TCP协议他没有TCP那些可靠的特性,他只发送数据包,不保证数据包是否达到对方。但是他就是因为这种简单粗暴的传输方式提高了传输效率,所以他经常应用于网络视频聊天,音箱广播这些实时性的应用中。

注意:

当应用层传给传输层的数据很大时,传输层的数据包超过了最大长度MSS(TCP最大报文段长度),就会把数据包分块,这样即便一个数据块丢失或损坏了也不影响整个传输,只需要丢失和损坏的数据块重传即可,这样就避免了重新传输整个数据包。在TCP协议中,我们把每一个分块称为一个TCP段(TCP Segment)

如图:

当设备作为接受方的时候,传输层则会把数据传给应用。但是在一台设备上可能有很多应用在发送和接收数据。所以这时候就需要一个叫端口号的东西来区分要送达的应用。如web服务器的端口号是80,telent的端口号是23…

₪网络层

实际环境中的网络是线路复杂,交错的。如果一个设备上读数据要传输到另一个设备,那么就要在这些各种各样的线路中做出选择。但是我们传输层的设计目的就是让他高效、专注为应用层提供应用之间的传输服务,让其作为应用间数据传输的媒介。而实际应用数据之间的传输就交给网络层(Internet Layer)

网络层中最常用的协议是IP协议,IP协议会把传输层的报文转换成数据部分,然后再加上IP报头组成IP报文,此外,如果IP报文超过MTU最大长度(以太网中一般是1500个字节)。就会再次进行分片。

那么既然要网络层实现应用数据之间的传递,这么多个这么多应用在不同的设备中,世界上又有这么多的设备难道要一个一个去找吗?这时候就需要一个编号来标着要找的那个设备——IP地址。

我们用IP地址来区分设备,对于IPv4协议,IP地址共32位,分成了四段,每段8位。虽然用一个简单的IP地址做到了区分设备,但是世界上怎么多设备还要一个一个去匹配?未免效率太低了。

因此需要把IP地址分成两部分:

  1. 网络号:负责标识此IP地址是属于哪个子网的。
  2. 主机号:负责标识同一子网下改IP地址所标识的主机。

那么知道了IP地址,怎么知道网络地址和主机地址呢?如分的呢?这时候继需用IP地址和子网掩码配合才能算出主机号和网络号。

举个例子:IP地址位10.60.100.0/24,后面的24就是子网掩码255.255.255.0(二进制也就是:11111111 11111111 11111111 00000000)其中有24个1,24正是代表子网掩码中1的数。

只需要把IP地址和子网掩码进行按位与运算即可得到网络号:

而主机号就是子网掩码取反后和IP地址按位与即可

除了寻址,IP协议的另一个重要个功能就是路由,实际场景中两套设备之间不是有一根网线连接起来的,而是由多个交换机,路由器等数据交换设备连接起来的,最么最后就会形成很多的网络路径,因此当数据包走到每一个节点(设备)都会由路由算法下一条路径怎么走。

综上IP协议的作用是寻址,路由器是根据路由算法来决定下一个目的地。

₪网络接口层

生成了IP报头后,接下来交给网络接口层(Link Layer)在IP头部前面添加MAC头部并封装成数据帧(Data frame)发送到网络上。


IP头部中包含着接收方IP地址,表示网络包的目的地,通过这个我们可以判断这个网络包将要发向哪里,但是这个是在以太网中不行的。那么啥又是以太网呢?电脑的网线接口,以太网接口等等他们都是以太网的组成部分,以太网就是一种把局域网中的设备连接起来,使他们能通信的技术。

以太网判断网络包的方式与IP不同,所以要换成一个能与他方式相匹配的报头,这就是MAC报头。

所以最后的传输过程是这样:

₪结言

好了,关于计算机网络的TCP/IP四层模型我们就初步了解到这里,以后网络基础扎实了再做深入了解,希望你有收获,下节见!

【计算机网络】初步了解TCP/IP四层模型相关推荐

  1. 计算机网络:浅谈HTTP与TCP/IP四层模型

    计算机网络:浅谈HTTP与TCP/IP四层模型 其实对于我这样的非科班出身来说,理解算法不是最难的.最难的就是计算机网络这种无法一口吃完的内容.因此专门抽空写点这方面的内容.其实本来只是想写一篇HTT ...

  2. java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之计网_Part_1-1(计算机网络体系_七层模型五层模型TCP/IP四层模型、TCPUDPIP的故事【TCP三握四挥】)整起

    PART1:计算机网络体系可以大致分为一下三种, 每一层有自己对应的协议,每一层都是向上一层提供服务,每个分层中所有的协议都称为协议栈 协议:网络中传输信息时的规范和规则 各层一些重要的协议 网络:通 ...

  3. 【重难点】【计算机网络 01】OSI 七层模型和 TCP/IP 四层模型、IP 地址分为哪几类、ping 的原理、从浏览器地址栏输入 URL 到显示网页的过程、什么是 socket

    [重难点][计算机网络 01]OSI 七层模型和 TCP/IP 四层模型.IP 地址分为哪几类.ping 的原理.从浏览器地址栏输入 URL 到显示网页的过程.什么是 socket 文章目录 [重难点 ...

  4. 计算机网络--TCP/IP四层模型

    TCP/IP四层模型 在了解TCP/IP四层模型前,我们先来了解一下OSI七层结构. OSI七层模型 虽然OSI七层模型划分的很完美,但是在实际应用当中有一些层的工作是重复的,所以出现了更贴近实际的T ...

  5. TCP/IP四层模型与OSI七层模型

    0. 前言 TCP/IP协议族(TCP/IP Protocol Suite),简称TCP/IP. 该协议族的两个核心协议为:TCP(传输控制协议,Transmission Control Protoc ...

  6. OSI七层模型、TCP/IP四层模型

    1.OSI的基本概念及原则 OSI是Open System Interconnect的缩写,意为开放式系统互联.其各个层次的划分遵循下列原则: (1)同一层中的各网络节点都有相同的层次结构,具有同样的 ...

  7. OSI七层模型及TCP/IP四层模型详细分析

    在计算机网络中有OSI七层模型及TCP/IP四层模型的说法,而且也是计算机很重要的知识.下面我们就来分析一下它们: OSI七层模型及TCP/IP四层模型的对比: 从上面两张图我们知道,每层之间是相互独 ...

  8. TCP/IP(八)之总结TCP/IP四层模型

    在这里有一个问题,有的书上说TCP/IP是四层有的却说是五层.其实这个问题我也上网查了一下资料. tcp/ip是事实标准,分4层.osi模型是国际标准,分7层.讲课的时候,一般把他们综合起来讲,就说是 ...

  9. 网络协议 (一) TCP/IP 四层模型

    TCP/IP 四层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 4 层组成: 应用层 传输层 网络层 网络接口层 需要注意的是,我们并 ...

最新文章

  1. 两小时入门 Docker
  2. 计算机在线作业题,中医大计算机在线作业及答案-20210412090026.docx-原创力文档
  3. NSMutableArray 记住取不到时要进行强转
  4. 全球及中国铝拉丝润滑剂行业竞争格局及运营前景研究报告2021-2027年
  5. jQuery插件推荐(一) ——图像切换展示
  6. python采用强制缩进if_Python缩进和选择解析
  7. c++读取utf8文件_Node.js 进阶之 fs 文件模块学习
  8. Python学习-4天--字典的操作
  9. Android手机健康类APP市场分析
  10. 有线数字电视机顶盒的基本原理
  11. java开发正则表达式
  12. Linux操作系统中常见的英文报错
  13. 玩吧!北京!招人!Java!
  14. redis的高级教程
  15. java word设置纸张a3,Word中进行设置A3文档纸张大小的操作技巧
  16. Node.js的线程和进程*2014年4月的文章
  17. 时序逻辑电路设计方法和步骤
  18. BYTE,WORD,DWORD
  19. 在Windows程序中打开控制台的程序
  20. python 英语翻译_python中英文翻译模块

热门文章

  1. 关于:在 Windows Server 中的 Printer Server
  2. 使用 Fiddler 进行小程序抓包
  3. 一口气笑穿极简印度史,简到崩溃,笑到流泪(二)
  4. 拥有一颗仁慈的心,才会吸引更多人善待你
  5. 【初入前端】第一课 课前预习
  6. 我也来说说“自学IT能走多远” 肖舸
  7. 非科班出身的人学习编程不负责任指南
  8. 【限时干货】数据圈火爆的数据产品文章全集
  9. error C3867:非标准语法;请使用“”来创建指向成员的指针
  10. 调制 Modulation