TCP/IP模型及包结构

2024-06-13 19:48
文章标签 ip 模型 结构 tcp 及包

本文主要是介绍TCP/IP模型及包结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TCP/IP模型

TCP/IP与OSI七层的对应关系



网络接口层:定义物理介质的特性,数据的封装及解封装,数据帧的传输。

网络层:IP是网络的核心层,通过路由选择将下一跳IP封装交给接口层,IP数据包时无连接服务。

IP数据包格式:


版本:占4位(bit),指IP的协议版本号。

首部长度:占4位(bit),指IP报文头的长度。

服务类型:用来获得更好的服务质量,其中3位表示报文的优先级,后面的几位分别表示要求更低的延迟、更高的吞吐量、更高的可靠性、更低的路由代价等。对应为1即有相应要求,为0则不要求。

总长度:16位(bit),指报文的总长度。

标识:该字段标记为当前分片为第几个分片,在数据报重组时很有用,当一个数据包要进行分段时,把数据包每一个分段打上相同的标示方便重组。

标志:该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否为最后一个分片)。

片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。

生存时间:TTL(Time to Live),该字段表明当前报文还能生存多久,每经过1ms或者一个网关,TTL值自动减1,当生存时间为0时,报文将被认为目的主机不可达而丢弃。

协议:该字段指出在上层(网络7层结构TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。

首部校验和:用来检测IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被修改

源IP地址:32位(bit),4个字节,每一个字节为0-255之间的整数,及我们日常见到的IP地址格式。

目的IP地址:32位(bit),4个字节,每一个字节为0-255之间的整数,及我们日常见到的IP地址格式。

传输层:提供应用层程序间的通信,主要是传输控制协议TCP和用户数据协议UDP。

TCP报文结构:


URG: 当该位为1时,表明紧急指针有效,否则无效。

ACK:当该位1时,表明确认序列号有效,即该报文段是一个确认报文段,否则无效。

PSH:其值为1表示接收方应尽快将这个报文段交给应用层处理。

RST:重新连接标志。

SYN:同步序列号标志,其值为1时用来发起一个连接。

FIN:其值为1时表示发送端释放一个连接。

窗口大小字段:占16比特。此字段用来进行流量控制,单位为字节数,这个值是本机期望一次接收的字节数。

TCP的三次握手、四次断开过程:


这篇关于TCP/IP模型及包结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1058262

相关文章

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J