TCP/IP四层模型简述

2023-10-27

1、TCP/IP协议是由七层模型简化成四层而来。

七层有底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

简化后的四层分别是:主机到网络层(比特)、网络层(数据帧)、传输层(数据包)、应用层(数据段)。

每一层对于上一层来讲是透明的,上层只需要使用下层提供的接口,并不关心下层是如何实现的。

TCP/IP模型参考图如下(图为转载):

HAHA

TCP/IP层次模型参考如下图(图为转载):

HAHA

由图可见,TCP/IP协议实际上关心的是网络层和传输层之间得传输。

2、数据传输

传输数据时,传输端,将数据段分成数据包,然后在把每一个数据包分成数帧塞到网络互联层的数据帧中传输给对面。对面再将数据帧组合成数据包,最后解析成数据段供上层使用。

其中IP协议保证,数据帧可以从源主机传输到目标主机。在传输过程中采取某种策略以最优的方式达到目标主机。但并不保证到达的顺序,本身是不可靠的,不面向连接的。这里就需要上层的控制。

IP报文格式如下(图为转载):

HAHA

IP不提供发送、接收、出错等通知。
IP不提供“端口号”之类的标记来隔离发到目标IP地址的数据包。
IP不提供双向通讯。
IP不会用任何方式对多个包排序或分组。

上层(传输层)定义了两种不同的协议,即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。

TCP是一种面向连接(双向)的,安全的协议。连接时通过三次握手协议实现。TCP将源主机的数据有序无差错的发往目标主机,同时可以通过在协议中添加对方缓冲区的大小,来达到控制流量的目的。

UDP是一种不可靠的,无连接的协议,穿透性比TCP协议强。穿透性由TTL决定,每穿透一层TTL减1。

追求安全、稳定或想控制流量的的时候可以使用TCP协议,如文件传输FTP,超文本链接HTTP。

在数据量大、或者网络不稳定(TCP网络校验耗时不适合网络差的时候)、或要求高穿透性的时候可以使用UDP协议。比如QQ聊天(QQ聊天的UDP协议,会有QQ服务器加层控制保证数据可靠)。

TCP数据段格式如下:

H

   重点说下标志位字段,标志位字段中的AKG用来确认序号有效,连接和断开时都要使用。SYN表示发起一个连接,FIN表示结束。

UDP数据字段如下:

H

可以看出UDP和TCO都包含源端口号和目标端口号。


3、TCP的三次握手链接和四次握手释放

TCP连接需要3次握手,白话解释如下:客户端高速服务器我要连接了,然后发一个AKG过去,服务器接到之后高速客户端,我知道你想连接了,对AKG进行处理返回客户端,然后客户端收到后再高速服务器,恩,我知道你知道我要连接了,再将AKG处理发回服务器。然后就可以进行通信了。

详情如下:

源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。  
目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。  
源主机再回送一个数据段,同样带有递增的发送序号和确认序号。

TCP释放需要4次握手,因为TCP/IP是双工管道,双方的读写都需要关闭,同时也是对称的,双方都可以先发起关闭。白话过程解释如下:

分两个阶段。

一、客户端先告诉服务器,我要关啦,然后服务器收到后,关闭自己的读通道,然后告诉客户端我接到你的请求了,客户端收到后,关闭自己的写通道。

二、然后客户端再告诉服务器,我知道你知道我想关闭了。服务器收到后,关闭自己的读通道。然后服务器告诉客户端我知道你知道我知道你想关闭了,客户端收到后关闭自己的读通道。

详情如下:

  第一阶段   客户机发送完数据之后,向服务器发送一个FIN数据段,序列号为i;
    1.服务器收到FIN(i)后,返回确认段ACK,序列号为i+1,关闭服务器读通道;
    2.客户机收到ACK(i+1)后,关闭客户机写通道;
   (此时,客户机仍能通过读通道读取服务器的数据,服务器仍能通过写通道写数据)
    第二阶段 服务器发送完数据之后,向客户机发送一个FIN数据段,序列号为j;
    3.客户机收到FIN(j)后,返回确认段ACK,序列号为j+1,关闭客户机读通道;
    4.服务器收到ACK(j+1)后,关闭服务器写通道。
