注意:

文章如有抄袭部分,请私信我。

未经允许,不得转载,如需转载,可以私信我。


前言

在很久之前,计算机刚刚被研究出来,当时的计算机还不能上网,玩游戏等,它只用于科学家,并没有给普通人使用。

后来,科学家们想要让两台计算机之间互相通讯,但是如果想要两台计算机互相通讯,则需要满足一样的协议,只有计算机遵守了这种协议,才能够实现通讯。

然而,让计算机通讯可不是一件简单的事,需要很多的协议,才能实现通讯,例如:

  • 一台计算机发出的消息如何才能发到指定的计算机,目标计算机怎么才能知道这个消息是发送给自己的?如果不解决这个问题,那么可能你想发给朋友的消息发到了公司的计算机里面。

  • 计算机如何识别这个信息是发送给电脑上的那个软件的?如果不解决这个问题,那么可能你微信发出去的消息发到了对方的QQ里面,这显然不是人们想要的结果。

  • 发送的信息如果在传输过程中丢失了怎么办?发送的信息有没有办法重新发送?

    …………

    科学家们为了解决这些问题,开始了他们的努力。

基本知识:局域网的组成和IP地址

(本人画画不太美观,凑合着看吧)

以上就是局域网的基本组成,圈圈代表计算机,两台计算机,用网线连接到了交换机。

科学家为了让计算机可以通讯,于是发明了IP地址。

IP地址

什么是IP地址呢?你可以理解为他是每台计算机在局域网内的住址。每台计算机在局域网内都有一个独一无二的IP地址,目前最新一代的IP地址是ipv6,也就是第六代IP地址,据说他的数量非常多,可以给地球每一粒沙子分配一个IP地址。但是目前我们仍然在使用ipv4网络。

现在我们给计算机分配一个IP地址:

OK,现在我们的计算机有了一个IP地址,IP地址的组成是:X.X.X.X,X的取值范围是0-254.

这里还要和大家讲一下子网掩码和网段。子网掩码决定了网段。子网掩码有这么几个格式:

  • 255.0.0.0
  • 255.255.0.0
  • 255.255.255.0

例如255.255.255.0,那么该局域网内的所有IP地址都必须是10.1.1.X,当然,前三位是可以任意改变的。但是一旦确认了,就不会变了。例如确定为10.2.2.X,就不能改变了。

网关的IP地址一般是10.1.1.1或10.1.1.254。

此外还需注意,还有一类IP地址叫做公网IP地址,通过这个IP地址,我们可以获取你的地理位置,一般性误差在5公里左右。

MAC地址

MAC地址指的是每一台计算机的唯一地址,可以用来分辨发给那一台计算机,一般性交换机都会有一个MAC地址缓存表,可以绑定MAC地址和IP地址,当交换机接收到消息之后,就可以根据MAC地址给到IP地址,从而发送到计算机上。他也有一种格式,是XX-XX-XX-XX-XX-XX。例如:0E-4R-8F-ER-3C-4F.

这些都属于局域网的基本学习要点,本章主要不是讲解局域网,而是讲解TCP/IP协议簇,所以对这些知识只是基本讲解,如果大家想要继续学习的话,可以在网上找寻一些资料来看看,都不错。

补充:运行一个软件后,他会做什么?

这里是为后文做一些基本的讲解,所以建议大家读一下,如果你会了,你可以直接跳过。

当你在计算机上运行了一个软件之后,例如聊天软件,他会在你的电脑上运行一个进程,例如Edge浏览器,他会在你的电脑上运行msedge.exe的进程。当一个聊天软件开启之后,他还会在你的电脑上开启一个端口,用来接收数据。这个端口是由软件开发者决定的。而且软件开发者可以选择TCP和UDP两种协议,这两种协议在之后也会和大家讲。

OSI七层模型

1974年,ISO国际标准化组织发布了OSI参考模型:

OSI(开放式系统互联,Open System Interconnection)模型分为应用层,表示层,会话层,传输层,网络层,数据链路层和物理层。其中每一层都有非常重要的作用。

网络通讯极其复杂,设计到的协议也很多,所以科学家在发明网络通讯协议时,使用了分层的思想,将复杂问题简单化,提高效率。

可惜的是,OSI模型并没有被人们使用,因为后来有科学家又提出想法,把表示层和会话层的功能合并到应用层里面。其中有两个协议非常重要,一个叫IP协议,一个叫TCP协议,于是取名叫TCP/IP五层协议。

TCP/IP五层模型

TCP/IP五层协议,包括了应用层,传输层,网络层,数据链路层和物理层。

请记住以下的重要知识点,我会和大家解释一下:

  • 设备完成那一层的工作,他就工作在那一层。
  • 设备的功能向下兼容,例如引用层的设备,他也会懂得下面四层的知识。
  • 两台计算机的相同层之间的协议都是相同的。

