TCP/IP详解

【网络基础】TCP/IP协议详解 tcp/ip协议 阅读详情

目录

一、OSI参考模型

1.图示

2.OSI七层模型各自作用

3.七层通信过程

二、IP协议

1.IPv4首部

2.IPv6首部

三、TCP协议

1.tcp首部格式

2.握手挥手图示

3.握手流程

4.为什么要三次握手?

5.四次挥手流程

6.为什么要四次分手?

7.为什么要等待2MSL?

8.TCP流量控制

9.TCP拥塞控制

9.1 慢开始和拥塞避免

9.2 快重传和快恢复

四、UDP协议

五、HTTP协议

1.http请求报文

2.http响应报文

3.method: 请求方法,标明客户端希望服务器对资源执行的动作

4.status:标记请求处理过程中发生的情况,如200,301, 302, 404, 502

5.HTTP 首部字段

6.图示为http跟踪流实例,可以很好的了解一个http的请求和响应流程

7.Get请求抓包情况

8.Post请求抓包情况,和get请求不一样的是post的数据是放到了包体部分,而get请求是放到了heads里面

源码等资料获取方法


一、OSI参考模型

1.图示

 

2.OSI七层模型各自作用

应用层

为应用程序提供服务并规定应用程序中通信的相关细节。包括文件传输、电子邮件、远程登录等协议。

表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。

会话层

负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。

传输层

起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。会话层负责决定建立连接和断开连接的时机,而传输层进行实际的建立和断开处理

网络层

将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某个地址。因此这一层主要负责寻址和路由选择

数据链路层

负责物理层上的互联、节点之间的通信传输。例如与1个以太网相连的2个节点之间的通信。将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。

物理层

负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换

3.七层通信过程

二、IP协议

1.IPv4首部

  • 版本:表示 IP 协议的版本。
  • 首部长度:首部的长度,单位是 4 字节。
  • 区分服务:暂时无意义。
  • 总长度:首部和数据之和的长度,单位为字节,当数据报的总长度超过数据链路层的最大传送单元时就必须进行分片处理。将一个 IP 数据报分成多个分片,每个分片都具有 IP 首部。
  • 标识:对分片进行标识,同一个数据报的分片具有同样的标识。
  • 标志:占 3 位。最低位记为 MF(More Fragment),MF = 1 表示后面“还有分片”,MF = 0 表示这是多个数据报片中的最后一个;中间一位记为 DF(Don't Fragment),只有当 DF = 0 时才允许分片。
  • 片偏移:表示该分片在原分组中的相对位置,片偏移以 8 个字节为偏移单位。
  • 生存时间:TTL,表示该数据报在网络中可以被转发的次数,每经过一次转发,这个值减 1。
  • 首部校验和:这个字段只检验数据报的首部,不检验数据部分。
  • 源地址
  • 目的地址
  • 可变部分:可变部分中包括用于增加 IP 数据报功能的选项,这些选项一个一个拼起来,中间不需要分隔符,最后用 0 填充为 4 字节的整数倍。

WireShark抓包的情况

可以看到首部长度值为5行,20bytes(5行*4字节每行=20字节)

首部长度是4bit,而2^4是16,所以它的取值范围是0-15(也可理解为4bit即是4个1,转换成十进制就是15),图中每行是4个字节(32bits),所以最大长度就是15*4=60字节。

2.IPv6首部

  • 版本:协议的版本,对于 IPv6 是 6.
  • 流标号:“流”指互联网络上从特定源点到特定终点的一系列数据报,所有属于同一个流的数据报都具有同样的流标号。
  • 有效载荷长度:表示 IPv6 数据报除基本首部以外的字节数。
  • 下一个首部:当没有扩展首部时,下一个首部字段指出基本首部后面的数据应该移交给哪个高层协议。当出现扩展首部时,下一个首部字段的值表示后面第一个扩展首部的类型。
  • 数据报图中经过的路由器不处理扩展首部。
  • IPv6 采用冒号十六进制记法,如 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF,冒号十六进制记法允许零压缩,即一连串连续的零可以为一对冒号所取代,任一地址中只能够使用一次零压缩。

三、TCP协议

面向连接,提供可靠的服务,有流量控制,拥塞控制,无重复、无丢失、无差错,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),只能是点对点,首部 20 字节,全双工

1.tcp首部格式

  • 序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
  • 确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就
TCP/IP协议详解 CRC为循环冗余校验码,主要校验所收到的数据是否有错。2.链路层处理的数据为数据帧,格式如下图所示,其中,目标MAC(Media Access Control)地址、源MAC地址和类型组成14(6+6+2)个字节的帧头,后面为数据部分,最后为CRC(Cyclic Redundancy Check)部分。12.冒分十六进制表示法:格式为X:X:X:X:X:X:X:X,其中每个X为2个字节十六进制数,若X中有前导0,前导0可以省略,例如:2001:DB8:0:23:8:800:200C:417A。 阅读详情