这是标准的TCP关闭两个阶段,服务器和客户机都可以发起关闭,完全对称。

参考如下:http://www.cnblogs.com/BlueTzar/articles/811160.html  四层模型

http://www.cnblogs.com/Jessy/p/3535612.html  三次/四次握手

http://blog.csdn.net/herbert5069/article/details/31358641 网络穿透TTL



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP/IP四层模型简述 的相关文章

  • Typora 远程代码执行漏洞(CVE-2023-2317)

    1 漏洞介绍 Typora是一款编辑器 Typora 1 6 7之前版本存在安全漏洞 该漏洞源于通过在标签中加载 typora app typemark updater update html 可以在Typora主窗口中加载JavaScri
  • Nginx:配置worker进程的所属用户

    Nginx的配置文件 etc nginx nginx conf中定义了启动worker时的所属用户 全局块 user www data worker进程的所属用户 nginx默认设置为www data 但如果该用户配置的不正确 可能造成业务
  • 【Python 实战】---- 批量对图片添加不同水印

    1 需求 多水印 多图片 对图片和水印进行一一对应的批量添加 2 效果对比 加水印前和加水印后 3 开发思路 由于水印是多个 同时图片也是多个 所以考虑使用excel对他们进行配置 好一一对应 字体的获取 不同文字的字体不同 水印显示的位置
  • 常见的六大聚类算法

    1 K Means K均值 聚类 算法步骤 1 首先我们选择一些类 组 并随机初始化它们各自的中心点 中心点是与每个数据点向量长度相同的位置 这需要我们提前预知类的数量 即中心点的数量 2 计算每个数据点到中心点的距离 数据点距离哪个中心点
  • Kubernetes CKA考试和真题(中)

    前言 上一篇文章分享了CKA考试和前5个题目及其解答 这一篇继续分享6 10题 第六题 使用service暴露应用 题目 重新配置现有的deployment front end 以及添加名为http的端口规范来公开现有的容器nginx的端口
  • 深入剖析Vue源码 - 完整渲染过程

    继上一节内容 我们将Vue复杂的挂载流程通过图解流程 代码分析的方式简单梳理了一遍 其中也讲到了模板编译的大致流程 然而在挂载的核心处 我们并没有分析模板编译后函数如何渲染为可视化的DOM节点 这一节 我们将重新回到Vue实例挂载的最后一个
  • C语言程序设计博客作业04

    这个作业要求在哪里 https pintia cn problem sets 1595556701053566976 我在这个课程的目标是 了解函数 然后会运用函数 这个作业在那个具体方面帮助我实现目标 基础题然我了解了函数使用时的一些格式