电脑是工作在引用层的,也就是说电脑自己就明白了传输层,网络层,数据链路层和物理层的知识。

什么叫“两台计算机的相同层之间的协议都是相同的”呢?也就是说两台电脑的相同层使用一样的协议。例如TCP协议,他就是在传输层,那么所有使用TCP/IP五层协议模型的计算机,他们的传输层都知道TCP协议。

一些科学家又说,要把数据链路层和物理层归并为网络接口层,但是现在全世界仍然在使用TCP/IP五层架构。

数据的封装和解封装的大致流程

那么,现在问题来了,他们每一层的功能是什么呢?当你在QQ软件里面写好内容一回车,你的电脑做了什么呢?当对方QQ回你消息之后,你的电脑又做了什么呢?

注意,这里是数据封装和解封装的基本流程,事实上复杂得多,这里知识写一个大致流程。

应用层

首先,假设现在我们开发了一款聊天软件TT聊天,他的开放端口号是TCP/1888(TCP协议会讲),然后,我的电脑使用TT软件给小爱发了一条Hello。首先,TT软件他又一个进程名,例如tt.exe,那么,Hello的信息就会给到传输层。

传输层

这里要给大家讲一下TCP协议和UDP协议,以便大家更好的理解。

UDP协议

UDP协议(User Datagram Protocal),是传输层的一个重要协议,该协议的特点是快速,高效,使用UDP的服务有:DNS,TFTP,SMB等。该协议定义了端口,并要求数据帧在传输过程中必须加上端口号,在到达对方计算机之后,就可以根据端口号找到进程。因为其简单,容易实现的特点,所以在互联网初期,数据在传输层的封装都是用UDP协议。但是UDP协议没有确认机制,也就是说如果数据包发出之后,无法知道对方计算机有没有接收到,所以可靠性较差。因此,人们又开发出了TCP协议。

TCP协议

TCP协议(Transmission Control Protocol),是目前主流的数据段封装协议。TCP在UDP的基础上,增加了重发机制和三次对话机制,一旦对方计算机没有接收到数据,就会重新发送,这样提高了数据传输的可靠性。但是与其同时,这样会加满数据的传输速度,影响性能。目前很多服务都在使用TCP作为他们的数据段封装协议。例如HTTP,HTTPS,FTP.POP3等。TCP协议是目前主流的传输层封装协议。

理解完了UDP和TCP协议之后,我们再来看,由于我们的TT软件是TCP/1888,所以我们在这一层会被加上一段东西。这段东西里面包括:我们使用的协议(TCP),我们使用的端口(1888)。只有这样,当数据发送到对方计算机后,对方计算机的传输层才能把数据发到对方计算机的TT软件里面。这段包含端口和协议的数据叫做TCP/UDP头,由数据和TCP/UDP头组成的数据叫数据段。

这样,数据段被传输层扔到了下一层:网络层。

网络层

在传输层,数据已经有了目标:就是对方计算机的TT软件,可是,他还不知道对方计算机是哪台计算机。于是,我们必须告诉这个数据对方计算机的IP地址。这个重大的任务就交给了网络层,网络层要给数据段加上一段东西,让他明白他要前往哪一台计算机。

在这一层里面,有一个非常重要的协议叫做IP协议,当传输层知道了IP相关内容后,才能够有能力告诉数据段他的目标IP。加上去的这段IP,叫做IP包头。IP包头里面含有自己的IP地址和对方的IP地址,这样,数据段就知道了目标IP是什么。加上了IP包头的数据段,叫做IP包,也叫做报文。

就这样,数据完成了网络层的游行,网络层会把他扔给数据链路层,当然,在这里,我要再给大家讲一下网络层的另外几个重要协议:ICMP和ARP协议,这里暂时不讲解,之后我会出一篇计算机网络协议的内容,把ICMP,ARP,IP等重要协议以及TCP/IP各层的详细内容讲解一下。

数据链路层

数据链路层的主要任务是将IP包里面添加目标MAC地址,让这个数据能够知道目标的MAC地址,在这一层中的主要协议就是MAC子层协议。当数据包有了目标MAC地址之后,其实就已经可以发送出去了。数据链路层加上的数据表MAC子层,其中包括自己的MAC地址和目标的MAC地址,这时候,这个包的名字叫做数据帧。与此同时,数据链路层还会加上一个叫做FCS的数据,一边核对前面数据的完整性。

物理层

物理层接收到数据帧之后,就会通过网线把这个数据帧发到对方计算机的物理层上,对方计算机接收到了这个数据帧之后,就会一步步解包。从而把Hello发送到tt.exe进程中,这样,小爱就能接收到我的数据了。

结束

本文讲解了OSI七层模型,TCP/IP五层模型和每一层的基本功能,之后还会出一篇计算机通讯协议的讲解,敬请期待。同时推荐大家阅读《计算机网络》补一点基础知识。

