网络编程-TCP/IP

网络概述

网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。

每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务

网络体系结构即指网络的层次结构和每层所使用协议的集合

两类非常重要的体系结构:OSI 七层模型 与TCP/IP 五层模型

OSI 七层模型

理想的模型:

在这里插入图片描述
!

TCP/IP五层模型

实际使用的模型:

请添加图片描述

TCP/IP 协议通信模型

TCP/IP (Transfer Control Protocol/Internet Protocol) 协议,我们也叫做⽹络通讯协议。包含了⼀系
列构成互联⽹基础的⽹络协议,是 Internet 的核⼼协议。按照⽤法把他们分为⼀下⼏层。

在这里插入图片描述
!在这里插入图片描述

数据封装与传递过程

在这里插入图片描述

TCP/IP 底层结果

在这里插入图片描述

TCP/IP 通信数据封装

在这里插入图片描述

发送流程:

应⽤层放⼊数据 -> 传输层 插⼊ TCP ⾸部 -> ⽹络层插⼊ IP ⾸部 -> 数据链路层插⼊以太⽹头 -> 物理层通过⽹卡发送

接收流程:

物理层⽹卡接收 -> 数据链路层解析以太⽹头 -> ⽹络层解析 IP ⾸部 -> 传输层解析 TCP ⾸部 -> 应⽤层获得数据

WireShark 分析 IP 数据包格式

TCP/IP 协议中,TCP 协议和 IP 协议分别完成不同的任务。

TCP 是⽤来检测⽹络传输中的差错。

IP 协议可以将多个交换⽹络连接起来,在源地址和⽬的地址之间传送数据包。同时,它还提供数据重 新组装功能,以适应不同⽹络对数据包⼤⼩的要求。

在 TCP/IP 协议中,使⽤ IP 协议传输的数据包就是 IP 数据包。

IP 报⽂是在⽹络层传输的数据单元,也叫 IP 数据报。

在这里插入图片描述

 版本 : IP 协议的版本,⽬前的 IP 协议版本号为 4,下⼀代 IP 协议版本号为 6。⾸部⻓度:IP 报头的⻓度。固定部分的⻓度(20 字节)和可变部分的⻓度之和。共占 4 位。
最⼤为 1111,即 10 进制 的 15,代表 IP 报头的最⼤⻓度可以为 15 个 32bits(4 字节),也
就是最⻓可为 15*4=60 字节,除去固定部分的⻓度 20 字节,可变部分的⻓度最⼤为 40 字
节。服务类型:Type Of Service。总⻓度:IP 报⽂的总⻓度。报头的⻓度和数据部分的⻓度之和。标识:唯⼀的标识主机发送的每⼀份数据报。通常每发送⼀个报⽂,它的值加⼀。当 IP 报⽂⻓
度超过传输⽹络的 MTU(最⼤传输单元)时必须分⽚,这个标识字段的值被复制到所有数据分
⽚的标识字段中,使得这些分⽚在达到最终⽬的地时可以依照标识字段的内容重新组成原先的
数据。标志:共 3 位。R、DF、MF 三位。⽬前只有后两位有效,DF 位:为 1 表示不分⽚,
为 0 表示分⽚。MF:为 1 表示 “更多的⽚”,为 0 表示这是最后⼀⽚。⽚位移:本分⽚在原先数据报⽂中相对⾸位的偏移位。(需要再乘以 8)⽣存时间:IP 报⽂所允许通过的路由器的最⼤数量。每经过⼀个路由器,TTL 减 1,当为 0
时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置⼀个 8 bit 字段. 推荐的初始值由分
配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最⼤值 255。协议:指出 IP 报⽂携带的数据使⽤的是那种协议,以便⽬的主机的 IP 层能知道要将数据报上
交到哪个进程(不同的协议有专⻔不同的进程处理)。和端⼝号类似,此处采⽤协议号,TCP
的协议号为 6,UDP 的协议号为 17。ICMP 的协议号为 1,IGMP 的协议号为 2.⾸部校验和:计算 IP 头部的校验和,检查 IP 报头的完整性。源 IP 地址:标识 IP 数据报的源端设备。⽬的 IP 地址:标识 IP 数据报的⽬的地址。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC注解全解析:构建高效Web应用的终极指南 (上)

SpringMVC 是一个强大的 Web 框架,广泛应用于 Java Web 开发中。它通过注解简化了配置,增强了代码的可读性。本文将全面解析 SpringMVC 中常用的注解及其用法,帮助你构建高效的 Web 应用。 一. MVC介绍 MVC 是 Model View Controller 的缩写…

数字通云平台 智慧政务OA PayslipUser SQL注入漏洞复现

0x01 产品简介 数字通云平台智慧政务OA产品是基于云计算、大数据、人工智能等先进技术,为政府部门量身定制的智能化办公系统。该系统旨在提高政府部门的办公效率、协同能力和信息资源共享水平,推动电子政务向更高层次发展。 0x02 漏洞概述 数字通云平台 智慧政务OA Paysli…

使用百度语音技术实现文字转语音

