IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> OSI模型和TCP三次握手四次挥手 -> 正文阅读

[网络协议]OSI模型和TCP三次握手四次挥手

我们通过电脑进行上网,需要借助网线、光纤、路由器等设备,我们先来简单了解下这几种设备是怎么传送网络信号的,在计算机系统中,只能够识别0或1的二进制数据。

  • 网线

    普通的网线由四组铜导线组成,一共8根。通过在网线的两端加上电压,然后改变电压的值,这样就可以使用低压表示0,高压来表示1,以此来传递0、1电信号。

    111s

  • 光纤

    光纤中含有玻璃纤维,可以对光进行折射,从而可以将光从一端传送到另一端。通过控制光的打开和关闭来表示0或1,以此来传递光信号。

    img

  • 无线设备

    我们常见的无线路由器,通过改变电压从而产生变化的电场,变化的电场会产生变化的磁产,根据磁产的波动来表示0或1。

    222

上面这些物理设备,就是作用在OSI中的物理层,通过物理层传输0、1的电信号,同时可以确保这是一段0、1的电信号,而不是其它的一些噪音。

链路层

在传送0、1电信号的时候,为了识别信号的开始和结束,将这些0、1信息封装成帧,8位为一组,也就是一个字节。简单的说就是在一段0、1信号的前面和后面分别加上一段特殊的标记,使用该标记就可以来识别帧的开始和结束。

但是这些信息还不知道要发送给谁,所以在信息中增加了MAC地址,MAC地址是一台计算机设备的唯一地址,计算机通过MAC地址进行通信。信息中有了MAC地址,我们就知道要与谁进行通信了。

网络层

虽然计算机的通信使用MAC地址,但是MAC地址太长且不便于记忆。在互联网中又使用了一个叫IP的东西,通过IP能很方便的区分互联网中的网络段,其中还有ARP,通过ARP我们可以找到IP对应的MAC地址。

传输层

互联网是一个网状结构,对于信息的传输可以存在多条不同的路径,这样信息在分段传输的时候,传输的速度可能会不一样,这样导致信号到达目的时的顺序发生了变化,或者由于网络原因导致信息丢失,为了解决这些问题,于是有了传输层,例如TCP协议就可以用来保证信息的完整。

应用层

经过前面四层的传输,信息都是以字节流的形式进行传输,但是字节流对于应用的处理不太方便,于是便加入了应用层,使用应用层后,我们可以不直接去处理字节流,例如HTTP协议,将字节流进行了包装,能够更方便的处理传输的信息。

网络传输过程

未命名文件 (9)

如上图,例如电脑A要给电脑B发送信息,网络是一个网状结构,有多条路径可以到达电脑B。

  1. 电脑A的IP为192.168.31.13,发现目标的IP为192.168.1.109,也就是不在同一局域网内,于是就会使用ARP广播询问:谁是默认网关,这里默认网关的地址为192.168.31.1,其实就是询问谁的IP是192.168.31.1。

    image-20210815232341589

  2. 当局域网中其它机器收到询问消息,发现自己不是网关就会直接忽略掉询问消息。网关收到询问消息后就会把自己的MAC地址加入到回复消息中。

  3. 电脑A经过ARP询问后就得到了网关的MAC地址,于是给电脑B发送信息,虽然IP指定的是B的IP,但是MAC地址目前是网关的,也就是信息会先通过MAC地址发送给网关。

  4. 网关收到信息后,发现不是发给自己的消息,于是查找自己的路由表,是否有目标IP的路由配置,如果没有则也会进行ARP询问,路由器中也有默认网关,过程和前面的ARP广播一样,这样一步步转发最终就可以到达电脑B。

    image-20210816103312182

总结

未命名文件 (11)

TCP三次握手

未命名文件 (12)

在三次握手和四次挥手的过程中,我们需要掌握下面几个概念:

  • 源端口

  • 目标端口

  • 序号和确认号

    是TCP可靠传输的关键部分,在TCP传送的流中,每一个字节一个序号,序号确保了TCP传输的有序性。确认号即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。

  • 标志位

    • URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
    • ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
    • PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
    • RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求
    • SYN:同步序号,用于建立连接过程。
    • FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

未命名文件 (13)

TCP四次挥手

未命名文件 (14)

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:45:03  更:2021-08-17 15:45:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:15:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码