一文打败TCP/IP五层协议基础知识相关推荐

  1. 数据的封装与解封装:TCP/IP五层协议

    分层思想 随时时代的发展网络已经覆盖到了我们每个人的生活中,聊天.购物.直播.看剧,人们在享用网络带来的便利的同时却未必了解网络中数据传输的过程. 网络通信很复杂,为了降低复杂性,1974年国际标准组 ...

  2. 计算机网络—网络原理之<TCP/IP 五层协议 >图解+详述

    网络原理之 TCP/IP 五层协议 应用层 举个例子: 自定义应用层协议的两个步骤: 常见的应用层协议 传输层 UDP UDP 特点: TCP TCP协议的主要机制 1. 确认应答 2. 超时重传 T ...

  3. SOI七层模型和TCP/IP五层协议:

    SOI七层模型和TCP/IP五层协议: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 应用层:(数据) HTTP:80 HTTPS:443 SSH:22 DNS:53 Telnet:23 ...

  4. TCP IP 网络协议基础入门

    文章目录 1 TCP IP 简介 2 链路层介绍 3 IP网际协议 4 网络层其他协议 5 传输层:UDP协议 6 传输层:TCP协议 7 应用层协议 每层承担的任务不一样,各层的协议的工作方式也不一 ...

  5. 计算机网络学习之TCP/IP五层协议模型、TCP和UDP

    一.TCP/IP五层协议 TCP/IP 五层协议和 OSI 的七层协议对应关系如下: 应⽤层 (application layer):直接为应⽤进程提供服务.应⽤层协议定义的是应⽤进程间通讯和交互的规 ...

  6. TCP/IP五层协议及功能

    ** TCP/IP五层协议及功能 ** 第一层--物理层(Physical) 物理层:作为放置传输数据载体介质的一层,存在着大量数据传输通道的实物载体,类似架空明线.平衡电缆.光纤.无线信道等. 主要 ...

  7. TCP/IP 网络协议基础入门

    文章目录 1.TCP/IP简介 IP 地址 域名 MAC 地址 端口号 封装和分用 2.链路层介绍 控制帧的传输 差错控制 反馈重发 计时器 序号 流量控制 以太网 PPP(点对点协议) SLIP 与 ...

  8. OSI七层协议和Tcp/IP五层协议,路由器交换机和HUB的区别

    在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型.一台计算机操作系统中 的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ...

  9. TCP/IP五层协议

    目录 一.计算机网络OSI七层模型.TCP/IP四层.五层网络模型 二.TCP/IP协议族 1.数据链路层 2.网络层 3.传输层 4.应用层 三.各层的物理设备 一.计算机网络OSI七层模型.TCP ...

最新文章

  1. MIT用19个神经元实现自动驾驶控制,灵感来自秀丽隐杆线虫
  2. tomcat通过apr配置https
  3. Java面试题集(二)list与Map相关知识(1.2)
  4. java中的 31 和左移右移的关系简述
  5. ArrayList list = new ArrayList(20);中的list扩充几次
  6. [Pyramid 杂记]Static Routes,静态路由是用来干什么的?
  7. linux服务器健康检查,Linux 检查硬盘健康状态
  8. ConcurrentHashMap原理
  9. 常见SQL Server 2000漏洞及其相关利用2
  10. Java知识积累——参数个数可变的函数(Varargs)
  11. java与javaw运行jar程序
  12. 两个云服务器怎么互传文件,两个云服务器互传数据
  13. 保存Windows10随机聚焦锁屏壁纸
  14. OpenGL 阴影图之二
  15. 免费离线PDF工具箱,PDF工具大全,PDF合并PDF加密PDF解密PDF格式转换PDF分割PDF旋转以及从PDF中提取图片,满足对PDF操作的一切需求~完全免费无使用次数限制,文末附下载链接~
  16. FIR数字滤波器设计与软件实现
  17. c语言多进程之进程间通信IPC:信号操作函数之signal,kill
  18. 个人永久性免费-Excel催化剂功能第94波-地图数据挖宝之搜索地图上的各种兴趣点数据(商铺名、地名、公共设施等)...
  19. 校招失败后,在小公司熬了 2 年终于进了华为,竭尽全力....
  20. 普源示波器软件,Rigol示波器上位机软件NS-Scope介绍

热门文章

  1. 直流电机_脉宽调制调速(PWM)
  2. 机器学习LR模型,在面试中经常被问到的问题
  3. CLTWORKINGDIR”的指定目录The Specified Directory ‘D:\Program File
  4. java字符串转义反转义,把lt; gt;转换成大于小于字符
  5. 教你一招搞定 Homebrew 下载加速!
  6. 华为meta8电池-饿死-重生
  7. java 日文全角转半角_java中全角转换为半角的方法
  8. 小白初学AFL(American Fuzzy Lop)
  9. macOS Monterey:如何使用AirPlay将iPhone或iPad的屏幕共享到Mac
  10. 一个自动配置 opengrok 多项目的脚本