随机推荐

  • 基于OpenCV简易检测硬币个数

    背景 在我们生活中常常需要我们用肉眼来计算某些物品的数量 如果通过人工操作会产生 效率低下 长时间的工作会导致眼睛疲劳导致错误的计算 为此 我们可以使用图像处理来检测方便我们 代码如下 include
  • buuctf-misc-ningen(另有解决kali2020无法开启共享文件夹解决方案)

    ningen 附件下载下来是一张jpg文件 先看看属性界面 猜测是压缩文件 使用winhex查看 确实为压缩文件 存在文本文件 binwalk foremost分离 中间一步报错的原因是output文件夹不为空 删除原有的output文件夹
  • Prometheus监控Linux主机(node-exporter)

    Prometheus监控Linux主机 Prometheus node exporter 监控Linux服务器 node export 主要用来做Linux服务器监控 比如服务器的进程数 消耗了多少 CPU 内存 磁盘空间 iops tcp
  • declaration of 'void* operator new [](size_t)' has a different exception specifier

    其实就是c 11和c 98的定义的坑 https stackoverflow com questions 39188919 different exception specifier with g 6 2 Are you using C 1
  • Linux之scp远程拷贝指令

    1 最近在往服务器上传文件 总是ssh登陆服务器后 在上传 这样很繁琐 网上找了找 发现可以用scp 远程拷贝 scp 命令参数 源文件 目的的路径 如 scp r local folder remote username remote i
  • 什么是熔断\降级

    熔断与降级 熔断降级是一种分布式系统的保护机制 用于应对服务不稳定或不可用的情况 熔断是指当某个服务的调用失败次数或异常比例达到一定阈值时 自动切断对该服务的调用 让请求快速失败 避免影响其他服务而导致雪崩效应 熔断后 一段时间内不再调用该
  • Java Frame Panel JFrame JPanel

    Frame 和 JFrame 默认的是BorderLayout布局 而 Panel 和 JPanel 默认的是 FlowLayout布局
  • 使用jxl解析Excel出现的问题

    jxl read biff BiffException Unable to recognize OLE stream at jxl read biff CompoundFile CompoundFile java 116 at jxl re
  • 【Unity】如何将3D模型呈现在2D平面上

    步骤 一 将2D平面所在Canvas的Render Mode改为Screen Space Camera 改成World Space也行 二 将Main Camera拖动到Render Camera处 三 调整3D模型的大小 2D平面和Mai
  • 基于Numpy构建全连接前馈神经网络进行手写数字识别

    文章目录 一 问题描述 二 设计简要描述 三 程序清单 四 结果分析 五 调试报告 六 实验小结 一 问题描述 不使用任何机器学习框架 仅仅通过Numpy库构建一个最简单的全连接前馈神经网络 并用该网络识别mnist提供的手写数字体 二 设
  • 2023年Java面试题_Redis

    Index Redis 基础 1 基本数据结构 1 1 String 字符串 1 1 1 底层结构 1 1 2 相关指令 1 2 List 列表 1 2 1 底层结构 1 2 2 相关指令 1 3 Hash 哈希 k v 1 3 1 底层结
  • 记一次流量攻击的处理方式

    我本人只是做程序开发的 只会一些基础的linux命令和处理 所以在网上找到了不少方案并且尝试 最终限制了本次的流量攻击 现总结起来 供各位参考 1 首先 我们需要统计一下ip连接数 找到请求过多的ip 将其进行封禁 查看代码如下 netst
  • 人工神经网络算法的学习率有什么作用

    神经网络的结构 例如2输入3隐节点1输出 建好后 一般就要求神经网络里的权值和阈值 现在一般求解权值和阈值 都是采用梯度下降之类的搜索算法 梯度下降法 牛顿法 列文伯格 马跨特法 狗腿法等等 这些算法会先初始化一个解 在这个解的基础上 确定
  • [JAVAee]SpringBoot日志文件

    目录 日志的作用 SpringBoot中的日志 框架说明 日志对象的获取 日志的分类 日志的级别设置 日志的打印 日志的持久化 日志的作用 日志可以帮助我们发现程序的问题并进行定位 日志还可以记录用户的登录信息 分析用户的意图 日志能记录程
  • Vue详情页面el-row el-col做出word样式效果和打印(element-ui)

    场景 业务给了个word文档 然后说要前端可以看到样式如文档 并且可以打印出来 记录一下 element ui word表格样式详情页面 vue页面打印 更细的内容可以查看下面两篇文章原文 样式参考文章 elementUI自定义查看详情组件
  • ModuleNotFoundError: No module named ‘tensorflow‘错误

    环境 win10 64位 情境 eclipse运行python文件 错误 ModuleNotFoundError No module named tensorflow 分析 没有安装tensorflow包 解决方法 pip install
  • QT QProcess执行终端命令并实时输出回显

    https blog csdn net weixin 43690347 article details 84146821 utm medium distribute pc aggpage search result none task bl
  • 【ISP】低亮度图片增强方法(1)

    本文介绍改进INDANE算法的低照度图像增强改进算法 AINDANE算法 Adaptive and integrated neighborhood dependent approach for nonlinear enhancement o
  • 如何用RDP来连接计算机上的WSL2(Ubuntu)图形界面(要求安装Gnome桌面)

    您可以使用 Remote Desktop Protocol RDP 连接 Windows Subsystem for Linux WSL 中的 Ubuntu 系统的图形界面 需要安装 Gnome 桌面 在 Ubuntu 系统中安装并启动 V
  • TCP/IP四层模型简述

    1 TCP IP协议是由七层模型简化成四层而来 七层有底向上分别是 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 简化后的四层分别是 主机到网络层 比特 网络层 数据帧 传输层 数据包 应用层 数据段 每一层对于上一层来讲是透