使用百度语音技术实现文字转语音 SpringBootVue前后端分离项目 调用api接口需要使用AK和SK生成AccessToken,生成getAccessToken的接口有跨域限制,所以统一的由后端处理了 部分参数在控制台->语音技术->在线调试里面能找到 Controller RestController RequestMapping(&q…

PostgreSQL的引号、数据类型转换和数据类型

一、单引号和双引号(重要): 1、在mysql没啥区别 2、在pgsql中,实际字符串用单引号,双引号相当于mysql的,用来包含关键字; -- 单引号,表示user_name的字符串实际值 insert into t_user(user_nam…

浏览器跨tab页面通信方式总结

需求: 浏览器不同 tab 标签页之间是独立的, 如果要通信必须通过特殊手段来实现跨标签页通信。 1.StorageEvent 事件 当一个标签页 localStorage 变化时(sessionStorage 无效),同源下另一个或其他所有标签页使用 DO…

python多级表头汇总

需求:将图一的数据展示为图二样式 图一: 图二: 图一具体的Excel截图 图二具体样式 python解决办法: # 导入 pandas 库,用于数据处理 import pandas as pd# 加载 Excel 文件 file_path 多级表头读取实例.xl…

科研绘图系列:R语言circos图(circos plot)

介绍 Circos图是一种数据可视化工具,它以圆形布局展示数据,通常用于显示数据之间的关系和模式。这种图表特别适合于展示分层数据或网络关系。Circos图的一些关键特点包括: 圆形布局:数据被组织在一个或多个同心圆中,每个圆可以代表不同的数据维度或层次。扇区:每个圆被划…

【BUG】已解决:SyntaxError invalid syntax

SyntaxError invalid syntax 目录 SyntaxError invalid syntax 【常见模块错误】 错误原因: 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于…

图书馆定位导航:RFID、VR与AR技术在图书馆中的应用

图书馆作为知识的宝库,承载着无数求知者的梦想与期待,随着馆藏书籍数量的激增与图书馆布局的日益复杂,读者在寻找目标书籍往往有许多困难。传统的索引号查询方式虽能提供书籍的基本信息,但在寻找过程中,因不熟悉图书馆…

【Android】使用视图绑定ViewBinding来代替findViewById

文章目录 介绍作用用法开启ViewBinding功能自动生成绑定类在Activity中使用访问视图控件 区别 介绍 ViewBinding 是 Android 开发中的一个功能,它简化了访问视图的过程,避免了使用 findViewById 的繁琐步骤。它通过生成与布局文件相对应的绑定类&#xf…

CentOS 7 安装Jenkins2.346.1(war方式安装)

既然想要安装Jenkins,肯定是先要从官网解读所需环境配置信息,如需了解更多自行查阅 https://www.jenkins.io/doc/book/installing/linux/ JDK17,Maven3.9 安装 先从官网分别下载JDK17与Maven3.9 下载好之后上传至服务器、并解压&#xff1a…

算法学习day13(动态规划)

一、打家劫舍III 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 …

ubuntu 24 PXE Server (bios+uefi) 批量部署系统

pxe server 前言 PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,…

dev c++ 添加osg包含目录失败

在dev c 中添加osg的包含目录; 编译程序,出现下图错误; 打开出错文件,修改编码为UTF-8, 错误还是没有消除; 根据资料,osg是基于opengl开发的;不过我也没在osg的目录下看到opengl的头…

2024-07-19 Unity插件 Odin Inspector10 —— Misc Attributes

文章目录 1 说明2 其他特性2.1 CustomContextMenu2.2 DisableContextMenu2.3 DrawWithUnity2.4 HideDuplicateReferenceBox2.5 Indent2.6 InfoBox2.7 InlineProperty2.8 LabelText2.9 LabelWidth2.10 OnCollectionChanged2.11 OnInspectorDispose2.12 OnInspectorGUI2.13 OnIns…

Training for Stable Diffusion

1.Training for Stable Diffusion 笔记来源: 1.Denoising Diffusion Probabilistic Models 2.最大似然估计(Maximum likelihood estimation) 3.Understanding Maximum Likelihood Estimation 4.How to Solve ‘CUDA out of memory’ in PyTorch 1.1 Introduction …

如何设计分布式锁?

1. 为什么需要使用分布式锁? 在实际项目中,经常会遇到多个客户端对同一个资源或数据进行访问,为了避免并发访问带来错误,就会对该资源或数据加一把锁,只允许获得锁的客户端进行操作。 总结来说,分布式锁是…

新能源汽车空调系统的四个工作过程

汽车空调制冷系统组成 1.汽车空调制冷系统组成 以R134a为制冷剂的汽车空调制冷系统主要包括压缩机、电磁离合器、冷凝器、 散热风扇、储液于燥器、膨胀阀、蒸发器、鼓风机、制冷连接管路、高低压检测 连接接头、调节与控制装置等组成。 汽车空调的四个过程 1压缩过程 传统车…

金融数据的pandas模块应用

金融数据的pandas模块应用 数据链接:https://pan.baidu.com/s/1VMh8-4IeCUYXB9p3rL45qw 提取码:c6ys 1. 导入所需基础库 import pandas as pd import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams[font.sans-serif][FangSong] mpl.rcP…

JAVA.1.新建项目

1.代码结构 2.如何创建项目 1.创建工程 至此,我们创建了我们的第一个工程 2.创建模块 可见已经有了p28的一个模块,删掉了再添加 展开src 3.创建包 4.新建类 5.编写代码 package demo1;public class Hello {public static void main(String[] args) {Sys…