相关推荐

【网络协议】TCP/IP 协议

1、TCP/IP 模型 TCP/IP 协议模型,包含了一系列构成互联网基础的网络协议,是 Internet 的核心协议。 基于 TCP/IP 协议栈可分为四层或五层,转换为 OSI 参考模型,可以分为七层,分别如下图所示: 通常我们所说的都是基于 TCP/TP 五层模型。 2、TCP/IP 协议栈每一层功能 应用层:HTTP、FTP 等等我们熟悉的协议。 传输层:TCP 和 UDP 协议、HTTPS。 网络层:IP 协议,它负责对数据加上 IP 地址和其他的数据以确定传输的目标。 数据链路层:为待传

u011035026的博客 1万+

《TCP/IP详解:实现》学习导图

《TCP/IP详解:实现》学习导图 关于TCP/IP协议的所有理论知识请查看《TCP/IP详解:协议》学习导图 1.基于《4.4BSD-Lite 源码》解析 4.4BSD-Lite 源码地址 https://pub.allbsd.org/bsd-sources/ 说明:BSD对UNIX最重要的贡献之一是TCP/IP。BSD 有8个主要的发行版中包含了TCP/IP...

yexiang优快云的专栏 1478

FFTW库安装与使用(3.3.5版本)

FFTW库安装与使用一、FFTW库介绍与下载二、FFTW库安装三、FFTW库测试 一、FFTW库介绍与下载   FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT,且运行速度比Eigen和opencv自带的FFT库函数快10倍以上。   下载链接:http://www.fftw.org/install/wind

Jhon_ranble的博客 2万+

TEM图像处理实战指南:从基础操作到金属材料分析

本文提供了一份全面的透射电镜(TEM)图像处理实战指南,涵盖从基础操作到金属材料深度分析的全流程。重点讲解了TEM图像预处理、选区电子衍射(SAED)标定、高分辨像(HRTEM)分析及STEM图像应用等核心技能,并结合金属材料(如铝合金、钢)的析出相鉴定、位错分析和界面结构研究等实际案例,帮助研究者从原始数据中准确提取晶体结构、缺陷及成分信息。

weixin_29284201的博客 209

【蓝桥杯——单片机学习笔记】十三.点阵(STC15F2K60S2)

一.点阵内部图 点阵的有两种,分为共阴和共阳(与数码管类似,后续代码根据共阳点阵编写)。点阵的控制主要是每行和每列电平的控制。如图,以共阳为例:若要使左上角的灯亮,则第一行输出高电平(其他行均为低电平),第一列输出低电平(其他列均为高电平)。 二.原理图 与数码管共用接口,所以数码管和点阵的显示只能选一个使用! 原理图中点阵的接口R5即代表第5行(Row),C8即代表第8列(Column)。通...

默默无闻小菜鸡的博客 2011

CentOS 7/8 系统下,基于Docker Compose一键部署Dify AI应用平台

本文详细介绍了在CentOS 7/8系统下,使用Docker Compose一键部署Dify AI应用平台的完整流程。从系统环境准备、Docker引擎安装与加速配置,到获取Dify项目、关键环境变量设置,再到服务启动、状态监控及初始化访问,提供了手把手的部署指南和常见问题排查方法,帮助用户快速搭建稳定、可维护的AI应用开发环境。

q5r6s7的博客 139

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

可维护的 SAP UI5 Theming 策略:从 CSS 级联与特性选择器到 UI Theme Designer 的工程化落地

摘要:SAP UI5主题化是一个涉及CSS级联、选择器特异性和主题参数的系统工程,与应用逻辑解耦以实现品牌化和无障碍适配。轻量级调整优先使用附加CSS,重大改动才考虑创建新主题。样式冲突需通过特异性原则解决,避免滥用!important。动态添加样式应使用addStyleClass而非直接操作DOM。主题可通过bootstrap参数、URL或运行时API设置,企业级主题推荐使用UI Theme Designer。自定义内容应消费主题变量以实现一致性,避免直接修改控件内部结构或内联样式。工程化落地需规范分层和

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 307

dify制作的工作流如何通过API调用

本文介绍了如何通过Python程序调用Dify工作流API实现数据处理功能。文章详细展示了workflow和chatflow的调用方法,包括参数设置和结果输出,并提供了一个完整的API调用工具代码示例。该工具可实现文本处理、成果查重、关键词生成等功能,支持通过Python脚本或Postman进行调用。核心代码包含API请求函数和批量处理函数,通过HTTP请求与Dify服务端交互,实现自动化数据处理流程。

hhue2007的专栏 933

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: TCP的三次握手与四次挥手
下一篇: ARP解析MAC地址的全过程(ARP的工作机制)
bug捕手
博客等级 码龄4年 899粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值